From 5171439d9f62eab14f8f7d655b2450b92cf07aba Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Wed, 31 Jan 2024 17:53:35 +0100 Subject: [PATCH 01/49] Initial commit --- .gitignore | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6985cf1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,14 @@ +# Generated by Cargo +# will have compiled files and executables +debug/ +target/ + +# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries +# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html +Cargo.lock + +# These are backup files generated by rustfmt +**/*.rs.bk + +# MSVC Windows builds of rustc generate these, which store debugging information +*.pdb From e0ce9862240889339c049785b06613c2945ef9df Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Wed, 31 Jan 2024 18:08:55 +0100 Subject: [PATCH 02/49] Create initial tree-sitter sus parser --- Cargo.toml | 26 + binding.gyp | 19 + bindings/node/binding.cc | 28 + bindings/node/index.js | 19 + bindings/rust/build.rs | 40 + bindings/rust/lib.rs | 52 + grammar.js | 63 ++ package.json | 19 + src/grammar.json | 250 +++++ src/node-types.json | 187 ++++ src/parser.c | 1950 ++++++++++++++++++++++++++++++++++++++ src/tree_sitter/parser.h | 224 +++++ 12 files changed, 2877 insertions(+) create mode 100644 Cargo.toml create mode 100644 binding.gyp create mode 100644 bindings/node/binding.cc create mode 100644 bindings/node/index.js create mode 100644 bindings/rust/build.rs create mode 100644 bindings/rust/lib.rs create mode 100644 grammar.js create mode 100644 package.json create mode 100644 src/grammar.json create mode 100644 src/node-types.json create mode 100644 src/parser.c create mode 100644 src/tree_sitter/parser.h diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..26350da --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,26 @@ +[package] +name = "tree-sitter-SUS" +description = "SUS grammar for the tree-sitter parsing library" +version = "0.0.1" +keywords = ["incremental", "parsing", "SUS"] +categories = ["parsing", "text-editors"] +repository = "https://github.com/tree-sitter/tree-sitter-SUS" +edition = "2018" +license = "MIT" + +build = "bindings/rust/build.rs" +include = [ + "bindings/rust/*", + "grammar.js", + "queries/*", + "src/*", +] + +[lib] +path = "bindings/rust/lib.rs" + +[dependencies] +tree-sitter = "~0.20.10" + +[build-dependencies] +cc = "1.0" diff --git a/binding.gyp b/binding.gyp new file mode 100644 index 0000000..f4ce137 --- /dev/null +++ b/binding.gyp @@ -0,0 +1,19 @@ +{ + "targets": [ + { + "target_name": "tree_sitter_SUS_binding", + "include_dirs": [ + " +#include "nan.h" + +using namespace v8; + +extern "C" TSLanguage * tree_sitter_SUS(); + +namespace { + +NAN_METHOD(New) {} + +void Init(Local exports, Local module) { + Local tpl = Nan::New(New); + tpl->SetClassName(Nan::New("Language").ToLocalChecked()); + tpl->InstanceTemplate()->SetInternalFieldCount(1); + + Local constructor = Nan::GetFunction(tpl).ToLocalChecked(); + Local instance = constructor->NewInstance(Nan::GetCurrentContext()).ToLocalChecked(); + Nan::SetInternalFieldPointer(instance, 0, tree_sitter_SUS()); + + Nan::Set(instance, Nan::New("name").ToLocalChecked(), Nan::New("SUS").ToLocalChecked()); + Nan::Set(module, Nan::New("exports").ToLocalChecked(), instance); +} + +NODE_MODULE(tree_sitter_SUS_binding, Init) + +} // namespace diff --git a/bindings/node/index.js b/bindings/node/index.js new file mode 100644 index 0000000..e8fb1c4 --- /dev/null +++ b/bindings/node/index.js @@ -0,0 +1,19 @@ +try { + module.exports = require("../../build/Release/tree_sitter_SUS_binding"); +} catch (error1) { + if (error1.code !== 'MODULE_NOT_FOUND') { + throw error1; + } + try { + module.exports = require("../../build/Debug/tree_sitter_SUS_binding"); + } catch (error2) { + if (error2.code !== 'MODULE_NOT_FOUND') { + throw error2; + } + throw error1 + } +} + +try { + module.exports.nodeTypeInfo = require("../../src/node-types.json"); +} catch (_) {} diff --git a/bindings/rust/build.rs b/bindings/rust/build.rs new file mode 100644 index 0000000..c6061f0 --- /dev/null +++ b/bindings/rust/build.rs @@ -0,0 +1,40 @@ +fn main() { + let src_dir = std::path::Path::new("src"); + + let mut c_config = cc::Build::new(); + c_config.include(&src_dir); + c_config + .flag_if_supported("-Wno-unused-parameter") + .flag_if_supported("-Wno-unused-but-set-variable") + .flag_if_supported("-Wno-trigraphs"); + let parser_path = src_dir.join("parser.c"); + c_config.file(&parser_path); + + // If your language uses an external scanner written in C, + // then include this block of code: + + /* + let scanner_path = src_dir.join("scanner.c"); + c_config.file(&scanner_path); + println!("cargo:rerun-if-changed={}", scanner_path.to_str().unwrap()); + */ + + c_config.compile("parser"); + println!("cargo:rerun-if-changed={}", parser_path.to_str().unwrap()); + + // If your language uses an external scanner written in C++, + // then include this block of code: + + /* + let mut cpp_config = cc::Build::new(); + cpp_config.cpp(true); + cpp_config.include(&src_dir); + cpp_config + .flag_if_supported("-Wno-unused-parameter") + .flag_if_supported("-Wno-unused-but-set-variable"); + let scanner_path = src_dir.join("scanner.cc"); + cpp_config.file(&scanner_path); + cpp_config.compile("scanner"); + println!("cargo:rerun-if-changed={}", scanner_path.to_str().unwrap()); + */ +} diff --git a/bindings/rust/lib.rs b/bindings/rust/lib.rs new file mode 100644 index 0000000..9714b17 --- /dev/null +++ b/bindings/rust/lib.rs @@ -0,0 +1,52 @@ +//! This crate provides SUS language support for the [tree-sitter][] parsing library. +//! +//! Typically, you will use the [language][language func] function to add this language to a +//! tree-sitter [Parser][], and then use the parser to parse some code: +//! +//! ``` +//! let code = ""; +//! let mut parser = tree_sitter::Parser::new(); +//! parser.set_language(tree_sitter_SUS::language()).expect("Error loading SUS grammar"); +//! let tree = parser.parse(code, None).unwrap(); +//! ``` +//! +//! [Language]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Language.html +//! [language func]: fn.language.html +//! [Parser]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Parser.html +//! [tree-sitter]: https://tree-sitter.github.io/ + +use tree_sitter::Language; + +extern "C" { + fn tree_sitter_SUS() -> Language; +} + +/// Get the tree-sitter [Language][] for this grammar. +/// +/// [Language]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Language.html +pub fn language() -> Language { + unsafe { tree_sitter_SUS() } +} + +/// The content of the [`node-types.json`][] file for this grammar. +/// +/// [`node-types.json`]: https://tree-sitter.github.io/tree-sitter/using-parsers#static-node-types +pub const NODE_TYPES: &'static str = include_str!("../../src/node-types.json"); + +// Uncomment these to include any queries that this grammar contains + +// pub const HIGHLIGHTS_QUERY: &'static str = include_str!("../../queries/highlights.scm"); +// pub const INJECTIONS_QUERY: &'static str = include_str!("../../queries/injections.scm"); +// pub const LOCALS_QUERY: &'static str = include_str!("../../queries/locals.scm"); +// pub const TAGS_QUERY: &'static str = include_str!("../../queries/tags.scm"); + +#[cfg(test)] +mod tests { + #[test] + fn test_can_load_grammar() { + let mut parser = tree_sitter::Parser::new(); + parser + .set_language(super::language()) + .expect("Error loading SUS language"); + } +} diff --git a/grammar.js b/grammar.js new file mode 100644 index 0000000..13e5062 --- /dev/null +++ b/grammar.js @@ -0,0 +1,63 @@ + +function commaSep1(rule) { + return seq(rule, repeat(seq(',', rule))) +} + +function commaSep(rule) { + return optional(commaSep1(rule)) +} + +module.exports = grammar({ + name: 'SUS', + + rules: { + // TODO: add the actual grammar rules + source_file: $ => repeat($.module), + + module: $ => seq( + 'module', + $.identifier, + ':', + commaSep($.decl), + "->", + commaSep($.decl), + $.block + ), + identifier: $ => /[\p{L}_][\p{L}_\d]*/, + number: $ => /\d[\d_]*/, + + type: $ => choice( + $.identifier, + seq( + $.type, + '[', + $.expr, + ']' + ) + ), + + decl: $ => seq( + $.type, + $.identifier + ), + + expr: $ => choice( + $.identifier, + $.number, + seq($.expr, "[", $.expr, "]") + ), + + block: $ => seq( + "{", + repeat($.statement), + "}" + ), + + statement: $ => choice( + $.block, + seq($.expr, "=", $.expr, ";") + ) + }, + + // extras: $ => ["\s+"] +}); diff --git a/package.json b/package.json new file mode 100644 index 0000000..8e1826d --- /dev/null +++ b/package.json @@ -0,0 +1,19 @@ +{ + "name": "tree-sitter-SUS", + "version": "0.0.1", + "description": "SUS grammar for tree-sitter", + "main": "bindings/node", + "keywords": [ + "parsing", + "incremental" + ], + "dependencies": { + "nan": "^2.12.1" + }, + "devDependencies": { + "tree-sitter-cli": "^0.20.8" + }, + "scripts": { + "test": "tree-sitter test" + } +} diff --git a/src/grammar.json b/src/grammar.json new file mode 100644 index 0000000..87005d8 --- /dev/null +++ b/src/grammar.json @@ -0,0 +1,250 @@ +{ + "name": "SUS", + "rules": { + "source_file": { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "module" + } + }, + "module": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "module" + }, + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "decl" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "decl" + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "->" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "decl" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "decl" + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "block" + } + ] + }, + "identifier": { + "type": "PATTERN", + "value": "[\\p{L}_][\\p{L}_\\d]*" + }, + "number": { + "type": "PATTERN", + "value": "\\d[\\d_]*" + }, + "type": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "type" + }, + { + "type": "STRING", + "value": "[" + }, + { + "type": "SYMBOL", + "name": "expr" + }, + { + "type": "STRING", + "value": "]" + } + ] + } + ] + }, + "decl": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "type" + }, + { + "type": "SYMBOL", + "name": "identifier" + } + ] + }, + "expr": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "SYMBOL", + "name": "number" + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "expr" + }, + { + "type": "STRING", + "value": "[" + }, + { + "type": "SYMBOL", + "name": "expr" + }, + { + "type": "STRING", + "value": "]" + } + ] + } + ] + }, + "block": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "statement" + } + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "statement": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "block" + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "expr" + }, + { + "type": "STRING", + "value": "=" + }, + { + "type": "SYMBOL", + "name": "expr" + }, + { + "type": "STRING", + "value": ";" + } + ] + } + ] + } + }, + "extras": [ + { + "type": "PATTERN", + "value": "\\s" + } + ], + "conflicts": [], + "precedences": [], + "externals": [], + "inline": [], + "supertypes": [] +} + diff --git a/src/node-types.json b/src/node-types.json new file mode 100644 index 0000000..c7cc273 --- /dev/null +++ b/src/node-types.json @@ -0,0 +1,187 @@ +[ + { + "type": "block", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "statement", + "named": true + } + ] + } + }, + { + "type": "decl", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + }, + { + "type": "type", + "named": true + } + ] + } + }, + { + "type": "expr", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "expr", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "number", + "named": true + } + ] + } + }, + { + "type": "module", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "block", + "named": true + }, + { + "type": "decl", + "named": true + }, + { + "type": "identifier", + "named": true + } + ] + } + }, + { + "type": "source_file", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "module", + "named": true + } + ] + } + }, + { + "type": "statement", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "block", + "named": true + }, + { + "type": "expr", + "named": true + } + ] + } + }, + { + "type": "type", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "expr", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "type", + "named": true + } + ] + } + }, + { + "type": ",", + "named": false + }, + { + "type": "->", + "named": false + }, + { + "type": ":", + "named": false + }, + { + "type": ";", + "named": false + }, + { + "type": "=", + "named": false + }, + { + "type": "[", + "named": false + }, + { + "type": "]", + "named": false + }, + { + "type": "identifier", + "named": true + }, + { + "type": "module", + "named": false + }, + { + "type": "number", + "named": true + }, + { + "type": "{", + "named": false + }, + { + "type": "}", + "named": false + } +] \ No newline at end of file diff --git a/src/parser.c b/src/parser.c new file mode 100644 index 0000000..bdd8138 --- /dev/null +++ b/src/parser.c @@ -0,0 +1,1950 @@ +#include + +#if defined(__GNUC__) || defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmissing-field-initializers" +#endif + +#define LANGUAGE_VERSION 14 +#define STATE_COUNT 51 +#define LARGE_STATE_COUNT 2 +#define SYMBOL_COUNT 23 +#define ALIAS_COUNT 0 +#define TOKEN_COUNT 13 +#define EXTERNAL_TOKEN_COUNT 0 +#define FIELD_COUNT 0 +#define MAX_ALIAS_SEQUENCE_LENGTH 9 +#define PRODUCTION_ID_COUNT 1 + +enum { + anon_sym_module = 1, + anon_sym_COLON = 2, + anon_sym_COMMA = 3, + anon_sym_DASH_GT = 4, + sym_identifier = 5, + sym_number = 6, + anon_sym_LBRACK = 7, + anon_sym_RBRACK = 8, + anon_sym_LBRACE = 9, + anon_sym_RBRACE = 10, + anon_sym_EQ = 11, + anon_sym_SEMI = 12, + sym_source_file = 13, + sym_module = 14, + sym_type = 15, + sym_decl = 16, + sym_expr = 17, + sym_block = 18, + sym_statement = 19, + aux_sym_source_file_repeat1 = 20, + aux_sym_module_repeat1 = 21, + aux_sym_block_repeat1 = 22, +}; + +static const char * const ts_symbol_names[] = { + [ts_builtin_sym_end] = "end", + [anon_sym_module] = "module", + [anon_sym_COLON] = ":", + [anon_sym_COMMA] = ",", + [anon_sym_DASH_GT] = "->", + [sym_identifier] = "identifier", + [sym_number] = "number", + [anon_sym_LBRACK] = "[", + [anon_sym_RBRACK] = "]", + [anon_sym_LBRACE] = "{", + [anon_sym_RBRACE] = "}", + [anon_sym_EQ] = "=", + [anon_sym_SEMI] = ";", + [sym_source_file] = "source_file", + [sym_module] = "module", + [sym_type] = "type", + [sym_decl] = "decl", + [sym_expr] = "expr", + [sym_block] = "block", + [sym_statement] = "statement", + [aux_sym_source_file_repeat1] = "source_file_repeat1", + [aux_sym_module_repeat1] = "module_repeat1", + [aux_sym_block_repeat1] = "block_repeat1", +}; + +static const TSSymbol ts_symbol_map[] = { + [ts_builtin_sym_end] = ts_builtin_sym_end, + [anon_sym_module] = anon_sym_module, + [anon_sym_COLON] = anon_sym_COLON, + [anon_sym_COMMA] = anon_sym_COMMA, + [anon_sym_DASH_GT] = anon_sym_DASH_GT, + [sym_identifier] = sym_identifier, + [sym_number] = sym_number, + [anon_sym_LBRACK] = anon_sym_LBRACK, + [anon_sym_RBRACK] = anon_sym_RBRACK, + [anon_sym_LBRACE] = anon_sym_LBRACE, + [anon_sym_RBRACE] = anon_sym_RBRACE, + [anon_sym_EQ] = anon_sym_EQ, + [anon_sym_SEMI] = anon_sym_SEMI, + [sym_source_file] = sym_source_file, + [sym_module] = sym_module, + [sym_type] = sym_type, + [sym_decl] = sym_decl, + [sym_expr] = sym_expr, + [sym_block] = sym_block, + [sym_statement] = sym_statement, + [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1, + [aux_sym_module_repeat1] = aux_sym_module_repeat1, + [aux_sym_block_repeat1] = aux_sym_block_repeat1, +}; + +static const TSSymbolMetadata ts_symbol_metadata[] = { + [ts_builtin_sym_end] = { + .visible = false, + .named = true, + }, + [anon_sym_module] = { + .visible = true, + .named = false, + }, + [anon_sym_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_COMMA] = { + .visible = true, + .named = false, + }, + [anon_sym_DASH_GT] = { + .visible = true, + .named = false, + }, + [sym_identifier] = { + .visible = true, + .named = true, + }, + [sym_number] = { + .visible = true, + .named = true, + }, + [anon_sym_LBRACK] = { + .visible = true, + .named = false, + }, + [anon_sym_RBRACK] = { + .visible = true, + .named = false, + }, + [anon_sym_LBRACE] = { + .visible = true, + .named = false, + }, + [anon_sym_RBRACE] = { + .visible = true, + .named = false, + }, + [anon_sym_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_SEMI] = { + .visible = true, + .named = false, + }, + [sym_source_file] = { + .visible = true, + .named = true, + }, + [sym_module] = { + .visible = true, + .named = true, + }, + [sym_type] = { + .visible = true, + .named = true, + }, + [sym_decl] = { + .visible = true, + .named = true, + }, + [sym_expr] = { + .visible = true, + .named = true, + }, + [sym_block] = { + .visible = true, + .named = true, + }, + [sym_statement] = { + .visible = true, + .named = true, + }, + [aux_sym_source_file_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_module_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_block_repeat1] = { + .visible = false, + .named = false, + }, +}; + +static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { + [0] = {0}, +}; + +static const uint16_t ts_non_terminal_alias_map[] = { + 0, +}; + +static const TSStateId ts_primary_state_ids[STATE_COUNT] = { + [0] = 0, + [1] = 1, + [2] = 2, + [3] = 2, + [4] = 4, + [5] = 5, + [6] = 4, + [7] = 7, + [8] = 8, + [9] = 9, + [10] = 10, + [11] = 11, + [12] = 12, + [13] = 13, + [14] = 14, + [15] = 15, + [16] = 16, + [17] = 17, + [18] = 18, + [19] = 19, + [20] = 20, + [21] = 21, + [22] = 22, + [23] = 23, + [24] = 24, + [25] = 25, + [26] = 26, + [27] = 27, + [28] = 28, + [29] = 29, + [30] = 30, + [31] = 31, + [32] = 32, + [33] = 33, + [34] = 14, + [35] = 35, + [36] = 36, + [37] = 37, + [38] = 15, + [39] = 39, + [40] = 40, + [41] = 41, + [42] = 42, + [43] = 43, + [44] = 44, + [45] = 45, + [46] = 46, + [47] = 47, + [48] = 48, + [49] = 49, + [50] = 50, +}; + +static inline bool sym_identifier_character_set_1(int32_t c) { + return (c < 6656 + ? (c < 2979 + ? (c < 2308 + ? (c < 1376 + ? (c < 880 + ? (c < 192 + ? (c < 170 + ? (c < '_' + ? (c >= 'A' && c <= 'Z') + : (c <= '_' || (c >= 'a' && c <= 'z'))) + : (c <= 170 || (c < 186 + ? c == 181 + : c <= 186))) + : (c <= 214 || (c < 736 + ? (c < 248 + ? (c >= 216 && c <= 246) + : (c <= 705 || (c >= 710 && c <= 721))) + : (c <= 740 || (c < 750 + ? c == 748 + : c <= 750))))) + : (c <= 884 || (c < 910 + ? (c < 902 + ? (c < 890 + ? (c >= 886 && c <= 887) + : (c <= 893 || c == 895)) + : (c <= 902 || (c < 908 + ? (c >= 904 && c <= 906) + : c <= 908))) + : (c <= 929 || (c < 1162 + ? (c < 1015 + ? (c >= 931 && c <= 1013) + : c <= 1153) + : (c <= 1327 || (c < 1369 + ? (c >= 1329 && c <= 1366) + : c <= 1369))))))) + : (c <= 1416 || (c < 1969 + ? (c < 1765 + ? (c < 1646 + ? (c < 1519 + ? (c >= 1488 && c <= 1514) + : (c <= 1522 || (c >= 1568 && c <= 1610))) + : (c <= 1647 || (c < 1749 + ? (c >= 1649 && c <= 1747) + : c <= 1749))) + : (c <= 1766 || (c < 1808 + ? (c < 1786 + ? (c >= 1774 && c <= 1775) + : (c <= 1788 || c == 1791)) + : (c <= 1808 || (c < 1869 + ? (c >= 1810 && c <= 1839) + : c <= 1957))))) + : (c <= 1969 || (c < 2088 + ? (c < 2048 + ? (c < 2036 + ? (c >= 1994 && c <= 2026) + : (c <= 2037 || c == 2042)) + : (c <= 2069 || (c < 2084 + ? c == 2074 + : c <= 2084))) + : (c <= 2088 || (c < 2160 + ? (c < 2144 + ? (c >= 2112 && c <= 2136) + : c <= 2154) + : (c <= 2183 || (c < 2208 + ? (c >= 2185 && c <= 2190) + : c <= 2249))))))))) + : (c <= 2361 || (c < 2693 + ? (c < 2527 + ? (c < 2451 + ? (c < 2417 + ? (c < 2384 + ? c == 2365 + : (c <= 2384 || (c >= 2392 && c <= 2401))) + : (c <= 2432 || (c < 2447 + ? (c >= 2437 && c <= 2444) + : c <= 2448))) + : (c <= 2472 || (c < 2493 + ? (c < 2482 + ? (c >= 2474 && c <= 2480) + : (c <= 2482 || (c >= 2486 && c <= 2489))) + : (c <= 2493 || (c < 2524 + ? c == 2510 + : c <= 2525))))) + : (c <= 2529 || (c < 2610 + ? (c < 2575 + ? (c < 2556 + ? (c >= 2544 && c <= 2545) + : (c <= 2556 || (c >= 2565 && c <= 2570))) + : (c <= 2576 || (c < 2602 + ? (c >= 2579 && c <= 2600) + : c <= 2608))) + : (c <= 2611 || (c < 2649 + ? (c < 2616 + ? (c >= 2613 && c <= 2614) + : c <= 2617) + : (c <= 2652 || (c < 2674 + ? c == 2654 + : c <= 2676))))))) + : (c <= 2701 || (c < 2866 + ? (c < 2768 + ? (c < 2738 + ? (c < 2707 + ? (c >= 2703 && c <= 2705) + : (c <= 2728 || (c >= 2730 && c <= 2736))) + : (c <= 2739 || (c < 2749 + ? (c >= 2741 && c <= 2745) + : c <= 2749))) + : (c <= 2768 || (c < 2831 + ? (c < 2809 + ? (c >= 2784 && c <= 2785) + : (c <= 2809 || (c >= 2821 && c <= 2828))) + : (c <= 2832 || (c < 2858 + ? (c >= 2835 && c <= 2856) + : c <= 2864))))) + : (c <= 2867 || (c < 2949 + ? (c < 2911 + ? (c < 2877 + ? (c >= 2869 && c <= 2873) + : (c <= 2877 || (c >= 2908 && c <= 2909))) + : (c <= 2913 || (c < 2947 + ? c == 2929 + : c <= 2947))) + : (c <= 2954 || (c < 2969 + ? (c < 2962 + ? (c >= 2958 && c <= 2960) + : c <= 2965) + : (c <= 2970 || (c < 2974 + ? c == 2972 + : c <= 2975))))))))))) + : (c <= 2980 || (c < 4159 + ? (c < 3412 + ? (c < 3214 + ? (c < 3114 + ? (c < 3077 + ? (c < 2990 + ? (c >= 2984 && c <= 2986) + : (c <= 3001 || c == 3024)) + : (c <= 3084 || (c < 3090 + ? (c >= 3086 && c <= 3088) + : c <= 3112))) + : (c <= 3129 || (c < 3168 + ? (c < 3160 + ? c == 3133 + : (c <= 3162 || c == 3165)) + : (c <= 3169 || (c < 3205 + ? c == 3200 + : c <= 3212))))) + : (c <= 3216 || (c < 3313 + ? (c < 3261 + ? (c < 3242 + ? (c >= 3218 && c <= 3240) + : (c <= 3251 || (c >= 3253 && c <= 3257))) + : (c <= 3261 || (c < 3296 + ? (c >= 3293 && c <= 3294) + : c <= 3297))) + : (c <= 3314 || (c < 3346 + ? (c < 3342 + ? (c >= 3332 && c <= 3340) + : c <= 3344) + : (c <= 3386 || (c < 3406 + ? c == 3389 + : c <= 3406))))))) + : (c <= 3414 || (c < 3724 + ? (c < 3520 + ? (c < 3482 + ? (c < 3450 + ? (c >= 3423 && c <= 3425) + : (c <= 3455 || (c >= 3461 && c <= 3478))) + : (c <= 3505 || (c < 3517 + ? (c >= 3507 && c <= 3515) + : c <= 3517))) + : (c <= 3526 || (c < 3713 + ? (c < 3634 + ? (c >= 3585 && c <= 3632) + : (c <= 3635 || (c >= 3648 && c <= 3654))) + : (c <= 3714 || (c < 3718 + ? c == 3716 + : c <= 3722))))) + : (c <= 3747 || (c < 3804 + ? (c < 3773 + ? (c < 3751 + ? c == 3749 + : (c <= 3760 || (c >= 3762 && c <= 3763))) + : (c <= 3773 || (c < 3782 + ? (c >= 3776 && c <= 3780) + : c <= 3782))) + : (c <= 3807 || (c < 3913 + ? (c < 3904 + ? c == 3840 + : c <= 3911) + : (c <= 3948 || (c < 4096 + ? (c >= 3976 && c <= 3980) + : c <= 4138))))))))) + : (c <= 4159 || (c < 4888 + ? (c < 4688 + ? (c < 4238 + ? (c < 4197 + ? (c < 4186 + ? (c >= 4176 && c <= 4181) + : (c <= 4189 || c == 4193)) + : (c <= 4198 || (c < 4213 + ? (c >= 4206 && c <= 4208) + : c <= 4225))) + : (c <= 4238 || (c < 4304 + ? (c < 4295 + ? (c >= 4256 && c <= 4293) + : (c <= 4295 || c == 4301)) + : (c <= 4346 || (c < 4682 + ? (c >= 4348 && c <= 4680) + : c <= 4685))))) + : (c <= 4694 || (c < 4792 + ? (c < 4746 + ? (c < 4698 + ? c == 4696 + : (c <= 4701 || (c >= 4704 && c <= 4744))) + : (c <= 4749 || (c < 4786 + ? (c >= 4752 && c <= 4784) + : c <= 4789))) + : (c <= 4798 || (c < 4808 + ? (c < 4802 + ? c == 4800 + : c <= 4805) + : (c <= 4822 || (c < 4882 + ? (c >= 4824 && c <= 4880) + : c <= 4885))))))) + : (c <= 4954 || (c < 6016 + ? (c < 5792 + ? (c < 5121 + ? (c < 5024 + ? (c >= 4992 && c <= 5007) + : (c <= 5109 || (c >= 5112 && c <= 5117))) + : (c <= 5740 || (c < 5761 + ? (c >= 5743 && c <= 5759) + : c <= 5786))) + : (c <= 5866 || (c < 5952 + ? (c < 5888 + ? (c >= 5873 && c <= 5880) + : (c <= 5905 || (c >= 5919 && c <= 5937))) + : (c <= 5969 || (c < 5998 + ? (c >= 5984 && c <= 5996) + : c <= 6000))))) + : (c <= 6067 || (c < 6320 + ? (c < 6272 + ? (c < 6108 + ? c == 6103 + : (c <= 6108 || (c >= 6176 && c <= 6264))) + : (c <= 6276 || (c < 6314 + ? (c >= 6279 && c <= 6312) + : c <= 6314))) + : (c <= 6389 || (c < 6512 + ? (c < 6480 + ? (c >= 6400 && c <= 6430) + : c <= 6509) + : (c <= 6516 || (c < 6576 + ? (c >= 6528 && c <= 6571) + : c <= 6601))))))))))))) + : (c <= 6678 || (c < 43259 + ? (c < 8579 + ? (c < 8031 + ? (c < 7401 + ? (c < 7098 + ? (c < 6981 + ? (c < 6823 + ? (c >= 6688 && c <= 6740) + : (c <= 6823 || (c >= 6917 && c <= 6963))) + : (c <= 6988 || (c < 7086 + ? (c >= 7043 && c <= 7072) + : c <= 7087))) + : (c <= 7141 || (c < 7296 + ? (c < 7245 + ? (c >= 7168 && c <= 7203) + : (c <= 7247 || (c >= 7258 && c <= 7293))) + : (c <= 7304 || (c < 7357 + ? (c >= 7312 && c <= 7354) + : c <= 7359))))) + : (c <= 7404 || (c < 7968 + ? (c < 7424 + ? (c < 7413 + ? (c >= 7406 && c <= 7411) + : (c <= 7414 || c == 7418)) + : (c <= 7615 || (c < 7960 + ? (c >= 7680 && c <= 7957) + : c <= 7965))) + : (c <= 8005 || (c < 8025 + ? (c < 8016 + ? (c >= 8008 && c <= 8013) + : c <= 8023) + : (c <= 8025 || (c < 8029 + ? c == 8027 + : c <= 8029))))))) + : (c <= 8061 || (c < 8450 + ? (c < 8150 + ? (c < 8130 + ? (c < 8118 + ? (c >= 8064 && c <= 8116) + : (c <= 8124 || c == 8126)) + : (c <= 8132 || (c < 8144 + ? (c >= 8134 && c <= 8140) + : c <= 8147))) + : (c <= 8155 || (c < 8305 + ? (c < 8178 + ? (c >= 8160 && c <= 8172) + : (c <= 8180 || (c >= 8182 && c <= 8188))) + : (c <= 8305 || (c < 8336 + ? c == 8319 + : c <= 8348))))) + : (c <= 8450 || (c < 8488 + ? (c < 8473 + ? (c < 8458 + ? c == 8455 + : (c <= 8467 || c == 8469)) + : (c <= 8477 || (c < 8486 + ? c == 8484 + : c <= 8486))) + : (c <= 8488 || (c < 8508 + ? (c < 8495 + ? (c >= 8490 && c <= 8493) + : c <= 8505) + : (c <= 8511 || (c < 8526 + ? (c >= 8517 && c <= 8521) + : c <= 8526))))))))) + : (c <= 8580 || (c < 12593 + ? (c < 11712 + ? (c < 11568 + ? (c < 11520 + ? (c < 11499 + ? (c >= 11264 && c <= 11492) + : (c <= 11502 || (c >= 11506 && c <= 11507))) + : (c <= 11557 || (c < 11565 + ? c == 11559 + : c <= 11565))) + : (c <= 11623 || (c < 11688 + ? (c < 11648 + ? c == 11631 + : (c <= 11670 || (c >= 11680 && c <= 11686))) + : (c <= 11694 || (c < 11704 + ? (c >= 11696 && c <= 11702) + : c <= 11710))))) + : (c <= 11718 || (c < 12347 + ? (c < 11823 + ? (c < 11728 + ? (c >= 11720 && c <= 11726) + : (c <= 11734 || (c >= 11736 && c <= 11742))) + : (c <= 11823 || (c < 12337 + ? (c >= 12293 && c <= 12294) + : c <= 12341))) + : (c <= 12348 || (c < 12449 + ? (c < 12445 + ? (c >= 12353 && c <= 12438) + : c <= 12447) + : (c <= 12538 || (c < 12549 + ? (c >= 12540 && c <= 12543) + : c <= 12591))))))) + : (c <= 12686 || (c < 42775 + ? (c < 42192 + ? (c < 19903 + ? (c < 12784 + ? (c >= 12704 && c <= 12735) + : (c <= 12799 || c == 13312)) + : (c <= 19903 || (c < 40959 + ? c == 19968 + : c <= 42124))) + : (c <= 42237 || (c < 42560 + ? (c < 42512 + ? (c >= 42240 && c <= 42508) + : (c <= 42527 || (c >= 42538 && c <= 42539))) + : (c <= 42606 || (c < 42656 + ? (c >= 42623 && c <= 42653) + : c <= 42725))))) + : (c <= 42783 || (c < 43011 + ? (c < 42963 + ? (c < 42891 + ? (c >= 42786 && c <= 42888) + : (c <= 42954 || (c >= 42960 && c <= 42961))) + : (c <= 42963 || (c < 42994 + ? (c >= 42965 && c <= 42969) + : c <= 43009))) + : (c <= 43013 || (c < 43072 + ? (c < 43020 + ? (c >= 43015 && c <= 43018) + : c <= 43042) + : (c <= 43123 || (c < 43250 + ? (c >= 43138 && c <= 43187) + : c <= 43255))))))))))) + : (c <= 43259 || (c < 65313 + ? (c < 43808 + ? (c < 43642 + ? (c < 43488 + ? (c < 43360 + ? (c < 43274 + ? (c >= 43261 && c <= 43262) + : (c <= 43301 || (c >= 43312 && c <= 43334))) + : (c <= 43388 || (c < 43471 + ? (c >= 43396 && c <= 43442) + : c <= 43471))) + : (c <= 43492 || (c < 43584 + ? (c < 43514 + ? (c >= 43494 && c <= 43503) + : (c <= 43518 || (c >= 43520 && c <= 43560))) + : (c <= 43586 || (c < 43616 + ? (c >= 43588 && c <= 43595) + : c <= 43638))))) + : (c <= 43642 || (c < 43739 + ? (c < 43705 + ? (c < 43697 + ? (c >= 43646 && c <= 43695) + : (c <= 43697 || (c >= 43701 && c <= 43702))) + : (c <= 43709 || (c < 43714 + ? c == 43712 + : c <= 43714))) + : (c <= 43741 || (c < 43777 + ? (c < 43762 + ? (c >= 43744 && c <= 43754) + : c <= 43764) + : (c <= 43782 || (c < 43793 + ? (c >= 43785 && c <= 43790) + : c <= 43798))))))) + : (c <= 43814 || (c < 64287 + ? (c < 55216 + ? (c < 43888 + ? (c < 43824 + ? (c >= 43816 && c <= 43822) + : (c <= 43866 || (c >= 43868 && c <= 43881))) + : (c <= 44002 || (c < 55203 + ? c == 44032 + : c <= 55203))) + : (c <= 55238 || (c < 64256 + ? (c < 63744 + ? (c >= 55243 && c <= 55291) + : (c <= 64109 || (c >= 64112 && c <= 64217))) + : (c <= 64262 || (c < 64285 + ? (c >= 64275 && c <= 64279) + : c <= 64285))))) + : (c <= 64296 || (c < 64467 + ? (c < 64320 + ? (c < 64312 + ? (c >= 64298 && c <= 64310) + : (c <= 64316 || c == 64318)) + : (c <= 64321 || (c < 64326 + ? (c >= 64323 && c <= 64324) + : c <= 64433))) + : (c <= 64829 || (c < 65008 + ? (c < 64914 + ? (c >= 64848 && c <= 64911) + : c <= 64967) + : (c <= 65019 || (c < 65142 + ? (c >= 65136 && c <= 65140) + : c <= 65276))))))))) + : (c <= 65338 || (c < 66864 + ? (c < 66176 + ? (c < 65536 + ? (c < 65482 + ? (c < 65382 + ? (c >= 65345 && c <= 65370) + : (c <= 65470 || (c >= 65474 && c <= 65479))) + : (c <= 65487 || (c < 65498 + ? (c >= 65490 && c <= 65495) + : c <= 65500))) + : (c <= 65547 || (c < 65599 + ? (c < 65576 + ? (c >= 65549 && c <= 65574) + : (c <= 65594 || (c >= 65596 && c <= 65597))) + : (c <= 65613 || (c < 65664 + ? (c >= 65616 && c <= 65629) + : c <= 65786))))) + : (c <= 66204 || (c < 66464 + ? (c < 66370 + ? (c < 66304 + ? (c >= 66208 && c <= 66256) + : (c <= 66335 || (c >= 66349 && c <= 66368))) + : (c <= 66377 || (c < 66432 + ? (c >= 66384 && c <= 66421) + : c <= 66461))) + : (c <= 66499 || (c < 66736 + ? (c < 66560 + ? (c >= 66504 && c <= 66511) + : c <= 66717) + : (c <= 66771 || (c < 66816 + ? (c >= 66776 && c <= 66811) + : c <= 66855))))))) + : (c <= 66915 || (c < 67506 + ? (c < 66995 + ? (c < 66964 + ? (c < 66940 + ? (c >= 66928 && c <= 66938) + : (c <= 66954 || (c >= 66956 && c <= 66962))) + : (c <= 66965 || (c < 66979 + ? (c >= 66967 && c <= 66977) + : c <= 66993))) + : (c <= 67001 || (c < 67424 + ? (c < 67072 + ? (c >= 67003 && c <= 67004) + : (c <= 67382 || (c >= 67392 && c <= 67413))) + : (c <= 67431 || (c < 67463 + ? (c >= 67456 && c <= 67461) + : c <= 67504))))) + : (c <= 67514 || (c < 67680 + ? (c < 67639 + ? (c < 67592 + ? (c >= 67584 && c <= 67589) + : (c <= 67592 || (c >= 67594 && c <= 67637))) + : (c <= 67640 || (c < 67647 + ? c == 67644 + : c <= 67669))) + : (c <= 67702 || (c < 67828 + ? (c < 67808 + ? (c >= 67712 && c <= 67742) + : c <= 67826) + : (c <= 67829 || (c < 67872 + ? (c >= 67840 && c <= 67861) + : c <= 67883))))))))))))))); +} + +static inline bool sym_identifier_character_set_2(int32_t c) { + return (c < 6656 + ? (c < 2979 + ? (c < 2308 + ? (c < 1376 + ? (c < 750 + ? (c < 186 + ? (c < 'a' + ? (c < 'A' + ? (c >= '0' && c <= '9') + : (c <= 'Z' || c == '_')) + : (c <= 'z' || (c < 181 + ? c == 170 + : c <= 181))) + : (c <= 186 || (c < 710 + ? (c < 216 + ? (c >= 192 && c <= 214) + : (c <= 246 || (c >= 248 && c <= 705))) + : (c <= 721 || (c < 748 + ? (c >= 736 && c <= 740) + : c <= 748))))) + : (c <= 750 || (c < 908 + ? (c < 895 + ? (c < 886 + ? (c >= 880 && c <= 884) + : (c <= 887 || (c >= 890 && c <= 893))) + : (c <= 895 || (c < 904 + ? c == 902 + : c <= 906))) + : (c <= 908 || (c < 1162 + ? (c < 931 + ? (c >= 910 && c <= 929) + : (c <= 1013 || (c >= 1015 && c <= 1153))) + : (c <= 1327 || (c < 1369 + ? (c >= 1329 && c <= 1366) + : c <= 1369))))))) + : (c <= 1416 || (c < 1969 + ? (c < 1765 + ? (c < 1646 + ? (c < 1519 + ? (c >= 1488 && c <= 1514) + : (c <= 1522 || (c >= 1568 && c <= 1610))) + : (c <= 1647 || (c < 1749 + ? (c >= 1649 && c <= 1747) + : c <= 1749))) + : (c <= 1766 || (c < 1808 + ? (c < 1786 + ? (c >= 1774 && c <= 1775) + : (c <= 1788 || c == 1791)) + : (c <= 1808 || (c < 1869 + ? (c >= 1810 && c <= 1839) + : c <= 1957))))) + : (c <= 1969 || (c < 2088 + ? (c < 2048 + ? (c < 2036 + ? (c >= 1994 && c <= 2026) + : (c <= 2037 || c == 2042)) + : (c <= 2069 || (c < 2084 + ? c == 2074 + : c <= 2084))) + : (c <= 2088 || (c < 2160 + ? (c < 2144 + ? (c >= 2112 && c <= 2136) + : c <= 2154) + : (c <= 2183 || (c < 2208 + ? (c >= 2185 && c <= 2190) + : c <= 2249))))))))) + : (c <= 2361 || (c < 2693 + ? (c < 2527 + ? (c < 2451 + ? (c < 2417 + ? (c < 2384 + ? c == 2365 + : (c <= 2384 || (c >= 2392 && c <= 2401))) + : (c <= 2432 || (c < 2447 + ? (c >= 2437 && c <= 2444) + : c <= 2448))) + : (c <= 2472 || (c < 2493 + ? (c < 2482 + ? (c >= 2474 && c <= 2480) + : (c <= 2482 || (c >= 2486 && c <= 2489))) + : (c <= 2493 || (c < 2524 + ? c == 2510 + : c <= 2525))))) + : (c <= 2529 || (c < 2610 + ? (c < 2575 + ? (c < 2556 + ? (c >= 2544 && c <= 2545) + : (c <= 2556 || (c >= 2565 && c <= 2570))) + : (c <= 2576 || (c < 2602 + ? (c >= 2579 && c <= 2600) + : c <= 2608))) + : (c <= 2611 || (c < 2649 + ? (c < 2616 + ? (c >= 2613 && c <= 2614) + : c <= 2617) + : (c <= 2652 || (c < 2674 + ? c == 2654 + : c <= 2676))))))) + : (c <= 2701 || (c < 2866 + ? (c < 2768 + ? (c < 2738 + ? (c < 2707 + ? (c >= 2703 && c <= 2705) + : (c <= 2728 || (c >= 2730 && c <= 2736))) + : (c <= 2739 || (c < 2749 + ? (c >= 2741 && c <= 2745) + : c <= 2749))) + : (c <= 2768 || (c < 2831 + ? (c < 2809 + ? (c >= 2784 && c <= 2785) + : (c <= 2809 || (c >= 2821 && c <= 2828))) + : (c <= 2832 || (c < 2858 + ? (c >= 2835 && c <= 2856) + : c <= 2864))))) + : (c <= 2867 || (c < 2949 + ? (c < 2911 + ? (c < 2877 + ? (c >= 2869 && c <= 2873) + : (c <= 2877 || (c >= 2908 && c <= 2909))) + : (c <= 2913 || (c < 2947 + ? c == 2929 + : c <= 2947))) + : (c <= 2954 || (c < 2969 + ? (c < 2962 + ? (c >= 2958 && c <= 2960) + : c <= 2965) + : (c <= 2970 || (c < 2974 + ? c == 2972 + : c <= 2975))))))))))) + : (c <= 2980 || (c < 4159 + ? (c < 3412 + ? (c < 3214 + ? (c < 3114 + ? (c < 3077 + ? (c < 2990 + ? (c >= 2984 && c <= 2986) + : (c <= 3001 || c == 3024)) + : (c <= 3084 || (c < 3090 + ? (c >= 3086 && c <= 3088) + : c <= 3112))) + : (c <= 3129 || (c < 3168 + ? (c < 3160 + ? c == 3133 + : (c <= 3162 || c == 3165)) + : (c <= 3169 || (c < 3205 + ? c == 3200 + : c <= 3212))))) + : (c <= 3216 || (c < 3313 + ? (c < 3261 + ? (c < 3242 + ? (c >= 3218 && c <= 3240) + : (c <= 3251 || (c >= 3253 && c <= 3257))) + : (c <= 3261 || (c < 3296 + ? (c >= 3293 && c <= 3294) + : c <= 3297))) + : (c <= 3314 || (c < 3346 + ? (c < 3342 + ? (c >= 3332 && c <= 3340) + : c <= 3344) + : (c <= 3386 || (c < 3406 + ? c == 3389 + : c <= 3406))))))) + : (c <= 3414 || (c < 3724 + ? (c < 3520 + ? (c < 3482 + ? (c < 3450 + ? (c >= 3423 && c <= 3425) + : (c <= 3455 || (c >= 3461 && c <= 3478))) + : (c <= 3505 || (c < 3517 + ? (c >= 3507 && c <= 3515) + : c <= 3517))) + : (c <= 3526 || (c < 3713 + ? (c < 3634 + ? (c >= 3585 && c <= 3632) + : (c <= 3635 || (c >= 3648 && c <= 3654))) + : (c <= 3714 || (c < 3718 + ? c == 3716 + : c <= 3722))))) + : (c <= 3747 || (c < 3804 + ? (c < 3773 + ? (c < 3751 + ? c == 3749 + : (c <= 3760 || (c >= 3762 && c <= 3763))) + : (c <= 3773 || (c < 3782 + ? (c >= 3776 && c <= 3780) + : c <= 3782))) + : (c <= 3807 || (c < 3913 + ? (c < 3904 + ? c == 3840 + : c <= 3911) + : (c <= 3948 || (c < 4096 + ? (c >= 3976 && c <= 3980) + : c <= 4138))))))))) + : (c <= 4159 || (c < 4888 + ? (c < 4688 + ? (c < 4238 + ? (c < 4197 + ? (c < 4186 + ? (c >= 4176 && c <= 4181) + : (c <= 4189 || c == 4193)) + : (c <= 4198 || (c < 4213 + ? (c >= 4206 && c <= 4208) + : c <= 4225))) + : (c <= 4238 || (c < 4304 + ? (c < 4295 + ? (c >= 4256 && c <= 4293) + : (c <= 4295 || c == 4301)) + : (c <= 4346 || (c < 4682 + ? (c >= 4348 && c <= 4680) + : c <= 4685))))) + : (c <= 4694 || (c < 4792 + ? (c < 4746 + ? (c < 4698 + ? c == 4696 + : (c <= 4701 || (c >= 4704 && c <= 4744))) + : (c <= 4749 || (c < 4786 + ? (c >= 4752 && c <= 4784) + : c <= 4789))) + : (c <= 4798 || (c < 4808 + ? (c < 4802 + ? c == 4800 + : c <= 4805) + : (c <= 4822 || (c < 4882 + ? (c >= 4824 && c <= 4880) + : c <= 4885))))))) + : (c <= 4954 || (c < 6016 + ? (c < 5792 + ? (c < 5121 + ? (c < 5024 + ? (c >= 4992 && c <= 5007) + : (c <= 5109 || (c >= 5112 && c <= 5117))) + : (c <= 5740 || (c < 5761 + ? (c >= 5743 && c <= 5759) + : c <= 5786))) + : (c <= 5866 || (c < 5952 + ? (c < 5888 + ? (c >= 5873 && c <= 5880) + : (c <= 5905 || (c >= 5919 && c <= 5937))) + : (c <= 5969 || (c < 5998 + ? (c >= 5984 && c <= 5996) + : c <= 6000))))) + : (c <= 6067 || (c < 6320 + ? (c < 6272 + ? (c < 6108 + ? c == 6103 + : (c <= 6108 || (c >= 6176 && c <= 6264))) + : (c <= 6276 || (c < 6314 + ? (c >= 6279 && c <= 6312) + : c <= 6314))) + : (c <= 6389 || (c < 6512 + ? (c < 6480 + ? (c >= 6400 && c <= 6430) + : c <= 6509) + : (c <= 6516 || (c < 6576 + ? (c >= 6528 && c <= 6571) + : c <= 6601))))))))))))) + : (c <= 6678 || (c < 43259 + ? (c < 8579 + ? (c < 8031 + ? (c < 7401 + ? (c < 7098 + ? (c < 6981 + ? (c < 6823 + ? (c >= 6688 && c <= 6740) + : (c <= 6823 || (c >= 6917 && c <= 6963))) + : (c <= 6988 || (c < 7086 + ? (c >= 7043 && c <= 7072) + : c <= 7087))) + : (c <= 7141 || (c < 7296 + ? (c < 7245 + ? (c >= 7168 && c <= 7203) + : (c <= 7247 || (c >= 7258 && c <= 7293))) + : (c <= 7304 || (c < 7357 + ? (c >= 7312 && c <= 7354) + : c <= 7359))))) + : (c <= 7404 || (c < 7968 + ? (c < 7424 + ? (c < 7413 + ? (c >= 7406 && c <= 7411) + : (c <= 7414 || c == 7418)) + : (c <= 7615 || (c < 7960 + ? (c >= 7680 && c <= 7957) + : c <= 7965))) + : (c <= 8005 || (c < 8025 + ? (c < 8016 + ? (c >= 8008 && c <= 8013) + : c <= 8023) + : (c <= 8025 || (c < 8029 + ? c == 8027 + : c <= 8029))))))) + : (c <= 8061 || (c < 8450 + ? (c < 8150 + ? (c < 8130 + ? (c < 8118 + ? (c >= 8064 && c <= 8116) + : (c <= 8124 || c == 8126)) + : (c <= 8132 || (c < 8144 + ? (c >= 8134 && c <= 8140) + : c <= 8147))) + : (c <= 8155 || (c < 8305 + ? (c < 8178 + ? (c >= 8160 && c <= 8172) + : (c <= 8180 || (c >= 8182 && c <= 8188))) + : (c <= 8305 || (c < 8336 + ? c == 8319 + : c <= 8348))))) + : (c <= 8450 || (c < 8488 + ? (c < 8473 + ? (c < 8458 + ? c == 8455 + : (c <= 8467 || c == 8469)) + : (c <= 8477 || (c < 8486 + ? c == 8484 + : c <= 8486))) + : (c <= 8488 || (c < 8508 + ? (c < 8495 + ? (c >= 8490 && c <= 8493) + : c <= 8505) + : (c <= 8511 || (c < 8526 + ? (c >= 8517 && c <= 8521) + : c <= 8526))))))))) + : (c <= 8580 || (c < 12593 + ? (c < 11712 + ? (c < 11568 + ? (c < 11520 + ? (c < 11499 + ? (c >= 11264 && c <= 11492) + : (c <= 11502 || (c >= 11506 && c <= 11507))) + : (c <= 11557 || (c < 11565 + ? c == 11559 + : c <= 11565))) + : (c <= 11623 || (c < 11688 + ? (c < 11648 + ? c == 11631 + : (c <= 11670 || (c >= 11680 && c <= 11686))) + : (c <= 11694 || (c < 11704 + ? (c >= 11696 && c <= 11702) + : c <= 11710))))) + : (c <= 11718 || (c < 12347 + ? (c < 11823 + ? (c < 11728 + ? (c >= 11720 && c <= 11726) + : (c <= 11734 || (c >= 11736 && c <= 11742))) + : (c <= 11823 || (c < 12337 + ? (c >= 12293 && c <= 12294) + : c <= 12341))) + : (c <= 12348 || (c < 12449 + ? (c < 12445 + ? (c >= 12353 && c <= 12438) + : c <= 12447) + : (c <= 12538 || (c < 12549 + ? (c >= 12540 && c <= 12543) + : c <= 12591))))))) + : (c <= 12686 || (c < 42775 + ? (c < 42192 + ? (c < 19903 + ? (c < 12784 + ? (c >= 12704 && c <= 12735) + : (c <= 12799 || c == 13312)) + : (c <= 19903 || (c < 40959 + ? c == 19968 + : c <= 42124))) + : (c <= 42237 || (c < 42560 + ? (c < 42512 + ? (c >= 42240 && c <= 42508) + : (c <= 42527 || (c >= 42538 && c <= 42539))) + : (c <= 42606 || (c < 42656 + ? (c >= 42623 && c <= 42653) + : c <= 42725))))) + : (c <= 42783 || (c < 43011 + ? (c < 42963 + ? (c < 42891 + ? (c >= 42786 && c <= 42888) + : (c <= 42954 || (c >= 42960 && c <= 42961))) + : (c <= 42963 || (c < 42994 + ? (c >= 42965 && c <= 42969) + : c <= 43009))) + : (c <= 43013 || (c < 43072 + ? (c < 43020 + ? (c >= 43015 && c <= 43018) + : c <= 43042) + : (c <= 43123 || (c < 43250 + ? (c >= 43138 && c <= 43187) + : c <= 43255))))))))))) + : (c <= 43259 || (c < 65313 + ? (c < 43808 + ? (c < 43642 + ? (c < 43488 + ? (c < 43360 + ? (c < 43274 + ? (c >= 43261 && c <= 43262) + : (c <= 43301 || (c >= 43312 && c <= 43334))) + : (c <= 43388 || (c < 43471 + ? (c >= 43396 && c <= 43442) + : c <= 43471))) + : (c <= 43492 || (c < 43584 + ? (c < 43514 + ? (c >= 43494 && c <= 43503) + : (c <= 43518 || (c >= 43520 && c <= 43560))) + : (c <= 43586 || (c < 43616 + ? (c >= 43588 && c <= 43595) + : c <= 43638))))) + : (c <= 43642 || (c < 43739 + ? (c < 43705 + ? (c < 43697 + ? (c >= 43646 && c <= 43695) + : (c <= 43697 || (c >= 43701 && c <= 43702))) + : (c <= 43709 || (c < 43714 + ? c == 43712 + : c <= 43714))) + : (c <= 43741 || (c < 43777 + ? (c < 43762 + ? (c >= 43744 && c <= 43754) + : c <= 43764) + : (c <= 43782 || (c < 43793 + ? (c >= 43785 && c <= 43790) + : c <= 43798))))))) + : (c <= 43814 || (c < 64287 + ? (c < 55216 + ? (c < 43888 + ? (c < 43824 + ? (c >= 43816 && c <= 43822) + : (c <= 43866 || (c >= 43868 && c <= 43881))) + : (c <= 44002 || (c < 55203 + ? c == 44032 + : c <= 55203))) + : (c <= 55238 || (c < 64256 + ? (c < 63744 + ? (c >= 55243 && c <= 55291) + : (c <= 64109 || (c >= 64112 && c <= 64217))) + : (c <= 64262 || (c < 64285 + ? (c >= 64275 && c <= 64279) + : c <= 64285))))) + : (c <= 64296 || (c < 64467 + ? (c < 64320 + ? (c < 64312 + ? (c >= 64298 && c <= 64310) + : (c <= 64316 || c == 64318)) + : (c <= 64321 || (c < 64326 + ? (c >= 64323 && c <= 64324) + : c <= 64433))) + : (c <= 64829 || (c < 65008 + ? (c < 64914 + ? (c >= 64848 && c <= 64911) + : c <= 64967) + : (c <= 65019 || (c < 65142 + ? (c >= 65136 && c <= 65140) + : c <= 65276))))))))) + : (c <= 65338 || (c < 66864 + ? (c < 66176 + ? (c < 65536 + ? (c < 65482 + ? (c < 65382 + ? (c >= 65345 && c <= 65370) + : (c <= 65470 || (c >= 65474 && c <= 65479))) + : (c <= 65487 || (c < 65498 + ? (c >= 65490 && c <= 65495) + : c <= 65500))) + : (c <= 65547 || (c < 65599 + ? (c < 65576 + ? (c >= 65549 && c <= 65574) + : (c <= 65594 || (c >= 65596 && c <= 65597))) + : (c <= 65613 || (c < 65664 + ? (c >= 65616 && c <= 65629) + : c <= 65786))))) + : (c <= 66204 || (c < 66464 + ? (c < 66370 + ? (c < 66304 + ? (c >= 66208 && c <= 66256) + : (c <= 66335 || (c >= 66349 && c <= 66368))) + : (c <= 66377 || (c < 66432 + ? (c >= 66384 && c <= 66421) + : c <= 66461))) + : (c <= 66499 || (c < 66736 + ? (c < 66560 + ? (c >= 66504 && c <= 66511) + : c <= 66717) + : (c <= 66771 || (c < 66816 + ? (c >= 66776 && c <= 66811) + : c <= 66855))))))) + : (c <= 66915 || (c < 67506 + ? (c < 66995 + ? (c < 66964 + ? (c < 66940 + ? (c >= 66928 && c <= 66938) + : (c <= 66954 || (c >= 66956 && c <= 66962))) + : (c <= 66965 || (c < 66979 + ? (c >= 66967 && c <= 66977) + : c <= 66993))) + : (c <= 67001 || (c < 67424 + ? (c < 67072 + ? (c >= 67003 && c <= 67004) + : (c <= 67382 || (c >= 67392 && c <= 67413))) + : (c <= 67431 || (c < 67463 + ? (c >= 67456 && c <= 67461) + : c <= 67504))))) + : (c <= 67514 || (c < 67680 + ? (c < 67639 + ? (c < 67592 + ? (c >= 67584 && c <= 67589) + : (c <= 67592 || (c >= 67594 && c <= 67637))) + : (c <= 67640 || (c < 67647 + ? c == 67644 + : c <= 67669))) + : (c <= 67702 || (c < 67828 + ? (c < 67808 + ? (c >= 67712 && c <= 67742) + : c <= 67826) + : (c <= 67829 || (c < 67872 + ? (c >= 67840 && c <= 67861) + : c <= 67883))))))))))))))); +} + +static bool ts_lex(TSLexer *lexer, TSStateId state) { + START_LEXER(); + eof = lexer->eof(lexer); + switch (state) { + case 0: + if (eof) ADVANCE(8); + if (lookahead == ',') ADVANCE(11); + if (lookahead == '-') ADVANCE(2); + if (lookahead == ':') ADVANCE(10); + if (lookahead == ';') ADVANCE(20); + if (lookahead == '=') ADVANCE(19); + if (lookahead == '[') ADVANCE(15); + if (lookahead == ']') ADVANCE(16); + if (lookahead == 'm') ADVANCE(6); + if (lookahead == '{') ADVANCE(17); + if (lookahead == '}') ADVANCE(18); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(0) + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(14); + END_STATE(); + case 1: + if (lookahead == '-') ADVANCE(2); + if (lookahead == '[') ADVANCE(15); + if (lookahead == '{') ADVANCE(17); + if (lookahead == '}') ADVANCE(18); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(1) + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(14); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(13); + END_STATE(); + case 2: + if (lookahead == '>') ADVANCE(12); + END_STATE(); + case 3: + if (lookahead == 'd') ADVANCE(7); + END_STATE(); + case 4: + if (lookahead == 'e') ADVANCE(9); + END_STATE(); + case 5: + if (lookahead == 'l') ADVANCE(4); + END_STATE(); + case 6: + if (lookahead == 'o') ADVANCE(3); + END_STATE(); + case 7: + if (lookahead == 'u') ADVANCE(5); + END_STATE(); + case 8: + ACCEPT_TOKEN(ts_builtin_sym_end); + END_STATE(); + case 9: + ACCEPT_TOKEN(anon_sym_module); + END_STATE(); + case 10: + ACCEPT_TOKEN(anon_sym_COLON); + END_STATE(); + case 11: + ACCEPT_TOKEN(anon_sym_COMMA); + END_STATE(); + case 12: + ACCEPT_TOKEN(anon_sym_DASH_GT); + END_STATE(); + case 13: + ACCEPT_TOKEN(sym_identifier); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(13); + END_STATE(); + case 14: + ACCEPT_TOKEN(sym_number); + if (('0' <= lookahead && lookahead <= '9') || + lookahead == '_') ADVANCE(14); + END_STATE(); + case 15: + ACCEPT_TOKEN(anon_sym_LBRACK); + END_STATE(); + case 16: + ACCEPT_TOKEN(anon_sym_RBRACK); + END_STATE(); + case 17: + ACCEPT_TOKEN(anon_sym_LBRACE); + END_STATE(); + case 18: + ACCEPT_TOKEN(anon_sym_RBRACE); + END_STATE(); + case 19: + ACCEPT_TOKEN(anon_sym_EQ); + END_STATE(); + case 20: + ACCEPT_TOKEN(anon_sym_SEMI); + END_STATE(); + default: + return false; + } +} + +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 = 1}, + [10] = {.lex_state = 1}, + [11] = {.lex_state = 0}, + [12] = {.lex_state = 1}, + [13] = {.lex_state = 0}, + [14] = {.lex_state = 1}, + [15] = {.lex_state = 1}, + [16] = {.lex_state = 0}, + [17] = {.lex_state = 1}, + [18] = {.lex_state = 0}, + [19] = {.lex_state = 0}, + [20] = {.lex_state = 0}, + [21] = {.lex_state = 0}, + [22] = {.lex_state = 0}, + [23] = {.lex_state = 0}, + [24] = {.lex_state = 0}, + [25] = {.lex_state = 0}, + [26] = {.lex_state = 0}, + [27] = {.lex_state = 0}, + [28] = {.lex_state = 0}, + [29] = {.lex_state = 0}, + [30] = {.lex_state = 1}, + [31] = {.lex_state = 1}, + [32] = {.lex_state = 1}, + [33] = {.lex_state = 1}, + [34] = {.lex_state = 0}, + [35] = {.lex_state = 0}, + [36] = {.lex_state = 1}, + [37] = {.lex_state = 0}, + [38] = {.lex_state = 0}, + [39] = {.lex_state = 0}, + [40] = {.lex_state = 0}, + [41] = {.lex_state = 0}, + [42] = {.lex_state = 1}, + [43] = {.lex_state = 0}, + [44] = {.lex_state = 0}, + [45] = {.lex_state = 0}, + [46] = {.lex_state = 0}, + [47] = {.lex_state = 1}, + [48] = {.lex_state = 0}, + [49] = {.lex_state = 1}, + [50] = {.lex_state = 0}, +}; + +static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { + [0] = { + [ts_builtin_sym_end] = ACTIONS(1), + [anon_sym_module] = ACTIONS(1), + [anon_sym_COLON] = ACTIONS(1), + [anon_sym_COMMA] = ACTIONS(1), + [anon_sym_DASH_GT] = ACTIONS(1), + [sym_number] = ACTIONS(1), + [anon_sym_LBRACK] = ACTIONS(1), + [anon_sym_RBRACK] = ACTIONS(1), + [anon_sym_LBRACE] = ACTIONS(1), + [anon_sym_RBRACE] = ACTIONS(1), + [anon_sym_EQ] = ACTIONS(1), + [anon_sym_SEMI] = ACTIONS(1), + }, + [1] = { + [sym_source_file] = STATE(50), + [sym_module] = STATE(13), + [aux_sym_source_file_repeat1] = STATE(13), + [ts_builtin_sym_end] = ACTIONS(3), + [anon_sym_module] = ACTIONS(5), + }, +}; + +static const uint16_t ts_small_parse_table[] = { + [0] = 6, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(11), 1, + anon_sym_RBRACE, + STATE(10), 1, + sym_block, + STATE(37), 1, + sym_expr, + ACTIONS(7), 2, + sym_identifier, + sym_number, + STATE(5), 2, + sym_statement, + aux_sym_block_repeat1, + [21] = 6, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + anon_sym_RBRACE, + STATE(10), 1, + sym_block, + STATE(37), 1, + sym_expr, + ACTIONS(7), 2, + sym_identifier, + sym_number, + STATE(5), 2, + sym_statement, + aux_sym_block_repeat1, + [42] = 6, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_RBRACE, + STATE(10), 1, + sym_block, + STATE(37), 1, + sym_expr, + ACTIONS(7), 2, + sym_identifier, + sym_number, + STATE(3), 2, + sym_statement, + aux_sym_block_repeat1, + [63] = 6, + ACTIONS(20), 1, + anon_sym_LBRACE, + ACTIONS(23), 1, + anon_sym_RBRACE, + STATE(10), 1, + sym_block, + STATE(37), 1, + sym_expr, + ACTIONS(17), 2, + sym_identifier, + sym_number, + STATE(5), 2, + sym_statement, + aux_sym_block_repeat1, + [84] = 6, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(25), 1, + anon_sym_RBRACE, + STATE(10), 1, + sym_block, + STATE(37), 1, + sym_expr, + ACTIONS(7), 2, + sym_identifier, + sym_number, + STATE(2), 2, + sym_statement, + aux_sym_block_repeat1, + [105] = 5, + ACTIONS(27), 1, + sym_identifier, + ACTIONS(29), 1, + anon_sym_LBRACE, + STATE(20), 1, + sym_decl, + STATE(35), 1, + sym_block, + STATE(47), 1, + sym_type, + [121] = 5, + ACTIONS(27), 1, + sym_identifier, + ACTIONS(29), 1, + anon_sym_LBRACE, + STATE(25), 1, + sym_decl, + STATE(43), 1, + sym_block, + STATE(47), 1, + sym_type, + [137] = 5, + ACTIONS(27), 1, + sym_identifier, + ACTIONS(29), 1, + anon_sym_LBRACE, + STATE(16), 1, + sym_decl, + STATE(45), 1, + sym_block, + STATE(47), 1, + sym_type, + [153] = 1, + ACTIONS(31), 4, + sym_identifier, + sym_number, + anon_sym_LBRACE, + anon_sym_RBRACE, + [160] = 4, + ACTIONS(29), 1, + anon_sym_LBRACE, + ACTIONS(33), 1, + anon_sym_COMMA, + STATE(24), 1, + aux_sym_module_repeat1, + STATE(35), 1, + sym_block, + [173] = 4, + ACTIONS(27), 1, + sym_identifier, + ACTIONS(35), 1, + anon_sym_DASH_GT, + STATE(28), 1, + sym_decl, + STATE(47), 1, + sym_type, + [186] = 3, + ACTIONS(5), 1, + anon_sym_module, + ACTIONS(37), 1, + ts_builtin_sym_end, + STATE(21), 2, + sym_module, + aux_sym_source_file_repeat1, + [197] = 1, + ACTIONS(39), 4, + sym_identifier, + sym_number, + anon_sym_LBRACE, + anon_sym_RBRACE, + [204] = 1, + ACTIONS(41), 4, + sym_identifier, + sym_number, + anon_sym_LBRACE, + anon_sym_RBRACE, + [211] = 4, + ACTIONS(29), 1, + anon_sym_LBRACE, + ACTIONS(33), 1, + anon_sym_COMMA, + STATE(11), 1, + aux_sym_module_repeat1, + STATE(43), 1, + sym_block, + [224] = 1, + ACTIONS(43), 4, + sym_identifier, + sym_number, + anon_sym_LBRACE, + anon_sym_RBRACE, + [231] = 1, + ACTIONS(45), 4, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_SEMI, + [238] = 4, + ACTIONS(29), 1, + anon_sym_LBRACE, + ACTIONS(33), 1, + anon_sym_COMMA, + STATE(24), 1, + aux_sym_module_repeat1, + STATE(44), 1, + sym_block, + [251] = 4, + ACTIONS(29), 1, + anon_sym_LBRACE, + ACTIONS(33), 1, + anon_sym_COMMA, + STATE(19), 1, + aux_sym_module_repeat1, + STATE(41), 1, + sym_block, + [264] = 3, + ACTIONS(47), 1, + ts_builtin_sym_end, + ACTIONS(49), 1, + anon_sym_module, + STATE(21), 2, + sym_module, + aux_sym_source_file_repeat1, + [275] = 1, + ACTIONS(52), 4, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_SEMI, + [282] = 4, + ACTIONS(29), 1, + anon_sym_LBRACE, + ACTIONS(33), 1, + anon_sym_COMMA, + STATE(24), 1, + aux_sym_module_repeat1, + STATE(41), 1, + sym_block, + [295] = 3, + ACTIONS(54), 1, + anon_sym_COMMA, + STATE(24), 1, + aux_sym_module_repeat1, + ACTIONS(57), 2, + anon_sym_DASH_GT, + anon_sym_LBRACE, + [306] = 4, + ACTIONS(29), 1, + anon_sym_LBRACE, + ACTIONS(33), 1, + anon_sym_COMMA, + STATE(23), 1, + aux_sym_module_repeat1, + STATE(35), 1, + sym_block, + [319] = 3, + ACTIONS(33), 1, + anon_sym_COMMA, + ACTIONS(59), 1, + anon_sym_DASH_GT, + STATE(24), 1, + aux_sym_module_repeat1, + [329] = 1, + ACTIONS(61), 3, + anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_LBRACE, + [335] = 3, + ACTIONS(33), 1, + anon_sym_COMMA, + ACTIONS(63), 1, + anon_sym_DASH_GT, + STATE(26), 1, + aux_sym_module_repeat1, + [345] = 1, + ACTIONS(57), 3, + anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_LBRACE, + [351] = 2, + STATE(46), 1, + sym_expr, + ACTIONS(7), 2, + sym_identifier, + sym_number, + [359] = 3, + ACTIONS(27), 1, + sym_identifier, + STATE(29), 1, + sym_decl, + STATE(47), 1, + sym_type, + [369] = 2, + STATE(39), 1, + sym_expr, + ACTIONS(7), 2, + sym_identifier, + sym_number, + [377] = 2, + STATE(40), 1, + sym_expr, + ACTIONS(7), 2, + sym_identifier, + sym_number, + [385] = 1, + ACTIONS(39), 2, + ts_builtin_sym_end, + anon_sym_module, + [390] = 1, + ACTIONS(65), 2, + ts_builtin_sym_end, + anon_sym_module, + [395] = 1, + ACTIONS(67), 2, + sym_identifier, + anon_sym_LBRACK, + [400] = 2, + ACTIONS(69), 1, + anon_sym_LBRACK, + ACTIONS(71), 1, + anon_sym_EQ, + [407] = 1, + ACTIONS(41), 2, + ts_builtin_sym_end, + anon_sym_module, + [412] = 2, + ACTIONS(69), 1, + anon_sym_LBRACK, + ACTIONS(73), 1, + anon_sym_RBRACK, + [419] = 2, + ACTIONS(69), 1, + anon_sym_LBRACK, + ACTIONS(75), 1, + anon_sym_SEMI, + [426] = 1, + ACTIONS(77), 2, + ts_builtin_sym_end, + anon_sym_module, + [431] = 1, + ACTIONS(79), 2, + sym_identifier, + anon_sym_LBRACK, + [436] = 1, + ACTIONS(81), 2, + ts_builtin_sym_end, + anon_sym_module, + [441] = 1, + ACTIONS(83), 2, + ts_builtin_sym_end, + anon_sym_module, + [446] = 1, + ACTIONS(85), 2, + ts_builtin_sym_end, + anon_sym_module, + [451] = 2, + ACTIONS(69), 1, + anon_sym_LBRACK, + ACTIONS(87), 1, + anon_sym_RBRACK, + [458] = 2, + ACTIONS(89), 1, + sym_identifier, + ACTIONS(91), 1, + anon_sym_LBRACK, + [465] = 1, + ACTIONS(93), 1, + anon_sym_COLON, + [469] = 1, + ACTIONS(95), 1, + sym_identifier, + [473] = 1, + ACTIONS(97), 1, + ts_builtin_sym_end, +}; + +static const uint32_t ts_small_parse_table_map[] = { + [SMALL_STATE(2)] = 0, + [SMALL_STATE(3)] = 21, + [SMALL_STATE(4)] = 42, + [SMALL_STATE(5)] = 63, + [SMALL_STATE(6)] = 84, + [SMALL_STATE(7)] = 105, + [SMALL_STATE(8)] = 121, + [SMALL_STATE(9)] = 137, + [SMALL_STATE(10)] = 153, + [SMALL_STATE(11)] = 160, + [SMALL_STATE(12)] = 173, + [SMALL_STATE(13)] = 186, + [SMALL_STATE(14)] = 197, + [SMALL_STATE(15)] = 204, + [SMALL_STATE(16)] = 211, + [SMALL_STATE(17)] = 224, + [SMALL_STATE(18)] = 231, + [SMALL_STATE(19)] = 238, + [SMALL_STATE(20)] = 251, + [SMALL_STATE(21)] = 264, + [SMALL_STATE(22)] = 275, + [SMALL_STATE(23)] = 282, + [SMALL_STATE(24)] = 295, + [SMALL_STATE(25)] = 306, + [SMALL_STATE(26)] = 319, + [SMALL_STATE(27)] = 329, + [SMALL_STATE(28)] = 335, + [SMALL_STATE(29)] = 345, + [SMALL_STATE(30)] = 351, + [SMALL_STATE(31)] = 359, + [SMALL_STATE(32)] = 369, + [SMALL_STATE(33)] = 377, + [SMALL_STATE(34)] = 385, + [SMALL_STATE(35)] = 390, + [SMALL_STATE(36)] = 395, + [SMALL_STATE(37)] = 400, + [SMALL_STATE(38)] = 407, + [SMALL_STATE(39)] = 412, + [SMALL_STATE(40)] = 419, + [SMALL_STATE(41)] = 426, + [SMALL_STATE(42)] = 431, + [SMALL_STATE(43)] = 436, + [SMALL_STATE(44)] = 441, + [SMALL_STATE(45)] = 446, + [SMALL_STATE(46)] = 451, + [SMALL_STATE(47)] = 458, + [SMALL_STATE(48)] = 465, + [SMALL_STATE(49)] = 469, + [SMALL_STATE(50)] = 473, +}; + +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}}, REDUCE(sym_source_file, 0), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [17] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(22), + [20] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(4), + [23] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), + [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [31] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 1), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [37] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [39] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [41] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [43] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 4), + [45] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr, 4), + [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), + [49] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(49), + [52] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr, 1), + [54] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(31), + [57] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), + [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [61] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl, 2), + [63] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [65] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 7), + [67] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 4), + [69] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [71] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [73] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [75] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [77] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 8), + [79] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 1), + [81] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 6), + [83] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 9), + [85] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5), + [87] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [89] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [91] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [93] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [95] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [97] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), +}; + +#ifdef __cplusplus +extern "C" { +#endif +#ifdef _WIN32 +#define extern __declspec(dllexport) +#endif + +extern const TSLanguage *tree_sitter_SUS(void) { + static const TSLanguage language = { + .version = LANGUAGE_VERSION, + .symbol_count = SYMBOL_COUNT, + .alias_count = ALIAS_COUNT, + .token_count = TOKEN_COUNT, + .external_token_count = EXTERNAL_TOKEN_COUNT, + .state_count = STATE_COUNT, + .large_state_count = LARGE_STATE_COUNT, + .production_id_count = PRODUCTION_ID_COUNT, + .field_count = FIELD_COUNT, + .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH, + .parse_table = &ts_parse_table[0][0], + .small_parse_table = ts_small_parse_table, + .small_parse_table_map = ts_small_parse_table_map, + .parse_actions = ts_parse_actions, + .symbol_names = ts_symbol_names, + .symbol_metadata = ts_symbol_metadata, + .public_symbol_map = ts_symbol_map, + .alias_map = ts_non_terminal_alias_map, + .alias_sequences = &ts_alias_sequences[0][0], + .lex_modes = ts_lex_modes, + .lex_fn = ts_lex, + .primary_state_ids = ts_primary_state_ids, + }; + return &language; +} +#ifdef __cplusplus +} +#endif diff --git a/src/tree_sitter/parser.h b/src/tree_sitter/parser.h new file mode 100644 index 0000000..2b14ac1 --- /dev/null +++ b/src/tree_sitter/parser.h @@ -0,0 +1,224 @@ +#ifndef TREE_SITTER_PARSER_H_ +#define TREE_SITTER_PARSER_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#define ts_builtin_sym_error ((TSSymbol)-1) +#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 TSSymbol; +typedef uint16_t TSFieldId; +typedef struct TSLanguage TSLanguage; +#endif + +typedef struct { + TSFieldId field_id; + uint8_t child_index; + bool inherited; +} TSFieldMapEntry; + +typedef struct { + uint16_t index; + uint16_t length; +} TSFieldMapSlice; + +typedef struct { + bool visible; + bool named; + bool supertype; +} TSSymbolMetadata; + +typedef struct TSLexer TSLexer; + +struct TSLexer { + int32_t lookahead; + TSSymbol result_symbol; + void (*advance)(TSLexer *, bool); + void (*mark_end)(TSLexer *); + uint32_t (*get_column)(TSLexer *); + bool (*is_at_included_range_start)(const TSLexer *); + bool (*eof)(const TSLexer *); +}; + +typedef enum { + TSParseActionTypeShift, + TSParseActionTypeReduce, + TSParseActionTypeAccept, + TSParseActionTypeRecover, +} TSParseActionType; + +typedef union { + struct { + uint8_t type; + TSStateId state; + bool extra; + bool repetition; + } shift; + struct { + uint8_t type; + uint8_t child_count; + TSSymbol symbol; + int16_t dynamic_precedence; + uint16_t production_id; + } reduce; + uint8_t type; +} TSParseAction; + +typedef struct { + uint16_t lex_state; + uint16_t external_lex_state; +} TSLexMode; + +typedef union { + TSParseAction action; + struct { + uint8_t count; + bool reusable; + } entry; +} TSParseActionEntry; + +struct TSLanguage { + uint32_t version; + uint32_t symbol_count; + uint32_t alias_count; + uint32_t token_count; + uint32_t external_token_count; + uint32_t state_count; + uint32_t large_state_count; + uint32_t production_id_count; + uint32_t field_count; + uint16_t max_alias_sequence_length; + const uint16_t *parse_table; + const uint16_t *small_parse_table; + const uint32_t *small_parse_table_map; + const TSParseActionEntry *parse_actions; + const char * const *symbol_names; + const char * const *field_names; + const TSFieldMapSlice *field_map_slices; + const TSFieldMapEntry *field_map_entries; + const TSSymbolMetadata *symbol_metadata; + const TSSymbol *public_symbol_map; + const uint16_t *alias_map; + const TSSymbol *alias_sequences; + const TSLexMode *lex_modes; + bool (*lex_fn)(TSLexer *, TSStateId); + bool (*keyword_lex_fn)(TSLexer *, TSStateId); + TSSymbol keyword_capture_token; + struct { + const bool *states; + const TSSymbol *symbol_map; + void *(*create)(void); + void (*destroy)(void *); + bool (*scan)(void *, TSLexer *, const bool *symbol_whitelist); + unsigned (*serialize)(void *, char *); + void (*deserialize)(void *, const char *, unsigned); + } external_scanner; + const TSStateId *primary_state_ids; +}; + +/* + * Lexer Macros + */ + +#define START_LEXER() \ + bool result = false; \ + bool skip = false; \ + bool eof = false; \ + int32_t lookahead; \ + goto start; \ + next_state: \ + lexer->advance(lexer, skip); \ + start: \ + skip = false; \ + lookahead = lexer->lookahead; + +#define ADVANCE(state_value) \ + { \ + state = state_value; \ + goto next_state; \ + } + +#define SKIP(state_value) \ + { \ + skip = true; \ + state = state_value; \ + goto next_state; \ + } + +#define ACCEPT_TOKEN(symbol_value) \ + result = true; \ + lexer->result_symbol = symbol_value; \ + lexer->mark_end(lexer); + +#define END_STATE() return result; + +/* + * Parse Table Macros + */ + +#define SMALL_STATE(id) id - LARGE_STATE_COUNT + +#define STATE(id) id + +#define ACTIONS(id) id + +#define SHIFT(state_value) \ + {{ \ + .shift = { \ + .type = TSParseActionTypeShift, \ + .state = state_value \ + } \ + }} + +#define SHIFT_REPEAT(state_value) \ + {{ \ + .shift = { \ + .type = TSParseActionTypeShift, \ + .state = state_value, \ + .repetition = true \ + } \ + }} + +#define SHIFT_EXTRA() \ + {{ \ + .shift = { \ + .type = TSParseActionTypeShift, \ + .extra = true \ + } \ + }} + +#define REDUCE(symbol_val, child_count_val, ...) \ + {{ \ + .reduce = { \ + .type = TSParseActionTypeReduce, \ + .symbol = symbol_val, \ + .child_count = child_count_val, \ + __VA_ARGS__ \ + }, \ + }} + +#define RECOVER() \ + {{ \ + .type = TSParseActionTypeRecover \ + }} + +#define ACCEPT_INPUT() \ + {{ \ + .type = TSParseActionTypeAccept \ + }} + +#ifdef __cplusplus +} +#endif + +#endif // TREE_SITTER_PARSER_H_ From 42cbb8f4b610c4cbad3ce0ab651ff36cf226b76a Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Wed, 31 Jan 2024 18:16:15 +0100 Subject: [PATCH 03/49] Make sus lowercase --- Cargo.toml | 8 ++++---- binding.gyp | 2 +- bindings/node/binding.cc | 8 ++++---- bindings/node/index.js | 4 ++-- bindings/rust/lib.rs | 10 +++++----- grammar.js | 2 +- package.json | 4 ++-- src/grammar.json | 2 +- src/parser.c | 2 +- 9 files changed, 21 insertions(+), 21 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 26350da..acb7962 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,10 +1,10 @@ [package] -name = "tree-sitter-SUS" -description = "SUS grammar for the tree-sitter parsing library" +name = "tree-sitter-sus" +description = "sus grammar for the tree-sitter parsing library" version = "0.0.1" -keywords = ["incremental", "parsing", "SUS"] +keywords = ["incremental", "parsing", "sus"] categories = ["parsing", "text-editors"] -repository = "https://github.com/tree-sitter/tree-sitter-SUS" +repository = "https://github.com/tree-sitter/tree-sitter-sus" edition = "2018" license = "MIT" diff --git a/binding.gyp b/binding.gyp index f4ce137..5226f82 100644 --- a/binding.gyp +++ b/binding.gyp @@ -1,7 +1,7 @@ { "targets": [ { - "target_name": "tree_sitter_SUS_binding", + "target_name": "tree_sitter_sus_binding", "include_dirs": [ " exports, Local module) { Local constructor = Nan::GetFunction(tpl).ToLocalChecked(); Local instance = constructor->NewInstance(Nan::GetCurrentContext()).ToLocalChecked(); - Nan::SetInternalFieldPointer(instance, 0, tree_sitter_SUS()); + Nan::SetInternalFieldPointer(instance, 0, tree_sitter_sus()); - Nan::Set(instance, Nan::New("name").ToLocalChecked(), Nan::New("SUS").ToLocalChecked()); + Nan::Set(instance, Nan::New("name").ToLocalChecked(), Nan::New("sus").ToLocalChecked()); Nan::Set(module, Nan::New("exports").ToLocalChecked(), instance); } -NODE_MODULE(tree_sitter_SUS_binding, Init) +NODE_MODULE(tree_sitter_sus_binding, Init) } // namespace diff --git a/bindings/node/index.js b/bindings/node/index.js index e8fb1c4..8604e2c 100644 --- a/bindings/node/index.js +++ b/bindings/node/index.js @@ -1,11 +1,11 @@ try { - module.exports = require("../../build/Release/tree_sitter_SUS_binding"); + module.exports = require("../../build/Release/tree_sitter_sus_binding"); } catch (error1) { if (error1.code !== 'MODULE_NOT_FOUND') { throw error1; } try { - module.exports = require("../../build/Debug/tree_sitter_SUS_binding"); + module.exports = require("../../build/Debug/tree_sitter_sus_binding"); } catch (error2) { if (error2.code !== 'MODULE_NOT_FOUND') { throw error2; diff --git a/bindings/rust/lib.rs b/bindings/rust/lib.rs index 9714b17..e1b16eb 100644 --- a/bindings/rust/lib.rs +++ b/bindings/rust/lib.rs @@ -1,4 +1,4 @@ -//! This crate provides SUS language support for the [tree-sitter][] parsing library. +//! This crate provides sus language support for the [tree-sitter][] parsing library. //! //! Typically, you will use the [language][language func] function to add this language to a //! tree-sitter [Parser][], and then use the parser to parse some code: @@ -6,7 +6,7 @@ //! ``` //! let code = ""; //! let mut parser = tree_sitter::Parser::new(); -//! parser.set_language(tree_sitter_SUS::language()).expect("Error loading SUS grammar"); +//! parser.set_language(tree_sitter_sus::language()).expect("Error loading sus grammar"); //! let tree = parser.parse(code, None).unwrap(); //! ``` //! @@ -18,14 +18,14 @@ use tree_sitter::Language; extern "C" { - fn tree_sitter_SUS() -> Language; + fn tree_sitter_sus() -> Language; } /// Get the tree-sitter [Language][] for this grammar. /// /// [Language]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Language.html pub fn language() -> Language { - unsafe { tree_sitter_SUS() } + unsafe { tree_sitter_sus() } } /// The content of the [`node-types.json`][] file for this grammar. @@ -47,6 +47,6 @@ mod tests { let mut parser = tree_sitter::Parser::new(); parser .set_language(super::language()) - .expect("Error loading SUS language"); + .expect("Error loading sus language"); } } diff --git a/grammar.js b/grammar.js index 13e5062..1ce4fbe 100644 --- a/grammar.js +++ b/grammar.js @@ -8,7 +8,7 @@ function commaSep(rule) { } module.exports = grammar({ - name: 'SUS', + name: 'sus', rules: { // TODO: add the actual grammar rules diff --git a/package.json b/package.json index 8e1826d..5e4103e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { - "name": "tree-sitter-SUS", + "name": "tree-sitter-sus", "version": "0.0.1", - "description": "SUS grammar for tree-sitter", + "description": "sus grammar for tree-sitter", "main": "bindings/node", "keywords": [ "parsing", diff --git a/src/grammar.json b/src/grammar.json index 87005d8..b7b6bc5 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -1,5 +1,5 @@ { - "name": "SUS", + "name": "sus", "rules": { "source_file": { "type": "REPEAT", diff --git a/src/parser.c b/src/parser.c index bdd8138..f7051cb 100644 --- a/src/parser.c +++ b/src/parser.c @@ -1918,7 +1918,7 @@ extern "C" { #define extern __declspec(dllexport) #endif -extern const TSLanguage *tree_sitter_SUS(void) { +extern const TSLanguage *tree_sitter_sus(void) { static const TSLanguage language = { .version = LANGUAGE_VERSION, .symbol_count = SYMBOL_COUNT, From c7ad157d2637c4006c9a0a2991457e3ad64c5365 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Thu, 1 Feb 2024 01:26:15 +0100 Subject: [PATCH 04/49] Extend parser to include current sus syntax --- grammar.js | 146 +- package.json | 11 +- src/grammar.json | 619 ++++++- src/node-types.json | 428 ++++- src/parser.c | 4235 +++++++++++++++++++++++++++++++++++++------ 5 files changed, 4762 insertions(+), 677 deletions(-) diff --git a/grammar.js b/grammar.js index 1ce4fbe..91dac47 100644 --- a/grammar.js +++ b/grammar.js @@ -7,6 +7,16 @@ function commaSep(rule) { return optional(commaSep1(rule)) } +const PREC = { + compare : 2, + and: 3, + or: 4, + xor: 5, + additive: 6, + multiplicative: 7, + unary: 8 +} + module.exports = grammar({ name: 'sus', @@ -18,46 +28,142 @@ module.exports = grammar({ 'module', $.identifier, ':', - commaSep($.decl), - "->", - commaSep($.decl), + commaSep($.declaration), + '->', + commaSep($.declaration), $.block ), identifier: $ => /[\p{L}_][\p{L}_\d]*/, number: $ => /\d[\d_]*/, - type: $ => choice( + type: $ => seq( $.identifier, - seq( - $.type, + repeat(seq( '[', - $.expr, + $._expression, ']' - ) + )) + ), + + assignable_expr: $ => seq( + $.identifier, + repeat(seq( + '[', + $._expression, + ']' + )) ), - decl: $ => seq( + declaration: $ => seq( + optional(choice( + 'state', + 'gen' + )), $.type, $.identifier ), - expr: $ => choice( - $.identifier, + paren_expr: $ => seq('(', $._expression, ')'), + unary_op: $ => prec(PREC.unary, seq( + choice('+', '-', '*', '!', '|', '&', '^'), + $._expression + )), + + binary_op: $ => { + const TABLE = [ + [PREC.compare, choice('==', '!=', '<', '<=', '>', '>=')], + [PREC.and, '&'], + [PREC.or, '|'], + [PREC.xor, '^'], + [PREC.additive, choice('+', '-')], + [PREC.multiplicative, choice('*', '/', '%')], + ]; + + return choice(...TABLE.map(([precedence, operator]) => prec.left(precedence, seq( + $._expression, + operator, + $._expression + )))); + }, + + _expression: $ => choice( + $.assignable_expr, $.number, - seq($.expr, "[", $.expr, "]") + $.paren_expr, + $.unary_op, + $.binary_op + ), + + range: $ => seq( + $._expression, + '..', + $._expression ), block: $ => seq( - "{", - repeat($.statement), - "}" + '{', + repeat($._statement), + '}' ), - - statement: $ => choice( + + _assign_left_side: $ => commaSep1(seq( + repeat('reg'), + choice( + $.assignable_expr, + $.declaration + ) + )), + decl_assign_statement: $ => seq( + $._assign_left_side, + '=', + $._expression, + ';' + ), + decl_statement: $ => seq( + $.declaration, + ';' + ), + expression_statement: $ => seq( + $._expression, + ';' + ), + if_statement: $ => seq( + 'if', + $._expression, $.block, - seq($.expr, "=", $.expr, ";") - ) + optional(seq( + 'else', + choice( + $.block, + $.if_statement + ) + )) + ), + for_statement: $ => seq( + 'for', + $.declaration, + 'in', + $.range, + $.block + ), + _statement: $ => choice( + $.block, + $.decl_assign_statement, + $.decl_statement, + $.expression_statement, + $.if_statement, + $.for_statement + ), + + + single_line_comment: $ => /\/\/[^\n]*\n/, + multi_line_comment: $ => /\/\*[^\*]*\*+([^\/\*][^\*]*\*+)*\//, + }, - // extras: $ => ["\s+"] + extras: $ => [ + /\s+/, + $.single_line_comment, + $.multi_line_comment + ] }); diff --git a/package.json b/package.json index 5e4103e..f9201b0 100644 --- a/package.json +++ b/package.json @@ -15,5 +15,14 @@ }, "scripts": { "test": "tree-sitter test" - } + }, + "repository": "https://github.com/pc2/tree-sitter-sus", + "tree-sitter": [ + { + "scope": "source.sus", + "file-types": [ + "sus" + ] + } + ] } diff --git a/src/grammar.json b/src/grammar.json index b7b6bc5..734efc8 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -31,7 +31,7 @@ "members": [ { "type": "SYMBOL", - "name": "decl" + "name": "declaration" }, { "type": "REPEAT", @@ -44,7 +44,7 @@ }, { "type": "SYMBOL", - "name": "decl" + "name": "declaration" } ] } @@ -68,7 +68,7 @@ "members": [ { "type": "SYMBOL", - "name": "decl" + "name": "declaration" }, { "type": "REPEAT", @@ -81,7 +81,7 @@ }, { "type": "SYMBOL", - "name": "decl" + "name": "declaration" } ] } @@ -108,79 +108,377 @@ "value": "\\d[\\d_]*" }, "type": { - "type": "CHOICE", + "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "identifier" }, { - "type": "SEQ", + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "[" + }, + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "STRING", + "value": "]" + } + ] + } + } + ] + }, + "assignable_expr": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "[" + }, + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "STRING", + "value": "]" + } + ] + } + } + ] + }, + "declaration": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", "members": [ { - "type": "SYMBOL", - "name": "type" - }, - { - "type": "STRING", - "value": "[" - }, - { - "type": "SYMBOL", - "name": "expr" + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "state" + }, + { + "type": "STRING", + "value": "gen" + } + ] }, { - "type": "STRING", - "value": "]" + "type": "BLANK" } ] + }, + { + "type": "SYMBOL", + "name": "type" + }, + { + "type": "SYMBOL", + "name": "identifier" } ] }, - "decl": { + "paren_expr": { "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "type" + "type": "STRING", + "value": "(" }, { "type": "SYMBOL", - "name": "identifier" + "name": "_expression" + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "unary_op": { + "type": "PREC", + "value": 8, + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "+" + }, + { + "type": "STRING", + "value": "-" + }, + { + "type": "STRING", + "value": "*" + }, + { + "type": "STRING", + "value": "!" + }, + { + "type": "STRING", + "value": "|" + }, + { + "type": "STRING", + "value": "&" + }, + { + "type": "STRING", + "value": "^" + } + ] + }, + { + "type": "SYMBOL", + "name": "_expression" + } + ] + } + }, + "binary_op": { + "type": "CHOICE", + "members": [ + { + "type": "PREC_LEFT", + "value": 2, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "==" + }, + { + "type": "STRING", + "value": "!=" + }, + { + "type": "STRING", + "value": "<" + }, + { + "type": "STRING", + "value": "<=" + }, + { + "type": "STRING", + "value": ">" + }, + { + "type": "STRING", + "value": ">=" + } + ] + }, + { + "type": "SYMBOL", + "name": "_expression" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 3, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "STRING", + "value": "&" + }, + { + "type": "SYMBOL", + "name": "_expression" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 4, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "STRING", + "value": "|" + }, + { + "type": "SYMBOL", + "name": "_expression" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 5, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "STRING", + "value": "^" + }, + { + "type": "SYMBOL", + "name": "_expression" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 6, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "+" + }, + { + "type": "STRING", + "value": "-" + } + ] + }, + { + "type": "SYMBOL", + "name": "_expression" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 7, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "*" + }, + { + "type": "STRING", + "value": "/" + }, + { + "type": "STRING", + "value": "%" + } + ] + }, + { + "type": "SYMBOL", + "name": "_expression" + } + ] + } } ] }, - "expr": { + "_expression": { "type": "CHOICE", "members": [ { "type": "SYMBOL", - "name": "identifier" + "name": "assignable_expr" }, { "type": "SYMBOL", "name": "number" }, { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "expr" - }, - { - "type": "STRING", - "value": "[" - }, - { - "type": "SYMBOL", - "name": "expr" - }, - { - "type": "STRING", - "value": "]" - } - ] + "type": "SYMBOL", + "name": "paren_expr" + }, + { + "type": "SYMBOL", + "name": "unary_op" + }, + { + "type": "SYMBOL", + "name": "binary_op" + } + ] + }, + "range": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "STRING", + "value": ".." + }, + { + "type": "SYMBOL", + "name": "_expression" } ] }, @@ -195,7 +493,7 @@ "type": "REPEAT", "content": { "type": "SYMBOL", - "name": "statement" + "name": "_statement" } }, { @@ -204,41 +502,242 @@ } ] }, - "statement": { - "type": "CHOICE", + "_assign_left_side": { + "type": "SEQ", "members": [ - { - "type": "SYMBOL", - "name": "block" - }, { "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "expr" + "type": "REPEAT", + "content": { + "type": "STRING", + "value": "reg" + } }, { - "type": "STRING", - "value": "=" - }, + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "assignable_expr" + }, + { + "type": "SYMBOL", + "name": "declaration" + } + ] + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SEQ", + "members": [ + { + "type": "REPEAT", + "content": { + "type": "STRING", + "value": "reg" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "assignable_expr" + }, + { + "type": "SYMBOL", + "name": "declaration" + } + ] + } + ] + } + ] + } + } + ] + }, + "decl_assign_statement": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_assign_left_side" + }, + { + "type": "STRING", + "value": "=" + }, + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "STRING", + "value": ";" + } + ] + }, + "decl_statement": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "declaration" + }, + { + "type": "STRING", + "value": ";" + } + ] + }, + "expression_statement": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "STRING", + "value": ";" + } + ] + }, + "if_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "if" + }, + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "SYMBOL", + "name": "block" + }, + { + "type": "CHOICE", + "members": [ { - "type": "SYMBOL", - "name": "expr" + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "else" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "block" + }, + { + "type": "SYMBOL", + "name": "if_statement" + } + ] + } + ] }, { - "type": "STRING", - "value": ";" + "type": "BLANK" } ] } ] + }, + "for_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "for" + }, + { + "type": "SYMBOL", + "name": "declaration" + }, + { + "type": "STRING", + "value": "in" + }, + { + "type": "SYMBOL", + "name": "range" + }, + { + "type": "SYMBOL", + "name": "block" + } + ] + }, + "_statement": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "block" + }, + { + "type": "SYMBOL", + "name": "decl_assign_statement" + }, + { + "type": "SYMBOL", + "name": "decl_statement" + }, + { + "type": "SYMBOL", + "name": "expression_statement" + }, + { + "type": "SYMBOL", + "name": "if_statement" + }, + { + "type": "SYMBOL", + "name": "for_statement" + } + ] + }, + "single_line_comment": { + "type": "PATTERN", + "value": "\\/\\/[^\\n]*\\n" + }, + "multi_line_comment": { + "type": "PATTERN", + "value": "\\/\\*[^\\*]*\\*+([^\\/\\*][^\\*]*\\*+)*\\/" } }, "extras": [ { "type": "PATTERN", - "value": "\\s" + "value": "\\s+" + }, + { + "type": "SYMBOL", + "name": "single_line_comment" + }, + { + "type": "SYMBOL", + "name": "multi_line_comment" } ], "conflicts": [], diff --git a/src/node-types.json b/src/node-types.json index c7cc273..e409d54 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -1,4 +1,70 @@ [ + { + "type": "assignable_expr", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "assignable_expr", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "paren_expr", + "named": true + }, + { + "type": "unary_op", + "named": true + } + ] + } + }, + { + "type": "binary_op", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "assignable_expr", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "paren_expr", + "named": true + }, + { + "type": "unary_op", + "named": true + } + ] + } + }, { "type": "block", "named": true, @@ -8,14 +74,84 @@ "required": false, "types": [ { - "type": "statement", + "type": "block", + "named": true + }, + { + "type": "decl_assign_statement", + "named": true + }, + { + "type": "decl_statement", + "named": true + }, + { + "type": "expression_statement", + "named": true + }, + { + "type": "for_statement", + "named": true + }, + { + "type": "if_statement", + "named": true + } + ] + } + }, + { + "type": "decl_assign_statement", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "assignable_expr", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "declaration", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "paren_expr", + "named": true + }, + { + "type": "unary_op", + "named": true + } + ] + } + }, + { + "type": "decl_statement", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "declaration", "named": true } ] } }, { - "type": "decl", + "type": "declaration", "named": true, "fields": {}, "children": { @@ -34,7 +170,38 @@ } }, { - "type": "expr", + "type": "expression_statement", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "assignable_expr", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "paren_expr", + "named": true + }, + { + "type": "unary_op", + "named": true + } + ] + } + }, + { + "type": "for_statement", "named": true, "fields": {}, "children": { @@ -42,16 +209,55 @@ "required": true, "types": [ { - "type": "expr", + "type": "block", "named": true }, { - "type": "identifier", + "type": "declaration", + "named": true + }, + { + "type": "range", + "named": true + } + ] + } + }, + { + "type": "if_statement", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "assignable_expr", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "block", + "named": true + }, + { + "type": "if_statement", "named": true }, { "type": "number", "named": true + }, + { + "type": "paren_expr", + "named": true + }, + { + "type": "unary_op", + "named": true } ] } @@ -69,7 +275,7 @@ "named": true }, { - "type": "decl", + "type": "declaration", "named": true }, { @@ -79,6 +285,68 @@ ] } }, + { + "type": "paren_expr", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "assignable_expr", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "paren_expr", + "named": true + }, + { + "type": "unary_op", + "named": true + } + ] + } + }, + { + "type": "range", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "assignable_expr", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "paren_expr", + "named": true + }, + { + "type": "unary_op", + "named": true + } + ] + } + }, { "type": "source_file", "named": true, @@ -95,7 +363,7 @@ } }, { - "type": "statement", + "type": "type", "named": true, "fields": {}, "children": { @@ -103,47 +371,115 @@ "required": true, "types": [ { - "type": "block", + "type": "assignable_expr", "named": true }, { - "type": "expr", + "type": "binary_op", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "paren_expr", + "named": true + }, + { + "type": "unary_op", "named": true } ] } }, { - "type": "type", + "type": "unary_op", "named": true, "fields": {}, "children": { - "multiple": true, + "multiple": false, "required": true, "types": [ { - "type": "expr", + "type": "assignable_expr", "named": true }, { - "type": "identifier", + "type": "binary_op", "named": true }, { - "type": "type", + "type": "number", + "named": true + }, + { + "type": "paren_expr", + "named": true + }, + { + "type": "unary_op", "named": true } ] } }, + { + "type": "!", + "named": false + }, + { + "type": "!=", + "named": false + }, + { + "type": "%", + "named": false + }, + { + "type": "&", + "named": false + }, + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, + { + "type": "*", + "named": false + }, + { + "type": "+", + "named": false + }, { "type": ",", "named": false }, + { + "type": "-", + "named": false + }, { "type": "->", "named": false }, + { + "type": "..", + "named": false + }, + { + "type": "/", + "named": false + }, { "type": ":", "named": false @@ -152,10 +488,30 @@ "type": ";", "named": false }, + { + "type": "<", + "named": false + }, + { + "type": "<=", + "named": false + }, { "type": "=", "named": false }, + { + "type": "==", + "named": false + }, + { + "type": ">", + "named": false + }, + { + "type": ">=", + "named": false + }, { "type": "[", "named": false @@ -164,22 +520,66 @@ "type": "]", "named": false }, + { + "type": "^", + "named": false + }, + { + "type": "else", + "named": false + }, + { + "type": "for", + "named": false + }, + { + "type": "gen", + "named": false + }, { "type": "identifier", "named": true }, + { + "type": "if", + "named": false + }, + { + "type": "in", + "named": false + }, { "type": "module", "named": false }, + { + "type": "multi_line_comment", + "named": true + }, { "type": "number", "named": true }, + { + "type": "reg", + "named": false + }, + { + "type": "single_line_comment", + "named": true + }, + { + "type": "state", + "named": false + }, { "type": "{", "named": false }, + { + "type": "|", + "named": false + }, { "type": "}", "named": false diff --git a/src/parser.c b/src/parser.c index f7051cb..f93e778 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,11 +6,11 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 51 -#define LARGE_STATE_COUNT 2 -#define SYMBOL_COUNT 23 +#define STATE_COUNT 104 +#define LARGE_STATE_COUNT 9 +#define SYMBOL_COUNT 64 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 13 +#define TOKEN_COUNT 40 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 0 #define MAX_ALIAS_SEQUENCE_LENGTH 9 @@ -25,20 +25,61 @@ enum { sym_number = 6, anon_sym_LBRACK = 7, anon_sym_RBRACK = 8, - anon_sym_LBRACE = 9, - anon_sym_RBRACE = 10, - anon_sym_EQ = 11, - anon_sym_SEMI = 12, - sym_source_file = 13, - sym_module = 14, - sym_type = 15, - sym_decl = 16, - sym_expr = 17, - sym_block = 18, - sym_statement = 19, - aux_sym_source_file_repeat1 = 20, - aux_sym_module_repeat1 = 21, - aux_sym_block_repeat1 = 22, + anon_sym_state = 9, + anon_sym_gen = 10, + anon_sym_LPAREN = 11, + anon_sym_RPAREN = 12, + anon_sym_PLUS = 13, + anon_sym_DASH = 14, + anon_sym_STAR = 15, + anon_sym_BANG = 16, + anon_sym_PIPE = 17, + anon_sym_AMP = 18, + anon_sym_CARET = 19, + anon_sym_EQ_EQ = 20, + anon_sym_BANG_EQ = 21, + anon_sym_LT = 22, + anon_sym_LT_EQ = 23, + anon_sym_GT = 24, + anon_sym_GT_EQ = 25, + anon_sym_SLASH = 26, + anon_sym_PERCENT = 27, + anon_sym_DOT_DOT = 28, + anon_sym_LBRACE = 29, + anon_sym_RBRACE = 30, + anon_sym_reg = 31, + anon_sym_EQ = 32, + anon_sym_SEMI = 33, + anon_sym_if = 34, + anon_sym_else = 35, + anon_sym_for = 36, + anon_sym_in = 37, + sym_single_line_comment = 38, + sym_multi_line_comment = 39, + sym_source_file = 40, + sym_module = 41, + sym_type = 42, + sym_assignable_expr = 43, + sym_declaration = 44, + sym_paren_expr = 45, + sym_unary_op = 46, + sym_binary_op = 47, + sym__expression = 48, + sym_range = 49, + sym_block = 50, + sym__assign_left_side = 51, + sym_decl_assign_statement = 52, + sym_decl_statement = 53, + sym_expression_statement = 54, + sym_if_statement = 55, + sym_for_statement = 56, + sym__statement = 57, + aux_sym_source_file_repeat1 = 58, + aux_sym_module_repeat1 = 59, + aux_sym_type_repeat1 = 60, + aux_sym_block_repeat1 = 61, + aux_sym__assign_left_side_repeat1 = 62, + aux_sym__assign_left_side_repeat2 = 63, }; static const char * const ts_symbol_names[] = { @@ -51,20 +92,61 @@ static const char * const ts_symbol_names[] = { [sym_number] = "number", [anon_sym_LBRACK] = "[", [anon_sym_RBRACK] = "]", + [anon_sym_state] = "state", + [anon_sym_gen] = "gen", + [anon_sym_LPAREN] = "(", + [anon_sym_RPAREN] = ")", + [anon_sym_PLUS] = "+", + [anon_sym_DASH] = "-", + [anon_sym_STAR] = "*", + [anon_sym_BANG] = "!", + [anon_sym_PIPE] = "|", + [anon_sym_AMP] = "&", + [anon_sym_CARET] = "^", + [anon_sym_EQ_EQ] = "==", + [anon_sym_BANG_EQ] = "!=", + [anon_sym_LT] = "<", + [anon_sym_LT_EQ] = "<=", + [anon_sym_GT] = ">", + [anon_sym_GT_EQ] = ">=", + [anon_sym_SLASH] = "/", + [anon_sym_PERCENT] = "%", + [anon_sym_DOT_DOT] = "..", [anon_sym_LBRACE] = "{", [anon_sym_RBRACE] = "}", + [anon_sym_reg] = "reg", [anon_sym_EQ] = "=", [anon_sym_SEMI] = ";", + [anon_sym_if] = "if", + [anon_sym_else] = "else", + [anon_sym_for] = "for", + [anon_sym_in] = "in", + [sym_single_line_comment] = "single_line_comment", + [sym_multi_line_comment] = "multi_line_comment", [sym_source_file] = "source_file", [sym_module] = "module", [sym_type] = "type", - [sym_decl] = "decl", - [sym_expr] = "expr", + [sym_assignable_expr] = "assignable_expr", + [sym_declaration] = "declaration", + [sym_paren_expr] = "paren_expr", + [sym_unary_op] = "unary_op", + [sym_binary_op] = "binary_op", + [sym__expression] = "_expression", + [sym_range] = "range", [sym_block] = "block", - [sym_statement] = "statement", + [sym__assign_left_side] = "_assign_left_side", + [sym_decl_assign_statement] = "decl_assign_statement", + [sym_decl_statement] = "decl_statement", + [sym_expression_statement] = "expression_statement", + [sym_if_statement] = "if_statement", + [sym_for_statement] = "for_statement", + [sym__statement] = "_statement", [aux_sym_source_file_repeat1] = "source_file_repeat1", [aux_sym_module_repeat1] = "module_repeat1", + [aux_sym_type_repeat1] = "type_repeat1", [aux_sym_block_repeat1] = "block_repeat1", + [aux_sym__assign_left_side_repeat1] = "_assign_left_side_repeat1", + [aux_sym__assign_left_side_repeat2] = "_assign_left_side_repeat2", }; static const TSSymbol ts_symbol_map[] = { @@ -77,20 +159,61 @@ static const TSSymbol ts_symbol_map[] = { [sym_number] = sym_number, [anon_sym_LBRACK] = anon_sym_LBRACK, [anon_sym_RBRACK] = anon_sym_RBRACK, + [anon_sym_state] = anon_sym_state, + [anon_sym_gen] = anon_sym_gen, + [anon_sym_LPAREN] = anon_sym_LPAREN, + [anon_sym_RPAREN] = anon_sym_RPAREN, + [anon_sym_PLUS] = anon_sym_PLUS, + [anon_sym_DASH] = anon_sym_DASH, + [anon_sym_STAR] = anon_sym_STAR, + [anon_sym_BANG] = anon_sym_BANG, + [anon_sym_PIPE] = anon_sym_PIPE, + [anon_sym_AMP] = anon_sym_AMP, + [anon_sym_CARET] = anon_sym_CARET, + [anon_sym_EQ_EQ] = anon_sym_EQ_EQ, + [anon_sym_BANG_EQ] = anon_sym_BANG_EQ, + [anon_sym_LT] = anon_sym_LT, + [anon_sym_LT_EQ] = anon_sym_LT_EQ, + [anon_sym_GT] = anon_sym_GT, + [anon_sym_GT_EQ] = anon_sym_GT_EQ, + [anon_sym_SLASH] = anon_sym_SLASH, + [anon_sym_PERCENT] = anon_sym_PERCENT, + [anon_sym_DOT_DOT] = anon_sym_DOT_DOT, [anon_sym_LBRACE] = anon_sym_LBRACE, [anon_sym_RBRACE] = anon_sym_RBRACE, + [anon_sym_reg] = anon_sym_reg, [anon_sym_EQ] = anon_sym_EQ, [anon_sym_SEMI] = anon_sym_SEMI, + [anon_sym_if] = anon_sym_if, + [anon_sym_else] = anon_sym_else, + [anon_sym_for] = anon_sym_for, + [anon_sym_in] = anon_sym_in, + [sym_single_line_comment] = sym_single_line_comment, + [sym_multi_line_comment] = sym_multi_line_comment, [sym_source_file] = sym_source_file, [sym_module] = sym_module, [sym_type] = sym_type, - [sym_decl] = sym_decl, - [sym_expr] = sym_expr, + [sym_assignable_expr] = sym_assignable_expr, + [sym_declaration] = sym_declaration, + [sym_paren_expr] = sym_paren_expr, + [sym_unary_op] = sym_unary_op, + [sym_binary_op] = sym_binary_op, + [sym__expression] = sym__expression, + [sym_range] = sym_range, [sym_block] = sym_block, - [sym_statement] = sym_statement, + [sym__assign_left_side] = sym__assign_left_side, + [sym_decl_assign_statement] = sym_decl_assign_statement, + [sym_decl_statement] = sym_decl_statement, + [sym_expression_statement] = sym_expression_statement, + [sym_if_statement] = sym_if_statement, + [sym_for_statement] = sym_for_statement, + [sym__statement] = sym__statement, [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1, [aux_sym_module_repeat1] = aux_sym_module_repeat1, + [aux_sym_type_repeat1] = aux_sym_type_repeat1, [aux_sym_block_repeat1] = aux_sym_block_repeat1, + [aux_sym__assign_left_side_repeat1] = aux_sym__assign_left_side_repeat1, + [aux_sym__assign_left_side_repeat2] = aux_sym__assign_left_side_repeat2, }; static const TSSymbolMetadata ts_symbol_metadata[] = { @@ -130,6 +253,86 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_state] = { + .visible = true, + .named = false, + }, + [anon_sym_gen] = { + .visible = true, + .named = false, + }, + [anon_sym_LPAREN] = { + .visible = true, + .named = false, + }, + [anon_sym_RPAREN] = { + .visible = true, + .named = false, + }, + [anon_sym_PLUS] = { + .visible = true, + .named = false, + }, + [anon_sym_DASH] = { + .visible = true, + .named = false, + }, + [anon_sym_STAR] = { + .visible = true, + .named = false, + }, + [anon_sym_BANG] = { + .visible = true, + .named = false, + }, + [anon_sym_PIPE] = { + .visible = true, + .named = false, + }, + [anon_sym_AMP] = { + .visible = true, + .named = false, + }, + [anon_sym_CARET] = { + .visible = true, + .named = false, + }, + [anon_sym_EQ_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_BANG_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_LT] = { + .visible = true, + .named = false, + }, + [anon_sym_LT_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_GT] = { + .visible = true, + .named = false, + }, + [anon_sym_GT_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_SLASH] = { + .visible = true, + .named = false, + }, + [anon_sym_PERCENT] = { + .visible = true, + .named = false, + }, + [anon_sym_DOT_DOT] = { + .visible = true, + .named = false, + }, [anon_sym_LBRACE] = { .visible = true, .named = false, @@ -138,6 +341,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_reg] = { + .visible = true, + .named = false, + }, [anon_sym_EQ] = { .visible = true, .named = false, @@ -146,6 +353,30 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_if] = { + .visible = true, + .named = false, + }, + [anon_sym_else] = { + .visible = true, + .named = false, + }, + [anon_sym_for] = { + .visible = true, + .named = false, + }, + [anon_sym_in] = { + .visible = true, + .named = false, + }, + [sym_single_line_comment] = { + .visible = true, + .named = true, + }, + [sym_multi_line_comment] = { + .visible = true, + .named = true, + }, [sym_source_file] = { .visible = true, .named = true, @@ -158,11 +389,31 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_decl] = { + [sym_assignable_expr] = { + .visible = true, + .named = true, + }, + [sym_declaration] = { + .visible = true, + .named = true, + }, + [sym_paren_expr] = { + .visible = true, + .named = true, + }, + [sym_unary_op] = { + .visible = true, + .named = true, + }, + [sym_binary_op] = { .visible = true, .named = true, }, - [sym_expr] = { + [sym__expression] = { + .visible = false, + .named = true, + }, + [sym_range] = { .visible = true, .named = true, }, @@ -170,10 +421,34 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_statement] = { + [sym__assign_left_side] = { + .visible = false, + .named = true, + }, + [sym_decl_assign_statement] = { + .visible = true, + .named = true, + }, + [sym_decl_statement] = { + .visible = true, + .named = true, + }, + [sym_expression_statement] = { + .visible = true, + .named = true, + }, + [sym_if_statement] = { .visible = true, .named = true, }, + [sym_for_statement] = { + .visible = true, + .named = true, + }, + [sym__statement] = { + .visible = false, + .named = true, + }, [aux_sym_source_file_repeat1] = { .visible = false, .named = false, @@ -182,10 +457,22 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, + [aux_sym_type_repeat1] = { + .visible = false, + .named = false, + }, [aux_sym_block_repeat1] = { .visible = false, .named = false, }, + [aux_sym__assign_left_side_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym__assign_left_side_repeat2] = { + .visible = false, + .named = false, + }, }; static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { @@ -200,12 +487,12 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [0] = 0, [1] = 1, [2] = 2, - [3] = 2, - [4] = 4, - [5] = 5, - [6] = 4, + [3] = 3, + [4] = 2, + [5] = 3, + [6] = 2, [7] = 7, - [8] = 8, + [8] = 3, [9] = 9, [10] = 10, [11] = 11, @@ -229,13 +516,13 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [29] = 29, [30] = 30, [31] = 31, - [32] = 32, - [33] = 33, - [34] = 14, + [32] = 26, + [33] = 24, + [34] = 34, [35] = 35, [36] = 36, [37] = 37, - [38] = 15, + [38] = 38, [39] = 39, [40] = 40, [41] = 41, @@ -248,6 +535,59 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [48] = 48, [49] = 49, [50] = 50, + [51] = 51, + [52] = 52, + [53] = 53, + [54] = 54, + [55] = 55, + [56] = 56, + [57] = 57, + [58] = 58, + [59] = 59, + [60] = 60, + [61] = 61, + [62] = 62, + [63] = 63, + [64] = 64, + [65] = 65, + [66] = 66, + [67] = 67, + [68] = 68, + [69] = 69, + [70] = 70, + [71] = 71, + [72] = 72, + [73] = 73, + [74] = 74, + [75] = 75, + [76] = 76, + [77] = 77, + [78] = 78, + [79] = 79, + [80] = 80, + [81] = 81, + [82] = 82, + [83] = 83, + [84] = 84, + [85] = 85, + [86] = 24, + [87] = 87, + [88] = 88, + [89] = 89, + [90] = 90, + [91] = 91, + [92] = 92, + [93] = 26, + [94] = 94, + [95] = 95, + [96] = 96, + [97] = 97, + [98] = 98, + [99] = 99, + [100] = 100, + [101] = 101, + [102] = 102, + [103] = 103, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -771,7 +1111,7 @@ static inline bool sym_identifier_character_set_2(int32_t c) { ? (c < 1376 ? (c < 750 ? (c < 186 - ? (c < 'a' + ? (c < 'b' ? (c < 'A' ? (c >= '0' && c <= '9') : (c <= 'Z' || c == '_')) @@ -1278,637 +1618,3368 @@ static inline bool sym_identifier_character_set_2(int32_t c) { : c <= 67883))))))))))))))); } -static bool ts_lex(TSLexer *lexer, TSStateId state) { - START_LEXER(); - eof = lexer->eof(lexer); - switch (state) { - case 0: - if (eof) ADVANCE(8); - if (lookahead == ',') ADVANCE(11); - if (lookahead == '-') ADVANCE(2); - if (lookahead == ':') ADVANCE(10); - if (lookahead == ';') ADVANCE(20); - if (lookahead == '=') ADVANCE(19); - if (lookahead == '[') ADVANCE(15); - if (lookahead == ']') ADVANCE(16); - if (lookahead == 'm') ADVANCE(6); - if (lookahead == '{') ADVANCE(17); - if (lookahead == '}') ADVANCE(18); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(0) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(14); - END_STATE(); - case 1: - if (lookahead == '-') ADVANCE(2); - if (lookahead == '[') ADVANCE(15); - if (lookahead == '{') ADVANCE(17); - if (lookahead == '}') ADVANCE(18); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(1) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(14); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(13); - END_STATE(); - case 2: - if (lookahead == '>') ADVANCE(12); - END_STATE(); - case 3: - if (lookahead == 'd') ADVANCE(7); - END_STATE(); - case 4: - if (lookahead == 'e') ADVANCE(9); - END_STATE(); - case 5: - if (lookahead == 'l') ADVANCE(4); - END_STATE(); - case 6: - if (lookahead == 'o') ADVANCE(3); - END_STATE(); - case 7: - if (lookahead == 'u') ADVANCE(5); - END_STATE(); - case 8: - ACCEPT_TOKEN(ts_builtin_sym_end); - END_STATE(); - case 9: - ACCEPT_TOKEN(anon_sym_module); - END_STATE(); - case 10: - ACCEPT_TOKEN(anon_sym_COLON); - END_STATE(); - case 11: - ACCEPT_TOKEN(anon_sym_COMMA); - END_STATE(); - case 12: - ACCEPT_TOKEN(anon_sym_DASH_GT); - END_STATE(); - case 13: - ACCEPT_TOKEN(sym_identifier); - if (sym_identifier_character_set_2(lookahead)) ADVANCE(13); - END_STATE(); - case 14: - ACCEPT_TOKEN(sym_number); - if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(14); - END_STATE(); - case 15: - ACCEPT_TOKEN(anon_sym_LBRACK); - END_STATE(); - case 16: - ACCEPT_TOKEN(anon_sym_RBRACK); - END_STATE(); - case 17: - ACCEPT_TOKEN(anon_sym_LBRACE); - END_STATE(); - case 18: - ACCEPT_TOKEN(anon_sym_RBRACE); - END_STATE(); - case 19: - ACCEPT_TOKEN(anon_sym_EQ); - END_STATE(); - case 20: - ACCEPT_TOKEN(anon_sym_SEMI); - END_STATE(); - default: - return false; - } -} - -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 = 1}, - [10] = {.lex_state = 1}, - [11] = {.lex_state = 0}, - [12] = {.lex_state = 1}, - [13] = {.lex_state = 0}, - [14] = {.lex_state = 1}, - [15] = {.lex_state = 1}, - [16] = {.lex_state = 0}, - [17] = {.lex_state = 1}, - [18] = {.lex_state = 0}, - [19] = {.lex_state = 0}, - [20] = {.lex_state = 0}, - [21] = {.lex_state = 0}, - [22] = {.lex_state = 0}, - [23] = {.lex_state = 0}, - [24] = {.lex_state = 0}, - [25] = {.lex_state = 0}, - [26] = {.lex_state = 0}, - [27] = {.lex_state = 0}, - [28] = {.lex_state = 0}, - [29] = {.lex_state = 0}, - [30] = {.lex_state = 1}, - [31] = {.lex_state = 1}, - [32] = {.lex_state = 1}, - [33] = {.lex_state = 1}, - [34] = {.lex_state = 0}, - [35] = {.lex_state = 0}, - [36] = {.lex_state = 1}, - [37] = {.lex_state = 0}, - [38] = {.lex_state = 0}, - [39] = {.lex_state = 0}, - [40] = {.lex_state = 0}, - [41] = {.lex_state = 0}, - [42] = {.lex_state = 1}, - [43] = {.lex_state = 0}, - [44] = {.lex_state = 0}, - [45] = {.lex_state = 0}, - [46] = {.lex_state = 0}, - [47] = {.lex_state = 1}, - [48] = {.lex_state = 0}, - [49] = {.lex_state = 1}, - [50] = {.lex_state = 0}, -}; - -static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { - [0] = { - [ts_builtin_sym_end] = ACTIONS(1), - [anon_sym_module] = ACTIONS(1), - [anon_sym_COLON] = ACTIONS(1), - [anon_sym_COMMA] = ACTIONS(1), - [anon_sym_DASH_GT] = ACTIONS(1), - [sym_number] = ACTIONS(1), - [anon_sym_LBRACK] = ACTIONS(1), - [anon_sym_RBRACK] = ACTIONS(1), - [anon_sym_LBRACE] = ACTIONS(1), - [anon_sym_RBRACE] = ACTIONS(1), - [anon_sym_EQ] = ACTIONS(1), - [anon_sym_SEMI] = ACTIONS(1), - }, - [1] = { - [sym_source_file] = STATE(50), - [sym_module] = STATE(13), - [aux_sym_source_file_repeat1] = STATE(13), - [ts_builtin_sym_end] = ACTIONS(3), - [anon_sym_module] = ACTIONS(5), - }, -}; - -static const uint16_t ts_small_parse_table[] = { - [0] = 6, - ACTIONS(9), 1, - anon_sym_LBRACE, - ACTIONS(11), 1, - anon_sym_RBRACE, - STATE(10), 1, - sym_block, - STATE(37), 1, - sym_expr, - ACTIONS(7), 2, - sym_identifier, - sym_number, - STATE(5), 2, - sym_statement, - aux_sym_block_repeat1, - [21] = 6, - ACTIONS(9), 1, - anon_sym_LBRACE, - ACTIONS(13), 1, - anon_sym_RBRACE, - STATE(10), 1, - sym_block, - STATE(37), 1, - sym_expr, - ACTIONS(7), 2, - sym_identifier, - sym_number, - STATE(5), 2, - sym_statement, - aux_sym_block_repeat1, - [42] = 6, - ACTIONS(9), 1, - anon_sym_LBRACE, - ACTIONS(15), 1, - anon_sym_RBRACE, - STATE(10), 1, - sym_block, - STATE(37), 1, - sym_expr, - ACTIONS(7), 2, - sym_identifier, - sym_number, - STATE(3), 2, - sym_statement, - aux_sym_block_repeat1, - [63] = 6, - ACTIONS(20), 1, - anon_sym_LBRACE, - ACTIONS(23), 1, - anon_sym_RBRACE, - STATE(10), 1, - sym_block, - STATE(37), 1, - sym_expr, - ACTIONS(17), 2, - sym_identifier, - sym_number, - STATE(5), 2, - sym_statement, - aux_sym_block_repeat1, - [84] = 6, - ACTIONS(9), 1, - anon_sym_LBRACE, - ACTIONS(25), 1, - anon_sym_RBRACE, - STATE(10), 1, - sym_block, - STATE(37), 1, - sym_expr, - ACTIONS(7), 2, - sym_identifier, - sym_number, - STATE(2), 2, - sym_statement, - aux_sym_block_repeat1, - [105] = 5, - ACTIONS(27), 1, - sym_identifier, - ACTIONS(29), 1, - anon_sym_LBRACE, - STATE(20), 1, - sym_decl, - STATE(35), 1, - sym_block, - STATE(47), 1, - sym_type, - [121] = 5, - ACTIONS(27), 1, - sym_identifier, - ACTIONS(29), 1, +static inline bool sym_identifier_character_set_3(int32_t c) { + return (c < 6656 + ? (c < 2979 + ? (c < 2308 + ? (c < 1376 + ? (c < 750 + ? (c < 186 + ? (c < 'a' + ? (c < 'A' + ? (c >= '0' && c <= '9') + : (c <= 'Z' || c == '_')) + : (c <= 'z' || (c < 181 + ? c == 170 + : c <= 181))) + : (c <= 186 || (c < 710 + ? (c < 216 + ? (c >= 192 && c <= 214) + : (c <= 246 || (c >= 248 && c <= 705))) + : (c <= 721 || (c < 748 + ? (c >= 736 && c <= 740) + : c <= 748))))) + : (c <= 750 || (c < 908 + ? (c < 895 + ? (c < 886 + ? (c >= 880 && c <= 884) + : (c <= 887 || (c >= 890 && c <= 893))) + : (c <= 895 || (c < 904 + ? c == 902 + : c <= 906))) + : (c <= 908 || (c < 1162 + ? (c < 931 + ? (c >= 910 && c <= 929) + : (c <= 1013 || (c >= 1015 && c <= 1153))) + : (c <= 1327 || (c < 1369 + ? (c >= 1329 && c <= 1366) + : c <= 1369))))))) + : (c <= 1416 || (c < 1969 + ? (c < 1765 + ? (c < 1646 + ? (c < 1519 + ? (c >= 1488 && c <= 1514) + : (c <= 1522 || (c >= 1568 && c <= 1610))) + : (c <= 1647 || (c < 1749 + ? (c >= 1649 && c <= 1747) + : c <= 1749))) + : (c <= 1766 || (c < 1808 + ? (c < 1786 + ? (c >= 1774 && c <= 1775) + : (c <= 1788 || c == 1791)) + : (c <= 1808 || (c < 1869 + ? (c >= 1810 && c <= 1839) + : c <= 1957))))) + : (c <= 1969 || (c < 2088 + ? (c < 2048 + ? (c < 2036 + ? (c >= 1994 && c <= 2026) + : (c <= 2037 || c == 2042)) + : (c <= 2069 || (c < 2084 + ? c == 2074 + : c <= 2084))) + : (c <= 2088 || (c < 2160 + ? (c < 2144 + ? (c >= 2112 && c <= 2136) + : c <= 2154) + : (c <= 2183 || (c < 2208 + ? (c >= 2185 && c <= 2190) + : c <= 2249))))))))) + : (c <= 2361 || (c < 2693 + ? (c < 2527 + ? (c < 2451 + ? (c < 2417 + ? (c < 2384 + ? c == 2365 + : (c <= 2384 || (c >= 2392 && c <= 2401))) + : (c <= 2432 || (c < 2447 + ? (c >= 2437 && c <= 2444) + : c <= 2448))) + : (c <= 2472 || (c < 2493 + ? (c < 2482 + ? (c >= 2474 && c <= 2480) + : (c <= 2482 || (c >= 2486 && c <= 2489))) + : (c <= 2493 || (c < 2524 + ? c == 2510 + : c <= 2525))))) + : (c <= 2529 || (c < 2610 + ? (c < 2575 + ? (c < 2556 + ? (c >= 2544 && c <= 2545) + : (c <= 2556 || (c >= 2565 && c <= 2570))) + : (c <= 2576 || (c < 2602 + ? (c >= 2579 && c <= 2600) + : c <= 2608))) + : (c <= 2611 || (c < 2649 + ? (c < 2616 + ? (c >= 2613 && c <= 2614) + : c <= 2617) + : (c <= 2652 || (c < 2674 + ? c == 2654 + : c <= 2676))))))) + : (c <= 2701 || (c < 2866 + ? (c < 2768 + ? (c < 2738 + ? (c < 2707 + ? (c >= 2703 && c <= 2705) + : (c <= 2728 || (c >= 2730 && c <= 2736))) + : (c <= 2739 || (c < 2749 + ? (c >= 2741 && c <= 2745) + : c <= 2749))) + : (c <= 2768 || (c < 2831 + ? (c < 2809 + ? (c >= 2784 && c <= 2785) + : (c <= 2809 || (c >= 2821 && c <= 2828))) + : (c <= 2832 || (c < 2858 + ? (c >= 2835 && c <= 2856) + : c <= 2864))))) + : (c <= 2867 || (c < 2949 + ? (c < 2911 + ? (c < 2877 + ? (c >= 2869 && c <= 2873) + : (c <= 2877 || (c >= 2908 && c <= 2909))) + : (c <= 2913 || (c < 2947 + ? c == 2929 + : c <= 2947))) + : (c <= 2954 || (c < 2969 + ? (c < 2962 + ? (c >= 2958 && c <= 2960) + : c <= 2965) + : (c <= 2970 || (c < 2974 + ? c == 2972 + : c <= 2975))))))))))) + : (c <= 2980 || (c < 4159 + ? (c < 3412 + ? (c < 3214 + ? (c < 3114 + ? (c < 3077 + ? (c < 2990 + ? (c >= 2984 && c <= 2986) + : (c <= 3001 || c == 3024)) + : (c <= 3084 || (c < 3090 + ? (c >= 3086 && c <= 3088) + : c <= 3112))) + : (c <= 3129 || (c < 3168 + ? (c < 3160 + ? c == 3133 + : (c <= 3162 || c == 3165)) + : (c <= 3169 || (c < 3205 + ? c == 3200 + : c <= 3212))))) + : (c <= 3216 || (c < 3313 + ? (c < 3261 + ? (c < 3242 + ? (c >= 3218 && c <= 3240) + : (c <= 3251 || (c >= 3253 && c <= 3257))) + : (c <= 3261 || (c < 3296 + ? (c >= 3293 && c <= 3294) + : c <= 3297))) + : (c <= 3314 || (c < 3346 + ? (c < 3342 + ? (c >= 3332 && c <= 3340) + : c <= 3344) + : (c <= 3386 || (c < 3406 + ? c == 3389 + : c <= 3406))))))) + : (c <= 3414 || (c < 3724 + ? (c < 3520 + ? (c < 3482 + ? (c < 3450 + ? (c >= 3423 && c <= 3425) + : (c <= 3455 || (c >= 3461 && c <= 3478))) + : (c <= 3505 || (c < 3517 + ? (c >= 3507 && c <= 3515) + : c <= 3517))) + : (c <= 3526 || (c < 3713 + ? (c < 3634 + ? (c >= 3585 && c <= 3632) + : (c <= 3635 || (c >= 3648 && c <= 3654))) + : (c <= 3714 || (c < 3718 + ? c == 3716 + : c <= 3722))))) + : (c <= 3747 || (c < 3804 + ? (c < 3773 + ? (c < 3751 + ? c == 3749 + : (c <= 3760 || (c >= 3762 && c <= 3763))) + : (c <= 3773 || (c < 3782 + ? (c >= 3776 && c <= 3780) + : c <= 3782))) + : (c <= 3807 || (c < 3913 + ? (c < 3904 + ? c == 3840 + : c <= 3911) + : (c <= 3948 || (c < 4096 + ? (c >= 3976 && c <= 3980) + : c <= 4138))))))))) + : (c <= 4159 || (c < 4888 + ? (c < 4688 + ? (c < 4238 + ? (c < 4197 + ? (c < 4186 + ? (c >= 4176 && c <= 4181) + : (c <= 4189 || c == 4193)) + : (c <= 4198 || (c < 4213 + ? (c >= 4206 && c <= 4208) + : c <= 4225))) + : (c <= 4238 || (c < 4304 + ? (c < 4295 + ? (c >= 4256 && c <= 4293) + : (c <= 4295 || c == 4301)) + : (c <= 4346 || (c < 4682 + ? (c >= 4348 && c <= 4680) + : c <= 4685))))) + : (c <= 4694 || (c < 4792 + ? (c < 4746 + ? (c < 4698 + ? c == 4696 + : (c <= 4701 || (c >= 4704 && c <= 4744))) + : (c <= 4749 || (c < 4786 + ? (c >= 4752 && c <= 4784) + : c <= 4789))) + : (c <= 4798 || (c < 4808 + ? (c < 4802 + ? c == 4800 + : c <= 4805) + : (c <= 4822 || (c < 4882 + ? (c >= 4824 && c <= 4880) + : c <= 4885))))))) + : (c <= 4954 || (c < 6016 + ? (c < 5792 + ? (c < 5121 + ? (c < 5024 + ? (c >= 4992 && c <= 5007) + : (c <= 5109 || (c >= 5112 && c <= 5117))) + : (c <= 5740 || (c < 5761 + ? (c >= 5743 && c <= 5759) + : c <= 5786))) + : (c <= 5866 || (c < 5952 + ? (c < 5888 + ? (c >= 5873 && c <= 5880) + : (c <= 5905 || (c >= 5919 && c <= 5937))) + : (c <= 5969 || (c < 5998 + ? (c >= 5984 && c <= 5996) + : c <= 6000))))) + : (c <= 6067 || (c < 6320 + ? (c < 6272 + ? (c < 6108 + ? c == 6103 + : (c <= 6108 || (c >= 6176 && c <= 6264))) + : (c <= 6276 || (c < 6314 + ? (c >= 6279 && c <= 6312) + : c <= 6314))) + : (c <= 6389 || (c < 6512 + ? (c < 6480 + ? (c >= 6400 && c <= 6430) + : c <= 6509) + : (c <= 6516 || (c < 6576 + ? (c >= 6528 && c <= 6571) + : c <= 6601))))))))))))) + : (c <= 6678 || (c < 43259 + ? (c < 8579 + ? (c < 8031 + ? (c < 7401 + ? (c < 7098 + ? (c < 6981 + ? (c < 6823 + ? (c >= 6688 && c <= 6740) + : (c <= 6823 || (c >= 6917 && c <= 6963))) + : (c <= 6988 || (c < 7086 + ? (c >= 7043 && c <= 7072) + : c <= 7087))) + : (c <= 7141 || (c < 7296 + ? (c < 7245 + ? (c >= 7168 && c <= 7203) + : (c <= 7247 || (c >= 7258 && c <= 7293))) + : (c <= 7304 || (c < 7357 + ? (c >= 7312 && c <= 7354) + : c <= 7359))))) + : (c <= 7404 || (c < 7968 + ? (c < 7424 + ? (c < 7413 + ? (c >= 7406 && c <= 7411) + : (c <= 7414 || c == 7418)) + : (c <= 7615 || (c < 7960 + ? (c >= 7680 && c <= 7957) + : c <= 7965))) + : (c <= 8005 || (c < 8025 + ? (c < 8016 + ? (c >= 8008 && c <= 8013) + : c <= 8023) + : (c <= 8025 || (c < 8029 + ? c == 8027 + : c <= 8029))))))) + : (c <= 8061 || (c < 8450 + ? (c < 8150 + ? (c < 8130 + ? (c < 8118 + ? (c >= 8064 && c <= 8116) + : (c <= 8124 || c == 8126)) + : (c <= 8132 || (c < 8144 + ? (c >= 8134 && c <= 8140) + : c <= 8147))) + : (c <= 8155 || (c < 8305 + ? (c < 8178 + ? (c >= 8160 && c <= 8172) + : (c <= 8180 || (c >= 8182 && c <= 8188))) + : (c <= 8305 || (c < 8336 + ? c == 8319 + : c <= 8348))))) + : (c <= 8450 || (c < 8488 + ? (c < 8473 + ? (c < 8458 + ? c == 8455 + : (c <= 8467 || c == 8469)) + : (c <= 8477 || (c < 8486 + ? c == 8484 + : c <= 8486))) + : (c <= 8488 || (c < 8508 + ? (c < 8495 + ? (c >= 8490 && c <= 8493) + : c <= 8505) + : (c <= 8511 || (c < 8526 + ? (c >= 8517 && c <= 8521) + : c <= 8526))))))))) + : (c <= 8580 || (c < 12593 + ? (c < 11712 + ? (c < 11568 + ? (c < 11520 + ? (c < 11499 + ? (c >= 11264 && c <= 11492) + : (c <= 11502 || (c >= 11506 && c <= 11507))) + : (c <= 11557 || (c < 11565 + ? c == 11559 + : c <= 11565))) + : (c <= 11623 || (c < 11688 + ? (c < 11648 + ? c == 11631 + : (c <= 11670 || (c >= 11680 && c <= 11686))) + : (c <= 11694 || (c < 11704 + ? (c >= 11696 && c <= 11702) + : c <= 11710))))) + : (c <= 11718 || (c < 12347 + ? (c < 11823 + ? (c < 11728 + ? (c >= 11720 && c <= 11726) + : (c <= 11734 || (c >= 11736 && c <= 11742))) + : (c <= 11823 || (c < 12337 + ? (c >= 12293 && c <= 12294) + : c <= 12341))) + : (c <= 12348 || (c < 12449 + ? (c < 12445 + ? (c >= 12353 && c <= 12438) + : c <= 12447) + : (c <= 12538 || (c < 12549 + ? (c >= 12540 && c <= 12543) + : c <= 12591))))))) + : (c <= 12686 || (c < 42775 + ? (c < 42192 + ? (c < 19903 + ? (c < 12784 + ? (c >= 12704 && c <= 12735) + : (c <= 12799 || c == 13312)) + : (c <= 19903 || (c < 40959 + ? c == 19968 + : c <= 42124))) + : (c <= 42237 || (c < 42560 + ? (c < 42512 + ? (c >= 42240 && c <= 42508) + : (c <= 42527 || (c >= 42538 && c <= 42539))) + : (c <= 42606 || (c < 42656 + ? (c >= 42623 && c <= 42653) + : c <= 42725))))) + : (c <= 42783 || (c < 43011 + ? (c < 42963 + ? (c < 42891 + ? (c >= 42786 && c <= 42888) + : (c <= 42954 || (c >= 42960 && c <= 42961))) + : (c <= 42963 || (c < 42994 + ? (c >= 42965 && c <= 42969) + : c <= 43009))) + : (c <= 43013 || (c < 43072 + ? (c < 43020 + ? (c >= 43015 && c <= 43018) + : c <= 43042) + : (c <= 43123 || (c < 43250 + ? (c >= 43138 && c <= 43187) + : c <= 43255))))))))))) + : (c <= 43259 || (c < 65313 + ? (c < 43808 + ? (c < 43642 + ? (c < 43488 + ? (c < 43360 + ? (c < 43274 + ? (c >= 43261 && c <= 43262) + : (c <= 43301 || (c >= 43312 && c <= 43334))) + : (c <= 43388 || (c < 43471 + ? (c >= 43396 && c <= 43442) + : c <= 43471))) + : (c <= 43492 || (c < 43584 + ? (c < 43514 + ? (c >= 43494 && c <= 43503) + : (c <= 43518 || (c >= 43520 && c <= 43560))) + : (c <= 43586 || (c < 43616 + ? (c >= 43588 && c <= 43595) + : c <= 43638))))) + : (c <= 43642 || (c < 43739 + ? (c < 43705 + ? (c < 43697 + ? (c >= 43646 && c <= 43695) + : (c <= 43697 || (c >= 43701 && c <= 43702))) + : (c <= 43709 || (c < 43714 + ? c == 43712 + : c <= 43714))) + : (c <= 43741 || (c < 43777 + ? (c < 43762 + ? (c >= 43744 && c <= 43754) + : c <= 43764) + : (c <= 43782 || (c < 43793 + ? (c >= 43785 && c <= 43790) + : c <= 43798))))))) + : (c <= 43814 || (c < 64287 + ? (c < 55216 + ? (c < 43888 + ? (c < 43824 + ? (c >= 43816 && c <= 43822) + : (c <= 43866 || (c >= 43868 && c <= 43881))) + : (c <= 44002 || (c < 55203 + ? c == 44032 + : c <= 55203))) + : (c <= 55238 || (c < 64256 + ? (c < 63744 + ? (c >= 55243 && c <= 55291) + : (c <= 64109 || (c >= 64112 && c <= 64217))) + : (c <= 64262 || (c < 64285 + ? (c >= 64275 && c <= 64279) + : c <= 64285))))) + : (c <= 64296 || (c < 64467 + ? (c < 64320 + ? (c < 64312 + ? (c >= 64298 && c <= 64310) + : (c <= 64316 || c == 64318)) + : (c <= 64321 || (c < 64326 + ? (c >= 64323 && c <= 64324) + : c <= 64433))) + : (c <= 64829 || (c < 65008 + ? (c < 64914 + ? (c >= 64848 && c <= 64911) + : c <= 64967) + : (c <= 65019 || (c < 65142 + ? (c >= 65136 && c <= 65140) + : c <= 65276))))))))) + : (c <= 65338 || (c < 66864 + ? (c < 66176 + ? (c < 65536 + ? (c < 65482 + ? (c < 65382 + ? (c >= 65345 && c <= 65370) + : (c <= 65470 || (c >= 65474 && c <= 65479))) + : (c <= 65487 || (c < 65498 + ? (c >= 65490 && c <= 65495) + : c <= 65500))) + : (c <= 65547 || (c < 65599 + ? (c < 65576 + ? (c >= 65549 && c <= 65574) + : (c <= 65594 || (c >= 65596 && c <= 65597))) + : (c <= 65613 || (c < 65664 + ? (c >= 65616 && c <= 65629) + : c <= 65786))))) + : (c <= 66204 || (c < 66464 + ? (c < 66370 + ? (c < 66304 + ? (c >= 66208 && c <= 66256) + : (c <= 66335 || (c >= 66349 && c <= 66368))) + : (c <= 66377 || (c < 66432 + ? (c >= 66384 && c <= 66421) + : c <= 66461))) + : (c <= 66499 || (c < 66736 + ? (c < 66560 + ? (c >= 66504 && c <= 66511) + : c <= 66717) + : (c <= 66771 || (c < 66816 + ? (c >= 66776 && c <= 66811) + : c <= 66855))))))) + : (c <= 66915 || (c < 67506 + ? (c < 66995 + ? (c < 66964 + ? (c < 66940 + ? (c >= 66928 && c <= 66938) + : (c <= 66954 || (c >= 66956 && c <= 66962))) + : (c <= 66965 || (c < 66979 + ? (c >= 66967 && c <= 66977) + : c <= 66993))) + : (c <= 67001 || (c < 67424 + ? (c < 67072 + ? (c >= 67003 && c <= 67004) + : (c <= 67382 || (c >= 67392 && c <= 67413))) + : (c <= 67431 || (c < 67463 + ? (c >= 67456 && c <= 67461) + : c <= 67504))))) + : (c <= 67514 || (c < 67680 + ? (c < 67639 + ? (c < 67592 + ? (c >= 67584 && c <= 67589) + : (c <= 67592 || (c >= 67594 && c <= 67637))) + : (c <= 67640 || (c < 67647 + ? c == 67644 + : c <= 67669))) + : (c <= 67702 || (c < 67828 + ? (c < 67808 + ? (c >= 67712 && c <= 67742) + : c <= 67826) + : (c <= 67829 || (c < 67872 + ? (c >= 67840 && c <= 67861) + : c <= 67883))))))))))))))); +} + +static bool ts_lex(TSLexer *lexer, TSStateId state) { + START_LEXER(); + eof = lexer->eof(lexer); + switch (state) { + case 0: + if (eof) ADVANCE(35); + if (lookahead == '!') ADVANCE(69); + if (lookahead == '%') ADVANCE(80); + if (lookahead == '&') ADVANCE(71); + if (lookahead == '(') ADVANCE(62); + if (lookahead == ')') ADVANCE(63); + if (lookahead == '*') ADVANCE(67); + if (lookahead == '+') ADVANCE(64); + if (lookahead == ',') ADVANCE(38); + if (lookahead == '-') ADVANCE(66); + if (lookahead == '.') ADVANCE(12); + if (lookahead == '/') ADVANCE(79); + if (lookahead == ':') ADVANCE(37); + if (lookahead == ';') ADVANCE(88); + if (lookahead == '<') ADVANCE(75); + if (lookahead == '=') ADVANCE(87); + if (lookahead == '>') ADVANCE(77); + if (lookahead == '[') ADVANCE(56); + if (lookahead == ']') ADVANCE(57); + if (lookahead == '^') ADVANCE(72); + if (lookahead == 'e') ADVANCE(24); + if (lookahead == 'f') ADVANCE(28); + if (lookahead == 'g') ADVANCE(17); + if (lookahead == 'i') ADVANCE(22); + if (lookahead == 'm') ADVANCE(29); + if (lookahead == 'r') ADVANCE(18); + if (lookahead == 's') ADVANCE(32); + if (lookahead == '{') ADVANCE(82); + if (lookahead == '|') ADVANCE(70); + if (lookahead == '}') ADVANCE(83); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(0) + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(55); + END_STATE(); + case 1: + if (lookahead == '\n') ADVANCE(96); + if (lookahead != 0) ADVANCE(1); + END_STATE(); + case 2: + if (lookahead == '!') ADVANCE(68); + if (lookahead == '&') ADVANCE(71); + if (lookahead == '(') ADVANCE(62); + if (lookahead == '*') ADVANCE(67); + if (lookahead == '+') ADVANCE(64); + if (lookahead == '-') ADVANCE(65); + if (lookahead == '/') ADVANCE(6); + if (lookahead == '^') ADVANCE(72); + if (lookahead == 'e') ADVANCE(47); + if (lookahead == 'f') ADVANCE(49); + if (lookahead == 'g') ADVANCE(41); + if (lookahead == 'i') ADVANCE(45); + if (lookahead == 'r') ADVANCE(42); + if (lookahead == 's') ADVANCE(52); + if (lookahead == '{') ADVANCE(82); + if (lookahead == '|') ADVANCE(70); + if (lookahead == '}') ADVANCE(83); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(2) + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(55); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(54); + END_STATE(); + case 3: + if (lookahead == '!') ADVANCE(68); + if (lookahead == '&') ADVANCE(71); + if (lookahead == '(') ADVANCE(62); + if (lookahead == '*') ADVANCE(67); + if (lookahead == '+') ADVANCE(64); + if (lookahead == '-') ADVANCE(65); + if (lookahead == '/') ADVANCE(6); + if (lookahead == '^') ADVANCE(72); + if (lookahead == 'f') ADVANCE(49); + if (lookahead == 'g') ADVANCE(41); + if (lookahead == 'i') ADVANCE(45); + if (lookahead == 'r') ADVANCE(42); + if (lookahead == 's') ADVANCE(52); + if (lookahead == '{') ADVANCE(82); + if (lookahead == '|') ADVANCE(70); + if (lookahead == '}') ADVANCE(83); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(3) + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(55); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(54); + END_STATE(); + case 4: + if (lookahead == '!') ADVANCE(68); + if (lookahead == '&') ADVANCE(71); + if (lookahead == '(') ADVANCE(62); + if (lookahead == '*') ADVANCE(67); + if (lookahead == '+') ADVANCE(64); + if (lookahead == '-') ADVANCE(65); + if (lookahead == '/') ADVANCE(6); + if (lookahead == '^') ADVANCE(72); + if (lookahead == '|') ADVANCE(70); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(4) + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(55); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(54); + END_STATE(); + case 5: + if (lookahead == '!') ADVANCE(13); + if (lookahead == '%') ADVANCE(80); + if (lookahead == '&') ADVANCE(71); + if (lookahead == ')') ADVANCE(63); + if (lookahead == '*') ADVANCE(67); + if (lookahead == '+') ADVANCE(64); + if (lookahead == ',') ADVANCE(38); + if (lookahead == '-') ADVANCE(65); + if (lookahead == '.') ADVANCE(12); + if (lookahead == '/') ADVANCE(79); + if (lookahead == ';') ADVANCE(88); + if (lookahead == '<') ADVANCE(75); + if (lookahead == '=') ADVANCE(87); + if (lookahead == '>') ADVANCE(77); + if (lookahead == '[') ADVANCE(56); + if (lookahead == ']') ADVANCE(57); + if (lookahead == '^') ADVANCE(72); + if (lookahead == '{') ADVANCE(82); + if (lookahead == '|') ADVANCE(70); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(5) + if (sym_identifier_character_set_1(lookahead)) ADVANCE(54); + END_STATE(); + case 6: + if (lookahead == '*') ADVANCE(8); + if (lookahead == '/') ADVANCE(1); + END_STATE(); + case 7: + if (lookahead == '*') ADVANCE(7); + if (lookahead == '/') ADVANCE(97); + if (lookahead != 0) ADVANCE(8); + END_STATE(); + case 8: + if (lookahead == '*') ADVANCE(7); + if (lookahead != 0) ADVANCE(8); + END_STATE(); + case 9: + if (lookahead == ',') ADVANCE(38); + if (lookahead == '-') ADVANCE(14); + if (lookahead == '/') ADVANCE(6); + if (lookahead == ';') ADVANCE(88); + if (lookahead == '=') ADVANCE(86); + if (lookahead == 'i') ADVANCE(26); + if (lookahead == '{') ADVANCE(82); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(9) + END_STATE(); + case 10: + if (lookahead == ',') ADVANCE(38); + if (lookahead == '-') ADVANCE(14); + if (lookahead == '/') ADVANCE(6); + if (lookahead == 'g') ADVANCE(41); + if (lookahead == 'r') ADVANCE(42); + if (lookahead == 's') ADVANCE(52); + if (lookahead == '{') ADVANCE(82); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(10) + if (sym_identifier_character_set_1(lookahead)) ADVANCE(54); + END_STATE(); + case 11: + if (lookahead == '-') ADVANCE(14); + if (lookahead == '/') ADVANCE(6); + if (lookahead == 'g') ADVANCE(41); + if (lookahead == 's') ADVANCE(52); + if (lookahead == '{') ADVANCE(82); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(11) + if (sym_identifier_character_set_1(lookahead)) ADVANCE(54); + END_STATE(); + case 12: + if (lookahead == '.') ADVANCE(81); + END_STATE(); + case 13: + if (lookahead == '=') ADVANCE(74); + END_STATE(); + case 14: + if (lookahead == '>') ADVANCE(39); + END_STATE(); + case 15: + if (lookahead == 'a') ADVANCE(33); + END_STATE(); + case 16: + if (lookahead == 'd') ADVANCE(34); + END_STATE(); + case 17: + if (lookahead == 'e') ADVANCE(27); + END_STATE(); + case 18: + if (lookahead == 'e') ADVANCE(23); + END_STATE(); + case 19: + if (lookahead == 'e') ADVANCE(91); + END_STATE(); + case 20: + if (lookahead == 'e') ADVANCE(58); + END_STATE(); + case 21: + if (lookahead == 'e') ADVANCE(36); + END_STATE(); + case 22: + if (lookahead == 'f') ADVANCE(89); + if (lookahead == 'n') ADVANCE(95); + END_STATE(); + case 23: + if (lookahead == 'g') ADVANCE(84); + END_STATE(); + case 24: + if (lookahead == 'l') ADVANCE(31); + END_STATE(); + case 25: + if (lookahead == 'l') ADVANCE(21); + END_STATE(); + case 26: + if (lookahead == 'n') ADVANCE(95); + END_STATE(); + case 27: + if (lookahead == 'n') ADVANCE(60); + END_STATE(); + case 28: + if (lookahead == 'o') ADVANCE(30); + END_STATE(); + case 29: + if (lookahead == 'o') ADVANCE(16); + END_STATE(); + case 30: + if (lookahead == 'r') ADVANCE(93); + END_STATE(); + case 31: + if (lookahead == 's') ADVANCE(19); + END_STATE(); + case 32: + if (lookahead == 't') ADVANCE(15); + END_STATE(); + case 33: + if (lookahead == 't') ADVANCE(20); + END_STATE(); + case 34: + if (lookahead == 'u') ADVANCE(25); + END_STATE(); + case 35: + ACCEPT_TOKEN(ts_builtin_sym_end); + END_STATE(); + case 36: + ACCEPT_TOKEN(anon_sym_module); + END_STATE(); + case 37: + ACCEPT_TOKEN(anon_sym_COLON); + END_STATE(); + case 38: + ACCEPT_TOKEN(anon_sym_COMMA); + END_STATE(); + case 39: + ACCEPT_TOKEN(anon_sym_DASH_GT); + END_STATE(); + case 40: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(53); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(54); + END_STATE(); + case 41: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(48); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + END_STATE(); + case 42: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(46); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + END_STATE(); + case 43: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(59); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + END_STATE(); + case 44: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(92); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + END_STATE(); + case 45: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'f') ADVANCE(90); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + END_STATE(); + case 46: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'g') ADVANCE(85); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + END_STATE(); + case 47: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'l') ADVANCE(51); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + END_STATE(); + case 48: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'n') ADVANCE(61); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + END_STATE(); + case 49: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'o') ADVANCE(50); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + END_STATE(); + case 50: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'r') ADVANCE(94); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + END_STATE(); + case 51: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 's') ADVANCE(44); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + END_STATE(); + case 52: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 't') ADVANCE(40); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + END_STATE(); + case 53: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 't') ADVANCE(43); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + END_STATE(); + case 54: + ACCEPT_TOKEN(sym_identifier); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + END_STATE(); + case 55: + ACCEPT_TOKEN(sym_number); + if (('0' <= lookahead && lookahead <= '9') || + lookahead == '_') ADVANCE(55); + END_STATE(); + case 56: + ACCEPT_TOKEN(anon_sym_LBRACK); + END_STATE(); + case 57: + ACCEPT_TOKEN(anon_sym_RBRACK); + END_STATE(); + case 58: + ACCEPT_TOKEN(anon_sym_state); + END_STATE(); + case 59: + ACCEPT_TOKEN(anon_sym_state); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + END_STATE(); + case 60: + ACCEPT_TOKEN(anon_sym_gen); + END_STATE(); + case 61: + ACCEPT_TOKEN(anon_sym_gen); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + END_STATE(); + case 62: + ACCEPT_TOKEN(anon_sym_LPAREN); + END_STATE(); + case 63: + ACCEPT_TOKEN(anon_sym_RPAREN); + END_STATE(); + case 64: + ACCEPT_TOKEN(anon_sym_PLUS); + END_STATE(); + case 65: + ACCEPT_TOKEN(anon_sym_DASH); + END_STATE(); + case 66: + ACCEPT_TOKEN(anon_sym_DASH); + if (lookahead == '>') ADVANCE(39); + END_STATE(); + case 67: + ACCEPT_TOKEN(anon_sym_STAR); + END_STATE(); + case 68: + ACCEPT_TOKEN(anon_sym_BANG); + END_STATE(); + case 69: + ACCEPT_TOKEN(anon_sym_BANG); + if (lookahead == '=') ADVANCE(74); + END_STATE(); + case 70: + ACCEPT_TOKEN(anon_sym_PIPE); + END_STATE(); + case 71: + ACCEPT_TOKEN(anon_sym_AMP); + END_STATE(); + case 72: + ACCEPT_TOKEN(anon_sym_CARET); + END_STATE(); + case 73: + ACCEPT_TOKEN(anon_sym_EQ_EQ); + END_STATE(); + case 74: + ACCEPT_TOKEN(anon_sym_BANG_EQ); + END_STATE(); + case 75: + ACCEPT_TOKEN(anon_sym_LT); + if (lookahead == '=') ADVANCE(76); + END_STATE(); + case 76: + ACCEPT_TOKEN(anon_sym_LT_EQ); + END_STATE(); + case 77: + ACCEPT_TOKEN(anon_sym_GT); + if (lookahead == '=') ADVANCE(78); + END_STATE(); + case 78: + ACCEPT_TOKEN(anon_sym_GT_EQ); + END_STATE(); + case 79: + ACCEPT_TOKEN(anon_sym_SLASH); + if (lookahead == '*') ADVANCE(8); + if (lookahead == '/') ADVANCE(1); + END_STATE(); + case 80: + ACCEPT_TOKEN(anon_sym_PERCENT); + END_STATE(); + case 81: + ACCEPT_TOKEN(anon_sym_DOT_DOT); + END_STATE(); + case 82: + ACCEPT_TOKEN(anon_sym_LBRACE); + END_STATE(); + case 83: + ACCEPT_TOKEN(anon_sym_RBRACE); + END_STATE(); + case 84: + ACCEPT_TOKEN(anon_sym_reg); + END_STATE(); + case 85: + ACCEPT_TOKEN(anon_sym_reg); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + END_STATE(); + case 86: + ACCEPT_TOKEN(anon_sym_EQ); + END_STATE(); + case 87: + ACCEPT_TOKEN(anon_sym_EQ); + if (lookahead == '=') ADVANCE(73); + END_STATE(); + case 88: + ACCEPT_TOKEN(anon_sym_SEMI); + END_STATE(); + case 89: + ACCEPT_TOKEN(anon_sym_if); + END_STATE(); + case 90: + ACCEPT_TOKEN(anon_sym_if); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + END_STATE(); + case 91: + ACCEPT_TOKEN(anon_sym_else); + END_STATE(); + case 92: + ACCEPT_TOKEN(anon_sym_else); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + END_STATE(); + case 93: + ACCEPT_TOKEN(anon_sym_for); + END_STATE(); + case 94: + ACCEPT_TOKEN(anon_sym_for); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + END_STATE(); + case 95: + ACCEPT_TOKEN(anon_sym_in); + END_STATE(); + case 96: + ACCEPT_TOKEN(sym_single_line_comment); + END_STATE(); + case 97: + ACCEPT_TOKEN(sym_multi_line_comment); + END_STATE(); + default: + return false; + } +} + +static const TSLexMode ts_lex_modes[STATE_COUNT] = { + [0] = {.lex_state = 0}, + [1] = {.lex_state = 0}, + [2] = {.lex_state = 3}, + [3] = {.lex_state = 3}, + [4] = {.lex_state = 3}, + [5] = {.lex_state = 3}, + [6] = {.lex_state = 3}, + [7] = {.lex_state = 3}, + [8] = {.lex_state = 3}, + [9] = {.lex_state = 5}, + [10] = {.lex_state = 5}, + [11] = {.lex_state = 5}, + [12] = {.lex_state = 5}, + [13] = {.lex_state = 5}, + [14] = {.lex_state = 5}, + [15] = {.lex_state = 5}, + [16] = {.lex_state = 5}, + [17] = {.lex_state = 5}, + [18] = {.lex_state = 5}, + [19] = {.lex_state = 5}, + [20] = {.lex_state = 5}, + [21] = {.lex_state = 5}, + [22] = {.lex_state = 5}, + [23] = {.lex_state = 2}, + [24] = {.lex_state = 2}, + [25] = {.lex_state = 5}, + [26] = {.lex_state = 2}, + [27] = {.lex_state = 3}, + [28] = {.lex_state = 3}, + [29] = {.lex_state = 3}, + [30] = {.lex_state = 3}, + [31] = {.lex_state = 3}, + [32] = {.lex_state = 3}, + [33] = {.lex_state = 3}, + [34] = {.lex_state = 4}, + [35] = {.lex_state = 5}, + [36] = {.lex_state = 4}, + [37] = {.lex_state = 4}, + [38] = {.lex_state = 5}, + [39] = {.lex_state = 4}, + [40] = {.lex_state = 4}, + [41] = {.lex_state = 4}, + [42] = {.lex_state = 5}, + [43] = {.lex_state = 5}, + [44] = {.lex_state = 4}, + [45] = {.lex_state = 4}, + [46] = {.lex_state = 5}, + [47] = {.lex_state = 4}, + [48] = {.lex_state = 5}, + [49] = {.lex_state = 5}, + [50] = {.lex_state = 4}, + [51] = {.lex_state = 4}, + [52] = {.lex_state = 4}, + [53] = {.lex_state = 4}, + [54] = {.lex_state = 10}, + [55] = {.lex_state = 10}, + [56] = {.lex_state = 10}, + [57] = {.lex_state = 11}, + [58] = {.lex_state = 11}, + [59] = {.lex_state = 11}, + [60] = {.lex_state = 9}, + [61] = {.lex_state = 11}, + [62] = {.lex_state = 9}, + [63] = {.lex_state = 11}, + [64] = {.lex_state = 11}, + [65] = {.lex_state = 10}, + [66] = {.lex_state = 0}, + [67] = {.lex_state = 0}, + [68] = {.lex_state = 0}, + [69] = {.lex_state = 0}, + [70] = {.lex_state = 0}, + [71] = {.lex_state = 0}, + [72] = {.lex_state = 0}, + [73] = {.lex_state = 0}, + [74] = {.lex_state = 0}, + [75] = {.lex_state = 10}, + [76] = {.lex_state = 0}, + [77] = {.lex_state = 10}, + [78] = {.lex_state = 0}, + [79] = {.lex_state = 0}, + [80] = {.lex_state = 5}, + [81] = {.lex_state = 10}, + [82] = {.lex_state = 5}, + [83] = {.lex_state = 0}, + [84] = {.lex_state = 10}, + [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 = 5}, + [93] = {.lex_state = 0}, + [94] = {.lex_state = 0}, + [95] = {.lex_state = 0}, + [96] = {.lex_state = 0}, + [97] = {.lex_state = 0}, + [98] = {.lex_state = 0}, + [99] = {.lex_state = 5}, + [100] = {.lex_state = 5}, + [101] = {.lex_state = 5}, + [102] = {.lex_state = 0}, + [103] = {.lex_state = 0}, +}; + +static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { + [0] = { + [ts_builtin_sym_end] = ACTIONS(1), + [anon_sym_module] = ACTIONS(1), + [anon_sym_COLON] = ACTIONS(1), + [anon_sym_COMMA] = ACTIONS(1), + [anon_sym_DASH_GT] = ACTIONS(1), + [sym_number] = ACTIONS(1), + [anon_sym_LBRACK] = ACTIONS(1), + [anon_sym_RBRACK] = ACTIONS(1), + [anon_sym_state] = ACTIONS(1), + [anon_sym_gen] = ACTIONS(1), + [anon_sym_LPAREN] = ACTIONS(1), + [anon_sym_RPAREN] = ACTIONS(1), + [anon_sym_PLUS] = ACTIONS(1), + [anon_sym_DASH] = ACTIONS(1), + [anon_sym_STAR] = ACTIONS(1), + [anon_sym_BANG] = ACTIONS(1), + [anon_sym_PIPE] = ACTIONS(1), + [anon_sym_AMP] = ACTIONS(1), + [anon_sym_CARET] = ACTIONS(1), + [anon_sym_EQ_EQ] = ACTIONS(1), + [anon_sym_BANG_EQ] = ACTIONS(1), + [anon_sym_LT] = ACTIONS(1), + [anon_sym_LT_EQ] = ACTIONS(1), + [anon_sym_GT] = ACTIONS(1), + [anon_sym_GT_EQ] = ACTIONS(1), + [anon_sym_SLASH] = ACTIONS(1), + [anon_sym_PERCENT] = ACTIONS(1), + [anon_sym_DOT_DOT] = ACTIONS(1), + [anon_sym_LBRACE] = ACTIONS(1), + [anon_sym_RBRACE] = ACTIONS(1), + [anon_sym_reg] = ACTIONS(1), + [anon_sym_EQ] = ACTIONS(1), + [anon_sym_SEMI] = ACTIONS(1), + [anon_sym_if] = ACTIONS(1), + [anon_sym_else] = ACTIONS(1), + [anon_sym_for] = ACTIONS(1), + [anon_sym_in] = ACTIONS(1), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), + }, + [1] = { + [sym_source_file] = STATE(103), + [sym_module] = STATE(70), + [aux_sym_source_file_repeat1] = STATE(70), + [ts_builtin_sym_end] = ACTIONS(5), + [anon_sym_module] = ACTIONS(7), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), + }, + [2] = { + [sym_type] = STATE(99), + [sym_assignable_expr] = STATE(25), + [sym_declaration] = STATE(68), + [sym_paren_expr] = STATE(38), + [sym_unary_op] = STATE(38), + [sym_binary_op] = STATE(38), + [sym__expression] = STATE(38), + [sym_block] = STATE(7), + [sym__assign_left_side] = STATE(97), + [sym_decl_assign_statement] = STATE(7), + [sym_decl_statement] = STATE(7), + [sym_expression_statement] = STATE(7), + [sym_if_statement] = STATE(7), + [sym_for_statement] = STATE(7), + [sym__statement] = STATE(7), + [aux_sym_block_repeat1] = STATE(7), + [aux_sym__assign_left_side_repeat1] = STATE(56), + [sym_identifier] = ACTIONS(9), + [sym_number] = ACTIONS(11), + [anon_sym_state] = ACTIONS(13), + [anon_sym_gen] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_PLUS] = ACTIONS(17), + [anon_sym_DASH] = ACTIONS(17), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_BANG] = ACTIONS(17), + [anon_sym_PIPE] = ACTIONS(17), + [anon_sym_AMP] = ACTIONS(17), + [anon_sym_CARET] = ACTIONS(17), + [anon_sym_LBRACE] = ACTIONS(19), + [anon_sym_RBRACE] = ACTIONS(21), + [anon_sym_reg] = ACTIONS(23), + [anon_sym_if] = ACTIONS(25), + [anon_sym_for] = ACTIONS(27), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), + }, + [3] = { + [sym_type] = STATE(99), + [sym_assignable_expr] = STATE(25), + [sym_declaration] = STATE(68), + [sym_paren_expr] = STATE(38), + [sym_unary_op] = STATE(38), + [sym_binary_op] = STATE(38), + [sym__expression] = STATE(38), + [sym_block] = STATE(2), + [sym__assign_left_side] = STATE(97), + [sym_decl_assign_statement] = STATE(2), + [sym_decl_statement] = STATE(2), + [sym_expression_statement] = STATE(2), + [sym_if_statement] = STATE(2), + [sym_for_statement] = STATE(2), + [sym__statement] = STATE(2), + [aux_sym_block_repeat1] = STATE(2), + [aux_sym__assign_left_side_repeat1] = STATE(56), + [sym_identifier] = ACTIONS(9), + [sym_number] = ACTIONS(11), + [anon_sym_state] = ACTIONS(13), + [anon_sym_gen] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_PLUS] = ACTIONS(17), + [anon_sym_DASH] = ACTIONS(17), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_BANG] = ACTIONS(17), + [anon_sym_PIPE] = ACTIONS(17), + [anon_sym_AMP] = ACTIONS(17), + [anon_sym_CARET] = ACTIONS(17), + [anon_sym_LBRACE] = ACTIONS(19), + [anon_sym_RBRACE] = ACTIONS(29), + [anon_sym_reg] = ACTIONS(23), + [anon_sym_if] = ACTIONS(25), + [anon_sym_for] = ACTIONS(27), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), + }, + [4] = { + [sym_type] = STATE(99), + [sym_assignable_expr] = STATE(25), + [sym_declaration] = STATE(68), + [sym_paren_expr] = STATE(38), + [sym_unary_op] = STATE(38), + [sym_binary_op] = STATE(38), + [sym__expression] = STATE(38), + [sym_block] = STATE(7), + [sym__assign_left_side] = STATE(97), + [sym_decl_assign_statement] = STATE(7), + [sym_decl_statement] = STATE(7), + [sym_expression_statement] = STATE(7), + [sym_if_statement] = STATE(7), + [sym_for_statement] = STATE(7), + [sym__statement] = STATE(7), + [aux_sym_block_repeat1] = STATE(7), + [aux_sym__assign_left_side_repeat1] = STATE(56), + [sym_identifier] = ACTIONS(9), + [sym_number] = ACTIONS(11), + [anon_sym_state] = ACTIONS(13), + [anon_sym_gen] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_PLUS] = ACTIONS(17), + [anon_sym_DASH] = ACTIONS(17), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_BANG] = ACTIONS(17), + [anon_sym_PIPE] = ACTIONS(17), + [anon_sym_AMP] = ACTIONS(17), + [anon_sym_CARET] = ACTIONS(17), + [anon_sym_LBRACE] = ACTIONS(19), + [anon_sym_RBRACE] = ACTIONS(31), + [anon_sym_reg] = ACTIONS(23), + [anon_sym_if] = ACTIONS(25), + [anon_sym_for] = ACTIONS(27), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), + }, + [5] = { + [sym_type] = STATE(99), + [sym_assignable_expr] = STATE(25), + [sym_declaration] = STATE(68), + [sym_paren_expr] = STATE(38), + [sym_unary_op] = STATE(38), + [sym_binary_op] = STATE(38), + [sym__expression] = STATE(38), + [sym_block] = STATE(4), + [sym__assign_left_side] = STATE(97), + [sym_decl_assign_statement] = STATE(4), + [sym_decl_statement] = STATE(4), + [sym_expression_statement] = STATE(4), + [sym_if_statement] = STATE(4), + [sym_for_statement] = STATE(4), + [sym__statement] = STATE(4), + [aux_sym_block_repeat1] = STATE(4), + [aux_sym__assign_left_side_repeat1] = STATE(56), + [sym_identifier] = ACTIONS(9), + [sym_number] = ACTIONS(11), + [anon_sym_state] = ACTIONS(13), + [anon_sym_gen] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_PLUS] = ACTIONS(17), + [anon_sym_DASH] = ACTIONS(17), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_BANG] = ACTIONS(17), + [anon_sym_PIPE] = ACTIONS(17), + [anon_sym_AMP] = ACTIONS(17), + [anon_sym_CARET] = ACTIONS(17), + [anon_sym_LBRACE] = ACTIONS(19), + [anon_sym_RBRACE] = ACTIONS(33), + [anon_sym_reg] = ACTIONS(23), + [anon_sym_if] = ACTIONS(25), + [anon_sym_for] = ACTIONS(27), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), + }, + [6] = { + [sym_type] = STATE(99), + [sym_assignable_expr] = STATE(25), + [sym_declaration] = STATE(68), + [sym_paren_expr] = STATE(38), + [sym_unary_op] = STATE(38), + [sym_binary_op] = STATE(38), + [sym__expression] = STATE(38), + [sym_block] = STATE(7), + [sym__assign_left_side] = STATE(97), + [sym_decl_assign_statement] = STATE(7), + [sym_decl_statement] = STATE(7), + [sym_expression_statement] = STATE(7), + [sym_if_statement] = STATE(7), + [sym_for_statement] = STATE(7), + [sym__statement] = STATE(7), + [aux_sym_block_repeat1] = STATE(7), + [aux_sym__assign_left_side_repeat1] = STATE(56), + [sym_identifier] = ACTIONS(9), + [sym_number] = ACTIONS(11), + [anon_sym_state] = ACTIONS(13), + [anon_sym_gen] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_PLUS] = ACTIONS(17), + [anon_sym_DASH] = ACTIONS(17), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_BANG] = ACTIONS(17), + [anon_sym_PIPE] = ACTIONS(17), + [anon_sym_AMP] = ACTIONS(17), + [anon_sym_CARET] = ACTIONS(17), + [anon_sym_LBRACE] = ACTIONS(19), + [anon_sym_RBRACE] = ACTIONS(35), + [anon_sym_reg] = ACTIONS(23), + [anon_sym_if] = ACTIONS(25), + [anon_sym_for] = ACTIONS(27), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), + }, + [7] = { + [sym_type] = STATE(99), + [sym_assignable_expr] = STATE(25), + [sym_declaration] = STATE(68), + [sym_paren_expr] = STATE(38), + [sym_unary_op] = STATE(38), + [sym_binary_op] = STATE(38), + [sym__expression] = STATE(38), + [sym_block] = STATE(7), + [sym__assign_left_side] = STATE(97), + [sym_decl_assign_statement] = STATE(7), + [sym_decl_statement] = STATE(7), + [sym_expression_statement] = STATE(7), + [sym_if_statement] = STATE(7), + [sym_for_statement] = STATE(7), + [sym__statement] = STATE(7), + [aux_sym_block_repeat1] = STATE(7), + [aux_sym__assign_left_side_repeat1] = STATE(56), + [sym_identifier] = ACTIONS(37), + [sym_number] = ACTIONS(40), + [anon_sym_state] = ACTIONS(43), + [anon_sym_gen] = ACTIONS(43), + [anon_sym_LPAREN] = ACTIONS(46), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_STAR] = ACTIONS(49), + [anon_sym_BANG] = ACTIONS(49), + [anon_sym_PIPE] = ACTIONS(49), + [anon_sym_AMP] = ACTIONS(49), + [anon_sym_CARET] = ACTIONS(49), + [anon_sym_LBRACE] = ACTIONS(52), + [anon_sym_RBRACE] = ACTIONS(55), + [anon_sym_reg] = ACTIONS(57), + [anon_sym_if] = ACTIONS(60), + [anon_sym_for] = ACTIONS(63), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), + }, + [8] = { + [sym_type] = STATE(99), + [sym_assignable_expr] = STATE(25), + [sym_declaration] = STATE(68), + [sym_paren_expr] = STATE(38), + [sym_unary_op] = STATE(38), + [sym_binary_op] = STATE(38), + [sym__expression] = STATE(38), + [sym_block] = STATE(6), + [sym__assign_left_side] = STATE(97), + [sym_decl_assign_statement] = STATE(6), + [sym_decl_statement] = STATE(6), + [sym_expression_statement] = STATE(6), + [sym_if_statement] = STATE(6), + [sym_for_statement] = STATE(6), + [sym__statement] = STATE(6), + [aux_sym_block_repeat1] = STATE(6), + [aux_sym__assign_left_side_repeat1] = STATE(56), + [sym_identifier] = ACTIONS(9), + [sym_number] = ACTIONS(11), + [anon_sym_state] = ACTIONS(13), + [anon_sym_gen] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_PLUS] = ACTIONS(17), + [anon_sym_DASH] = ACTIONS(17), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_BANG] = ACTIONS(17), + [anon_sym_PIPE] = ACTIONS(17), + [anon_sym_AMP] = ACTIONS(17), + [anon_sym_CARET] = ACTIONS(17), + [anon_sym_LBRACE] = ACTIONS(19), + [anon_sym_RBRACE] = ACTIONS(66), + [anon_sym_reg] = ACTIONS(23), + [anon_sym_if] = ACTIONS(25), + [anon_sym_for] = ACTIONS(27), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), + }, +}; + +static const uint16_t ts_small_parse_table[] = { + [0] = 5, + ACTIONS(70), 1, + anon_sym_LBRACK, + STATE(9), 1, + aux_sym_type_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(73), 4, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + anon_sym_EQ, + ACTIONS(68), 18, + anon_sym_COMMA, + sym_identifier, + anon_sym_RBRACK, + anon_sym_RPAREN, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_DOT_DOT, anon_sym_LBRACE, - STATE(25), 1, - sym_decl, - STATE(43), 1, - sym_block, - STATE(47), 1, - sym_type, - [137] = 5, - ACTIONS(27), 1, + anon_sym_SEMI, + [37] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(77), 4, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + anon_sym_EQ, + ACTIONS(75), 19, + anon_sym_COMMA, sym_identifier, - ACTIONS(29), 1, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RPAREN, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_DOT_DOT, anon_sym_LBRACE, - STATE(16), 1, - sym_decl, - STATE(45), 1, - sym_block, - STATE(47), 1, - sym_type, - [153] = 1, - ACTIONS(31), 4, + anon_sym_SEMI, + [69] = 5, + ACTIONS(79), 1, + anon_sym_LBRACK, + STATE(12), 1, + aux_sym_type_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(83), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(81), 16, + anon_sym_RBRACK, + anon_sym_RPAREN, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_DOT_DOT, + anon_sym_LBRACE, + anon_sym_SEMI, + [103] = 5, + ACTIONS(79), 1, + anon_sym_LBRACK, + STATE(9), 1, + aux_sym_type_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(87), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(85), 16, + anon_sym_RBRACK, + anon_sym_RPAREN, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_DOT_DOT, + anon_sym_LBRACE, + anon_sym_SEMI, + [137] = 6, + ACTIONS(79), 1, + anon_sym_LBRACK, + ACTIONS(89), 1, + sym_identifier, + STATE(14), 1, + aux_sym_type_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(83), 4, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + anon_sym_EQ, + ACTIONS(81), 13, + anon_sym_COMMA, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_SEMI, + [172] = 6, + ACTIONS(79), 1, + anon_sym_LBRACK, + ACTIONS(91), 1, + sym_identifier, + STATE(9), 1, + aux_sym_type_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(87), 4, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + anon_sym_EQ, + ACTIONS(85), 13, + anon_sym_COMMA, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_SEMI, + [207] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(95), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(93), 16, + anon_sym_RBRACK, + anon_sym_RPAREN, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_DOT_DOT, + anon_sym_LBRACE, + anon_sym_SEMI, + [235] = 8, + ACTIONS(101), 1, + anon_sym_PIPE, + ACTIONS(103), 1, + anon_sym_CARET, + ACTIONS(105), 1, + anon_sym_SLASH, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(95), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(97), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(99), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(93), 10, + anon_sym_RBRACK, + anon_sym_RPAREN, + anon_sym_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_LBRACE, + anon_sym_SEMI, + [273] = 7, + ACTIONS(103), 1, + anon_sym_CARET, + ACTIONS(105), 1, + anon_sym_SLASH, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(95), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(97), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(99), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(93), 11, + anon_sym_RBRACK, + anon_sym_RPAREN, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_LBRACE, + anon_sym_SEMI, + [309] = 5, + ACTIONS(105), 1, + anon_sym_SLASH, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(95), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(99), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(93), 14, + anon_sym_RBRACK, + anon_sym_RPAREN, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_LBRACE, + anon_sym_SEMI, + [341] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(109), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(107), 16, + anon_sym_RBRACK, + anon_sym_RPAREN, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_DOT_DOT, + anon_sym_LBRACE, + anon_sym_SEMI, + [369] = 6, + ACTIONS(105), 1, + anon_sym_SLASH, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(95), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(97), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(99), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(93), 12, + anon_sym_RBRACK, + anon_sym_RPAREN, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_LBRACE, + anon_sym_SEMI, + [403] = 9, + ACTIONS(101), 1, + anon_sym_PIPE, + ACTIONS(103), 1, + anon_sym_CARET, + ACTIONS(105), 1, + anon_sym_SLASH, + ACTIONS(111), 1, + anon_sym_AMP, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(95), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(97), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(99), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(93), 9, + anon_sym_RBRACK, + anon_sym_RPAREN, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_LBRACE, + anon_sym_SEMI, + [443] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(115), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(113), 16, + anon_sym_RBRACK, + anon_sym_RPAREN, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_DOT_DOT, + anon_sym_LBRACE, + anon_sym_SEMI, + [471] = 4, + ACTIONS(121), 1, + anon_sym_else, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(117), 6, sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_if, + anon_sym_for, + ACTIONS(119), 11, sym_number, + anon_sym_LPAREN, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_LBRACE, anon_sym_RBRACE, - [160] = 4, - ACTIONS(29), 1, + [500] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(123), 7, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_if, + anon_sym_else, + anon_sym_for, + ACTIONS(125), 11, + sym_number, + anon_sym_LPAREN, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_LBRACE, - ACTIONS(33), 1, + anon_sym_RBRACE, + [527] = 6, + ACTIONS(127), 1, anon_sym_COMMA, - STATE(24), 1, - aux_sym_module_repeat1, - STATE(35), 1, - sym_block, - [173] = 4, - ACTIONS(27), 1, + ACTIONS(133), 1, + anon_sym_EQ, + STATE(83), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(131), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(129), 12, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_SEMI, + [560] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(135), 7, sym_identifier, - ACTIONS(35), 1, - anon_sym_DASH_GT, - STATE(28), 1, - sym_decl, - STATE(47), 1, - sym_type, - [186] = 3, - ACTIONS(5), 1, - anon_sym_module, - ACTIONS(37), 1, - ts_builtin_sym_end, - STATE(21), 2, - sym_module, - aux_sym_source_file_repeat1, - [197] = 1, - ACTIONS(39), 4, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_if, + anon_sym_else, + anon_sym_for, + ACTIONS(137), 11, + sym_number, + anon_sym_LPAREN, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LBRACE, + anon_sym_RBRACE, + [587] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(139), 6, sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_if, + anon_sym_for, + ACTIONS(141), 11, sym_number, + anon_sym_LPAREN, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_LBRACE, anon_sym_RBRACE, - [204] = 1, - ACTIONS(41), 4, + [613] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(143), 6, sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_if, + anon_sym_for, + ACTIONS(145), 11, sym_number, + anon_sym_LPAREN, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_LBRACE, anon_sym_RBRACE, - [211] = 4, - ACTIONS(29), 1, + [639] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(147), 6, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_if, + anon_sym_for, + ACTIONS(149), 11, + sym_number, + anon_sym_LPAREN, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_LBRACE, - ACTIONS(33), 1, - anon_sym_COMMA, - STATE(11), 1, - aux_sym_module_repeat1, - STATE(43), 1, - sym_block, - [224] = 1, - ACTIONS(43), 4, + anon_sym_RBRACE, + [665] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(151), 6, sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_if, + anon_sym_for, + ACTIONS(153), 11, sym_number, + anon_sym_LPAREN, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_LBRACE, anon_sym_RBRACE, - [231] = 1, - ACTIONS(45), 4, - anon_sym_LBRACK, + [691] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(155), 6, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_if, + anon_sym_for, + ACTIONS(157), 11, + sym_number, + anon_sym_LPAREN, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LBRACE, + anon_sym_RBRACE, + [717] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(135), 6, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_if, + anon_sym_for, + ACTIONS(137), 11, + sym_number, + anon_sym_LPAREN, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LBRACE, + anon_sym_RBRACE, + [743] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(123), 6, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_if, + anon_sym_for, + ACTIONS(125), 11, + sym_number, + anon_sym_LPAREN, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LBRACE, + anon_sym_RBRACE, + [769] = 7, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(159), 1, + sym_identifier, + ACTIONS(161), 1, + sym_number, + STATE(87), 1, + sym_range, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(46), 5, + sym_assignable_expr, + sym_paren_expr, + sym_unary_op, + sym_binary_op, + sym__expression, + ACTIONS(17), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [802] = 11, + ACTIONS(101), 1, + anon_sym_PIPE, + ACTIONS(103), 1, + anon_sym_CARET, + ACTIONS(105), 1, + anon_sym_SLASH, + ACTIONS(111), 1, + anon_sym_AMP, + ACTIONS(167), 1, + anon_sym_LBRACE, + STATE(23), 1, + sym_block, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(97), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(99), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(165), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(163), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [843] = 6, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(159), 1, + sym_identifier, + ACTIONS(169), 1, + sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(35), 5, + sym_assignable_expr, + sym_paren_expr, + sym_unary_op, + sym_binary_op, + sym__expression, + ACTIONS(17), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [873] = 6, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(159), 1, + sym_identifier, + ACTIONS(171), 1, + sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(17), 5, + sym_assignable_expr, + sym_paren_expr, + sym_unary_op, + sym_binary_op, + sym__expression, + ACTIONS(17), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [903] = 10, + ACTIONS(101), 1, + anon_sym_PIPE, + ACTIONS(103), 1, + anon_sym_CARET, + ACTIONS(105), 1, + anon_sym_SLASH, + ACTIONS(111), 1, + anon_sym_AMP, + ACTIONS(173), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(97), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(99), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(165), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(163), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [941] = 6, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(159), 1, + sym_identifier, + ACTIONS(175), 1, + sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(49), 5, + sym_assignable_expr, + sym_paren_expr, + sym_unary_op, + sym_binary_op, + sym__expression, + ACTIONS(17), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [971] = 6, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(159), 1, + sym_identifier, + ACTIONS(177), 1, + sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(48), 5, + sym_assignable_expr, + sym_paren_expr, + sym_unary_op, + sym_binary_op, + sym__expression, + ACTIONS(17), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [1001] = 6, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(159), 1, + sym_identifier, + ACTIONS(179), 1, + sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(21), 5, + sym_assignable_expr, + sym_paren_expr, + sym_unary_op, + sym_binary_op, + sym__expression, + ACTIONS(17), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [1031] = 10, + ACTIONS(101), 1, + anon_sym_PIPE, + ACTIONS(103), 1, + anon_sym_CARET, + ACTIONS(105), 1, + anon_sym_SLASH, + ACTIONS(111), 1, + anon_sym_AMP, + ACTIONS(181), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(97), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(99), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(165), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(163), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [1069] = 10, + ACTIONS(101), 1, + anon_sym_PIPE, + ACTIONS(103), 1, + anon_sym_CARET, + ACTIONS(105), 1, + anon_sym_SLASH, + ACTIONS(111), 1, + anon_sym_AMP, + ACTIONS(183), 1, anon_sym_RBRACK, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(97), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(99), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(165), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(163), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [1107] = 6, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(159), 1, + sym_identifier, + ACTIONS(185), 1, + sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(20), 5, + sym_assignable_expr, + sym_paren_expr, + sym_unary_op, + sym_binary_op, + sym__expression, + ACTIONS(17), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [1137] = 6, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(159), 1, + sym_identifier, + ACTIONS(187), 1, + sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(42), 5, + sym_assignable_expr, + sym_paren_expr, + sym_unary_op, + sym_binary_op, + sym__expression, + ACTIONS(17), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [1167] = 10, + ACTIONS(101), 1, + anon_sym_PIPE, + ACTIONS(103), 1, + anon_sym_CARET, + ACTIONS(105), 1, + anon_sym_SLASH, + ACTIONS(111), 1, + anon_sym_AMP, + ACTIONS(189), 1, + anon_sym_DOT_DOT, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(97), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(99), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(165), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(163), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [1205] = 6, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(159), 1, + sym_identifier, + ACTIONS(191), 1, + sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(16), 5, + sym_assignable_expr, + sym_paren_expr, + sym_unary_op, + sym_binary_op, + sym__expression, + ACTIONS(17), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [1235] = 10, + ACTIONS(101), 1, + anon_sym_PIPE, + ACTIONS(103), 1, + anon_sym_CARET, + ACTIONS(105), 1, + anon_sym_SLASH, + ACTIONS(111), 1, + anon_sym_AMP, + ACTIONS(193), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(97), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(99), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(165), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(163), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [1273] = 10, + ACTIONS(101), 1, + anon_sym_PIPE, + ACTIONS(103), 1, + anon_sym_CARET, + ACTIONS(105), 1, + anon_sym_SLASH, + ACTIONS(111), 1, + anon_sym_AMP, + ACTIONS(195), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(97), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(99), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(165), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(163), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [1311] = 6, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(159), 1, + sym_identifier, + ACTIONS(197), 1, + sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(43), 5, + sym_assignable_expr, + sym_paren_expr, + sym_unary_op, + sym_binary_op, + sym__expression, + ACTIONS(17), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [1341] = 6, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(159), 1, + sym_identifier, + ACTIONS(199), 1, + sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(22), 5, + sym_assignable_expr, + sym_paren_expr, + sym_unary_op, + sym_binary_op, + sym__expression, + ACTIONS(17), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [1371] = 6, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(159), 1, + sym_identifier, + ACTIONS(201), 1, + sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(18), 5, + sym_assignable_expr, + sym_paren_expr, + sym_unary_op, + sym_binary_op, + sym__expression, + ACTIONS(17), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [1401] = 6, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(159), 1, + sym_identifier, + ACTIONS(203), 1, + sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(15), 5, + sym_assignable_expr, + sym_paren_expr, + sym_unary_op, + sym_binary_op, + sym__expression, + ACTIONS(17), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [1431] = 7, + ACTIONS(9), 1, + sym_identifier, + ACTIONS(205), 1, + anon_sym_reg, + STATE(55), 1, + aux_sym__assign_left_side_repeat1, + STATE(99), 1, + sym_type, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + STATE(95), 2, + sym_assignable_expr, + sym_declaration, + [1456] = 7, + ACTIONS(9), 1, + sym_identifier, + ACTIONS(207), 1, + anon_sym_reg, + STATE(65), 1, + aux_sym__assign_left_side_repeat1, + STATE(99), 1, + sym_type, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + STATE(88), 2, + sym_assignable_expr, + sym_declaration, + [1481] = 7, + ACTIONS(9), 1, + sym_identifier, + ACTIONS(207), 1, + anon_sym_reg, + STATE(65), 1, + aux_sym__assign_left_side_repeat1, + STATE(99), 1, + sym_type, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + STATE(78), 2, + sym_assignable_expr, + sym_declaration, + [1506] = 7, + ACTIONS(209), 1, + sym_identifier, + ACTIONS(211), 1, + anon_sym_LBRACE, + STATE(69), 1, + sym_declaration, + STATE(96), 1, + sym_block, + STATE(99), 1, + sym_type, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + [1530] = 7, + ACTIONS(209), 1, + sym_identifier, + ACTIONS(211), 1, + anon_sym_LBRACE, + STATE(74), 1, + sym_declaration, + STATE(91), 1, + sym_block, + STATE(99), 1, + sym_type, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + [1554] = 7, + ACTIONS(209), 1, + sym_identifier, + ACTIONS(211), 1, + anon_sym_LBRACE, + STATE(73), 1, + sym_declaration, + STATE(94), 1, + sym_block, + STATE(99), 1, + sym_type, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + [1578] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(213), 6, + anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_SEMI, + anon_sym_in, + [1591] = 6, + ACTIONS(209), 1, + sym_identifier, + ACTIONS(215), 1, + anon_sym_DASH_GT, + STATE(84), 1, + sym_declaration, + STATE(99), 1, + sym_type, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + [1612] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(217), 6, + anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [238] = 4, - ACTIONS(29), 1, + anon_sym_in, + [1625] = 5, + ACTIONS(209), 1, + sym_identifier, + STATE(81), 1, + sym_declaration, + STATE(99), 1, + sym_type, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + [1643] = 5, + ACTIONS(209), 1, + sym_identifier, + STATE(98), 1, + sym_declaration, + STATE(99), 1, + sym_type, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + [1661] = 4, + ACTIONS(221), 1, + anon_sym_reg, + STATE(65), 1, + aux_sym__assign_left_side_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(219), 3, + sym_identifier, + anon_sym_state, + anon_sym_gen, + [1677] = 5, + ACTIONS(211), 1, anon_sym_LBRACE, - ACTIONS(33), 1, + ACTIONS(224), 1, anon_sym_COMMA, - STATE(24), 1, + STATE(75), 1, aux_sym_module_repeat1, - STATE(44), 1, + STATE(89), 1, + sym_block, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [1694] = 4, + ACTIONS(19), 1, + anon_sym_LBRACE, + ACTIONS(226), 1, + anon_sym_if, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(29), 2, sym_block, - [251] = 4, - ACTIONS(29), 1, + sym_if_statement, + [1709] = 5, + ACTIONS(127), 1, + anon_sym_COMMA, + ACTIONS(228), 1, + anon_sym_EQ, + ACTIONS(230), 1, + anon_sym_SEMI, + STATE(83), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [1726] = 5, + ACTIONS(211), 1, anon_sym_LBRACE, - ACTIONS(33), 1, + ACTIONS(224), 1, anon_sym_COMMA, - STATE(19), 1, + STATE(76), 1, aux_sym_module_repeat1, - STATE(41), 1, + STATE(89), 1, sym_block, - [264] = 3, - ACTIONS(47), 1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [1743] = 4, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(232), 1, ts_builtin_sym_end, - ACTIONS(49), 1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(71), 2, + sym_module, + aux_sym_source_file_repeat1, + [1758] = 4, + ACTIONS(234), 1, + ts_builtin_sym_end, + ACTIONS(236), 1, anon_sym_module, - STATE(21), 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(71), 2, sym_module, aux_sym_source_file_repeat1, - [275] = 1, - ACTIONS(52), 4, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_SEMI, - [282] = 4, - ACTIONS(29), 1, + [1773] = 5, + ACTIONS(211), 1, + anon_sym_LBRACE, + ACTIONS(224), 1, + anon_sym_COMMA, + STATE(75), 1, + aux_sym_module_repeat1, + STATE(96), 1, + sym_block, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [1790] = 5, + ACTIONS(211), 1, + anon_sym_LBRACE, + ACTIONS(224), 1, + anon_sym_COMMA, + STATE(66), 1, + aux_sym_module_repeat1, + STATE(96), 1, + sym_block, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [1807] = 5, + ACTIONS(211), 1, anon_sym_LBRACE, - ACTIONS(33), 1, + ACTIONS(224), 1, anon_sym_COMMA, - STATE(24), 1, + STATE(72), 1, aux_sym_module_repeat1, - STATE(41), 1, + STATE(94), 1, sym_block, - [295] = 3, - ACTIONS(54), 1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [1824] = 4, + ACTIONS(239), 1, anon_sym_COMMA, - STATE(24), 1, + STATE(75), 1, aux_sym_module_repeat1, - ACTIONS(57), 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(242), 2, anon_sym_DASH_GT, anon_sym_LBRACE, - [306] = 4, - ACTIONS(29), 1, + [1839] = 5, + ACTIONS(211), 1, anon_sym_LBRACE, - ACTIONS(33), 1, + ACTIONS(224), 1, anon_sym_COMMA, - STATE(23), 1, + STATE(75), 1, aux_sym_module_repeat1, - STATE(35), 1, + STATE(90), 1, sym_block, - [319] = 3, - ACTIONS(33), 1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [1856] = 4, + ACTIONS(224), 1, anon_sym_COMMA, - ACTIONS(59), 1, + ACTIONS(244), 1, anon_sym_DASH_GT, - STATE(24), 1, + STATE(75), 1, aux_sym_module_repeat1, - [329] = 1, - ACTIONS(61), 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [1870] = 4, + ACTIONS(127), 1, + anon_sym_COMMA, + ACTIONS(246), 1, + anon_sym_EQ, + STATE(85), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [1884] = 4, + ACTIONS(248), 1, + anon_sym_COMMA, + ACTIONS(251), 1, + anon_sym_EQ, + STATE(79), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [1898] = 4, + ACTIONS(79), 1, + anon_sym_LBRACK, + ACTIONS(89), 1, + sym_identifier, + STATE(82), 1, + aux_sym_type_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [1912] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(242), 3, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACE, - [335] = 3, - ACTIONS(33), 1, + [1922] = 4, + ACTIONS(79), 1, + anon_sym_LBRACK, + ACTIONS(91), 1, + sym_identifier, + STATE(9), 1, + aux_sym_type_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [1936] = 4, + ACTIONS(127), 1, + anon_sym_COMMA, + ACTIONS(246), 1, + anon_sym_EQ, + STATE(79), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [1950] = 4, + ACTIONS(224), 1, anon_sym_COMMA, - ACTIONS(63), 1, + ACTIONS(253), 1, anon_sym_DASH_GT, - STATE(26), 1, + STATE(77), 1, aux_sym_module_repeat1, - [345] = 1, - ACTIONS(57), 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [1964] = 4, + ACTIONS(127), 1, anon_sym_COMMA, - anon_sym_DASH_GT, - anon_sym_LBRACE, - [351] = 2, - STATE(46), 1, - sym_expr, - ACTIONS(7), 2, - sym_identifier, - sym_number, - [359] = 3, - ACTIONS(27), 1, - sym_identifier, - STATE(29), 1, - sym_decl, - STATE(47), 1, - sym_type, - [369] = 2, - STATE(39), 1, - sym_expr, - ACTIONS(7), 2, - sym_identifier, - sym_number, - [377] = 2, - STATE(40), 1, - sym_expr, - ACTIONS(7), 2, - sym_identifier, - sym_number, - [385] = 1, - ACTIONS(39), 2, + ACTIONS(255), 1, + anon_sym_EQ, + STATE(79), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [1978] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(125), 2, ts_builtin_sym_end, anon_sym_module, - [390] = 1, - ACTIONS(65), 2, + [1987] = 3, + ACTIONS(19), 1, + anon_sym_LBRACE, + STATE(31), 1, + sym_block, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [1998] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(257), 2, + anon_sym_COMMA, + anon_sym_EQ, + [2007] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(259), 2, ts_builtin_sym_end, anon_sym_module, - [395] = 1, - ACTIONS(67), 2, - sym_identifier, - anon_sym_LBRACK, - [400] = 2, - ACTIONS(69), 1, - anon_sym_LBRACK, - ACTIONS(71), 1, - anon_sym_EQ, - [407] = 1, - ACTIONS(41), 2, + [2016] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(261), 2, ts_builtin_sym_end, anon_sym_module, - [412] = 2, - ACTIONS(69), 1, - anon_sym_LBRACK, - ACTIONS(73), 1, - anon_sym_RBRACK, - [419] = 2, - ACTIONS(69), 1, - anon_sym_LBRACK, - ACTIONS(75), 1, - anon_sym_SEMI, - [426] = 1, - ACTIONS(77), 2, + [2025] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(263), 2, ts_builtin_sym_end, anon_sym_module, - [431] = 1, - ACTIONS(79), 2, + [2034] = 3, + ACTIONS(265), 1, sym_identifier, - anon_sym_LBRACK, - [436] = 1, - ACTIONS(81), 2, + STATE(100), 1, + sym_type, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2045] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(137), 2, ts_builtin_sym_end, anon_sym_module, - [441] = 1, - ACTIONS(83), 2, + [2054] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(267), 2, ts_builtin_sym_end, anon_sym_module, - [446] = 1, - ACTIONS(85), 2, + [2063] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(251), 2, + anon_sym_COMMA, + anon_sym_EQ, + [2072] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(269), 2, ts_builtin_sym_end, anon_sym_module, - [451] = 2, - ACTIONS(69), 1, - anon_sym_LBRACK, - ACTIONS(87), 1, - anon_sym_RBRACK, - [458] = 2, - ACTIONS(89), 1, + [2081] = 2, + ACTIONS(271), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2089] = 2, + ACTIONS(273), 1, + anon_sym_in, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2097] = 2, + ACTIONS(275), 1, sym_identifier, - ACTIONS(91), 1, - anon_sym_LBRACK, - [465] = 1, - ACTIONS(93), 1, - anon_sym_COLON, - [469] = 1, - ACTIONS(95), 1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2105] = 2, + ACTIONS(277), 1, sym_identifier, - [473] = 1, - ACTIONS(97), 1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2113] = 2, + ACTIONS(279), 1, + sym_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2121] = 2, + ACTIONS(281), 1, + anon_sym_COLON, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2129] = 2, + ACTIONS(283), 1, ts_builtin_sym_end, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, }; static const uint32_t ts_small_parse_table_map[] = { - [SMALL_STATE(2)] = 0, - [SMALL_STATE(3)] = 21, - [SMALL_STATE(4)] = 42, - [SMALL_STATE(5)] = 63, - [SMALL_STATE(6)] = 84, - [SMALL_STATE(7)] = 105, - [SMALL_STATE(8)] = 121, - [SMALL_STATE(9)] = 137, - [SMALL_STATE(10)] = 153, - [SMALL_STATE(11)] = 160, - [SMALL_STATE(12)] = 173, - [SMALL_STATE(13)] = 186, - [SMALL_STATE(14)] = 197, - [SMALL_STATE(15)] = 204, - [SMALL_STATE(16)] = 211, - [SMALL_STATE(17)] = 224, - [SMALL_STATE(18)] = 231, - [SMALL_STATE(19)] = 238, - [SMALL_STATE(20)] = 251, - [SMALL_STATE(21)] = 264, - [SMALL_STATE(22)] = 275, - [SMALL_STATE(23)] = 282, - [SMALL_STATE(24)] = 295, - [SMALL_STATE(25)] = 306, - [SMALL_STATE(26)] = 319, - [SMALL_STATE(27)] = 329, - [SMALL_STATE(28)] = 335, - [SMALL_STATE(29)] = 345, - [SMALL_STATE(30)] = 351, - [SMALL_STATE(31)] = 359, - [SMALL_STATE(32)] = 369, - [SMALL_STATE(33)] = 377, - [SMALL_STATE(34)] = 385, - [SMALL_STATE(35)] = 390, - [SMALL_STATE(36)] = 395, - [SMALL_STATE(37)] = 400, - [SMALL_STATE(38)] = 407, - [SMALL_STATE(39)] = 412, - [SMALL_STATE(40)] = 419, - [SMALL_STATE(41)] = 426, - [SMALL_STATE(42)] = 431, - [SMALL_STATE(43)] = 436, - [SMALL_STATE(44)] = 441, - [SMALL_STATE(45)] = 446, - [SMALL_STATE(46)] = 451, - [SMALL_STATE(47)] = 458, - [SMALL_STATE(48)] = 465, - [SMALL_STATE(49)] = 469, - [SMALL_STATE(50)] = 473, + [SMALL_STATE(9)] = 0, + [SMALL_STATE(10)] = 37, + [SMALL_STATE(11)] = 69, + [SMALL_STATE(12)] = 103, + [SMALL_STATE(13)] = 137, + [SMALL_STATE(14)] = 172, + [SMALL_STATE(15)] = 207, + [SMALL_STATE(16)] = 235, + [SMALL_STATE(17)] = 273, + [SMALL_STATE(18)] = 309, + [SMALL_STATE(19)] = 341, + [SMALL_STATE(20)] = 369, + [SMALL_STATE(21)] = 403, + [SMALL_STATE(22)] = 443, + [SMALL_STATE(23)] = 471, + [SMALL_STATE(24)] = 500, + [SMALL_STATE(25)] = 527, + [SMALL_STATE(26)] = 560, + [SMALL_STATE(27)] = 587, + [SMALL_STATE(28)] = 613, + [SMALL_STATE(29)] = 639, + [SMALL_STATE(30)] = 665, + [SMALL_STATE(31)] = 691, + [SMALL_STATE(32)] = 717, + [SMALL_STATE(33)] = 743, + [SMALL_STATE(34)] = 769, + [SMALL_STATE(35)] = 802, + [SMALL_STATE(36)] = 843, + [SMALL_STATE(37)] = 873, + [SMALL_STATE(38)] = 903, + [SMALL_STATE(39)] = 941, + [SMALL_STATE(40)] = 971, + [SMALL_STATE(41)] = 1001, + [SMALL_STATE(42)] = 1031, + [SMALL_STATE(43)] = 1069, + [SMALL_STATE(44)] = 1107, + [SMALL_STATE(45)] = 1137, + [SMALL_STATE(46)] = 1167, + [SMALL_STATE(47)] = 1205, + [SMALL_STATE(48)] = 1235, + [SMALL_STATE(49)] = 1273, + [SMALL_STATE(50)] = 1311, + [SMALL_STATE(51)] = 1341, + [SMALL_STATE(52)] = 1371, + [SMALL_STATE(53)] = 1401, + [SMALL_STATE(54)] = 1431, + [SMALL_STATE(55)] = 1456, + [SMALL_STATE(56)] = 1481, + [SMALL_STATE(57)] = 1506, + [SMALL_STATE(58)] = 1530, + [SMALL_STATE(59)] = 1554, + [SMALL_STATE(60)] = 1578, + [SMALL_STATE(61)] = 1591, + [SMALL_STATE(62)] = 1612, + [SMALL_STATE(63)] = 1625, + [SMALL_STATE(64)] = 1643, + [SMALL_STATE(65)] = 1661, + [SMALL_STATE(66)] = 1677, + [SMALL_STATE(67)] = 1694, + [SMALL_STATE(68)] = 1709, + [SMALL_STATE(69)] = 1726, + [SMALL_STATE(70)] = 1743, + [SMALL_STATE(71)] = 1758, + [SMALL_STATE(72)] = 1773, + [SMALL_STATE(73)] = 1790, + [SMALL_STATE(74)] = 1807, + [SMALL_STATE(75)] = 1824, + [SMALL_STATE(76)] = 1839, + [SMALL_STATE(77)] = 1856, + [SMALL_STATE(78)] = 1870, + [SMALL_STATE(79)] = 1884, + [SMALL_STATE(80)] = 1898, + [SMALL_STATE(81)] = 1912, + [SMALL_STATE(82)] = 1922, + [SMALL_STATE(83)] = 1936, + [SMALL_STATE(84)] = 1950, + [SMALL_STATE(85)] = 1964, + [SMALL_STATE(86)] = 1978, + [SMALL_STATE(87)] = 1987, + [SMALL_STATE(88)] = 1998, + [SMALL_STATE(89)] = 2007, + [SMALL_STATE(90)] = 2016, + [SMALL_STATE(91)] = 2025, + [SMALL_STATE(92)] = 2034, + [SMALL_STATE(93)] = 2045, + [SMALL_STATE(94)] = 2054, + [SMALL_STATE(95)] = 2063, + [SMALL_STATE(96)] = 2072, + [SMALL_STATE(97)] = 2081, + [SMALL_STATE(98)] = 2089, + [SMALL_STATE(99)] = 2097, + [SMALL_STATE(100)] = 2105, + [SMALL_STATE(101)] = 2113, + [SMALL_STATE(102)] = 2121, + [SMALL_STATE(103)] = 2129, }; 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}}, REDUCE(sym_source_file, 0), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [17] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(22), - [20] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(4), - [23] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), - [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [31] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 1), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [37] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [39] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [41] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [43] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 4), - [45] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr, 4), - [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), - [49] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(49), - [52] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr, 1), - [54] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(31), - [57] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), - [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [61] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl, 2), - [63] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [65] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 7), - [67] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 4), - [69] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [71] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [73] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [75] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [77] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 8), - [79] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 1), - [81] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 6), - [83] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 9), - [85] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5), - [87] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [89] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [91] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [93] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [95] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [97] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), + [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(92), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64), + [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [37] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(13), + [40] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(38), + [43] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(92), + [46] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(39), + [49] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(51), + [52] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(5), + [55] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), + [57] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(56), + [60] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(36), + [63] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(64), + [66] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 2), + [70] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 2), SHIFT_REPEAT(50), + [73] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_type_repeat1, 2), + [75] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 3), + [77] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_type_repeat1, 3), + [79] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [81] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignable_expr, 1), + [83] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignable_expr, 1), + [85] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignable_expr, 2), + [87] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignable_expr, 2), + [89] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 1), + [91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 2), + [93] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3), + [95] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3), + [97] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [99] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [105] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), + [107] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_paren_expr, 3), + [109] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_paren_expr, 3), + [111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [113] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2), + [115] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2), + [117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3), + [119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3), + [121] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), + [123] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3), + [125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [129] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [131] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [133] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assign_left_side, 1), + [135] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), + [137] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [139] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_statement, 2), + [141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_statement, 2), + [143] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 4), + [145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 4), + [147] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5), + [149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5), + [151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 2), + [153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 2), + [155] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5), + [157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5), + [159] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [165] = {.entry = {.count = 1, .reusable = false}}, SHIFT(41), + [167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [181] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_range, 3), + [183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [205] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), + [207] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), + [209] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80), + [211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2), + [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3), + [219] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), + [221] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), SHIFT_REPEAT(65), + [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 1), + [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), + [236] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(101), + [239] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(63), + [242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), + [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 2), + [248] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), SHIFT_REPEAT(54), + [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), + [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [255] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 3), + [257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 3), + [259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 8), + [261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 9), + [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5), + [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 6), + [269] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 7), + [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [283] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), }; #ifdef __cplusplus From 102011788af1087a911fc43a3a5d22421cd191be Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Thu, 1 Feb 2024 23:40:00 +0100 Subject: [PATCH 05/49] Add func_call and extend expression --- grammar.js | 59 +- src/grammar.json | 182 ++- src/node-types.json | 127 +- src/parser.c | 3710 ++++++++++++++++++++++++++----------------- 4 files changed, 2558 insertions(+), 1520 deletions(-) diff --git a/grammar.js b/grammar.js index 91dac47..542a62f 100644 --- a/grammar.js +++ b/grammar.js @@ -14,7 +14,8 @@ const PREC = { xor: 5, additive: 6, multiplicative: 7, - unary: 8 + unary: 8, + namespace_path : 9 } module.exports = grammar({ @@ -36,8 +37,17 @@ module.exports = grammar({ identifier: $ => /[\p{L}_][\p{L}_\d]*/, number: $ => /\d[\d_]*/, - type: $ => seq( + global_identifier: $ => prec.left(PREC.namespace_path, seq( + optional("::"), $.identifier, + repeat(seq( + "::", + $.identifier + )) + )), + + type: $ => seq( + $.global_identifier, repeat(seq( '[', $._expression, @@ -63,7 +73,6 @@ module.exports = grammar({ $.identifier ), - paren_expr: $ => seq('(', $._expression, ')'), unary_op: $ => prec(PREC.unary, seq( choice('+', '-', '*', '!', '|', '&', '^'), $._expression @@ -71,27 +80,39 @@ module.exports = grammar({ binary_op: $ => { const TABLE = [ - [PREC.compare, choice('==', '!=', '<', '<=', '>', '>=')], - [PREC.and, '&'], - [PREC.or, '|'], - [PREC.xor, '^'], - [PREC.additive, choice('+', '-')], - [PREC.multiplicative, choice('*', '/', '%')], + [PREC.compare, choice('==', '!=', '<', '<=', '>', '>=')], + [PREC.and, '&'], + [PREC.or, '|'], + [PREC.xor, '^'], + [PREC.additive, choice('+', '-')], + [PREC.multiplicative, choice('*', '/', '%')], ]; - + return choice(...TABLE.map(([precedence, operator]) => prec.left(precedence, seq( - $._expression, - operator, - $._expression + $._expression, + operator, + $._expression )))); - }, + }, + + func_call: $ => seq( + choice( + $.identifier, + $.global_identifier + ), + '(', + commaSep($._expression), + ')' + ), _expression: $ => choice( $.assignable_expr, + $.global_identifier, $.number, - $.paren_expr, + seq('(', $._expression, ')'), $.unary_op, - $.binary_op + $.binary_op, + $.func_call ), range: $ => seq( @@ -107,7 +128,10 @@ module.exports = grammar({ ), _assign_left_side: $ => commaSep1(seq( - repeat('reg'), + choice( + repeat('reg'), + 'initial' + ), choice( $.assignable_expr, $.declaration @@ -158,7 +182,6 @@ module.exports = grammar({ single_line_comment: $ => /\/\/[^\n]*\n/, multi_line_comment: $ => /\/\*[^\*]*\*+([^\/\*][^\*]*\*+)*\//, - }, extras: $ => [ diff --git a/src/grammar.json b/src/grammar.json index 734efc8..1f38361 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -107,12 +107,53 @@ "type": "PATTERN", "value": "\\d[\\d_]*" }, + "global_identifier": { + "type": "PREC_LEFT", + "value": 9, + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "::" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "::" + }, + { + "type": "SYMBOL", + "name": "identifier" + } + ] + } + } + ] + } + }, "type": { "type": "SEQ", "members": [ { "type": "SYMBOL", - "name": "identifier" + "name": "global_identifier" }, { "type": "REPEAT", @@ -199,23 +240,6 @@ } ] }, - "paren_expr": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "(" - }, - { - "type": "SYMBOL", - "name": "_expression" - }, - { - "type": "STRING", - "value": ")" - } - ] - }, "unary_op": { "type": "PREC", "value": 8, @@ -440,6 +464,65 @@ } ] }, + "func_call": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "SYMBOL", + "name": "global_identifier" + } + ] + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "_expression" + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + } + ] + }, "_expression": { "type": "CHOICE", "members": [ @@ -449,11 +532,28 @@ }, { "type": "SYMBOL", - "name": "number" + "name": "global_identifier" }, { "type": "SYMBOL", - "name": "paren_expr" + "name": "number" + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "STRING", + "value": ")" + } + ] }, { "type": "SYMBOL", @@ -462,6 +562,10 @@ { "type": "SYMBOL", "name": "binary_op" + }, + { + "type": "SYMBOL", + "name": "func_call" } ] }, @@ -509,11 +613,20 @@ "type": "SEQ", "members": [ { - "type": "REPEAT", - "content": { - "type": "STRING", - "value": "reg" - } + "type": "CHOICE", + "members": [ + { + "type": "REPEAT", + "content": { + "type": "STRING", + "value": "reg" + } + }, + { + "type": "STRING", + "value": "initial" + } + ] }, { "type": "CHOICE", @@ -543,11 +656,20 @@ "type": "SEQ", "members": [ { - "type": "REPEAT", - "content": { - "type": "STRING", - "value": "reg" - } + "type": "CHOICE", + "members": [ + { + "type": "REPEAT", + "content": { + "type": "STRING", + "value": "reg" + } + }, + { + "type": "STRING", + "value": "initial" + } + ] }, { "type": "CHOICE", diff --git a/src/node-types.json b/src/node-types.json index e409d54..48cd76e 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -16,15 +16,19 @@ "named": true }, { - "type": "identifier", + "type": "func_call", "named": true }, { - "type": "number", + "type": "global_identifier", + "named": true + }, + { + "type": "identifier", "named": true }, { - "type": "paren_expr", + "type": "number", "named": true }, { @@ -51,11 +55,15 @@ "named": true }, { - "type": "number", + "type": "func_call", + "named": true + }, + { + "type": "global_identifier", "named": true }, { - "type": "paren_expr", + "type": "number", "named": true }, { @@ -121,11 +129,15 @@ "named": true }, { - "type": "number", + "type": "func_call", + "named": true + }, + { + "type": "global_identifier", "named": true }, { - "type": "paren_expr", + "type": "number", "named": true }, { @@ -186,11 +198,15 @@ "named": true }, { - "type": "number", + "type": "func_call", "named": true }, { - "type": "paren_expr", + "type": "global_identifier", + "named": true + }, + { + "type": "number", "named": true }, { @@ -224,7 +240,7 @@ } }, { - "type": "if_statement", + "type": "func_call", "named": true, "fields": {}, "children": { @@ -240,19 +256,19 @@ "named": true }, { - "type": "block", + "type": "func_call", "named": true }, { - "type": "if_statement", + "type": "global_identifier", "named": true }, { - "type": "number", + "type": "identifier", "named": true }, { - "type": "paren_expr", + "type": "number", "named": true }, { @@ -263,21 +279,13 @@ } }, { - "type": "module", + "type": "global_identifier", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ - { - "type": "block", - "named": true - }, - { - "type": "declaration", - "named": true - }, { "type": "identifier", "named": true @@ -286,11 +294,11 @@ } }, { - "type": "paren_expr", + "type": "if_statement", "named": true, "fields": {}, "children": { - "multiple": false, + "multiple": true, "required": true, "types": [ { @@ -302,11 +310,23 @@ "named": true }, { - "type": "number", + "type": "block", "named": true }, { - "type": "paren_expr", + "type": "func_call", + "named": true + }, + { + "type": "global_identifier", + "named": true + }, + { + "type": "if_statement", + "named": true + }, + { + "type": "number", "named": true }, { @@ -316,6 +336,29 @@ ] } }, + { + "type": "module", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "block", + "named": true + }, + { + "type": "declaration", + "named": true + }, + { + "type": "identifier", + "named": true + } + ] + } + }, { "type": "range", "named": true, @@ -333,11 +376,15 @@ "named": true }, { - "type": "number", + "type": "func_call", + "named": true + }, + { + "type": "global_identifier", "named": true }, { - "type": "paren_expr", + "type": "number", "named": true }, { @@ -379,15 +426,15 @@ "named": true }, { - "type": "identifier", + "type": "func_call", "named": true }, { - "type": "number", + "type": "global_identifier", "named": true }, { - "type": "paren_expr", + "type": "number", "named": true }, { @@ -414,11 +461,15 @@ "named": true }, { - "type": "number", + "type": "func_call", + "named": true + }, + { + "type": "global_identifier", "named": true }, { - "type": "paren_expr", + "type": "number", "named": true }, { @@ -484,6 +535,10 @@ "type": ":", "named": false }, + { + "type": "::", + "named": false + }, { "type": ";", "named": false @@ -548,6 +603,10 @@ "type": "in", "named": false }, + { + "type": "initial", + "named": false + }, { "type": "module", "named": false diff --git a/src/parser.c b/src/parser.c index f93e778..a3f145c 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,11 +6,11 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 104 +#define STATE_COUNT 125 #define LARGE_STATE_COUNT 9 -#define SYMBOL_COUNT 64 +#define SYMBOL_COUNT 69 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 40 +#define TOKEN_COUNT 42 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 0 #define MAX_ALIAS_SEQUENCE_LENGTH 9 @@ -23,63 +23,68 @@ enum { anon_sym_DASH_GT = 4, sym_identifier = 5, sym_number = 6, - anon_sym_LBRACK = 7, - anon_sym_RBRACK = 8, - anon_sym_state = 9, - anon_sym_gen = 10, - anon_sym_LPAREN = 11, - anon_sym_RPAREN = 12, - anon_sym_PLUS = 13, - anon_sym_DASH = 14, - anon_sym_STAR = 15, - anon_sym_BANG = 16, - anon_sym_PIPE = 17, - anon_sym_AMP = 18, - anon_sym_CARET = 19, - anon_sym_EQ_EQ = 20, - anon_sym_BANG_EQ = 21, - anon_sym_LT = 22, - anon_sym_LT_EQ = 23, - anon_sym_GT = 24, - anon_sym_GT_EQ = 25, - anon_sym_SLASH = 26, - anon_sym_PERCENT = 27, - anon_sym_DOT_DOT = 28, - anon_sym_LBRACE = 29, - anon_sym_RBRACE = 30, - anon_sym_reg = 31, - anon_sym_EQ = 32, - anon_sym_SEMI = 33, - anon_sym_if = 34, - anon_sym_else = 35, - anon_sym_for = 36, - anon_sym_in = 37, - sym_single_line_comment = 38, - sym_multi_line_comment = 39, - sym_source_file = 40, - sym_module = 41, - sym_type = 42, - sym_assignable_expr = 43, - sym_declaration = 44, - sym_paren_expr = 45, - sym_unary_op = 46, - sym_binary_op = 47, - sym__expression = 48, - sym_range = 49, - sym_block = 50, - sym__assign_left_side = 51, - sym_decl_assign_statement = 52, - sym_decl_statement = 53, - sym_expression_statement = 54, - sym_if_statement = 55, - sym_for_statement = 56, - sym__statement = 57, - aux_sym_source_file_repeat1 = 58, - aux_sym_module_repeat1 = 59, - aux_sym_type_repeat1 = 60, - aux_sym_block_repeat1 = 61, - aux_sym__assign_left_side_repeat1 = 62, - aux_sym__assign_left_side_repeat2 = 63, + anon_sym_COLON_COLON = 7, + anon_sym_LBRACK = 8, + anon_sym_RBRACK = 9, + anon_sym_state = 10, + anon_sym_gen = 11, + anon_sym_PLUS = 12, + anon_sym_DASH = 13, + anon_sym_STAR = 14, + anon_sym_BANG = 15, + anon_sym_PIPE = 16, + anon_sym_AMP = 17, + anon_sym_CARET = 18, + anon_sym_EQ_EQ = 19, + anon_sym_BANG_EQ = 20, + anon_sym_LT = 21, + anon_sym_LT_EQ = 22, + anon_sym_GT = 23, + anon_sym_GT_EQ = 24, + anon_sym_SLASH = 25, + anon_sym_PERCENT = 26, + anon_sym_LPAREN = 27, + anon_sym_RPAREN = 28, + anon_sym_DOT_DOT = 29, + anon_sym_LBRACE = 30, + anon_sym_RBRACE = 31, + anon_sym_reg = 32, + anon_sym_initial = 33, + anon_sym_EQ = 34, + anon_sym_SEMI = 35, + anon_sym_if = 36, + anon_sym_else = 37, + anon_sym_for = 38, + anon_sym_in = 39, + sym_single_line_comment = 40, + sym_multi_line_comment = 41, + sym_source_file = 42, + sym_module = 43, + sym_global_identifier = 44, + sym_type = 45, + sym_assignable_expr = 46, + sym_declaration = 47, + sym_unary_op = 48, + sym_binary_op = 49, + sym_func_call = 50, + sym__expression = 51, + sym_range = 52, + sym_block = 53, + sym__assign_left_side = 54, + sym_decl_assign_statement = 55, + sym_decl_statement = 56, + sym_expression_statement = 57, + sym_if_statement = 58, + sym_for_statement = 59, + sym__statement = 60, + aux_sym_source_file_repeat1 = 61, + aux_sym_module_repeat1 = 62, + aux_sym_global_identifier_repeat1 = 63, + aux_sym_type_repeat1 = 64, + aux_sym_func_call_repeat1 = 65, + aux_sym_block_repeat1 = 66, + aux_sym__assign_left_side_repeat1 = 67, + aux_sym__assign_left_side_repeat2 = 68, }; static const char * const ts_symbol_names[] = { @@ -90,12 +95,11 @@ static const char * const ts_symbol_names[] = { [anon_sym_DASH_GT] = "->", [sym_identifier] = "identifier", [sym_number] = "number", + [anon_sym_COLON_COLON] = "::", [anon_sym_LBRACK] = "[", [anon_sym_RBRACK] = "]", [anon_sym_state] = "state", [anon_sym_gen] = "gen", - [anon_sym_LPAREN] = "(", - [anon_sym_RPAREN] = ")", [anon_sym_PLUS] = "+", [anon_sym_DASH] = "-", [anon_sym_STAR] = "*", @@ -111,10 +115,13 @@ static const char * const ts_symbol_names[] = { [anon_sym_GT_EQ] = ">=", [anon_sym_SLASH] = "/", [anon_sym_PERCENT] = "%", + [anon_sym_LPAREN] = "(", + [anon_sym_RPAREN] = ")", [anon_sym_DOT_DOT] = "..", [anon_sym_LBRACE] = "{", [anon_sym_RBRACE] = "}", [anon_sym_reg] = "reg", + [anon_sym_initial] = "initial", [anon_sym_EQ] = "=", [anon_sym_SEMI] = ";", [anon_sym_if] = "if", @@ -125,12 +132,13 @@ static const char * const ts_symbol_names[] = { [sym_multi_line_comment] = "multi_line_comment", [sym_source_file] = "source_file", [sym_module] = "module", + [sym_global_identifier] = "global_identifier", [sym_type] = "type", [sym_assignable_expr] = "assignable_expr", [sym_declaration] = "declaration", - [sym_paren_expr] = "paren_expr", [sym_unary_op] = "unary_op", [sym_binary_op] = "binary_op", + [sym_func_call] = "func_call", [sym__expression] = "_expression", [sym_range] = "range", [sym_block] = "block", @@ -143,7 +151,9 @@ static const char * const ts_symbol_names[] = { [sym__statement] = "_statement", [aux_sym_source_file_repeat1] = "source_file_repeat1", [aux_sym_module_repeat1] = "module_repeat1", + [aux_sym_global_identifier_repeat1] = "global_identifier_repeat1", [aux_sym_type_repeat1] = "type_repeat1", + [aux_sym_func_call_repeat1] = "func_call_repeat1", [aux_sym_block_repeat1] = "block_repeat1", [aux_sym__assign_left_side_repeat1] = "_assign_left_side_repeat1", [aux_sym__assign_left_side_repeat2] = "_assign_left_side_repeat2", @@ -157,12 +167,11 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_DASH_GT] = anon_sym_DASH_GT, [sym_identifier] = sym_identifier, [sym_number] = sym_number, + [anon_sym_COLON_COLON] = anon_sym_COLON_COLON, [anon_sym_LBRACK] = anon_sym_LBRACK, [anon_sym_RBRACK] = anon_sym_RBRACK, [anon_sym_state] = anon_sym_state, [anon_sym_gen] = anon_sym_gen, - [anon_sym_LPAREN] = anon_sym_LPAREN, - [anon_sym_RPAREN] = anon_sym_RPAREN, [anon_sym_PLUS] = anon_sym_PLUS, [anon_sym_DASH] = anon_sym_DASH, [anon_sym_STAR] = anon_sym_STAR, @@ -178,10 +187,13 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_GT_EQ] = anon_sym_GT_EQ, [anon_sym_SLASH] = anon_sym_SLASH, [anon_sym_PERCENT] = anon_sym_PERCENT, + [anon_sym_LPAREN] = anon_sym_LPAREN, + [anon_sym_RPAREN] = anon_sym_RPAREN, [anon_sym_DOT_DOT] = anon_sym_DOT_DOT, [anon_sym_LBRACE] = anon_sym_LBRACE, [anon_sym_RBRACE] = anon_sym_RBRACE, [anon_sym_reg] = anon_sym_reg, + [anon_sym_initial] = anon_sym_initial, [anon_sym_EQ] = anon_sym_EQ, [anon_sym_SEMI] = anon_sym_SEMI, [anon_sym_if] = anon_sym_if, @@ -192,12 +204,13 @@ static const TSSymbol ts_symbol_map[] = { [sym_multi_line_comment] = sym_multi_line_comment, [sym_source_file] = sym_source_file, [sym_module] = sym_module, + [sym_global_identifier] = sym_global_identifier, [sym_type] = sym_type, [sym_assignable_expr] = sym_assignable_expr, [sym_declaration] = sym_declaration, - [sym_paren_expr] = sym_paren_expr, [sym_unary_op] = sym_unary_op, [sym_binary_op] = sym_binary_op, + [sym_func_call] = sym_func_call, [sym__expression] = sym__expression, [sym_range] = sym_range, [sym_block] = sym_block, @@ -210,7 +223,9 @@ static const TSSymbol ts_symbol_map[] = { [sym__statement] = sym__statement, [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1, [aux_sym_module_repeat1] = aux_sym_module_repeat1, + [aux_sym_global_identifier_repeat1] = aux_sym_global_identifier_repeat1, [aux_sym_type_repeat1] = aux_sym_type_repeat1, + [aux_sym_func_call_repeat1] = aux_sym_func_call_repeat1, [aux_sym_block_repeat1] = aux_sym_block_repeat1, [aux_sym__assign_left_side_repeat1] = aux_sym__assign_left_side_repeat1, [aux_sym__assign_left_side_repeat2] = aux_sym__assign_left_side_repeat2, @@ -245,6 +260,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [anon_sym_COLON_COLON] = { + .visible = true, + .named = false, + }, [anon_sym_LBRACK] = { .visible = true, .named = false, @@ -261,14 +280,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_LPAREN] = { - .visible = true, - .named = false, - }, - [anon_sym_RPAREN] = { - .visible = true, - .named = false, - }, [anon_sym_PLUS] = { .visible = true, .named = false, @@ -329,6 +340,14 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_LPAREN] = { + .visible = true, + .named = false, + }, + [anon_sym_RPAREN] = { + .visible = true, + .named = false, + }, [anon_sym_DOT_DOT] = { .visible = true, .named = false, @@ -345,6 +364,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_initial] = { + .visible = true, + .named = false, + }, [anon_sym_EQ] = { .visible = true, .named = false, @@ -385,6 +408,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_global_identifier] = { + .visible = true, + .named = true, + }, [sym_type] = { .visible = true, .named = true, @@ -397,15 +424,15 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_paren_expr] = { + [sym_unary_op] = { .visible = true, .named = true, }, - [sym_unary_op] = { + [sym_binary_op] = { .visible = true, .named = true, }, - [sym_binary_op] = { + [sym_func_call] = { .visible = true, .named = true, }, @@ -457,10 +484,18 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, + [aux_sym_global_identifier_repeat1] = { + .visible = false, + .named = false, + }, [aux_sym_type_repeat1] = { .visible = false, .named = false, }, + [aux_sym_func_call_repeat1] = { + .visible = false, + .named = false, + }, [aux_sym_block_repeat1] = { .visible = false, .named = false, @@ -490,9 +525,9 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [3] = 3, [4] = 2, [5] = 3, - [6] = 2, - [7] = 7, - [8] = 3, + [6] = 6, + [7] = 3, + [8] = 2, [9] = 9, [10] = 10, [11] = 11, @@ -502,7 +537,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [15] = 15, [16] = 16, [17] = 17, - [18] = 18, + [18] = 10, [19] = 19, [20] = 20, [21] = 21, @@ -516,15 +551,15 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [29] = 29, [30] = 30, [31] = 31, - [32] = 26, - [33] = 24, - [34] = 34, + [32] = 32, + [33] = 33, + [34] = 23, [35] = 35, [36] = 36, [37] = 37, [38] = 38, [39] = 39, - [40] = 40, + [40] = 30, [41] = 41, [42] = 42, [43] = 43, @@ -570,14 +605,14 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [83] = 83, [84] = 84, [85] = 85, - [86] = 24, + [86] = 86, [87] = 87, [88] = 88, [89] = 89, [90] = 90, [91] = 91, [92] = 92, - [93] = 26, + [93] = 93, [94] = 94, [95] = 95, [96] = 96, @@ -588,6 +623,27 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [101] = 101, [102] = 102, [103] = 103, + [104] = 104, + [105] = 105, + [106] = 106, + [107] = 107, + [108] = 108, + [109] = 109, + [110] = 110, + [111] = 111, + [112] = 23, + [113] = 113, + [114] = 30, + [115] = 115, + [116] = 116, + [117] = 117, + [118] = 118, + [119] = 119, + [120] = 120, + [121] = 121, + [122] = 122, + [123] = 123, + [124] = 124, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -2137,137 +2193,143 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (eof) ADVANCE(35); - if (lookahead == '!') ADVANCE(69); - if (lookahead == '%') ADVANCE(80); - if (lookahead == '&') ADVANCE(71); - if (lookahead == '(') ADVANCE(62); - if (lookahead == ')') ADVANCE(63); - if (lookahead == '*') ADVANCE(67); - if (lookahead == '+') ADVANCE(64); - if (lookahead == ',') ADVANCE(38); - if (lookahead == '-') ADVANCE(66); + if (eof) ADVANCE(37); + if (lookahead == '!') ADVANCE(76); + if (lookahead == '%') ADVANCE(87); + if (lookahead == '&') ADVANCE(78); + if (lookahead == '(') ADVANCE(88); + if (lookahead == ')') ADVANCE(89); + if (lookahead == '*') ADVANCE(74); + if (lookahead == '+') ADVANCE(71); + if (lookahead == ',') ADVANCE(40); + if (lookahead == '-') ADVANCE(73); if (lookahead == '.') ADVANCE(12); - if (lookahead == '/') ADVANCE(79); - if (lookahead == ':') ADVANCE(37); - if (lookahead == ';') ADVANCE(88); - if (lookahead == '<') ADVANCE(75); - if (lookahead == '=') ADVANCE(87); - if (lookahead == '>') ADVANCE(77); - if (lookahead == '[') ADVANCE(56); - if (lookahead == ']') ADVANCE(57); - if (lookahead == '^') ADVANCE(72); - if (lookahead == 'e') ADVANCE(24); - if (lookahead == 'f') ADVANCE(28); - if (lookahead == 'g') ADVANCE(17); - if (lookahead == 'i') ADVANCE(22); - if (lookahead == 'm') ADVANCE(29); - if (lookahead == 'r') ADVANCE(18); - if (lookahead == 's') ADVANCE(32); - if (lookahead == '{') ADVANCE(82); - if (lookahead == '|') ADVANCE(70); - if (lookahead == '}') ADVANCE(83); + if (lookahead == '/') ADVANCE(86); + if (lookahead == ':') ADVANCE(39); + if (lookahead == ';') ADVANCE(98); + if (lookahead == '<') ADVANCE(82); + if (lookahead == '=') ADVANCE(97); + if (lookahead == '>') ADVANCE(84); + if (lookahead == '[') ADVANCE(65); + if (lookahead == ']') ADVANCE(66); + if (lookahead == '^') ADVANCE(79); + if (lookahead == 'e') ADVANCE(26); + if (lookahead == 'f') ADVANCE(30); + if (lookahead == 'g') ADVANCE(19); + if (lookahead == 'i') ADVANCE(24); + if (lookahead == 'm') ADVANCE(31); + if (lookahead == 'r') ADVANCE(20); + if (lookahead == 's') ADVANCE(34); + if (lookahead == '{') ADVANCE(91); + if (lookahead == '|') ADVANCE(77); + if (lookahead == '}') ADVANCE(92); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(0) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(55); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63); END_STATE(); case 1: - if (lookahead == '\n') ADVANCE(96); + if (lookahead == '\n') ADVANCE(106); if (lookahead != 0) ADVANCE(1); END_STATE(); case 2: - if (lookahead == '!') ADVANCE(68); - if (lookahead == '&') ADVANCE(71); - if (lookahead == '(') ADVANCE(62); - if (lookahead == '*') ADVANCE(67); - if (lookahead == '+') ADVANCE(64); - if (lookahead == '-') ADVANCE(65); + if (lookahead == '!') ADVANCE(75); + if (lookahead == '&') ADVANCE(78); + if (lookahead == '(') ADVANCE(88); + if (lookahead == ')') ADVANCE(89); + if (lookahead == '*') ADVANCE(74); + if (lookahead == '+') ADVANCE(71); + if (lookahead == '-') ADVANCE(72); if (lookahead == '/') ADVANCE(6); - if (lookahead == '^') ADVANCE(72); - if (lookahead == 'e') ADVANCE(47); - if (lookahead == 'f') ADVANCE(49); - if (lookahead == 'g') ADVANCE(41); - if (lookahead == 'i') ADVANCE(45); - if (lookahead == 'r') ADVANCE(42); - if (lookahead == 's') ADVANCE(52); - if (lookahead == '{') ADVANCE(82); - if (lookahead == '|') ADVANCE(70); - if (lookahead == '}') ADVANCE(83); + if (lookahead == ':') ADVANCE(14); + if (lookahead == '^') ADVANCE(79); + if (lookahead == '|') ADVANCE(77); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(2) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(55); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(54); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(62); END_STATE(); case 3: - if (lookahead == '!') ADVANCE(68); - if (lookahead == '&') ADVANCE(71); - if (lookahead == '(') ADVANCE(62); - if (lookahead == '*') ADVANCE(67); - if (lookahead == '+') ADVANCE(64); - if (lookahead == '-') ADVANCE(65); + if (lookahead == '!') ADVANCE(75); + if (lookahead == '&') ADVANCE(78); + if (lookahead == '(') ADVANCE(88); + if (lookahead == '*') ADVANCE(74); + if (lookahead == '+') ADVANCE(71); + if (lookahead == '-') ADVANCE(72); if (lookahead == '/') ADVANCE(6); - if (lookahead == '^') ADVANCE(72); - if (lookahead == 'f') ADVANCE(49); - if (lookahead == 'g') ADVANCE(41); - if (lookahead == 'i') ADVANCE(45); - if (lookahead == 'r') ADVANCE(42); - if (lookahead == 's') ADVANCE(52); - if (lookahead == '{') ADVANCE(82); - if (lookahead == '|') ADVANCE(70); - if (lookahead == '}') ADVANCE(83); + if (lookahead == ':') ADVANCE(14); + if (lookahead == '^') ADVANCE(79); + if (lookahead == 'e') ADVANCE(53); + if (lookahead == 'f') ADVANCE(56); + if (lookahead == 'g') ADVANCE(44); + if (lookahead == 'i') ADVANCE(48); + if (lookahead == 'r') ADVANCE(45); + if (lookahead == 's') ADVANCE(59); + if (lookahead == '{') ADVANCE(91); + if (lookahead == '|') ADVANCE(77); + if (lookahead == '}') ADVANCE(92); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(3) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(55); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(54); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(62); END_STATE(); case 4: - if (lookahead == '!') ADVANCE(68); - if (lookahead == '&') ADVANCE(71); - if (lookahead == '(') ADVANCE(62); - if (lookahead == '*') ADVANCE(67); - if (lookahead == '+') ADVANCE(64); - if (lookahead == '-') ADVANCE(65); + if (lookahead == '!') ADVANCE(75); + if (lookahead == '&') ADVANCE(78); + if (lookahead == '(') ADVANCE(88); + if (lookahead == '*') ADVANCE(74); + if (lookahead == '+') ADVANCE(71); + if (lookahead == '-') ADVANCE(72); if (lookahead == '/') ADVANCE(6); - if (lookahead == '^') ADVANCE(72); - if (lookahead == '|') ADVANCE(70); + if (lookahead == ':') ADVANCE(14); + if (lookahead == '^') ADVANCE(79); + if (lookahead == 'f') ADVANCE(56); + if (lookahead == 'g') ADVANCE(44); + if (lookahead == 'i') ADVANCE(48); + if (lookahead == 'r') ADVANCE(45); + if (lookahead == 's') ADVANCE(59); + if (lookahead == '{') ADVANCE(91); + if (lookahead == '|') ADVANCE(77); + if (lookahead == '}') ADVANCE(92); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(4) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(55); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(54); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(62); END_STATE(); case 5: - if (lookahead == '!') ADVANCE(13); - if (lookahead == '%') ADVANCE(80); - if (lookahead == '&') ADVANCE(71); - if (lookahead == ')') ADVANCE(63); - if (lookahead == '*') ADVANCE(67); - if (lookahead == '+') ADVANCE(64); - if (lookahead == ',') ADVANCE(38); - if (lookahead == '-') ADVANCE(65); + if (lookahead == '!') ADVANCE(15); + if (lookahead == '%') ADVANCE(87); + if (lookahead == '&') ADVANCE(78); + if (lookahead == '(') ADVANCE(88); + if (lookahead == ')') ADVANCE(89); + if (lookahead == '*') ADVANCE(74); + if (lookahead == '+') ADVANCE(71); + if (lookahead == ',') ADVANCE(40); + if (lookahead == '-') ADVANCE(72); if (lookahead == '.') ADVANCE(12); - if (lookahead == '/') ADVANCE(79); - if (lookahead == ';') ADVANCE(88); - if (lookahead == '<') ADVANCE(75); - if (lookahead == '=') ADVANCE(87); - if (lookahead == '>') ADVANCE(77); - if (lookahead == '[') ADVANCE(56); - if (lookahead == ']') ADVANCE(57); - if (lookahead == '^') ADVANCE(72); - if (lookahead == '{') ADVANCE(82); - if (lookahead == '|') ADVANCE(70); + if (lookahead == '/') ADVANCE(86); + if (lookahead == ':') ADVANCE(14); + if (lookahead == ';') ADVANCE(98); + if (lookahead == '<') ADVANCE(82); + if (lookahead == '=') ADVANCE(97); + if (lookahead == '>') ADVANCE(84); + if (lookahead == '[') ADVANCE(65); + if (lookahead == ']') ADVANCE(66); + if (lookahead == '^') ADVANCE(79); + if (lookahead == '{') ADVANCE(91); + if (lookahead == '|') ADVANCE(77); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(5) - if (sym_identifier_character_set_1(lookahead)) ADVANCE(54); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(62); END_STATE(); case 6: if (lookahead == '*') ADVANCE(8); @@ -2275,7 +2337,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 7: if (lookahead == '*') ADVANCE(7); - if (lookahead == '/') ADVANCE(97); + if (lookahead == '/') ADVANCE(107); if (lookahead != 0) ADVANCE(8); END_STATE(); case 8: @@ -2283,345 +2345,401 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead != 0) ADVANCE(8); END_STATE(); case 9: - if (lookahead == ',') ADVANCE(38); - if (lookahead == '-') ADVANCE(14); + if (lookahead == ',') ADVANCE(40); + if (lookahead == '-') ADVANCE(16); if (lookahead == '/') ADVANCE(6); - if (lookahead == ';') ADVANCE(88); - if (lookahead == '=') ADVANCE(86); - if (lookahead == 'i') ADVANCE(26); - if (lookahead == '{') ADVANCE(82); + if (lookahead == ':') ADVANCE(14); + if (lookahead == 'g') ADVANCE(44); + if (lookahead == 'i') ADVANCE(54); + if (lookahead == 'r') ADVANCE(45); + if (lookahead == 's') ADVANCE(59); + if (lookahead == '{') ADVANCE(91); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(9) + if (sym_identifier_character_set_1(lookahead)) ADVANCE(62); END_STATE(); case 10: - if (lookahead == ',') ADVANCE(38); - if (lookahead == '-') ADVANCE(14); + if (lookahead == ',') ADVANCE(40); + if (lookahead == '-') ADVANCE(16); if (lookahead == '/') ADVANCE(6); - if (lookahead == 'g') ADVANCE(41); - if (lookahead == 'r') ADVANCE(42); - if (lookahead == 's') ADVANCE(52); - if (lookahead == '{') ADVANCE(82); + if (lookahead == ';') ADVANCE(98); + if (lookahead == '=') ADVANCE(96); + if (lookahead == 'i') ADVANCE(28); + if (lookahead == '{') ADVANCE(91); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(10) - if (sym_identifier_character_set_1(lookahead)) ADVANCE(54); END_STATE(); case 11: - if (lookahead == '-') ADVANCE(14); + if (lookahead == '-') ADVANCE(16); if (lookahead == '/') ADVANCE(6); - if (lookahead == 'g') ADVANCE(41); - if (lookahead == 's') ADVANCE(52); - if (lookahead == '{') ADVANCE(82); + if (lookahead == ':') ADVANCE(14); + if (lookahead == 'g') ADVANCE(44); + if (lookahead == 's') ADVANCE(59); + if (lookahead == '{') ADVANCE(91); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(11) - if (sym_identifier_character_set_1(lookahead)) ADVANCE(54); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(62); END_STATE(); case 12: - if (lookahead == '.') ADVANCE(81); + if (lookahead == '.') ADVANCE(90); END_STATE(); case 13: - if (lookahead == '=') ADVANCE(74); + if (lookahead == '/') ADVANCE(6); + if (lookahead == ':') ADVANCE(14); + if (lookahead == 'g') ADVANCE(44); + if (lookahead == 'r') ADVANCE(45); + if (lookahead == 's') ADVANCE(59); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(13) + if (sym_identifier_character_set_1(lookahead)) ADVANCE(62); END_STATE(); case 14: - if (lookahead == '>') ADVANCE(39); + if (lookahead == ':') ADVANCE(64); END_STATE(); case 15: - if (lookahead == 'a') ADVANCE(33); + if (lookahead == '=') ADVANCE(81); END_STATE(); case 16: - if (lookahead == 'd') ADVANCE(34); + if (lookahead == '>') ADVANCE(41); END_STATE(); case 17: - if (lookahead == 'e') ADVANCE(27); + if (lookahead == 'a') ADVANCE(35); END_STATE(); case 18: - if (lookahead == 'e') ADVANCE(23); + if (lookahead == 'd') ADVANCE(36); END_STATE(); case 19: - if (lookahead == 'e') ADVANCE(91); + if (lookahead == 'e') ADVANCE(29); END_STATE(); case 20: - if (lookahead == 'e') ADVANCE(58); + if (lookahead == 'e') ADVANCE(25); END_STATE(); case 21: - if (lookahead == 'e') ADVANCE(36); + if (lookahead == 'e') ADVANCE(101); END_STATE(); case 22: - if (lookahead == 'f') ADVANCE(89); - if (lookahead == 'n') ADVANCE(95); + if (lookahead == 'e') ADVANCE(67); END_STATE(); case 23: - if (lookahead == 'g') ADVANCE(84); + if (lookahead == 'e') ADVANCE(38); END_STATE(); case 24: - if (lookahead == 'l') ADVANCE(31); + if (lookahead == 'f') ADVANCE(99); + if (lookahead == 'n') ADVANCE(105); END_STATE(); case 25: - if (lookahead == 'l') ADVANCE(21); + if (lookahead == 'g') ADVANCE(93); END_STATE(); case 26: - if (lookahead == 'n') ADVANCE(95); + if (lookahead == 'l') ADVANCE(33); END_STATE(); case 27: - if (lookahead == 'n') ADVANCE(60); + if (lookahead == 'l') ADVANCE(23); END_STATE(); case 28: - if (lookahead == 'o') ADVANCE(30); + if (lookahead == 'n') ADVANCE(105); END_STATE(); case 29: - if (lookahead == 'o') ADVANCE(16); + if (lookahead == 'n') ADVANCE(69); END_STATE(); case 30: - if (lookahead == 'r') ADVANCE(93); + if (lookahead == 'o') ADVANCE(32); END_STATE(); case 31: - if (lookahead == 's') ADVANCE(19); + if (lookahead == 'o') ADVANCE(18); END_STATE(); case 32: - if (lookahead == 't') ADVANCE(15); + if (lookahead == 'r') ADVANCE(103); END_STATE(); case 33: - if (lookahead == 't') ADVANCE(20); + if (lookahead == 's') ADVANCE(21); END_STATE(); case 34: - if (lookahead == 'u') ADVANCE(25); + if (lookahead == 't') ADVANCE(17); END_STATE(); case 35: - ACCEPT_TOKEN(ts_builtin_sym_end); + if (lookahead == 't') ADVANCE(22); END_STATE(); case 36: - ACCEPT_TOKEN(anon_sym_module); + if (lookahead == 'u') ADVANCE(27); END_STATE(); case 37: - ACCEPT_TOKEN(anon_sym_COLON); + ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); case 38: - ACCEPT_TOKEN(anon_sym_COMMA); + ACCEPT_TOKEN(anon_sym_module); END_STATE(); case 39: - ACCEPT_TOKEN(anon_sym_DASH_GT); + ACCEPT_TOKEN(anon_sym_COLON); END_STATE(); case 40: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'a') ADVANCE(53); - if (sym_identifier_character_set_2(lookahead)) ADVANCE(54); + ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); case 41: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(48); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + ACCEPT_TOKEN(anon_sym_DASH_GT); END_STATE(); case 42: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(46); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + if (lookahead == 'a') ADVANCE(52); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(62); END_STATE(); case 43: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(59); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + if (lookahead == 'a') ADVANCE(61); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(62); END_STATE(); case 44: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(92); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + if (lookahead == 'e') ADVANCE(55); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); END_STATE(); case 45: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'f') ADVANCE(90); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + if (lookahead == 'e') ADVANCE(49); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); END_STATE(); case 46: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'g') ADVANCE(85); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + if (lookahead == 'e') ADVANCE(68); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); END_STATE(); case 47: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'l') ADVANCE(51); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + if (lookahead == 'e') ADVANCE(102); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); END_STATE(); case 48: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'n') ADVANCE(61); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + if (lookahead == 'f') ADVANCE(100); + if (lookahead == 'n') ADVANCE(50); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); END_STATE(); case 49: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'o') ADVANCE(50); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + if (lookahead == 'g') ADVANCE(94); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); END_STATE(); case 50: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'r') ADVANCE(94); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + if (lookahead == 'i') ADVANCE(60); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); END_STATE(); case 51: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 's') ADVANCE(44); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + if (lookahead == 'i') ADVANCE(42); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); END_STATE(); case 52: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 't') ADVANCE(40); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + if (lookahead == 'l') ADVANCE(95); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); END_STATE(); case 53: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 't') ADVANCE(43); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + if (lookahead == 'l') ADVANCE(58); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); END_STATE(); case 54: ACCEPT_TOKEN(sym_identifier); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + if (lookahead == 'n') ADVANCE(50); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); END_STATE(); case 55: - ACCEPT_TOKEN(sym_number); - if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(55); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'n') ADVANCE(70); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); END_STATE(); case 56: - ACCEPT_TOKEN(anon_sym_LBRACK); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'o') ADVANCE(57); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); END_STATE(); case 57: - ACCEPT_TOKEN(anon_sym_RBRACK); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'r') ADVANCE(104); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); END_STATE(); case 58: - ACCEPT_TOKEN(anon_sym_state); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 's') ADVANCE(47); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); END_STATE(); case 59: - ACCEPT_TOKEN(anon_sym_state); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 't') ADVANCE(43); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); END_STATE(); case 60: - ACCEPT_TOKEN(anon_sym_gen); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 't') ADVANCE(51); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); END_STATE(); case 61: - ACCEPT_TOKEN(anon_sym_gen); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 't') ADVANCE(46); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); END_STATE(); case 62: - ACCEPT_TOKEN(anon_sym_LPAREN); + ACCEPT_TOKEN(sym_identifier); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); END_STATE(); case 63: - ACCEPT_TOKEN(anon_sym_RPAREN); + ACCEPT_TOKEN(sym_number); + if (('0' <= lookahead && lookahead <= '9') || + lookahead == '_') ADVANCE(63); END_STATE(); case 64: - ACCEPT_TOKEN(anon_sym_PLUS); + ACCEPT_TOKEN(anon_sym_COLON_COLON); END_STATE(); case 65: - ACCEPT_TOKEN(anon_sym_DASH); + ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); case 66: - ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '>') ADVANCE(39); + ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); case 67: - ACCEPT_TOKEN(anon_sym_STAR); + ACCEPT_TOKEN(anon_sym_state); END_STATE(); case 68: - ACCEPT_TOKEN(anon_sym_BANG); + ACCEPT_TOKEN(anon_sym_state); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); END_STATE(); case 69: - ACCEPT_TOKEN(anon_sym_BANG); - if (lookahead == '=') ADVANCE(74); + ACCEPT_TOKEN(anon_sym_gen); END_STATE(); case 70: - ACCEPT_TOKEN(anon_sym_PIPE); + ACCEPT_TOKEN(anon_sym_gen); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); END_STATE(); case 71: - ACCEPT_TOKEN(anon_sym_AMP); + ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); case 72: - ACCEPT_TOKEN(anon_sym_CARET); + ACCEPT_TOKEN(anon_sym_DASH); END_STATE(); case 73: - ACCEPT_TOKEN(anon_sym_EQ_EQ); + ACCEPT_TOKEN(anon_sym_DASH); + if (lookahead == '>') ADVANCE(41); END_STATE(); case 74: - ACCEPT_TOKEN(anon_sym_BANG_EQ); + ACCEPT_TOKEN(anon_sym_STAR); END_STATE(); case 75: - ACCEPT_TOKEN(anon_sym_LT); - if (lookahead == '=') ADVANCE(76); + ACCEPT_TOKEN(anon_sym_BANG); END_STATE(); case 76: - ACCEPT_TOKEN(anon_sym_LT_EQ); + ACCEPT_TOKEN(anon_sym_BANG); + if (lookahead == '=') ADVANCE(81); END_STATE(); case 77: - ACCEPT_TOKEN(anon_sym_GT); - if (lookahead == '=') ADVANCE(78); + ACCEPT_TOKEN(anon_sym_PIPE); END_STATE(); case 78: - ACCEPT_TOKEN(anon_sym_GT_EQ); + ACCEPT_TOKEN(anon_sym_AMP); END_STATE(); case 79: + ACCEPT_TOKEN(anon_sym_CARET); + END_STATE(); + case 80: + ACCEPT_TOKEN(anon_sym_EQ_EQ); + END_STATE(); + case 81: + ACCEPT_TOKEN(anon_sym_BANG_EQ); + END_STATE(); + case 82: + ACCEPT_TOKEN(anon_sym_LT); + if (lookahead == '=') ADVANCE(83); + END_STATE(); + case 83: + ACCEPT_TOKEN(anon_sym_LT_EQ); + END_STATE(); + case 84: + ACCEPT_TOKEN(anon_sym_GT); + if (lookahead == '=') ADVANCE(85); + END_STATE(); + case 85: + ACCEPT_TOKEN(anon_sym_GT_EQ); + END_STATE(); + case 86: ACCEPT_TOKEN(anon_sym_SLASH); if (lookahead == '*') ADVANCE(8); if (lookahead == '/') ADVANCE(1); END_STATE(); - case 80: + case 87: ACCEPT_TOKEN(anon_sym_PERCENT); END_STATE(); - case 81: + case 88: + ACCEPT_TOKEN(anon_sym_LPAREN); + END_STATE(); + case 89: + ACCEPT_TOKEN(anon_sym_RPAREN); + END_STATE(); + case 90: ACCEPT_TOKEN(anon_sym_DOT_DOT); END_STATE(); - case 82: + case 91: ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); - case 83: + case 92: ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); - case 84: + case 93: ACCEPT_TOKEN(anon_sym_reg); END_STATE(); - case 85: + case 94: ACCEPT_TOKEN(anon_sym_reg); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); END_STATE(); - case 86: + case 95: + ACCEPT_TOKEN(anon_sym_initial); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); + END_STATE(); + case 96: ACCEPT_TOKEN(anon_sym_EQ); END_STATE(); - case 87: + case 97: ACCEPT_TOKEN(anon_sym_EQ); - if (lookahead == '=') ADVANCE(73); + if (lookahead == '=') ADVANCE(80); END_STATE(); - case 88: + case 98: ACCEPT_TOKEN(anon_sym_SEMI); END_STATE(); - case 89: + case 99: ACCEPT_TOKEN(anon_sym_if); END_STATE(); - case 90: + case 100: ACCEPT_TOKEN(anon_sym_if); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); END_STATE(); - case 91: + case 101: ACCEPT_TOKEN(anon_sym_else); END_STATE(); - case 92: + case 102: ACCEPT_TOKEN(anon_sym_else); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); END_STATE(); - case 93: + case 103: ACCEPT_TOKEN(anon_sym_for); END_STATE(); - case 94: + case 104: ACCEPT_TOKEN(anon_sym_for); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(54); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); END_STATE(); - case 95: + case 105: ACCEPT_TOKEN(anon_sym_in); END_STATE(); - case 96: + case 106: ACCEPT_TOKEN(sym_single_line_comment); END_STATE(); - case 97: + case 107: ACCEPT_TOKEN(sym_multi_line_comment); END_STATE(); default: @@ -2632,13 +2750,13 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { static const TSLexMode ts_lex_modes[STATE_COUNT] = { [0] = {.lex_state = 0}, [1] = {.lex_state = 0}, - [2] = {.lex_state = 3}, - [3] = {.lex_state = 3}, - [4] = {.lex_state = 3}, - [5] = {.lex_state = 3}, - [6] = {.lex_state = 3}, - [7] = {.lex_state = 3}, - [8] = {.lex_state = 3}, + [2] = {.lex_state = 4}, + [3] = {.lex_state = 4}, + [4] = {.lex_state = 4}, + [5] = {.lex_state = 4}, + [6] = {.lex_state = 4}, + [7] = {.lex_state = 4}, + [8] = {.lex_state = 4}, [9] = {.lex_state = 5}, [10] = {.lex_state = 5}, [11] = {.lex_state = 5}, @@ -2653,87 +2771,108 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [20] = {.lex_state = 5}, [21] = {.lex_state = 5}, [22] = {.lex_state = 5}, - [23] = {.lex_state = 2}, - [24] = {.lex_state = 2}, + [23] = {.lex_state = 3}, + [24] = {.lex_state = 5}, [25] = {.lex_state = 5}, - [26] = {.lex_state = 2}, - [27] = {.lex_state = 3}, - [28] = {.lex_state = 3}, + [26] = {.lex_state = 5}, + [27] = {.lex_state = 5}, + [28] = {.lex_state = 5}, [29] = {.lex_state = 3}, [30] = {.lex_state = 3}, - [31] = {.lex_state = 3}, - [32] = {.lex_state = 3}, - [33] = {.lex_state = 3}, + [31] = {.lex_state = 5}, + [32] = {.lex_state = 5}, + [33] = {.lex_state = 5}, [34] = {.lex_state = 4}, [35] = {.lex_state = 5}, [36] = {.lex_state = 4}, [37] = {.lex_state = 4}, - [38] = {.lex_state = 5}, + [38] = {.lex_state = 4}, [39] = {.lex_state = 4}, [40] = {.lex_state = 4}, [41] = {.lex_state = 4}, [42] = {.lex_state = 5}, - [43] = {.lex_state = 5}, - [44] = {.lex_state = 4}, - [45] = {.lex_state = 4}, - [46] = {.lex_state = 5}, - [47] = {.lex_state = 4}, - [48] = {.lex_state = 5}, - [49] = {.lex_state = 5}, - [50] = {.lex_state = 4}, - [51] = {.lex_state = 4}, - [52] = {.lex_state = 4}, - [53] = {.lex_state = 4}, - [54] = {.lex_state = 10}, - [55] = {.lex_state = 10}, - [56] = {.lex_state = 10}, - [57] = {.lex_state = 11}, - [58] = {.lex_state = 11}, - [59] = {.lex_state = 11}, - [60] = {.lex_state = 9}, - [61] = {.lex_state = 11}, - [62] = {.lex_state = 9}, - [63] = {.lex_state = 11}, - [64] = {.lex_state = 11}, - [65] = {.lex_state = 10}, - [66] = {.lex_state = 0}, - [67] = {.lex_state = 0}, - [68] = {.lex_state = 0}, - [69] = {.lex_state = 0}, - [70] = {.lex_state = 0}, - [71] = {.lex_state = 0}, - [72] = {.lex_state = 0}, - [73] = {.lex_state = 0}, - [74] = {.lex_state = 0}, - [75] = {.lex_state = 10}, - [76] = {.lex_state = 0}, - [77] = {.lex_state = 10}, - [78] = {.lex_state = 0}, - [79] = {.lex_state = 0}, - [80] = {.lex_state = 5}, + [43] = {.lex_state = 2}, + [44] = {.lex_state = 2}, + [45] = {.lex_state = 2}, + [46] = {.lex_state = 2}, + [47] = {.lex_state = 5}, + [48] = {.lex_state = 2}, + [49] = {.lex_state = 2}, + [50] = {.lex_state = 2}, + [51] = {.lex_state = 2}, + [52] = {.lex_state = 2}, + [53] = {.lex_state = 2}, + [54] = {.lex_state = 2}, + [55] = {.lex_state = 2}, + [56] = {.lex_state = 2}, + [57] = {.lex_state = 2}, + [58] = {.lex_state = 2}, + [59] = {.lex_state = 5}, + [60] = {.lex_state = 5}, + [61] = {.lex_state = 5}, + [62] = {.lex_state = 5}, + [63] = {.lex_state = 5}, + [64] = {.lex_state = 5}, + [65] = {.lex_state = 5}, + [66] = {.lex_state = 5}, + [67] = {.lex_state = 9}, + [68] = {.lex_state = 13}, + [69] = {.lex_state = 13}, + [70] = {.lex_state = 11}, + [71] = {.lex_state = 11}, + [72] = {.lex_state = 11}, + [73] = {.lex_state = 11}, + [74] = {.lex_state = 11}, + [75] = {.lex_state = 11}, + [76] = {.lex_state = 5}, + [77] = {.lex_state = 11}, + [78] = {.lex_state = 11}, + [79] = {.lex_state = 13}, + [80] = {.lex_state = 10}, [81] = {.lex_state = 10}, - [82] = {.lex_state = 5}, + [82] = {.lex_state = 0}, [83] = {.lex_state = 0}, - [84] = {.lex_state = 10}, + [84] = {.lex_state = 9}, [85] = {.lex_state = 0}, [86] = {.lex_state = 0}, - [87] = {.lex_state = 0}, + [87] = {.lex_state = 5}, [88] = {.lex_state = 0}, [89] = {.lex_state = 0}, [90] = {.lex_state = 0}, [91] = {.lex_state = 0}, - [92] = {.lex_state = 5}, + [92] = {.lex_state = 0}, [93] = {.lex_state = 0}, - [94] = {.lex_state = 0}, - [95] = {.lex_state = 0}, + [94] = {.lex_state = 5}, + [95] = {.lex_state = 9}, [96] = {.lex_state = 0}, [97] = {.lex_state = 0}, - [98] = {.lex_state = 0}, - [99] = {.lex_state = 5}, + [98] = {.lex_state = 9}, + [99] = {.lex_state = 0}, [100] = {.lex_state = 5}, - [101] = {.lex_state = 5}, + [101] = {.lex_state = 0}, [102] = {.lex_state = 0}, - [103] = {.lex_state = 0}, + [103] = {.lex_state = 9}, + [104] = {.lex_state = 5}, + [105] = {.lex_state = 0}, + [106] = {.lex_state = 0}, + [107] = {.lex_state = 0}, + [108] = {.lex_state = 0}, + [109] = {.lex_state = 0}, + [110] = {.lex_state = 0}, + [111] = {.lex_state = 0}, + [112] = {.lex_state = 0}, + [113] = {.lex_state = 0}, + [114] = {.lex_state = 0}, + [115] = {.lex_state = 0}, + [116] = {.lex_state = 5}, + [117] = {.lex_state = 5}, + [118] = {.lex_state = 5}, + [119] = {.lex_state = 5}, + [120] = {.lex_state = 0}, + [121] = {.lex_state = 5}, + [122] = {.lex_state = 0}, + [123] = {.lex_state = 0}, + [124] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -2748,8 +2887,6 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_RBRACK] = ACTIONS(1), [anon_sym_state] = ACTIONS(1), [anon_sym_gen] = ACTIONS(1), - [anon_sym_LPAREN] = ACTIONS(1), - [anon_sym_RPAREN] = ACTIONS(1), [anon_sym_PLUS] = ACTIONS(1), [anon_sym_DASH] = ACTIONS(1), [anon_sym_STAR] = ACTIONS(1), @@ -2765,6 +2902,8 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_GT_EQ] = ACTIONS(1), [anon_sym_SLASH] = ACTIONS(1), [anon_sym_PERCENT] = ACTIONS(1), + [anon_sym_LPAREN] = ACTIONS(1), + [anon_sym_RPAREN] = ACTIONS(1), [anon_sym_DOT_DOT] = ACTIONS(1), [anon_sym_LBRACE] = ACTIONS(1), [anon_sym_RBRACE] = ACTIONS(1), @@ -2779,37 +2918,38 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(103), - [sym_module] = STATE(70), - [aux_sym_source_file_repeat1] = STATE(70), + [sym_source_file] = STATE(124), + [sym_module] = STATE(86), + [aux_sym_source_file_repeat1] = STATE(86), [ts_builtin_sym_end] = ACTIONS(5), [anon_sym_module] = ACTIONS(7), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [2] = { - [sym_type] = STATE(99), - [sym_assignable_expr] = STATE(25), - [sym_declaration] = STATE(68), - [sym_paren_expr] = STATE(38), - [sym_unary_op] = STATE(38), - [sym_binary_op] = STATE(38), - [sym__expression] = STATE(38), - [sym_block] = STATE(7), - [sym__assign_left_side] = STATE(97), - [sym_decl_assign_statement] = STATE(7), - [sym_decl_statement] = STATE(7), - [sym_expression_statement] = STATE(7), - [sym_if_statement] = STATE(7), - [sym_for_statement] = STATE(7), - [sym__statement] = STATE(7), - [aux_sym_block_repeat1] = STATE(7), - [aux_sym__assign_left_side_repeat1] = STATE(56), + [sym_global_identifier] = STATE(35), + [sym_type] = STATE(119), + [sym_assignable_expr] = STATE(42), + [sym_declaration] = STATE(92), + [sym_unary_op] = STATE(64), + [sym_binary_op] = STATE(64), + [sym_func_call] = STATE(64), + [sym__expression] = STATE(64), + [sym_block] = STATE(6), + [sym__assign_left_side] = STATE(120), + [sym_decl_assign_statement] = STATE(6), + [sym_decl_statement] = STATE(6), + [sym_expression_statement] = STATE(6), + [sym_if_statement] = STATE(6), + [sym_for_statement] = STATE(6), + [sym__statement] = STATE(6), + [aux_sym_block_repeat1] = STATE(6), + [aux_sym__assign_left_side_repeat1] = STATE(68), [sym_identifier] = ACTIONS(9), [sym_number] = ACTIONS(11), - [anon_sym_state] = ACTIONS(13), - [anon_sym_gen] = ACTIONS(13), - [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_COLON_COLON] = ACTIONS(13), + [anon_sym_state] = ACTIONS(15), + [anon_sym_gen] = ACTIONS(15), [anon_sym_PLUS] = ACTIONS(17), [anon_sym_DASH] = ACTIONS(17), [anon_sym_STAR] = ACTIONS(17), @@ -2817,24 +2957,27 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_PIPE] = ACTIONS(17), [anon_sym_AMP] = ACTIONS(17), [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LBRACE] = ACTIONS(19), - [anon_sym_RBRACE] = ACTIONS(21), - [anon_sym_reg] = ACTIONS(23), - [anon_sym_if] = ACTIONS(25), - [anon_sym_for] = ACTIONS(27), + [anon_sym_LPAREN] = ACTIONS(19), + [anon_sym_LBRACE] = ACTIONS(21), + [anon_sym_RBRACE] = ACTIONS(23), + [anon_sym_reg] = ACTIONS(25), + [anon_sym_initial] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_for] = ACTIONS(31), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [3] = { - [sym_type] = STATE(99), - [sym_assignable_expr] = STATE(25), - [sym_declaration] = STATE(68), - [sym_paren_expr] = STATE(38), - [sym_unary_op] = STATE(38), - [sym_binary_op] = STATE(38), - [sym__expression] = STATE(38), + [sym_global_identifier] = STATE(35), + [sym_type] = STATE(119), + [sym_assignable_expr] = STATE(42), + [sym_declaration] = STATE(92), + [sym_unary_op] = STATE(64), + [sym_binary_op] = STATE(64), + [sym_func_call] = STATE(64), + [sym__expression] = STATE(64), [sym_block] = STATE(2), - [sym__assign_left_side] = STATE(97), + [sym__assign_left_side] = STATE(120), [sym_decl_assign_statement] = STATE(2), [sym_decl_statement] = STATE(2), [sym_expression_statement] = STATE(2), @@ -2842,12 +2985,12 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_for_statement] = STATE(2), [sym__statement] = STATE(2), [aux_sym_block_repeat1] = STATE(2), - [aux_sym__assign_left_side_repeat1] = STATE(56), + [aux_sym__assign_left_side_repeat1] = STATE(68), [sym_identifier] = ACTIONS(9), [sym_number] = ACTIONS(11), - [anon_sym_state] = ACTIONS(13), - [anon_sym_gen] = ACTIONS(13), - [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_COLON_COLON] = ACTIONS(13), + [anon_sym_state] = ACTIONS(15), + [anon_sym_gen] = ACTIONS(15), [anon_sym_PLUS] = ACTIONS(17), [anon_sym_DASH] = ACTIONS(17), [anon_sym_STAR] = ACTIONS(17), @@ -2855,37 +2998,40 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_PIPE] = ACTIONS(17), [anon_sym_AMP] = ACTIONS(17), [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LBRACE] = ACTIONS(19), - [anon_sym_RBRACE] = ACTIONS(29), - [anon_sym_reg] = ACTIONS(23), - [anon_sym_if] = ACTIONS(25), - [anon_sym_for] = ACTIONS(27), + [anon_sym_LPAREN] = ACTIONS(19), + [anon_sym_LBRACE] = ACTIONS(21), + [anon_sym_RBRACE] = ACTIONS(33), + [anon_sym_reg] = ACTIONS(25), + [anon_sym_initial] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_for] = ACTIONS(31), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [4] = { - [sym_type] = STATE(99), - [sym_assignable_expr] = STATE(25), - [sym_declaration] = STATE(68), - [sym_paren_expr] = STATE(38), - [sym_unary_op] = STATE(38), - [sym_binary_op] = STATE(38), - [sym__expression] = STATE(38), - [sym_block] = STATE(7), - [sym__assign_left_side] = STATE(97), - [sym_decl_assign_statement] = STATE(7), - [sym_decl_statement] = STATE(7), - [sym_expression_statement] = STATE(7), - [sym_if_statement] = STATE(7), - [sym_for_statement] = STATE(7), - [sym__statement] = STATE(7), - [aux_sym_block_repeat1] = STATE(7), - [aux_sym__assign_left_side_repeat1] = STATE(56), + [sym_global_identifier] = STATE(35), + [sym_type] = STATE(119), + [sym_assignable_expr] = STATE(42), + [sym_declaration] = STATE(92), + [sym_unary_op] = STATE(64), + [sym_binary_op] = STATE(64), + [sym_func_call] = STATE(64), + [sym__expression] = STATE(64), + [sym_block] = STATE(6), + [sym__assign_left_side] = STATE(120), + [sym_decl_assign_statement] = STATE(6), + [sym_decl_statement] = STATE(6), + [sym_expression_statement] = STATE(6), + [sym_if_statement] = STATE(6), + [sym_for_statement] = STATE(6), + [sym__statement] = STATE(6), + [aux_sym_block_repeat1] = STATE(6), + [aux_sym__assign_left_side_repeat1] = STATE(68), [sym_identifier] = ACTIONS(9), [sym_number] = ACTIONS(11), - [anon_sym_state] = ACTIONS(13), - [anon_sym_gen] = ACTIONS(13), - [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_COLON_COLON] = ACTIONS(13), + [anon_sym_state] = ACTIONS(15), + [anon_sym_gen] = ACTIONS(15), [anon_sym_PLUS] = ACTIONS(17), [anon_sym_DASH] = ACTIONS(17), [anon_sym_STAR] = ACTIONS(17), @@ -2893,24 +3039,27 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_PIPE] = ACTIONS(17), [anon_sym_AMP] = ACTIONS(17), [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LBRACE] = ACTIONS(19), - [anon_sym_RBRACE] = ACTIONS(31), - [anon_sym_reg] = ACTIONS(23), - [anon_sym_if] = ACTIONS(25), - [anon_sym_for] = ACTIONS(27), + [anon_sym_LPAREN] = ACTIONS(19), + [anon_sym_LBRACE] = ACTIONS(21), + [anon_sym_RBRACE] = ACTIONS(35), + [anon_sym_reg] = ACTIONS(25), + [anon_sym_initial] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_for] = ACTIONS(31), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [5] = { - [sym_type] = STATE(99), - [sym_assignable_expr] = STATE(25), - [sym_declaration] = STATE(68), - [sym_paren_expr] = STATE(38), - [sym_unary_op] = STATE(38), - [sym_binary_op] = STATE(38), - [sym__expression] = STATE(38), + [sym_global_identifier] = STATE(35), + [sym_type] = STATE(119), + [sym_assignable_expr] = STATE(42), + [sym_declaration] = STATE(92), + [sym_unary_op] = STATE(64), + [sym_binary_op] = STATE(64), + [sym_func_call] = STATE(64), + [sym__expression] = STATE(64), [sym_block] = STATE(4), - [sym__assign_left_side] = STATE(97), + [sym__assign_left_side] = STATE(120), [sym_decl_assign_statement] = STATE(4), [sym_decl_statement] = STATE(4), [sym_expression_statement] = STATE(4), @@ -2918,12 +3067,12 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_for_statement] = STATE(4), [sym__statement] = STATE(4), [aux_sym_block_repeat1] = STATE(4), - [aux_sym__assign_left_side_repeat1] = STATE(56), + [aux_sym__assign_left_side_repeat1] = STATE(68), [sym_identifier] = ACTIONS(9), [sym_number] = ACTIONS(11), - [anon_sym_state] = ACTIONS(13), - [anon_sym_gen] = ACTIONS(13), - [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_COLON_COLON] = ACTIONS(13), + [anon_sym_state] = ACTIONS(15), + [anon_sym_gen] = ACTIONS(15), [anon_sym_PLUS] = ACTIONS(17), [anon_sym_DASH] = ACTIONS(17), [anon_sym_STAR] = ACTIONS(17), @@ -2931,37 +3080,81 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_PIPE] = ACTIONS(17), [anon_sym_AMP] = ACTIONS(17), [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LBRACE] = ACTIONS(19), - [anon_sym_RBRACE] = ACTIONS(33), - [anon_sym_reg] = ACTIONS(23), - [anon_sym_if] = ACTIONS(25), - [anon_sym_for] = ACTIONS(27), + [anon_sym_LPAREN] = ACTIONS(19), + [anon_sym_LBRACE] = ACTIONS(21), + [anon_sym_RBRACE] = ACTIONS(37), + [anon_sym_reg] = ACTIONS(25), + [anon_sym_initial] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_for] = ACTIONS(31), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [6] = { - [sym_type] = STATE(99), - [sym_assignable_expr] = STATE(25), - [sym_declaration] = STATE(68), - [sym_paren_expr] = STATE(38), - [sym_unary_op] = STATE(38), - [sym_binary_op] = STATE(38), - [sym__expression] = STATE(38), - [sym_block] = STATE(7), - [sym__assign_left_side] = STATE(97), - [sym_decl_assign_statement] = STATE(7), - [sym_decl_statement] = STATE(7), - [sym_expression_statement] = STATE(7), - [sym_if_statement] = STATE(7), - [sym_for_statement] = STATE(7), - [sym__statement] = STATE(7), - [aux_sym_block_repeat1] = STATE(7), - [aux_sym__assign_left_side_repeat1] = STATE(56), + [sym_global_identifier] = STATE(35), + [sym_type] = STATE(119), + [sym_assignable_expr] = STATE(42), + [sym_declaration] = STATE(92), + [sym_unary_op] = STATE(64), + [sym_binary_op] = STATE(64), + [sym_func_call] = STATE(64), + [sym__expression] = STATE(64), + [sym_block] = STATE(6), + [sym__assign_left_side] = STATE(120), + [sym_decl_assign_statement] = STATE(6), + [sym_decl_statement] = STATE(6), + [sym_expression_statement] = STATE(6), + [sym_if_statement] = STATE(6), + [sym_for_statement] = STATE(6), + [sym__statement] = STATE(6), + [aux_sym_block_repeat1] = STATE(6), + [aux_sym__assign_left_side_repeat1] = STATE(68), + [sym_identifier] = ACTIONS(39), + [sym_number] = ACTIONS(42), + [anon_sym_COLON_COLON] = ACTIONS(45), + [anon_sym_state] = ACTIONS(48), + [anon_sym_gen] = ACTIONS(48), + [anon_sym_PLUS] = ACTIONS(51), + [anon_sym_DASH] = ACTIONS(51), + [anon_sym_STAR] = ACTIONS(51), + [anon_sym_BANG] = ACTIONS(51), + [anon_sym_PIPE] = ACTIONS(51), + [anon_sym_AMP] = ACTIONS(51), + [anon_sym_CARET] = ACTIONS(51), + [anon_sym_LPAREN] = ACTIONS(54), + [anon_sym_LBRACE] = ACTIONS(57), + [anon_sym_RBRACE] = ACTIONS(60), + [anon_sym_reg] = ACTIONS(62), + [anon_sym_initial] = ACTIONS(65), + [anon_sym_if] = ACTIONS(68), + [anon_sym_for] = ACTIONS(71), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), + }, + [7] = { + [sym_global_identifier] = STATE(35), + [sym_type] = STATE(119), + [sym_assignable_expr] = STATE(42), + [sym_declaration] = STATE(92), + [sym_unary_op] = STATE(64), + [sym_binary_op] = STATE(64), + [sym_func_call] = STATE(64), + [sym__expression] = STATE(64), + [sym_block] = STATE(8), + [sym__assign_left_side] = STATE(120), + [sym_decl_assign_statement] = STATE(8), + [sym_decl_statement] = STATE(8), + [sym_expression_statement] = STATE(8), + [sym_if_statement] = STATE(8), + [sym_for_statement] = STATE(8), + [sym__statement] = STATE(8), + [aux_sym_block_repeat1] = STATE(8), + [aux_sym__assign_left_side_repeat1] = STATE(68), [sym_identifier] = ACTIONS(9), [sym_number] = ACTIONS(11), - [anon_sym_state] = ACTIONS(13), - [anon_sym_gen] = ACTIONS(13), - [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_COLON_COLON] = ACTIONS(13), + [anon_sym_state] = ACTIONS(15), + [anon_sym_gen] = ACTIONS(15), [anon_sym_PLUS] = ACTIONS(17), [anon_sym_DASH] = ACTIONS(17), [anon_sym_STAR] = ACTIONS(17), @@ -2969,62 +3162,27 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_PIPE] = ACTIONS(17), [anon_sym_AMP] = ACTIONS(17), [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LBRACE] = ACTIONS(19), - [anon_sym_RBRACE] = ACTIONS(35), - [anon_sym_reg] = ACTIONS(23), - [anon_sym_if] = ACTIONS(25), - [anon_sym_for] = ACTIONS(27), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), - }, - [7] = { - [sym_type] = STATE(99), - [sym_assignable_expr] = STATE(25), - [sym_declaration] = STATE(68), - [sym_paren_expr] = STATE(38), - [sym_unary_op] = STATE(38), - [sym_binary_op] = STATE(38), - [sym__expression] = STATE(38), - [sym_block] = STATE(7), - [sym__assign_left_side] = STATE(97), - [sym_decl_assign_statement] = STATE(7), - [sym_decl_statement] = STATE(7), - [sym_expression_statement] = STATE(7), - [sym_if_statement] = STATE(7), - [sym_for_statement] = STATE(7), - [sym__statement] = STATE(7), - [aux_sym_block_repeat1] = STATE(7), - [aux_sym__assign_left_side_repeat1] = STATE(56), - [sym_identifier] = ACTIONS(37), - [sym_number] = ACTIONS(40), - [anon_sym_state] = ACTIONS(43), - [anon_sym_gen] = ACTIONS(43), - [anon_sym_LPAREN] = ACTIONS(46), - [anon_sym_PLUS] = ACTIONS(49), - [anon_sym_DASH] = ACTIONS(49), - [anon_sym_STAR] = ACTIONS(49), - [anon_sym_BANG] = ACTIONS(49), - [anon_sym_PIPE] = ACTIONS(49), - [anon_sym_AMP] = ACTIONS(49), - [anon_sym_CARET] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(52), - [anon_sym_RBRACE] = ACTIONS(55), - [anon_sym_reg] = ACTIONS(57), - [anon_sym_if] = ACTIONS(60), - [anon_sym_for] = ACTIONS(63), + [anon_sym_LPAREN] = ACTIONS(19), + [anon_sym_LBRACE] = ACTIONS(21), + [anon_sym_RBRACE] = ACTIONS(74), + [anon_sym_reg] = ACTIONS(25), + [anon_sym_initial] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_for] = ACTIONS(31), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [8] = { - [sym_type] = STATE(99), - [sym_assignable_expr] = STATE(25), - [sym_declaration] = STATE(68), - [sym_paren_expr] = STATE(38), - [sym_unary_op] = STATE(38), - [sym_binary_op] = STATE(38), - [sym__expression] = STATE(38), + [sym_global_identifier] = STATE(35), + [sym_type] = STATE(119), + [sym_assignable_expr] = STATE(42), + [sym_declaration] = STATE(92), + [sym_unary_op] = STATE(64), + [sym_binary_op] = STATE(64), + [sym_func_call] = STATE(64), + [sym__expression] = STATE(64), [sym_block] = STATE(6), - [sym__assign_left_side] = STATE(97), + [sym__assign_left_side] = STATE(120), [sym_decl_assign_statement] = STATE(6), [sym_decl_statement] = STATE(6), [sym_expression_statement] = STATE(6), @@ -3032,12 +3190,12 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_for_statement] = STATE(6), [sym__statement] = STATE(6), [aux_sym_block_repeat1] = STATE(6), - [aux_sym__assign_left_side_repeat1] = STATE(56), + [aux_sym__assign_left_side_repeat1] = STATE(68), [sym_identifier] = ACTIONS(9), [sym_number] = ACTIONS(11), - [anon_sym_state] = ACTIONS(13), - [anon_sym_gen] = ACTIONS(13), - [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_COLON_COLON] = ACTIONS(13), + [anon_sym_state] = ACTIONS(15), + [anon_sym_gen] = ACTIONS(15), [anon_sym_PLUS] = ACTIONS(17), [anon_sym_DASH] = ACTIONS(17), [anon_sym_STAR] = ACTIONS(17), @@ -3045,11 +3203,13 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_PIPE] = ACTIONS(17), [anon_sym_AMP] = ACTIONS(17), [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LBRACE] = ACTIONS(19), - [anon_sym_RBRACE] = ACTIONS(66), - [anon_sym_reg] = ACTIONS(23), - [anon_sym_if] = ACTIONS(25), - [anon_sym_for] = ACTIONS(27), + [anon_sym_LPAREN] = ACTIONS(19), + [anon_sym_LBRACE] = ACTIONS(21), + [anon_sym_RBRACE] = ACTIONS(76), + [anon_sym_reg] = ACTIONS(25), + [anon_sym_initial] = ACTIONS(27), + [anon_sym_if] = ACTIONS(29), + [anon_sym_for] = ACTIONS(31), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, @@ -3057,23 +3217,22 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { static const uint16_t ts_small_parse_table[] = { [0] = 5, - ACTIONS(70), 1, - anon_sym_LBRACK, - STATE(9), 1, - aux_sym_type_repeat1, + ACTIONS(80), 1, + anon_sym_COLON_COLON, + STATE(11), 1, + aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(73), 4, + ACTIONS(82), 3, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - anon_sym_EQ, - ACTIONS(68), 18, + ACTIONS(78), 20, anon_sym_COMMA, sym_identifier, + anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_RPAREN, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3085,24 +3244,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, anon_sym_DOT_DOT, anon_sym_LBRACE, anon_sym_SEMI, - [37] = 3, + [38] = 7, + ACTIONS(80), 1, + anon_sym_COLON_COLON, + ACTIONS(86), 1, + anon_sym_LBRACK, + STATE(13), 1, + aux_sym_global_identifier_repeat1, + STATE(16), 1, + aux_sym_type_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(77), 4, + ACTIONS(88), 3, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - anon_sym_EQ, - ACTIONS(75), 19, + ACTIONS(84), 18, anon_sym_COMMA, - sym_identifier, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_RPAREN, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3114,24 +3279,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, anon_sym_DOT_DOT, anon_sym_LBRACE, anon_sym_SEMI, - [69] = 5, - ACTIONS(79), 1, - anon_sym_LBRACK, + [80] = 5, + ACTIONS(80), 1, + anon_sym_COLON_COLON, STATE(12), 1, - aux_sym_type_repeat1, + aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(83), 3, + ACTIONS(92), 3, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - ACTIONS(81), 16, + ACTIONS(90), 20, + anon_sym_COMMA, + sym_identifier, + anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_RPAREN, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3143,24 +3312,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, anon_sym_DOT_DOT, anon_sym_LBRACE, anon_sym_SEMI, - [103] = 5, - ACTIONS(79), 1, - anon_sym_LBRACK, - STATE(9), 1, - aux_sym_type_repeat1, + [118] = 5, + ACTIONS(96), 1, + anon_sym_COLON_COLON, + STATE(12), 1, + aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(87), 3, + ACTIONS(99), 3, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - ACTIONS(85), 16, + ACTIONS(94), 20, + anon_sym_COMMA, + sym_identifier, + anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_RPAREN, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3172,26 +3345,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, anon_sym_DOT_DOT, anon_sym_LBRACE, anon_sym_SEMI, - [137] = 6, - ACTIONS(79), 1, - anon_sym_LBRACK, - ACTIONS(89), 1, - sym_identifier, - STATE(14), 1, - aux_sym_type_repeat1, + [156] = 5, + ACTIONS(80), 1, + anon_sym_COLON_COLON, + STATE(12), 1, + aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(83), 4, + ACTIONS(82), 3, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - anon_sym_EQ, - ACTIONS(81), 13, + ACTIONS(78), 20, anon_sym_COMMA, + sym_identifier, + anon_sym_LBRACK, + anon_sym_RBRACK, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3203,24 +3378,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_DOT_DOT, + anon_sym_LBRACE, anon_sym_SEMI, - [172] = 6, - ACTIONS(79), 1, + [194] = 5, + ACTIONS(103), 1, anon_sym_LBRACK, - ACTIONS(91), 1, - sym_identifier, - STATE(9), 1, + STATE(14), 1, aux_sym_type_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(87), 4, + ACTIONS(106), 4, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_EQ, - ACTIONS(85), 13, + ACTIONS(101), 18, anon_sym_COMMA, + sym_identifier, + anon_sym_RBRACK, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3232,18 +3411,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, - anon_sym_SEMI, - [207] = 3, + anon_sym_RPAREN, + anon_sym_DOT_DOT, + anon_sym_LBRACE, + anon_sym_SEMI, + [231] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(95), 3, + ACTIONS(99), 3, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - ACTIONS(93), 16, + ACTIONS(94), 21, + anon_sym_COMMA, + sym_identifier, + anon_sym_COLON_COLON, + anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_RPAREN, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3255,85 +3440,203 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, anon_sym_DOT_DOT, anon_sym_LBRACE, anon_sym_SEMI, - [235] = 8, - ACTIONS(101), 1, + [264] = 5, + ACTIONS(86), 1, + anon_sym_LBRACK, + STATE(14), 1, + aux_sym_type_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(110), 4, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + anon_sym_EQ, + ACTIONS(108), 17, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, anon_sym_PIPE, - ACTIONS(103), 1, + anon_sym_AMP, anon_sym_CARET, - ACTIONS(105), 1, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_RPAREN, + anon_sym_DOT_DOT, + anon_sym_LBRACE, + anon_sym_SEMI, + [300] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(114), 4, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, + anon_sym_EQ, + ACTIONS(112), 19, + anon_sym_COMMA, + sym_identifier, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_RPAREN, + anon_sym_DOT_DOT, + anon_sym_LBRACE, + anon_sym_SEMI, + [332] = 8, + ACTIONS(80), 1, + anon_sym_COLON_COLON, + ACTIONS(116), 1, + anon_sym_COMMA, + ACTIONS(118), 1, + anon_sym_EQ, + STATE(13), 1, + aux_sym_global_identifier_repeat1, + STATE(16), 1, + aux_sym_type_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(95), 2, + ACTIONS(88), 3, anon_sym_LT, anon_sym_GT, - ACTIONS(97), 2, + anon_sym_SLASH, + ACTIONS(84), 15, + sym_identifier, + anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(99), 2, anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, anon_sym_PERCENT, - ACTIONS(93), 10, + anon_sym_LPAREN, + anon_sym_SEMI, + [374] = 4, + ACTIONS(124), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(122), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(120), 17, + anon_sym_COMMA, anon_sym_RBRACK, - anon_sym_RPAREN, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_RPAREN, anon_sym_DOT_DOT, anon_sym_LBRACE, anon_sym_SEMI, - [273] = 7, - ACTIONS(103), 1, + [406] = 7, + ACTIONS(132), 1, anon_sym_CARET, - ACTIONS(105), 1, + ACTIONS(136), 1, anon_sym_SLASH, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(95), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(97), 2, + ACTIONS(128), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(99), 2, + ACTIONS(130), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(93), 11, + ACTIONS(134), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(126), 12, + anon_sym_COMMA, anon_sym_RBRACK, - anon_sym_RPAREN, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_RPAREN, anon_sym_DOT_DOT, anon_sym_LBRACE, anon_sym_SEMI, - [309] = 5, - ACTIONS(105), 1, - anon_sym_SLASH, + [443] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(95), 2, + ACTIONS(134), 3, anon_sym_LT, anon_sym_GT, - ACTIONS(99), 2, + anon_sym_SLASH, + ACTIONS(126), 17, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_PLUS, + anon_sym_DASH, anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, anon_sym_PERCENT, - ACTIONS(93), 14, - anon_sym_RBRACK, anon_sym_RPAREN, + anon_sym_DOT_DOT, + anon_sym_LBRACE, + anon_sym_SEMI, + [472] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(140), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(138), 17, + anon_sym_COMMA, + anon_sym_RBRACK, anon_sym_PLUS, anon_sym_DASH, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -3341,20 +3644,48 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_RPAREN, anon_sym_DOT_DOT, anon_sym_LBRACE, anon_sym_SEMI, - [341] = 3, + [501] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(109), 3, + ACTIONS(142), 8, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_else, + anon_sym_for, + ACTIONS(144), 12, + sym_number, + anon_sym_COLON_COLON, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [530] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(148), 3, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - ACTIONS(107), 16, + ACTIONS(146), 17, + anon_sym_COMMA, anon_sym_RBRACK, - anon_sym_RPAREN, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3366,27 +3697,50 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_RPAREN, anon_sym_DOT_DOT, anon_sym_LBRACE, anon_sym_SEMI, - [369] = 6, - ACTIONS(105), 1, - anon_sym_SLASH, + [559] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(95), 2, + ACTIONS(152), 3, anon_sym_LT, anon_sym_GT, - ACTIONS(97), 2, + anon_sym_SLASH, + ACTIONS(150), 17, + anon_sym_COMMA, + anon_sym_RBRACK, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(99), 2, anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, anon_sym_PERCENT, - ACTIONS(93), 12, - anon_sym_RBRACK, anon_sym_RPAREN, + anon_sym_DOT_DOT, + anon_sym_LBRACE, + anon_sym_SEMI, + [588] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(156), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(154), 17, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -3394,54 +3748,61 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_RPAREN, anon_sym_DOT_DOT, anon_sym_LBRACE, anon_sym_SEMI, - [403] = 9, - ACTIONS(101), 1, - anon_sym_PIPE, - ACTIONS(103), 1, + [617] = 9, + ACTIONS(132), 1, anon_sym_CARET, - ACTIONS(105), 1, + ACTIONS(136), 1, anon_sym_SLASH, - ACTIONS(111), 1, + ACTIONS(158), 1, + anon_sym_PIPE, + ACTIONS(160), 1, anon_sym_AMP, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(95), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(97), 2, + ACTIONS(128), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(99), 2, + ACTIONS(130), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(93), 9, + ACTIONS(134), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(126), 10, + anon_sym_COMMA, anon_sym_RBRACK, - anon_sym_RPAREN, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_RPAREN, anon_sym_DOT_DOT, anon_sym_LBRACE, anon_sym_SEMI, - [443] = 3, + [658] = 6, + ACTIONS(136), 1, + anon_sym_SLASH, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(115), 3, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, - ACTIONS(113), 16, - anon_sym_RBRACK, - anon_sym_RPAREN, + ACTIONS(128), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(130), 2, anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(134), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(126), 13, + anon_sym_COMMA, + anon_sym_RBRACK, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -3449,26 +3810,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, + anon_sym_RPAREN, anon_sym_DOT_DOT, anon_sym_LBRACE, anon_sym_SEMI, - [471] = 4, - ACTIONS(121), 1, + [693] = 4, + ACTIONS(166), 1, anon_sym_else, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(117), 6, + ACTIONS(162), 7, sym_identifier, anon_sym_state, anon_sym_gen, anon_sym_reg, + anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(119), 11, + ACTIONS(164), 12, sym_number, - anon_sym_LPAREN, + anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3476,23 +3838,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, + anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [500] = 3, + [724] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(123), 7, + ACTIONS(168), 8, sym_identifier, anon_sym_state, anon_sym_gen, anon_sym_reg, + anon_sym_initial, anon_sym_if, anon_sym_else, anon_sym_for, - ACTIONS(125), 11, + ACTIONS(170), 12, sym_number, - anon_sym_LPAREN, + anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3500,23 +3864,79 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, + anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [527] = 6, - ACTIONS(127), 1, + [753] = 8, + ACTIONS(132), 1, + anon_sym_CARET, + ACTIONS(136), 1, + anon_sym_SLASH, + ACTIONS(158), 1, + anon_sym_PIPE, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(128), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(130), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(134), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(126), 11, anon_sym_COMMA, - ACTIONS(133), 1, - anon_sym_EQ, - STATE(83), 1, - aux_sym__assign_left_side_repeat2, + anon_sym_RBRACK, + anon_sym_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_RPAREN, + anon_sym_DOT_DOT, + anon_sym_LBRACE, + anon_sym_SEMI, + [792] = 5, + ACTIONS(136), 1, + anon_sym_SLASH, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(131), 3, + ACTIONS(130), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(134), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(126), 15, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_RPAREN, + anon_sym_DOT_DOT, + anon_sym_LBRACE, + anon_sym_SEMI, + [825] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(174), 3, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - ACTIONS(129), 12, + ACTIONS(172), 17, + anon_sym_COMMA, + anon_sym_RBRACK, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3528,22 +3948,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_RPAREN, + anon_sym_DOT_DOT, + anon_sym_LBRACE, anon_sym_SEMI, - [560] = 3, + [854] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(135), 7, + ACTIONS(142), 7, sym_identifier, anon_sym_state, anon_sym_gen, anon_sym_reg, + anon_sym_initial, anon_sym_if, - anon_sym_else, anon_sym_for, - ACTIONS(137), 11, + ACTIONS(144), 12, sym_number, - anon_sym_LPAREN, + anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3551,22 +3974,53 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, + anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [587] = 3, + [882] = 7, + ACTIONS(86), 1, + anon_sym_LBRACK, + ACTIONS(124), 1, + anon_sym_LPAREN, + ACTIONS(176), 1, + sym_identifier, + STATE(104), 1, + aux_sym_type_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(122), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(120), 12, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_SEMI, + [918] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(139), 6, + ACTIONS(178), 7, sym_identifier, anon_sym_state, anon_sym_gen, anon_sym_reg, + anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(141), 11, + ACTIONS(180), 12, sym_number, - anon_sym_LPAREN, + anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3574,22 +4028,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, + anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [613] = 3, + [946] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(143), 6, + ACTIONS(182), 7, sym_identifier, anon_sym_state, anon_sym_gen, anon_sym_reg, + anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(145), 11, + ACTIONS(184), 12, sym_number, - anon_sym_LPAREN, + anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3597,22 +4053,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, + anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [639] = 3, + [974] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(147), 6, + ACTIONS(186), 7, sym_identifier, anon_sym_state, anon_sym_gen, anon_sym_reg, + anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(149), 11, + ACTIONS(188), 12, sym_number, - anon_sym_LPAREN, + anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3620,22 +4078,49 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, + anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [665] = 3, + [1002] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(151), 6, + ACTIONS(190), 7, sym_identifier, anon_sym_state, anon_sym_gen, anon_sym_reg, + anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(153), 11, + ACTIONS(192), 12, sym_number, + anon_sym_COLON_COLON, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1030] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(168), 7, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(170), 12, + sym_number, + anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3643,22 +4128,84 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, + anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [691] = 3, + [1058] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(155), 6, + ACTIONS(194), 7, sym_identifier, anon_sym_state, anon_sym_gen, anon_sym_reg, + anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(157), 11, + ACTIONS(196), 12, sym_number, + anon_sym_COLON_COLON, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1086] = 6, + ACTIONS(198), 1, + anon_sym_COMMA, + ACTIONS(200), 1, + anon_sym_EQ, + STATE(96), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(122), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(120), 12, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_SEMI, + [1119] = 9, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(202), 1, + sym_identifier, + ACTIONS(204), 1, + sym_number, + STATE(19), 1, + sym_global_identifier, + STATE(110), 1, + sym_range, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(66), 5, + sym_assignable_expr, + sym_unary_op, + sym_binary_op, + sym_func_call, + sym__expression, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3666,22 +4213,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_LBRACE, - anon_sym_RBRACE, - [717] = 3, + [1158] = 9, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(202), 1, + sym_identifier, + ACTIONS(206), 1, + sym_number, + ACTIONS(208), 1, + anon_sym_RPAREN, + STATE(19), 1, + sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(135), 6, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_if, - anon_sym_for, - ACTIONS(137), 11, - sym_number, - anon_sym_LPAREN, + STATE(47), 5, + sym_assignable_expr, + sym_unary_op, + sym_binary_op, + sym_func_call, + sym__expression, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3689,22 +4243,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_LBRACE, - anon_sym_RBRACE, - [743] = 3, + [1197] = 8, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(202), 1, + sym_identifier, + ACTIONS(210), 1, + sym_number, + STATE(19), 1, + sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(123), 6, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_if, - anon_sym_for, - ACTIONS(125), 11, - sym_number, - anon_sym_LPAREN, + STATE(20), 5, + sym_assignable_expr, + sym_unary_op, + sym_binary_op, + sym_func_call, + sym__expression, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3712,25 +4271,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_LBRACE, - anon_sym_RBRACE, - [769] = 7, - ACTIONS(15), 1, + [1233] = 8, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(159), 1, + ACTIONS(202), 1, sym_identifier, - ACTIONS(161), 1, + ACTIONS(212), 1, sym_number, - STATE(87), 1, - sym_range, + STATE(19), 1, + sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(46), 5, + STATE(28), 5, sym_assignable_expr, - sym_paren_expr, sym_unary_op, sym_binary_op, + sym_func_call, sym__expression, ACTIONS(17), 7, anon_sym_PLUS, @@ -3740,51 +4299,57 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [802] = 11, - ACTIONS(101), 1, - anon_sym_PIPE, - ACTIONS(103), 1, + [1269] = 12, + ACTIONS(132), 1, anon_sym_CARET, - ACTIONS(105), 1, + ACTIONS(136), 1, anon_sym_SLASH, - ACTIONS(111), 1, + ACTIONS(158), 1, + anon_sym_PIPE, + ACTIONS(160), 1, anon_sym_AMP, - ACTIONS(167), 1, - anon_sym_LBRACE, - STATE(23), 1, - sym_block, + ACTIONS(214), 1, + anon_sym_COMMA, + ACTIONS(220), 1, + anon_sym_RPAREN, + STATE(102), 1, + aux_sym_func_call_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(97), 2, + ACTIONS(128), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(99), 2, + ACTIONS(130), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(165), 2, + ACTIONS(218), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(163), 4, + ACTIONS(216), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [843] = 6, - ACTIONS(15), 1, + [1313] = 8, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(159), 1, + ACTIONS(202), 1, sym_identifier, - ACTIONS(169), 1, + ACTIONS(222), 1, sym_number, + STATE(19), 1, + sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(35), 5, + STATE(65), 5, sym_assignable_expr, - sym_paren_expr, sym_unary_op, sym_binary_op, + sym_func_call, sym__expression, ACTIONS(17), 7, anon_sym_PLUS, @@ -3794,21 +4359,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [873] = 6, - ACTIONS(15), 1, + [1349] = 8, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(159), 1, + ACTIONS(202), 1, sym_identifier, - ACTIONS(171), 1, + ACTIONS(224), 1, sym_number, + STATE(19), 1, + sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(17), 5, + STATE(21), 5, sym_assignable_expr, - sym_paren_expr, sym_unary_op, sym_binary_op, + sym_func_call, sym__expression, ACTIONS(17), 7, anon_sym_PLUS, @@ -3818,49 +4387,53 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [903] = 10, - ACTIONS(101), 1, - anon_sym_PIPE, - ACTIONS(103), 1, - anon_sym_CARET, - ACTIONS(105), 1, - anon_sym_SLASH, - ACTIONS(111), 1, - anon_sym_AMP, - ACTIONS(173), 1, - anon_sym_SEMI, + [1385] = 8, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(202), 1, + sym_identifier, + ACTIONS(226), 1, + sym_number, + STATE(19), 1, + sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(97), 2, + STATE(32), 5, + sym_assignable_expr, + sym_unary_op, + sym_binary_op, + sym_func_call, + sym__expression, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(99), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(165), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(163), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [941] = 6, - ACTIONS(15), 1, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [1421] = 8, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(159), 1, + ACTIONS(202), 1, sym_identifier, - ACTIONS(175), 1, + ACTIONS(228), 1, sym_number, + STATE(19), 1, + sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(49), 5, + STATE(62), 5, sym_assignable_expr, - sym_paren_expr, sym_unary_op, sym_binary_op, + sym_func_call, sym__expression, ACTIONS(17), 7, anon_sym_PLUS, @@ -3870,21 +4443,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [971] = 6, - ACTIONS(15), 1, + [1457] = 8, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(159), 1, + ACTIONS(202), 1, sym_identifier, - ACTIONS(177), 1, + ACTIONS(230), 1, sym_number, + STATE(19), 1, + sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(48), 5, + STATE(60), 5, sym_assignable_expr, - sym_paren_expr, sym_unary_op, sym_binary_op, + sym_func_call, sym__expression, ACTIONS(17), 7, anon_sym_PLUS, @@ -3894,21 +4471,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1001] = 6, - ACTIONS(15), 1, + [1493] = 8, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(159), 1, + ACTIONS(202), 1, sym_identifier, - ACTIONS(179), 1, + ACTIONS(232), 1, sym_number, + STATE(19), 1, + sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(21), 5, + STATE(63), 5, sym_assignable_expr, - sym_paren_expr, sym_unary_op, sym_binary_op, + sym_func_call, sym__expression, ACTIONS(17), 7, anon_sym_PLUS, @@ -3918,77 +4499,109 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1031] = 10, - ACTIONS(101), 1, + [1529] = 8, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(202), 1, + sym_identifier, + ACTIONS(234), 1, + sym_number, + STATE(19), 1, + sym_global_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(59), 5, + sym_assignable_expr, + sym_unary_op, + sym_binary_op, + sym_func_call, + sym__expression, + ACTIONS(17), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, - ACTIONS(103), 1, - anon_sym_CARET, - ACTIONS(105), 1, - anon_sym_SLASH, - ACTIONS(111), 1, anon_sym_AMP, - ACTIONS(181), 1, - anon_sym_LBRACE, + anon_sym_CARET, + [1565] = 8, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(202), 1, + sym_identifier, + ACTIONS(236), 1, + sym_number, + STATE(19), 1, + sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(97), 2, + STATE(61), 5, + sym_assignable_expr, + sym_unary_op, + sym_binary_op, + sym_func_call, + sym__expression, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(99), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(165), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(163), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [1069] = 10, - ACTIONS(101), 1, + anon_sym_BANG, anon_sym_PIPE, - ACTIONS(103), 1, - anon_sym_CARET, - ACTIONS(105), 1, - anon_sym_SLASH, - ACTIONS(111), 1, anon_sym_AMP, - ACTIONS(183), 1, - anon_sym_RBRACK, + anon_sym_CARET, + [1601] = 8, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(202), 1, + sym_identifier, + ACTIONS(238), 1, + sym_number, + STATE(19), 1, + sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(97), 2, + STATE(25), 5, + sym_assignable_expr, + sym_unary_op, + sym_binary_op, + sym_func_call, + sym__expression, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(99), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(165), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(163), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [1107] = 6, - ACTIONS(15), 1, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [1637] = 8, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(159), 1, + ACTIONS(202), 1, sym_identifier, - ACTIONS(185), 1, + ACTIONS(240), 1, sym_number, + STATE(19), 1, + sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(20), 5, + STATE(31), 5, sym_assignable_expr, - sym_paren_expr, sym_unary_op, sym_binary_op, + sym_func_call, sym__expression, ACTIONS(17), 7, anon_sym_PLUS, @@ -3998,21 +4611,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1137] = 6, - ACTIONS(15), 1, + [1673] = 8, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(159), 1, + ACTIONS(202), 1, sym_identifier, - ACTIONS(187), 1, + ACTIONS(242), 1, sym_number, + STATE(19), 1, + sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(42), 5, + STATE(27), 5, sym_assignable_expr, - sym_paren_expr, sym_unary_op, sym_binary_op, + sym_func_call, sym__expression, ACTIONS(17), 7, anon_sym_PLUS, @@ -4022,723 +4639,885 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1167] = 10, - ACTIONS(101), 1, - anon_sym_PIPE, - ACTIONS(103), 1, + [1709] = 11, + ACTIONS(132), 1, anon_sym_CARET, - ACTIONS(105), 1, + ACTIONS(136), 1, anon_sym_SLASH, - ACTIONS(111), 1, + ACTIONS(158), 1, + anon_sym_PIPE, + ACTIONS(160), 1, anon_sym_AMP, - ACTIONS(189), 1, - anon_sym_DOT_DOT, + ACTIONS(244), 1, + anon_sym_LBRACE, + STATE(29), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(97), 2, + ACTIONS(128), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(99), 2, + ACTIONS(130), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(165), 2, + ACTIONS(218), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(163), 4, + ACTIONS(216), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1205] = 6, - ACTIONS(15), 1, - anon_sym_LPAREN, - ACTIONS(159), 1, - sym_identifier, - ACTIONS(191), 1, - sym_number, + [1750] = 10, + ACTIONS(132), 1, + anon_sym_CARET, + ACTIONS(136), 1, + anon_sym_SLASH, + ACTIONS(158), 1, + anon_sym_PIPE, + ACTIONS(160), 1, + anon_sym_AMP, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(16), 5, - sym_assignable_expr, - sym_paren_expr, - sym_unary_op, - sym_binary_op, - sym__expression, - ACTIONS(17), 7, + ACTIONS(128), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(130), 2, anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [1235] = 10, - ACTIONS(101), 1, - anon_sym_PIPE, - ACTIONS(103), 1, + anon_sym_PERCENT, + ACTIONS(218), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(246), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + ACTIONS(216), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [1789] = 10, + ACTIONS(132), 1, anon_sym_CARET, - ACTIONS(105), 1, + ACTIONS(136), 1, anon_sym_SLASH, - ACTIONS(111), 1, + ACTIONS(158), 1, + anon_sym_PIPE, + ACTIONS(160), 1, anon_sym_AMP, - ACTIONS(193), 1, - anon_sym_SEMI, + ACTIONS(248), 1, + anon_sym_RPAREN, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(97), 2, + ACTIONS(128), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(99), 2, + ACTIONS(130), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(165), 2, + ACTIONS(218), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(163), 4, + ACTIONS(216), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1273] = 10, - ACTIONS(101), 1, - anon_sym_PIPE, - ACTIONS(103), 1, + [1827] = 10, + ACTIONS(132), 1, anon_sym_CARET, - ACTIONS(105), 1, + ACTIONS(136), 1, anon_sym_SLASH, - ACTIONS(111), 1, + ACTIONS(158), 1, + anon_sym_PIPE, + ACTIONS(160), 1, anon_sym_AMP, - ACTIONS(195), 1, - anon_sym_RPAREN, + ACTIONS(250), 1, + anon_sym_RBRACK, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(97), 2, + ACTIONS(128), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(99), 2, + ACTIONS(130), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(165), 2, + ACTIONS(218), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(163), 4, + ACTIONS(216), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1311] = 6, - ACTIONS(15), 1, - anon_sym_LPAREN, - ACTIONS(159), 1, - sym_identifier, - ACTIONS(197), 1, - sym_number, + [1865] = 10, + ACTIONS(132), 1, + anon_sym_CARET, + ACTIONS(136), 1, + anon_sym_SLASH, + ACTIONS(158), 1, + anon_sym_PIPE, + ACTIONS(160), 1, + anon_sym_AMP, + ACTIONS(252), 1, + anon_sym_SEMI, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(43), 5, - sym_assignable_expr, - sym_paren_expr, - sym_unary_op, - sym_binary_op, - sym__expression, - ACTIONS(17), 7, + ACTIONS(128), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(130), 2, anon_sym_STAR, - anon_sym_BANG, + anon_sym_PERCENT, + ACTIONS(218), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(216), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [1903] = 10, + ACTIONS(132), 1, + anon_sym_CARET, + ACTIONS(136), 1, + anon_sym_SLASH, + ACTIONS(158), 1, anon_sym_PIPE, + ACTIONS(160), 1, anon_sym_AMP, - anon_sym_CARET, - [1341] = 6, - ACTIONS(15), 1, - anon_sym_LPAREN, - ACTIONS(159), 1, - sym_identifier, - ACTIONS(199), 1, - sym_number, + ACTIONS(254), 1, + anon_sym_SEMI, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(22), 5, - sym_assignable_expr, - sym_paren_expr, - sym_unary_op, - sym_binary_op, - sym__expression, - ACTIONS(17), 7, + ACTIONS(128), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(130), 2, anon_sym_STAR, - anon_sym_BANG, + anon_sym_PERCENT, + ACTIONS(218), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(216), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [1941] = 10, + ACTIONS(132), 1, + anon_sym_CARET, + ACTIONS(136), 1, + anon_sym_SLASH, + ACTIONS(158), 1, anon_sym_PIPE, + ACTIONS(160), 1, anon_sym_AMP, - anon_sym_CARET, - [1371] = 6, - ACTIONS(15), 1, - anon_sym_LPAREN, - ACTIONS(159), 1, - sym_identifier, - ACTIONS(201), 1, - sym_number, + ACTIONS(256), 1, + anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(18), 5, - sym_assignable_expr, - sym_paren_expr, - sym_unary_op, - sym_binary_op, - sym__expression, - ACTIONS(17), 7, + ACTIONS(128), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(130), 2, anon_sym_STAR, - anon_sym_BANG, + anon_sym_PERCENT, + ACTIONS(218), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(216), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [1979] = 10, + ACTIONS(132), 1, + anon_sym_CARET, + ACTIONS(136), 1, + anon_sym_SLASH, + ACTIONS(158), 1, anon_sym_PIPE, + ACTIONS(160), 1, anon_sym_AMP, - anon_sym_CARET, - [1401] = 6, - ACTIONS(15), 1, - anon_sym_LPAREN, - ACTIONS(159), 1, - sym_identifier, - ACTIONS(203), 1, - sym_number, + ACTIONS(258), 1, + anon_sym_DOT_DOT, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(15), 5, - sym_assignable_expr, - sym_paren_expr, - sym_unary_op, - sym_binary_op, - sym__expression, - ACTIONS(17), 7, + ACTIONS(128), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(130), 2, anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [1431] = 7, - ACTIONS(9), 1, + anon_sym_PERCENT, + ACTIONS(218), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(216), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [2017] = 10, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(260), 1, sym_identifier, - ACTIONS(205), 1, + ACTIONS(262), 1, anon_sym_reg, - STATE(55), 1, + ACTIONS(264), 1, + anon_sym_initial, + STATE(69), 1, aux_sym__assign_left_side_repeat1, - STATE(99), 1, + STATE(100), 1, + sym_global_identifier, + STATE(119), 1, sym_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(13), 2, + ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - STATE(95), 2, + STATE(111), 2, sym_assignable_expr, sym_declaration, - [1456] = 7, - ACTIONS(9), 1, + [2051] = 9, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(260), 1, sym_identifier, - ACTIONS(207), 1, + ACTIONS(266), 1, anon_sym_reg, - STATE(65), 1, + STATE(79), 1, aux_sym__assign_left_side_repeat1, - STATE(99), 1, + STATE(100), 1, + sym_global_identifier, + STATE(119), 1, sym_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(13), 2, + ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - STATE(88), 2, + STATE(97), 2, sym_assignable_expr, sym_declaration, - [1481] = 7, - ACTIONS(9), 1, + [2082] = 9, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(260), 1, sym_identifier, - ACTIONS(207), 1, + ACTIONS(266), 1, anon_sym_reg, - STATE(65), 1, + STATE(79), 1, aux_sym__assign_left_side_repeat1, - STATE(99), 1, + STATE(100), 1, + sym_global_identifier, + STATE(119), 1, sym_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(13), 2, + ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - STATE(78), 2, + STATE(108), 2, sym_assignable_expr, sym_declaration, - [1506] = 7, - ACTIONS(209), 1, + [2113] = 9, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(268), 1, sym_identifier, - ACTIONS(211), 1, + ACTIONS(270), 1, anon_sym_LBRACE, - STATE(69), 1, + STATE(83), 1, sym_declaration, - STATE(96), 1, + STATE(100), 1, + sym_global_identifier, + STATE(106), 1, sym_block, - STATE(99), 1, + STATE(119), 1, sym_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(13), 2, + ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - [1530] = 7, - ACTIONS(209), 1, + [2143] = 9, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(268), 1, sym_identifier, - ACTIONS(211), 1, + ACTIONS(270), 1, anon_sym_LBRACE, - STATE(74), 1, + STATE(93), 1, sym_declaration, - STATE(91), 1, + STATE(100), 1, + sym_global_identifier, + STATE(109), 1, sym_block, - STATE(99), 1, + STATE(119), 1, sym_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(13), 2, + ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - [1554] = 7, - ACTIONS(209), 1, + [2173] = 9, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(268), 1, sym_identifier, - ACTIONS(211), 1, + ACTIONS(270), 1, anon_sym_LBRACE, - STATE(73), 1, + STATE(88), 1, sym_declaration, - STATE(94), 1, + STATE(100), 1, + sym_global_identifier, + STATE(113), 1, sym_block, - STATE(99), 1, + STATE(119), 1, sym_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(13), 2, + ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - [1578] = 2, + [2203] = 8, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(272), 1, + anon_sym_DASH_GT, + STATE(100), 1, + sym_global_identifier, + STATE(103), 1, + sym_declaration, + STATE(119), 1, + sym_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(213), 6, - anon_sym_COMMA, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_SEMI, - anon_sym_in, - [1591] = 6, - ACTIONS(209), 1, + ACTIONS(15), 2, + anon_sym_state, + anon_sym_gen, + [2230] = 7, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(260), 1, sym_identifier, - ACTIONS(215), 1, - anon_sym_DASH_GT, - STATE(84), 1, + STATE(100), 1, + sym_global_identifier, + STATE(119), 1, + sym_type, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(15), 2, + anon_sym_state, + anon_sym_gen, + STATE(97), 2, + sym_assignable_expr, sym_declaration, - STATE(99), 1, + [2255] = 7, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(260), 1, + sym_identifier, + STATE(100), 1, + sym_global_identifier, + STATE(119), 1, sym_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(13), 2, + ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - [1612] = 2, + STATE(108), 2, + sym_assignable_expr, + sym_declaration, + [2280] = 6, + ACTIONS(80), 1, + anon_sym_COLON_COLON, + STATE(13), 1, + aux_sym_global_identifier_repeat1, + STATE(16), 1, + aux_sym_type_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(217), 6, + ACTIONS(84), 2, + sym_identifier, + anon_sym_LBRACK, + ACTIONS(116), 2, anon_sym_COMMA, - anon_sym_DASH_GT, - anon_sym_LBRACE, anon_sym_EQ, - anon_sym_SEMI, - anon_sym_in, - [1625] = 5, - ACTIONS(209), 1, + [2302] = 7, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(268), 1, sym_identifier, - STATE(81), 1, - sym_declaration, - STATE(99), 1, + STATE(100), 1, + sym_global_identifier, + STATE(119), 1, sym_type, + STATE(123), 1, + sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(13), 2, + ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - [1643] = 5, - ACTIONS(209), 1, + [2326] = 7, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(268), 1, sym_identifier, STATE(98), 1, sym_declaration, - STATE(99), 1, + STATE(100), 1, + sym_global_identifier, + STATE(119), 1, sym_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(13), 2, + ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - [1661] = 4, - ACTIONS(221), 1, + [2350] = 5, + ACTIONS(276), 1, + anon_sym_COLON_COLON, + ACTIONS(278), 1, anon_sym_reg, - STATE(65), 1, + STATE(79), 1, aux_sym__assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(219), 3, + ACTIONS(274), 3, sym_identifier, anon_sym_state, anon_sym_gen, - [1677] = 5, - ACTIONS(211), 1, - anon_sym_LBRACE, - ACTIONS(224), 1, - anon_sym_COMMA, - STATE(75), 1, - aux_sym_module_repeat1, - STATE(89), 1, - sym_block, + [2369] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [1694] = 4, - ACTIONS(19), 1, + ACTIONS(281), 6, + anon_sym_COMMA, + anon_sym_DASH_GT, anon_sym_LBRACE, - ACTIONS(226), 1, - anon_sym_if, + anon_sym_EQ, + anon_sym_SEMI, + anon_sym_in, + [2382] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(29), 2, - sym_block, - sym_if_statement, - [1709] = 5, - ACTIONS(127), 1, + ACTIONS(283), 6, anon_sym_COMMA, - ACTIONS(228), 1, + anon_sym_DASH_GT, + anon_sym_LBRACE, anon_sym_EQ, - ACTIONS(230), 1, anon_sym_SEMI, - STATE(83), 1, - aux_sym__assign_left_side_repeat2, + anon_sym_in, + [2395] = 5, + ACTIONS(270), 1, + anon_sym_LBRACE, + ACTIONS(285), 1, + anon_sym_COMMA, + STATE(84), 1, + aux_sym_module_repeat1, + STATE(107), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [1726] = 5, - ACTIONS(211), 1, + [2412] = 5, + ACTIONS(270), 1, anon_sym_LBRACE, - ACTIONS(224), 1, + ACTIONS(285), 1, anon_sym_COMMA, - STATE(76), 1, + STATE(91), 1, aux_sym_module_repeat1, - STATE(89), 1, + STATE(109), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [1743] = 4, + [2429] = 4, + ACTIONS(287), 1, + anon_sym_COMMA, + STATE(84), 1, + aux_sym_module_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(290), 2, + anon_sym_DASH_GT, + anon_sym_LBRACE, + [2444] = 4, + ACTIONS(21), 1, + anon_sym_LBRACE, + ACTIONS(292), 1, + anon_sym_if, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(41), 2, + sym_block, + sym_if_statement, + [2459] = 4, ACTIONS(7), 1, anon_sym_module, - ACTIONS(232), 1, + ACTIONS(294), 1, ts_builtin_sym_end, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(71), 2, + STATE(89), 2, sym_module, aux_sym_source_file_repeat1, - [1758] = 4, - ACTIONS(234), 1, - ts_builtin_sym_end, - ACTIONS(236), 1, - anon_sym_module, + [2474] = 5, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(296), 1, + sym_identifier, + STATE(100), 1, + sym_global_identifier, + STATE(116), 1, + sym_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(71), 2, - sym_module, - aux_sym_source_file_repeat1, - [1773] = 5, - ACTIONS(211), 1, + [2491] = 5, + ACTIONS(270), 1, anon_sym_LBRACE, - ACTIONS(224), 1, + ACTIONS(285), 1, anon_sym_COMMA, - STATE(75), 1, + STATE(82), 1, aux_sym_module_repeat1, - STATE(96), 1, + STATE(115), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [1790] = 5, - ACTIONS(211), 1, + [2508] = 4, + ACTIONS(298), 1, + ts_builtin_sym_end, + ACTIONS(300), 1, + anon_sym_module, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(89), 2, + sym_module, + aux_sym_source_file_repeat1, + [2523] = 5, + ACTIONS(270), 1, anon_sym_LBRACE, - ACTIONS(224), 1, + ACTIONS(285), 1, anon_sym_COMMA, - STATE(66), 1, + STATE(84), 1, aux_sym_module_repeat1, - STATE(96), 1, + STATE(115), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [1807] = 5, - ACTIONS(211), 1, + [2540] = 5, + ACTIONS(270), 1, anon_sym_LBRACE, - ACTIONS(224), 1, + ACTIONS(285), 1, anon_sym_COMMA, - STATE(72), 1, + STATE(84), 1, aux_sym_module_repeat1, - STATE(94), 1, + STATE(113), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [1824] = 4, - ACTIONS(239), 1, + [2557] = 5, + ACTIONS(198), 1, anon_sym_COMMA, - STATE(75), 1, - aux_sym_module_repeat1, + ACTIONS(303), 1, + anon_sym_EQ, + ACTIONS(305), 1, + anon_sym_SEMI, + STATE(96), 1, + aux_sym__assign_left_side_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(242), 2, - anon_sym_DASH_GT, + [2574] = 5, + ACTIONS(270), 1, anon_sym_LBRACE, - [1839] = 5, - ACTIONS(211), 1, - anon_sym_LBRACE, - ACTIONS(224), 1, + ACTIONS(285), 1, anon_sym_COMMA, - STATE(75), 1, - aux_sym_module_repeat1, STATE(90), 1, + aux_sym_module_repeat1, + STATE(113), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [1856] = 4, - ACTIONS(224), 1, + [2591] = 4, + ACTIONS(80), 1, + anon_sym_COLON_COLON, + STATE(13), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(84), 2, + sym_identifier, + anon_sym_LBRACK, + [2606] = 4, + ACTIONS(285), 1, anon_sym_COMMA, - ACTIONS(244), 1, + ACTIONS(307), 1, anon_sym_DASH_GT, - STATE(75), 1, + STATE(84), 1, aux_sym_module_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [1870] = 4, - ACTIONS(127), 1, + [2620] = 4, + ACTIONS(198), 1, anon_sym_COMMA, - ACTIONS(246), 1, + ACTIONS(309), 1, anon_sym_EQ, - STATE(85), 1, + STATE(101), 1, aux_sym__assign_left_side_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [1884] = 4, - ACTIONS(248), 1, + [2634] = 4, + ACTIONS(198), 1, anon_sym_COMMA, - ACTIONS(251), 1, + ACTIONS(309), 1, anon_sym_EQ, - STATE(79), 1, + STATE(99), 1, aux_sym__assign_left_side_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [1898] = 4, - ACTIONS(79), 1, - anon_sym_LBRACK, - ACTIONS(89), 1, - sym_identifier, - STATE(82), 1, - aux_sym_type_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [1912] = 2, + [2648] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(242), 3, + ACTIONS(290), 3, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACE, - [1922] = 4, - ACTIONS(79), 1, + [2658] = 4, + ACTIONS(198), 1, + anon_sym_COMMA, + ACTIONS(311), 1, + anon_sym_EQ, + STATE(101), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2672] = 4, + ACTIONS(86), 1, anon_sym_LBRACK, - ACTIONS(91), 1, + ACTIONS(176), 1, sym_identifier, - STATE(9), 1, + STATE(104), 1, aux_sym_type_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [1936] = 4, - ACTIONS(127), 1, + [2686] = 4, + ACTIONS(313), 1, anon_sym_COMMA, - ACTIONS(246), 1, + ACTIONS(316), 1, anon_sym_EQ, - STATE(79), 1, + STATE(101), 1, aux_sym__assign_left_side_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [1950] = 4, - ACTIONS(224), 1, + [2700] = 4, + ACTIONS(214), 1, + anon_sym_COMMA, + ACTIONS(318), 1, + anon_sym_RPAREN, + STATE(105), 1, + aux_sym_func_call_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2714] = 4, + ACTIONS(285), 1, anon_sym_COMMA, - ACTIONS(253), 1, + ACTIONS(320), 1, anon_sym_DASH_GT, - STATE(77), 1, + STATE(95), 1, aux_sym_module_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [1964] = 4, - ACTIONS(127), 1, + [2728] = 4, + ACTIONS(86), 1, + anon_sym_LBRACK, + ACTIONS(322), 1, + sym_identifier, + STATE(14), 1, + aux_sym_type_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2742] = 4, + ACTIONS(246), 1, + anon_sym_RPAREN, + ACTIONS(324), 1, anon_sym_COMMA, - ACTIONS(255), 1, - anon_sym_EQ, - STATE(79), 1, - aux_sym__assign_left_side_repeat2, + STATE(105), 1, + aux_sym_func_call_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [1978] = 2, + [2756] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(125), 2, + ACTIONS(327), 2, ts_builtin_sym_end, anon_sym_module, - [1987] = 3, - ACTIONS(19), 1, - anon_sym_LBRACE, - STATE(31), 1, - sym_block, + [2765] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [1998] = 2, + ACTIONS(329), 2, + ts_builtin_sym_end, + anon_sym_module, + [2774] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(257), 2, + ACTIONS(331), 2, anon_sym_COMMA, anon_sym_EQ, - [2007] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(259), 2, - ts_builtin_sym_end, - anon_sym_module, - [2016] = 2, + [2783] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(261), 2, + ACTIONS(333), 2, ts_builtin_sym_end, anon_sym_module, - [2025] = 2, + [2792] = 3, + ACTIONS(21), 1, + anon_sym_LBRACE, + STATE(37), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(263), 2, - ts_builtin_sym_end, - anon_sym_module, - [2034] = 3, - ACTIONS(265), 1, - sym_identifier, - STATE(100), 1, - sym_type, + [2803] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2045] = 2, + ACTIONS(316), 2, + anon_sym_COMMA, + anon_sym_EQ, + [2812] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(137), 2, + ACTIONS(144), 2, ts_builtin_sym_end, anon_sym_module, - [2054] = 2, + [2821] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(267), 2, + ACTIONS(335), 2, ts_builtin_sym_end, anon_sym_module, - [2063] = 2, + [2830] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(251), 2, - anon_sym_COMMA, - anon_sym_EQ, - [2072] = 2, + ACTIONS(170), 2, + ts_builtin_sym_end, + anon_sym_module, + [2839] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(269), 2, + ACTIONS(337), 2, ts_builtin_sym_end, anon_sym_module, - [2081] = 2, - ACTIONS(271), 1, - anon_sym_EQ, + [2848] = 2, + ACTIONS(339), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2089] = 2, - ACTIONS(273), 1, - anon_sym_in, + [2856] = 2, + ACTIONS(341), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2097] = 2, - ACTIONS(275), 1, + [2864] = 2, + ACTIONS(343), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2105] = 2, - ACTIONS(277), 1, + [2872] = 2, + ACTIONS(345), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2113] = 2, - ACTIONS(279), 1, + [2880] = 2, + ACTIONS(347), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2888] = 2, + ACTIONS(349), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2121] = 2, - ACTIONS(281), 1, + [2896] = 2, + ACTIONS(351), 1, anon_sym_COLON, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2129] = 2, - ACTIONS(283), 1, + [2904] = 2, + ACTIONS(353), 1, + anon_sym_in, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2912] = 2, + ACTIONS(355), 1, ts_builtin_sym_end, ACTIONS(3), 2, sym_single_line_comment, @@ -4747,100 +5526,121 @@ static const uint16_t ts_small_parse_table[] = { static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(9)] = 0, - [SMALL_STATE(10)] = 37, - [SMALL_STATE(11)] = 69, - [SMALL_STATE(12)] = 103, - [SMALL_STATE(13)] = 137, - [SMALL_STATE(14)] = 172, - [SMALL_STATE(15)] = 207, - [SMALL_STATE(16)] = 235, - [SMALL_STATE(17)] = 273, - [SMALL_STATE(18)] = 309, - [SMALL_STATE(19)] = 341, - [SMALL_STATE(20)] = 369, - [SMALL_STATE(21)] = 403, - [SMALL_STATE(22)] = 443, - [SMALL_STATE(23)] = 471, - [SMALL_STATE(24)] = 500, - [SMALL_STATE(25)] = 527, - [SMALL_STATE(26)] = 560, - [SMALL_STATE(27)] = 587, - [SMALL_STATE(28)] = 613, - [SMALL_STATE(29)] = 639, - [SMALL_STATE(30)] = 665, - [SMALL_STATE(31)] = 691, - [SMALL_STATE(32)] = 717, - [SMALL_STATE(33)] = 743, - [SMALL_STATE(34)] = 769, - [SMALL_STATE(35)] = 802, - [SMALL_STATE(36)] = 843, - [SMALL_STATE(37)] = 873, - [SMALL_STATE(38)] = 903, - [SMALL_STATE(39)] = 941, - [SMALL_STATE(40)] = 971, - [SMALL_STATE(41)] = 1001, - [SMALL_STATE(42)] = 1031, - [SMALL_STATE(43)] = 1069, - [SMALL_STATE(44)] = 1107, - [SMALL_STATE(45)] = 1137, - [SMALL_STATE(46)] = 1167, - [SMALL_STATE(47)] = 1205, - [SMALL_STATE(48)] = 1235, - [SMALL_STATE(49)] = 1273, - [SMALL_STATE(50)] = 1311, - [SMALL_STATE(51)] = 1341, - [SMALL_STATE(52)] = 1371, - [SMALL_STATE(53)] = 1401, - [SMALL_STATE(54)] = 1431, - [SMALL_STATE(55)] = 1456, - [SMALL_STATE(56)] = 1481, - [SMALL_STATE(57)] = 1506, - [SMALL_STATE(58)] = 1530, - [SMALL_STATE(59)] = 1554, - [SMALL_STATE(60)] = 1578, - [SMALL_STATE(61)] = 1591, - [SMALL_STATE(62)] = 1612, - [SMALL_STATE(63)] = 1625, - [SMALL_STATE(64)] = 1643, - [SMALL_STATE(65)] = 1661, - [SMALL_STATE(66)] = 1677, - [SMALL_STATE(67)] = 1694, - [SMALL_STATE(68)] = 1709, - [SMALL_STATE(69)] = 1726, - [SMALL_STATE(70)] = 1743, - [SMALL_STATE(71)] = 1758, - [SMALL_STATE(72)] = 1773, - [SMALL_STATE(73)] = 1790, - [SMALL_STATE(74)] = 1807, - [SMALL_STATE(75)] = 1824, - [SMALL_STATE(76)] = 1839, - [SMALL_STATE(77)] = 1856, - [SMALL_STATE(78)] = 1870, - [SMALL_STATE(79)] = 1884, - [SMALL_STATE(80)] = 1898, - [SMALL_STATE(81)] = 1912, - [SMALL_STATE(82)] = 1922, - [SMALL_STATE(83)] = 1936, - [SMALL_STATE(84)] = 1950, - [SMALL_STATE(85)] = 1964, - [SMALL_STATE(86)] = 1978, - [SMALL_STATE(87)] = 1987, - [SMALL_STATE(88)] = 1998, - [SMALL_STATE(89)] = 2007, - [SMALL_STATE(90)] = 2016, - [SMALL_STATE(91)] = 2025, - [SMALL_STATE(92)] = 2034, - [SMALL_STATE(93)] = 2045, - [SMALL_STATE(94)] = 2054, - [SMALL_STATE(95)] = 2063, - [SMALL_STATE(96)] = 2072, - [SMALL_STATE(97)] = 2081, - [SMALL_STATE(98)] = 2089, - [SMALL_STATE(99)] = 2097, - [SMALL_STATE(100)] = 2105, - [SMALL_STATE(101)] = 2113, - [SMALL_STATE(102)] = 2121, - [SMALL_STATE(103)] = 2129, + [SMALL_STATE(10)] = 38, + [SMALL_STATE(11)] = 80, + [SMALL_STATE(12)] = 118, + [SMALL_STATE(13)] = 156, + [SMALL_STATE(14)] = 194, + [SMALL_STATE(15)] = 231, + [SMALL_STATE(16)] = 264, + [SMALL_STATE(17)] = 300, + [SMALL_STATE(18)] = 332, + [SMALL_STATE(19)] = 374, + [SMALL_STATE(20)] = 406, + [SMALL_STATE(21)] = 443, + [SMALL_STATE(22)] = 472, + [SMALL_STATE(23)] = 501, + [SMALL_STATE(24)] = 530, + [SMALL_STATE(25)] = 559, + [SMALL_STATE(26)] = 588, + [SMALL_STATE(27)] = 617, + [SMALL_STATE(28)] = 658, + [SMALL_STATE(29)] = 693, + [SMALL_STATE(30)] = 724, + [SMALL_STATE(31)] = 753, + [SMALL_STATE(32)] = 792, + [SMALL_STATE(33)] = 825, + [SMALL_STATE(34)] = 854, + [SMALL_STATE(35)] = 882, + [SMALL_STATE(36)] = 918, + [SMALL_STATE(37)] = 946, + [SMALL_STATE(38)] = 974, + [SMALL_STATE(39)] = 1002, + [SMALL_STATE(40)] = 1030, + [SMALL_STATE(41)] = 1058, + [SMALL_STATE(42)] = 1086, + [SMALL_STATE(43)] = 1119, + [SMALL_STATE(44)] = 1158, + [SMALL_STATE(45)] = 1197, + [SMALL_STATE(46)] = 1233, + [SMALL_STATE(47)] = 1269, + [SMALL_STATE(48)] = 1313, + [SMALL_STATE(49)] = 1349, + [SMALL_STATE(50)] = 1385, + [SMALL_STATE(51)] = 1421, + [SMALL_STATE(52)] = 1457, + [SMALL_STATE(53)] = 1493, + [SMALL_STATE(54)] = 1529, + [SMALL_STATE(55)] = 1565, + [SMALL_STATE(56)] = 1601, + [SMALL_STATE(57)] = 1637, + [SMALL_STATE(58)] = 1673, + [SMALL_STATE(59)] = 1709, + [SMALL_STATE(60)] = 1750, + [SMALL_STATE(61)] = 1789, + [SMALL_STATE(62)] = 1827, + [SMALL_STATE(63)] = 1865, + [SMALL_STATE(64)] = 1903, + [SMALL_STATE(65)] = 1941, + [SMALL_STATE(66)] = 1979, + [SMALL_STATE(67)] = 2017, + [SMALL_STATE(68)] = 2051, + [SMALL_STATE(69)] = 2082, + [SMALL_STATE(70)] = 2113, + [SMALL_STATE(71)] = 2143, + [SMALL_STATE(72)] = 2173, + [SMALL_STATE(73)] = 2203, + [SMALL_STATE(74)] = 2230, + [SMALL_STATE(75)] = 2255, + [SMALL_STATE(76)] = 2280, + [SMALL_STATE(77)] = 2302, + [SMALL_STATE(78)] = 2326, + [SMALL_STATE(79)] = 2350, + [SMALL_STATE(80)] = 2369, + [SMALL_STATE(81)] = 2382, + [SMALL_STATE(82)] = 2395, + [SMALL_STATE(83)] = 2412, + [SMALL_STATE(84)] = 2429, + [SMALL_STATE(85)] = 2444, + [SMALL_STATE(86)] = 2459, + [SMALL_STATE(87)] = 2474, + [SMALL_STATE(88)] = 2491, + [SMALL_STATE(89)] = 2508, + [SMALL_STATE(90)] = 2523, + [SMALL_STATE(91)] = 2540, + [SMALL_STATE(92)] = 2557, + [SMALL_STATE(93)] = 2574, + [SMALL_STATE(94)] = 2591, + [SMALL_STATE(95)] = 2606, + [SMALL_STATE(96)] = 2620, + [SMALL_STATE(97)] = 2634, + [SMALL_STATE(98)] = 2648, + [SMALL_STATE(99)] = 2658, + [SMALL_STATE(100)] = 2672, + [SMALL_STATE(101)] = 2686, + [SMALL_STATE(102)] = 2700, + [SMALL_STATE(103)] = 2714, + [SMALL_STATE(104)] = 2728, + [SMALL_STATE(105)] = 2742, + [SMALL_STATE(106)] = 2756, + [SMALL_STATE(107)] = 2765, + [SMALL_STATE(108)] = 2774, + [SMALL_STATE(109)] = 2783, + [SMALL_STATE(110)] = 2792, + [SMALL_STATE(111)] = 2803, + [SMALL_STATE(112)] = 2812, + [SMALL_STATE(113)] = 2821, + [SMALL_STATE(114)] = 2830, + [SMALL_STATE(115)] = 2839, + [SMALL_STATE(116)] = 2848, + [SMALL_STATE(117)] = 2856, + [SMALL_STATE(118)] = 2864, + [SMALL_STATE(119)] = 2872, + [SMALL_STATE(120)] = 2880, + [SMALL_STATE(121)] = 2888, + [SMALL_STATE(122)] = 2896, + [SMALL_STATE(123)] = 2904, + [SMALL_STATE(124)] = 2912, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -4848,138 +5648,172 @@ static const TSParseActionEntry ts_parse_actions[] = { [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 = true}}, SHIFT(101), - [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13), - [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(92), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64), - [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [37] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(13), - [40] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(38), - [43] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(92), - [46] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(39), - [49] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(51), - [52] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(5), - [55] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), - [57] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(56), - [60] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(36), - [63] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(64), - [66] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 2), - [70] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 2), SHIFT_REPEAT(50), - [73] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_type_repeat1, 2), - [75] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 3), - [77] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_type_repeat1, 3), - [79] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [81] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignable_expr, 1), - [83] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignable_expr, 1), - [85] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignable_expr, 2), - [87] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignable_expr, 2), - [89] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 1), - [91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 2), - [93] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3), - [95] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3), - [97] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [99] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [105] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), - [107] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_paren_expr, 3), - [109] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_paren_expr, 3), - [111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [113] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2), - [115] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2), - [117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3), - [119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3), - [121] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), - [123] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3), - [125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [129] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [131] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [133] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assign_left_side, 1), - [135] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), - [137] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [139] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_statement, 2), - [141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_statement, 2), - [143] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 4), - [145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 4), - [147] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5), - [149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5), - [151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 2), - [153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 2), - [155] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5), - [157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5), - [159] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [165] = {.entry = {.count = 1, .reusable = false}}, SHIFT(41), - [167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [181] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_range, 3), - [183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [205] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), - [207] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), - [209] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80), - [211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2), - [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3), - [219] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), - [221] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), SHIFT_REPEAT(65), - [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 1), - [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), - [236] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(101), - [239] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(63), - [242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), - [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 2), - [248] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), SHIFT_REPEAT(54), - [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), - [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [255] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 3), - [257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 3), - [259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 8), - [261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 9), - [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5), - [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 6), - [269] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 7), - [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), - [281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [283] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), + [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [39] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(18), + [42] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(64), + [45] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(121), + [48] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(87), + [51] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(56), + [54] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(55), + [57] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(5), + [60] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), + [62] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(68), + [65] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(74), + [68] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(54), + [71] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(77), + [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [76] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [78] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2), + [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2), + [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1), + [86] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [88] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1), + [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 3), + [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 3), + [94] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), + [96] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(117), + [99] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), + [101] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 2), + [103] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 2), SHIFT_REPEAT(51), + [106] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_type_repeat1, 2), + [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignable_expr, 2), + [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignable_expr, 2), + [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 3), + [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_type_repeat1, 3), + [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignable_expr, 1), + [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignable_expr, 1), + [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3), + [128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3), + [136] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49), + [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 5), + [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 5), + [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), + [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 4), + [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 4), + [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2), + [152] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2), + [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 3), + [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 3), + [158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [162] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3), + [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3), + [166] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), + [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3), + [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 3), + [174] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 3), + [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 1), + [178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_statement, 2), + [180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_statement, 2), + [182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5), + [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5), + [186] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 4), + [188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 4), + [190] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 2), + [192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 2), + [194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5), + [196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5), + [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [200] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assign_left_side, 1), + [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [218] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), + [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2), + [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_range, 3), + [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [260] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), + [262] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69), + [264] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), + [266] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), + [268] = {.entry = {.count = 1, .reusable = false}}, SHIFT(94), + [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [274] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), + [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), + [278] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), SHIFT_REPEAT(79), + [281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2), + [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3), + [285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [287] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(78), + [290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), + [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), + [300] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(118), + [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 1), + [305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 2), + [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 3), + [313] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), SHIFT_REPEAT(67), + [316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), + [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 2), + [324] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2), SHIFT_REPEAT(52), + [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5), + [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 9), + [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 3), + [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 6), + [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 7), + [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 8), + [339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), + [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [355] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), }; #ifdef __cplusplus From afe311acc419da3ba793eb232fecb2f65fc55ee3 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Thu, 8 Feb 2024 18:02:28 +0100 Subject: [PATCH 06/49] Further parser work --- grammar.js | 106 +- src/grammar.json | 411 ++-- src/node-types.json | 254 ++- src/parser.c | 4905 +++++++++++++++++++++++++++---------------- 4 files changed, 3580 insertions(+), 2096 deletions(-) diff --git a/grammar.js b/grammar.js index 542a62f..2336556 100644 --- a/grammar.js +++ b/grammar.js @@ -1,10 +1,10 @@ -function commaSep1(rule) { - return seq(rule, repeat(seq(',', rule))) +function sepSeq1(rule, sepChar) { + return seq(rule, repeat(seq(sepChar, rule))) } -function commaSep(rule) { - return optional(commaSep1(rule)) +function sepSeq(rule, sepChar) { + return optional(sepSeq1(rule, sepChar)) } const PREC = { @@ -27,41 +27,35 @@ module.exports = grammar({ module: $ => seq( 'module', - $.identifier, + field('name', $.identifier), ':', - commaSep($.declaration), + field('inputs', sepSeq($.declaration, ',')), '->', - commaSep($.declaration), + field('outputs', sepSeq($.declaration, ',')), $.block ), identifier: $ => /[\p{L}_][\p{L}_\d]*/, number: $ => /\d[\d_]*/, global_identifier: $ => prec.left(PREC.namespace_path, seq( - optional("::"), - $.identifier, - repeat(seq( - "::", - $.identifier - )) + optional('::'), + sepSeq1($.identifier, '::') )), - type: $ => seq( + _maybe_global_identifier: $ => choice( + prec(1, $.identifier), + prec(0, $.global_identifier) + ), + + array_type: $ => seq( + $._type, + '[', + $._expression, + ']' + ), + _type: $ => choice( $.global_identifier, - repeat(seq( - '[', - $._expression, - ']' - )) - ), - - assignable_expr: $ => seq( - $.identifier, - repeat(seq( - '[', - $._expression, - ']' - )) + $.array_type ), declaration: $ => seq( @@ -69,8 +63,12 @@ module.exports = grammar({ 'state', 'gen' )), - $.type, - $.identifier + field('type', $._type), + field('name', $.identifier), + optional(seq( + '\'', + field('latency_spec', $._expression) + )) ), unary_op: $ => prec(PREC.unary, seq( @@ -95,19 +93,23 @@ module.exports = grammar({ )))); }, + array_op: $ => seq( + $._expression, + '[', + $._expression, + ']' + ), + func_call: $ => seq( - choice( - $.identifier, - $.global_identifier - ), + $._maybe_global_identifier, '(', - commaSep($._expression), + sepSeq($._expression, ','), ')' ), _expression: $ => choice( - $.assignable_expr, - $.global_identifier, + $._maybe_global_identifier, + $.array_op, $.number, seq('(', $._expression, ')'), $.unary_op, @@ -127,30 +129,24 @@ module.exports = grammar({ '}' ), - _assign_left_side: $ => commaSep1(seq( + _assign_left_side: $ => sepSeq1(seq( choice( repeat('reg'), 'initial' ), choice( - $.assignable_expr, + $._expression, $.declaration ) - )), + ), ','), decl_assign_statement: $ => seq( $._assign_left_side, '=', - $._expression, - ';' - ), - decl_statement: $ => seq( - $.declaration, - ';' - ), - expression_statement: $ => seq( - $._expression, - ';' + $._expression ), + decl_statement: $ => $.declaration, + expression_statement: $ => $._expression, + if_statement: $ => seq( 'if', $._expression, @@ -172,9 +168,9 @@ module.exports = grammar({ ), _statement: $ => choice( $.block, - $.decl_assign_statement, - $.decl_statement, - $.expression_statement, + seq($.decl_assign_statement, ';'), + seq($.decl_statement, ';'), + seq($.expression_statement, ';'), $.if_statement, $.for_statement ), @@ -184,6 +180,10 @@ module.exports = grammar({ multi_line_comment: $ => /\/\*[^\*]*\*+([^\/\*][^\*]*\*+)*\//, }, + conflicts: $ => [ + [$._maybe_global_identifier, $._type] + ], + extras: $ => [ /\s+/, $.single_line_comment, diff --git a/src/grammar.json b/src/grammar.json index 1f38361..2c4ec01 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -16,82 +16,94 @@ "value": "module" }, { - "type": "SYMBOL", - "name": "identifier" + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } }, { "type": "STRING", "value": ":" }, { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "declaration" - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "SYMBOL", - "name": "declaration" - } - ] + "type": "FIELD", + "name": "inputs", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "declaration" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "declaration" + } + ] + } } - } - ] - }, - { - "type": "BLANK" - } - ] + ] + }, + { + "type": "BLANK" + } + ] + } }, { "type": "STRING", "value": "->" }, { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "declaration" - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "SYMBOL", - "name": "declaration" - } - ] + "type": "FIELD", + "name": "outputs", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "declaration" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "declaration" + } + ] + } } - } - ] - }, - { - "type": "BLANK" - } - ] + ] + }, + { + "type": "BLANK" + } + ] + } }, { "type": "SYMBOL", @@ -126,83 +138,85 @@ ] }, { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "::" - }, - { - "type": "SYMBOL", - "name": "identifier" + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "::" + }, + { + "type": "SYMBOL", + "name": "identifier" + } + ] } - ] - } + } + ] } ] } }, - "type": { - "type": "SEQ", + "_maybe_global_identifier": { + "type": "CHOICE", "members": [ { - "type": "SYMBOL", - "name": "global_identifier" + "type": "PREC", + "value": 1, + "content": { + "type": "SYMBOL", + "name": "identifier" + } }, { - "type": "REPEAT", + "type": "PREC", + "value": 0, "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "[" - }, - { - "type": "SYMBOL", - "name": "_expression" - }, - { - "type": "STRING", - "value": "]" - } - ] + "type": "SYMBOL", + "name": "global_identifier" } } ] }, - "assignable_expr": { + "array_type": { "type": "SEQ", "members": [ { "type": "SYMBOL", - "name": "identifier" + "name": "_type" }, { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "[" - }, - { - "type": "SYMBOL", - "name": "_expression" - }, - { - "type": "STRING", - "value": "]" - } - ] - } + "type": "STRING", + "value": "[" + }, + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "STRING", + "value": "]" + } + ] + }, + "_type": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "global_identifier" + }, + { + "type": "SYMBOL", + "name": "array_type" } ] }, @@ -231,12 +245,45 @@ ] }, { - "type": "SYMBOL", - "name": "type" + "type": "FIELD", + "name": "type", + "content": { + "type": "SYMBOL", + "name": "_type" + } }, { - "type": "SYMBOL", - "name": "identifier" + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "'" + }, + { + "type": "FIELD", + "name": "latency_spec", + "content": { + "type": "SYMBOL", + "name": "_expression" + } + } + ] + }, + { + "type": "BLANK" + } + ] } ] }, @@ -464,21 +511,33 @@ } ] }, + "array_op": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "STRING", + "value": "[" + }, + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "STRING", + "value": "]" + } + ] + }, "func_call": { "type": "SEQ", "members": [ { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "SYMBOL", - "name": "global_identifier" - } - ] + "type": "SYMBOL", + "name": "_maybe_global_identifier" }, { "type": "STRING", @@ -528,11 +587,11 @@ "members": [ { "type": "SYMBOL", - "name": "assignable_expr" + "name": "_maybe_global_identifier" }, { "type": "SYMBOL", - "name": "global_identifier" + "name": "array_op" }, { "type": "SYMBOL", @@ -633,7 +692,7 @@ "members": [ { "type": "SYMBOL", - "name": "assignable_expr" + "name": "_expression" }, { "type": "SYMBOL", @@ -676,7 +735,7 @@ "members": [ { "type": "SYMBOL", - "name": "assignable_expr" + "name": "_expression" }, { "type": "SYMBOL", @@ -705,38 +764,16 @@ { "type": "SYMBOL", "name": "_expression" - }, - { - "type": "STRING", - "value": ";" } ] }, "decl_statement": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "declaration" - }, - { - "type": "STRING", - "value": ";" - } - ] + "type": "SYMBOL", + "name": "declaration" }, "expression_statement": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_expression" - }, - { - "type": "STRING", - "value": ";" - } - ] + "type": "SYMBOL", + "name": "_expression" }, "if_statement": { "type": "SEQ", @@ -818,16 +855,43 @@ "name": "block" }, { - "type": "SYMBOL", - "name": "decl_assign_statement" + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "decl_assign_statement" + }, + { + "type": "STRING", + "value": ";" + } + ] }, { - "type": "SYMBOL", - "name": "decl_statement" + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "decl_statement" + }, + { + "type": "STRING", + "value": ";" + } + ] }, { - "type": "SYMBOL", - "name": "expression_statement" + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "expression_statement" + }, + { + "type": "STRING", + "value": ";" + } + ] }, { "type": "SYMBOL", @@ -862,7 +926,12 @@ "name": "multi_line_comment" } ], - "conflicts": [], + "conflicts": [ + [ + "_maybe_global_identifier", + "_type" + ] + ], "precedences": [], "externals": [], "inline": [], diff --git a/src/node-types.json b/src/node-types.json index 48cd76e..fda7383 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -1,6 +1,6 @@ [ { - "type": "assignable_expr", + "type": "array_op", "named": true, "fields": {}, "children": { @@ -8,7 +8,50 @@ "required": true, "types": [ { - "type": "assignable_expr", + "type": "array_op", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "func_call", + "named": true + }, + { + "type": "global_identifier", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "unary_op", + "named": true + } + ] + } + }, + { + "type": "array_type", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "array_op", + "named": true + }, + { + "type": "array_type", "named": true }, { @@ -47,7 +90,7 @@ "required": true, "types": [ { - "type": "assignable_expr", + "type": "array_op", "named": true }, { @@ -62,6 +105,10 @@ "type": "global_identifier", "named": true }, + { + "type": "identifier", + "named": true + }, { "type": "number", "named": true @@ -117,7 +164,7 @@ "required": true, "types": [ { - "type": "assignable_expr", + "type": "array_op", "named": true }, { @@ -136,6 +183,10 @@ "type": "global_identifier", "named": true }, + { + "type": "identifier", + "named": true + }, { "type": "number", "named": true @@ -165,20 +216,73 @@ { "type": "declaration", "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "type", - "named": true - } - ] + "fields": { + "latency_spec": { + "multiple": true, + "required": false, + "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, + { + "type": "array_op", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "func_call", + "named": true + }, + { + "type": "global_identifier", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "unary_op", + "named": true + } + ] + }, + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + }, + "type": { + "multiple": false, + "required": true, + "types": [ + { + "type": "array_type", + "named": true + }, + { + "type": "global_identifier", + "named": true + } + ] + } } }, { @@ -190,7 +294,7 @@ "required": true, "types": [ { - "type": "assignable_expr", + "type": "array_op", "named": true }, { @@ -205,6 +309,10 @@ "type": "global_identifier", "named": true }, + { + "type": "identifier", + "named": true + }, { "type": "number", "named": true @@ -248,7 +356,7 @@ "required": true, "types": [ { - "type": "assignable_expr", + "type": "array_op", "named": true }, { @@ -302,7 +410,7 @@ "required": true, "types": [ { - "type": "assignable_expr", + "type": "array_op", "named": true }, { @@ -321,6 +429,10 @@ "type": "global_identifier", "named": true }, + { + "type": "identifier", + "named": true + }, { "type": "if_statement", "named": true @@ -339,22 +451,53 @@ { "type": "module", "named": true, - "fields": {}, + "fields": { + "inputs": { + "multiple": true, + "required": false, + "types": [ + { + "type": ",", + "named": false + }, + { + "type": "declaration", + "named": true + } + ] + }, + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + }, + "outputs": { + "multiple": true, + "required": false, + "types": [ + { + "type": ",", + "named": false + }, + { + "type": "declaration", + "named": true + } + ] + } + }, "children": { - "multiple": true, + "multiple": false, "required": true, "types": [ { "type": "block", "named": true - }, - { - "type": "declaration", - "named": true - }, - { - "type": "identifier", - "named": true } ] } @@ -368,7 +511,7 @@ "required": true, "types": [ { - "type": "assignable_expr", + "type": "array_op", "named": true }, { @@ -383,6 +526,10 @@ "type": "global_identifier", "named": true }, + { + "type": "identifier", + "named": true + }, { "type": "number", "named": true @@ -410,15 +557,15 @@ } }, { - "type": "type", + "type": "unary_op", "named": true, "fields": {}, "children": { - "multiple": true, + "multiple": false, "required": true, "types": [ { - "type": "assignable_expr", + "type": "array_op", "named": true }, { @@ -434,38 +581,7 @@ "named": true }, { - "type": "number", - "named": true - }, - { - "type": "unary_op", - "named": true - } - ] - } - }, - { - "type": "unary_op", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "assignable_expr", - "named": true - }, - { - "type": "binary_op", - "named": true - }, - { - "type": "func_call", - "named": true - }, - { - "type": "global_identifier", + "type": "identifier", "named": true }, { @@ -495,6 +611,10 @@ "type": "&", "named": false }, + { + "type": "'", + "named": false + }, { "type": "(", "named": false diff --git a/src/parser.c b/src/parser.c index a3f145c..4ac5ebe 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,15 +6,15 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 125 +#define STATE_COUNT 160 #define LARGE_STATE_COUNT 9 -#define SYMBOL_COUNT 69 +#define SYMBOL_COUNT 71 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 42 +#define TOKEN_COUNT 43 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 0 +#define FIELD_COUNT 5 #define MAX_ALIAS_SEQUENCE_LENGTH 9 -#define PRODUCTION_ID_COUNT 1 +#define PRODUCTION_ID_COUNT 14 enum { anon_sym_module = 1, @@ -28,63 +28,65 @@ enum { anon_sym_RBRACK = 9, anon_sym_state = 10, anon_sym_gen = 11, - anon_sym_PLUS = 12, - anon_sym_DASH = 13, - anon_sym_STAR = 14, - anon_sym_BANG = 15, - anon_sym_PIPE = 16, - anon_sym_AMP = 17, - anon_sym_CARET = 18, - anon_sym_EQ_EQ = 19, - anon_sym_BANG_EQ = 20, - anon_sym_LT = 21, - anon_sym_LT_EQ = 22, - anon_sym_GT = 23, - anon_sym_GT_EQ = 24, - anon_sym_SLASH = 25, - anon_sym_PERCENT = 26, - anon_sym_LPAREN = 27, - anon_sym_RPAREN = 28, - anon_sym_DOT_DOT = 29, - anon_sym_LBRACE = 30, - anon_sym_RBRACE = 31, - anon_sym_reg = 32, - anon_sym_initial = 33, - anon_sym_EQ = 34, - anon_sym_SEMI = 35, + anon_sym_SQUOTE = 12, + anon_sym_PLUS = 13, + anon_sym_DASH = 14, + anon_sym_STAR = 15, + anon_sym_BANG = 16, + anon_sym_PIPE = 17, + anon_sym_AMP = 18, + anon_sym_CARET = 19, + anon_sym_EQ_EQ = 20, + anon_sym_BANG_EQ = 21, + anon_sym_LT = 22, + anon_sym_LT_EQ = 23, + anon_sym_GT = 24, + anon_sym_GT_EQ = 25, + anon_sym_SLASH = 26, + anon_sym_PERCENT = 27, + anon_sym_LPAREN = 28, + anon_sym_RPAREN = 29, + anon_sym_DOT_DOT = 30, + anon_sym_LBRACE = 31, + anon_sym_RBRACE = 32, + anon_sym_reg = 33, + anon_sym_initial = 34, + anon_sym_EQ = 35, anon_sym_if = 36, anon_sym_else = 37, anon_sym_for = 38, anon_sym_in = 39, - sym_single_line_comment = 40, - sym_multi_line_comment = 41, - sym_source_file = 42, - sym_module = 43, - sym_global_identifier = 44, - sym_type = 45, - sym_assignable_expr = 46, - sym_declaration = 47, - sym_unary_op = 48, - sym_binary_op = 49, - sym_func_call = 50, - sym__expression = 51, - sym_range = 52, - sym_block = 53, - sym__assign_left_side = 54, - sym_decl_assign_statement = 55, - sym_decl_statement = 56, - sym_expression_statement = 57, - sym_if_statement = 58, - sym_for_statement = 59, - sym__statement = 60, - aux_sym_source_file_repeat1 = 61, - aux_sym_module_repeat1 = 62, - aux_sym_global_identifier_repeat1 = 63, - aux_sym_type_repeat1 = 64, - aux_sym_func_call_repeat1 = 65, - aux_sym_block_repeat1 = 66, - aux_sym__assign_left_side_repeat1 = 67, - aux_sym__assign_left_side_repeat2 = 68, + anon_sym_SEMI = 40, + sym_single_line_comment = 41, + sym_multi_line_comment = 42, + sym_source_file = 43, + sym_module = 44, + sym_global_identifier = 45, + sym__maybe_global_identifier = 46, + sym_array_type = 47, + sym__type = 48, + sym_declaration = 49, + sym_unary_op = 50, + sym_binary_op = 51, + sym_array_op = 52, + sym_func_call = 53, + sym__expression = 54, + sym_range = 55, + sym_block = 56, + sym__assign_left_side = 57, + sym_decl_assign_statement = 58, + sym_decl_statement = 59, + sym_expression_statement = 60, + sym_if_statement = 61, + sym_for_statement = 62, + sym__statement = 63, + aux_sym_source_file_repeat1 = 64, + aux_sym_module_repeat1 = 65, + aux_sym_global_identifier_repeat1 = 66, + aux_sym_func_call_repeat1 = 67, + aux_sym_block_repeat1 = 68, + aux_sym__assign_left_side_repeat1 = 69, + aux_sym__assign_left_side_repeat2 = 70, }; static const char * const ts_symbol_names[] = { @@ -100,6 +102,7 @@ static const char * const ts_symbol_names[] = { [anon_sym_RBRACK] = "]", [anon_sym_state] = "state", [anon_sym_gen] = "gen", + [anon_sym_SQUOTE] = "'", [anon_sym_PLUS] = "+", [anon_sym_DASH] = "-", [anon_sym_STAR] = "*", @@ -123,21 +126,23 @@ static const char * const ts_symbol_names[] = { [anon_sym_reg] = "reg", [anon_sym_initial] = "initial", [anon_sym_EQ] = "=", - [anon_sym_SEMI] = ";", [anon_sym_if] = "if", [anon_sym_else] = "else", [anon_sym_for] = "for", [anon_sym_in] = "in", + [anon_sym_SEMI] = ";", [sym_single_line_comment] = "single_line_comment", [sym_multi_line_comment] = "multi_line_comment", [sym_source_file] = "source_file", [sym_module] = "module", [sym_global_identifier] = "global_identifier", - [sym_type] = "type", - [sym_assignable_expr] = "assignable_expr", + [sym__maybe_global_identifier] = "_maybe_global_identifier", + [sym_array_type] = "array_type", + [sym__type] = "_type", [sym_declaration] = "declaration", [sym_unary_op] = "unary_op", [sym_binary_op] = "binary_op", + [sym_array_op] = "array_op", [sym_func_call] = "func_call", [sym__expression] = "_expression", [sym_range] = "range", @@ -152,7 +157,6 @@ static const char * const ts_symbol_names[] = { [aux_sym_source_file_repeat1] = "source_file_repeat1", [aux_sym_module_repeat1] = "module_repeat1", [aux_sym_global_identifier_repeat1] = "global_identifier_repeat1", - [aux_sym_type_repeat1] = "type_repeat1", [aux_sym_func_call_repeat1] = "func_call_repeat1", [aux_sym_block_repeat1] = "block_repeat1", [aux_sym__assign_left_side_repeat1] = "_assign_left_side_repeat1", @@ -172,6 +176,7 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_RBRACK] = anon_sym_RBRACK, [anon_sym_state] = anon_sym_state, [anon_sym_gen] = anon_sym_gen, + [anon_sym_SQUOTE] = anon_sym_SQUOTE, [anon_sym_PLUS] = anon_sym_PLUS, [anon_sym_DASH] = anon_sym_DASH, [anon_sym_STAR] = anon_sym_STAR, @@ -195,21 +200,23 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_reg] = anon_sym_reg, [anon_sym_initial] = anon_sym_initial, [anon_sym_EQ] = anon_sym_EQ, - [anon_sym_SEMI] = anon_sym_SEMI, [anon_sym_if] = anon_sym_if, [anon_sym_else] = anon_sym_else, [anon_sym_for] = anon_sym_for, [anon_sym_in] = anon_sym_in, + [anon_sym_SEMI] = anon_sym_SEMI, [sym_single_line_comment] = sym_single_line_comment, [sym_multi_line_comment] = sym_multi_line_comment, [sym_source_file] = sym_source_file, [sym_module] = sym_module, [sym_global_identifier] = sym_global_identifier, - [sym_type] = sym_type, - [sym_assignable_expr] = sym_assignable_expr, + [sym__maybe_global_identifier] = sym__maybe_global_identifier, + [sym_array_type] = sym_array_type, + [sym__type] = sym__type, [sym_declaration] = sym_declaration, [sym_unary_op] = sym_unary_op, [sym_binary_op] = sym_binary_op, + [sym_array_op] = sym_array_op, [sym_func_call] = sym_func_call, [sym__expression] = sym__expression, [sym_range] = sym_range, @@ -224,7 +231,6 @@ static const TSSymbol ts_symbol_map[] = { [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1, [aux_sym_module_repeat1] = aux_sym_module_repeat1, [aux_sym_global_identifier_repeat1] = aux_sym_global_identifier_repeat1, - [aux_sym_type_repeat1] = aux_sym_type_repeat1, [aux_sym_func_call_repeat1] = aux_sym_func_call_repeat1, [aux_sym_block_repeat1] = aux_sym_block_repeat1, [aux_sym__assign_left_side_repeat1] = aux_sym__assign_left_side_repeat1, @@ -280,6 +286,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_SQUOTE] = { + .visible = true, + .named = false, + }, [anon_sym_PLUS] = { .visible = true, .named = false, @@ -372,10 +382,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_SEMI] = { - .visible = true, - .named = false, - }, [anon_sym_if] = { .visible = true, .named = false, @@ -392,6 +398,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_SEMI] = { + .visible = true, + .named = false, + }, [sym_single_line_comment] = { .visible = true, .named = true, @@ -412,14 +422,18 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_type] = { - .visible = true, + [sym__maybe_global_identifier] = { + .visible = false, .named = true, }, - [sym_assignable_expr] = { + [sym_array_type] = { .visible = true, .named = true, }, + [sym__type] = { + .visible = false, + .named = true, + }, [sym_declaration] = { .visible = true, .named = true, @@ -432,6 +446,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_array_op] = { + .visible = true, + .named = true, + }, [sym_func_call] = { .visible = true, .named = true, @@ -488,10 +506,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, - [aux_sym_type_repeat1] = { - .visible = false, - .named = false, - }, [aux_sym_func_call_repeat1] = { .visible = false, .named = false, @@ -510,6 +524,92 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { }, }; +enum { + field_inputs = 1, + field_latency_spec = 2, + field_name = 3, + field_outputs = 4, + field_type = 5, +}; + +static const char * const ts_field_names[] = { + [0] = NULL, + [field_inputs] = "inputs", + [field_latency_spec] = "latency_spec", + [field_name] = "name", + [field_outputs] = "outputs", + [field_type] = "type", +}; + +static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { + [1] = {.index = 0, .length = 1}, + [2] = {.index = 1, .length = 2}, + [3] = {.index = 3, .length = 2}, + [4] = {.index = 5, .length = 2}, + [5] = {.index = 7, .length = 2}, + [6] = {.index = 9, .length = 3}, + [7] = {.index = 12, .length = 3}, + [8] = {.index = 15, .length = 3}, + [9] = {.index = 18, .length = 3}, + [10] = {.index = 21, .length = 3}, + [11] = {.index = 24, .length = 4}, + [12] = {.index = 28, .length = 4}, + [13] = {.index = 32, .length = 5}, +}; + +static const TSFieldMapEntry ts_field_map_entries[] = { + [0] = + {field_name, 1}, + [1] = + {field_name, 1}, + {field_type, 0}, + [3] = + {field_name, 1}, + {field_outputs, 4}, + [5] = + {field_name, 2}, + {field_type, 1}, + [7] = + {field_inputs, 3}, + {field_name, 1}, + [9] = + {field_name, 1}, + {field_outputs, 4}, + {field_outputs, 5}, + [12] = + {field_latency_spec, 3}, + {field_name, 1}, + {field_type, 0}, + [15] = + {field_inputs, 3}, + {field_name, 1}, + {field_outputs, 5}, + [18] = + {field_inputs, 3}, + {field_inputs, 4}, + {field_name, 1}, + [21] = + {field_latency_spec, 4}, + {field_name, 2}, + {field_type, 1}, + [24] = + {field_inputs, 3}, + {field_name, 1}, + {field_outputs, 5}, + {field_outputs, 6}, + [28] = + {field_inputs, 3}, + {field_inputs, 4}, + {field_name, 1}, + {field_outputs, 6}, + [32] = + {field_inputs, 3}, + {field_inputs, 4}, + {field_name, 1}, + {field_outputs, 6}, + {field_outputs, 7}, +}; + static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { [0] = {0}, }; @@ -526,8 +626,8 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [4] = 2, [5] = 3, [6] = 6, - [7] = 3, - [8] = 2, + [7] = 2, + [8] = 3, [9] = 9, [10] = 10, [11] = 11, @@ -537,7 +637,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [15] = 15, [16] = 16, [17] = 17, - [18] = 10, + [18] = 18, [19] = 19, [20] = 20, [21] = 21, @@ -553,23 +653,23 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [31] = 31, [32] = 32, [33] = 33, - [34] = 23, + [34] = 34, [35] = 35, [36] = 36, [37] = 37, [38] = 38, [39] = 39, - [40] = 30, + [40] = 40, [41] = 41, - [42] = 42, - [43] = 43, - [44] = 44, + [42] = 9, + [43] = 13, + [44] = 12, [45] = 45, - [46] = 46, - [47] = 47, - [48] = 48, + [46] = 34, + [47] = 11, + [48] = 33, [49] = 49, - [50] = 50, + [50] = 10, [51] = 51, [52] = 52, [53] = 53, @@ -585,32 +685,32 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [63] = 63, [64] = 64, [65] = 65, - [66] = 66, - [67] = 67, - [68] = 68, - [69] = 69, + [66] = 54, + [67] = 58, + [68] = 61, + [69] = 62, [70] = 70, - [71] = 71, - [72] = 72, - [73] = 73, + [71] = 53, + [72] = 59, + [73] = 64, [74] = 74, [75] = 75, - [76] = 76, - [77] = 77, + [76] = 75, + [77] = 52, [78] = 78, - [79] = 79, + [79] = 15, [80] = 80, [81] = 81, [82] = 82, [83] = 83, - [84] = 84, + [84] = 35, [85] = 85, - [86] = 86, - [87] = 87, - [88] = 88, - [89] = 89, - [90] = 90, - [91] = 91, + [86] = 37, + [87] = 32, + [88] = 30, + [89] = 29, + [90] = 28, + [91] = 26, [92] = 92, [93] = 93, [94] = 94, @@ -626,14 +726,14 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [104] = 104, [105] = 105, [106] = 106, - [107] = 107, + [107] = 106, [108] = 108, [109] = 109, [110] = 110, [111] = 111, - [112] = 23, + [112] = 112, [113] = 113, - [114] = 30, + [114] = 114, [115] = 115, [116] = 116, [117] = 117, @@ -644,6 +744,41 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [122] = 122, [123] = 123, [124] = 124, + [125] = 125, + [126] = 126, + [127] = 127, + [128] = 128, + [129] = 129, + [130] = 104, + [131] = 131, + [132] = 132, + [133] = 133, + [134] = 34, + [135] = 135, + [136] = 136, + [137] = 137, + [138] = 131, + [139] = 136, + [140] = 140, + [141] = 141, + [142] = 33, + [143] = 143, + [144] = 144, + [145] = 145, + [146] = 146, + [147] = 147, + [148] = 148, + [149] = 105, + [150] = 150, + [151] = 151, + [152] = 152, + [153] = 153, + [154] = 154, + [155] = 151, + [156] = 156, + [157] = 157, + [158] = 158, + [159] = 152, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -2193,33 +2328,34 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (eof) ADVANCE(37); + if (eof) ADVANCE(36); if (lookahead == '!') ADVANCE(76); if (lookahead == '%') ADVANCE(87); if (lookahead == '&') ADVANCE(78); + if (lookahead == '\'') ADVANCE(70); if (lookahead == '(') ADVANCE(88); if (lookahead == ')') ADVANCE(89); if (lookahead == '*') ADVANCE(74); if (lookahead == '+') ADVANCE(71); - if (lookahead == ',') ADVANCE(40); + if (lookahead == ',') ADVANCE(39); if (lookahead == '-') ADVANCE(73); - if (lookahead == '.') ADVANCE(12); + if (lookahead == '.') ADVANCE(13); if (lookahead == '/') ADVANCE(86); - if (lookahead == ':') ADVANCE(39); - if (lookahead == ';') ADVANCE(98); + if (lookahead == ':') ADVANCE(38); + if (lookahead == ';') ADVANCE(104); if (lookahead == '<') ADVANCE(82); - if (lookahead == '=') ADVANCE(97); + if (lookahead == '=') ADVANCE(96); if (lookahead == '>') ADVANCE(84); - if (lookahead == '[') ADVANCE(65); - if (lookahead == ']') ADVANCE(66); + if (lookahead == '[') ADVANCE(64); + if (lookahead == ']') ADVANCE(65); if (lookahead == '^') ADVANCE(79); - if (lookahead == 'e') ADVANCE(26); - if (lookahead == 'f') ADVANCE(30); - if (lookahead == 'g') ADVANCE(19); - if (lookahead == 'i') ADVANCE(24); - if (lookahead == 'm') ADVANCE(31); - if (lookahead == 'r') ADVANCE(20); - if (lookahead == 's') ADVANCE(34); + if (lookahead == 'e') ADVANCE(25); + if (lookahead == 'f') ADVANCE(29); + if (lookahead == 'g') ADVANCE(18); + if (lookahead == 'i') ADVANCE(23); + if (lookahead == 'm') ADVANCE(30); + if (lookahead == 'r') ADVANCE(19); + if (lookahead == 's') ADVANCE(33); if (lookahead == '{') ADVANCE(91); if (lookahead == '|') ADVANCE(77); if (lookahead == '}') ADVANCE(92); @@ -2227,10 +2363,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(0) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(62); END_STATE(); case 1: - if (lookahead == '\n') ADVANCE(106); + if (lookahead == '\n') ADVANCE(105); if (lookahead != 0) ADVANCE(1); END_STATE(); case 2: @@ -2241,7 +2377,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '*') ADVANCE(74); if (lookahead == '+') ADVANCE(71); if (lookahead == '-') ADVANCE(72); - if (lookahead == '/') ADVANCE(6); + if (lookahead == '/') ADVANCE(10); if (lookahead == ':') ADVANCE(14); if (lookahead == '^') ADVANCE(79); if (lookahead == '|') ADVANCE(77); @@ -2249,8 +2385,8 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(2) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(62); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(62); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(61); END_STATE(); case 3: if (lookahead == '!') ADVANCE(75); @@ -2258,25 +2394,20 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '(') ADVANCE(88); if (lookahead == '*') ADVANCE(74); if (lookahead == '+') ADVANCE(71); - if (lookahead == '-') ADVANCE(72); - if (lookahead == '/') ADVANCE(6); + if (lookahead == '-') ADVANCE(73); + if (lookahead == '/') ADVANCE(10); if (lookahead == ':') ADVANCE(14); if (lookahead == '^') ADVANCE(79); - if (lookahead == 'e') ADVANCE(53); - if (lookahead == 'f') ADVANCE(56); - if (lookahead == 'g') ADVANCE(44); - if (lookahead == 'i') ADVANCE(48); - if (lookahead == 'r') ADVANCE(45); - if (lookahead == 's') ADVANCE(59); + if (lookahead == 'g') ADVANCE(43); + if (lookahead == 's') ADVANCE(58); if (lookahead == '{') ADVANCE(91); if (lookahead == '|') ADVANCE(77); - if (lookahead == '}') ADVANCE(92); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(3) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(62); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(62); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(61); END_STATE(); case 4: if (lookahead == '!') ADVANCE(75); @@ -2285,14 +2416,15 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '*') ADVANCE(74); if (lookahead == '+') ADVANCE(71); if (lookahead == '-') ADVANCE(72); - if (lookahead == '/') ADVANCE(6); + if (lookahead == '/') ADVANCE(10); if (lookahead == ':') ADVANCE(14); if (lookahead == '^') ADVANCE(79); - if (lookahead == 'f') ADVANCE(56); - if (lookahead == 'g') ADVANCE(44); - if (lookahead == 'i') ADVANCE(48); - if (lookahead == 'r') ADVANCE(45); - if (lookahead == 's') ADVANCE(59); + if (lookahead == 'e') ADVANCE(52); + if (lookahead == 'f') ADVANCE(55); + if (lookahead == 'g') ADVANCE(43); + if (lookahead == 'i') ADVANCE(47); + if (lookahead == 'r') ADVANCE(44); + if (lookahead == 's') ADVANCE(58); if (lookahead == '{') ADVANCE(91); if (lookahead == '|') ADVANCE(77); if (lookahead == '}') ADVANCE(92); @@ -2300,324 +2432,366 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(4) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(62); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(62); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(61); END_STATE(); case 5: - if (lookahead == '!') ADVANCE(15); - if (lookahead == '%') ADVANCE(87); + if (lookahead == '!') ADVANCE(75); if (lookahead == '&') ADVANCE(78); if (lookahead == '(') ADVANCE(88); - if (lookahead == ')') ADVANCE(89); if (lookahead == '*') ADVANCE(74); if (lookahead == '+') ADVANCE(71); - if (lookahead == ',') ADVANCE(40); if (lookahead == '-') ADVANCE(72); - if (lookahead == '.') ADVANCE(12); - if (lookahead == '/') ADVANCE(86); + if (lookahead == '/') ADVANCE(10); if (lookahead == ':') ADVANCE(14); - if (lookahead == ';') ADVANCE(98); - if (lookahead == '<') ADVANCE(82); - if (lookahead == '=') ADVANCE(97); - if (lookahead == '>') ADVANCE(84); - if (lookahead == '[') ADVANCE(65); - if (lookahead == ']') ADVANCE(66); if (lookahead == '^') ADVANCE(79); + if (lookahead == 'f') ADVANCE(55); + if (lookahead == 'g') ADVANCE(43); + if (lookahead == 'i') ADVANCE(47); + if (lookahead == 'r') ADVANCE(44); + if (lookahead == 's') ADVANCE(58); if (lookahead == '{') ADVANCE(91); if (lookahead == '|') ADVANCE(77); + if (lookahead == '}') ADVANCE(92); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(5) - if (sym_identifier_character_set_1(lookahead)) ADVANCE(62); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(62); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(61); END_STATE(); case 6: - if (lookahead == '*') ADVANCE(8); - if (lookahead == '/') ADVANCE(1); + if (lookahead == '!') ADVANCE(75); + if (lookahead == '&') ADVANCE(78); + if (lookahead == '(') ADVANCE(88); + if (lookahead == '*') ADVANCE(74); + if (lookahead == '+') ADVANCE(71); + if (lookahead == '-') ADVANCE(72); + if (lookahead == '/') ADVANCE(10); + if (lookahead == ':') ADVANCE(14); + if (lookahead == '^') ADVANCE(79); + if (lookahead == 'g') ADVANCE(43); + if (lookahead == 'i') ADVANCE(53); + if (lookahead == 'r') ADVANCE(44); + if (lookahead == 's') ADVANCE(58); + if (lookahead == '|') ADVANCE(77); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(6) + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(62); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(61); END_STATE(); case 7: - if (lookahead == '*') ADVANCE(7); - if (lookahead == '/') ADVANCE(107); - if (lookahead != 0) ADVANCE(8); - END_STATE(); - case 8: - if (lookahead == '*') ADVANCE(7); - if (lookahead != 0) ADVANCE(8); - END_STATE(); - case 9: - if (lookahead == ',') ADVANCE(40); - if (lookahead == '-') ADVANCE(16); - if (lookahead == '/') ADVANCE(6); + if (lookahead == '!') ADVANCE(75); + if (lookahead == '&') ADVANCE(78); + if (lookahead == '(') ADVANCE(88); + if (lookahead == '*') ADVANCE(74); + if (lookahead == '+') ADVANCE(71); + if (lookahead == '-') ADVANCE(72); + if (lookahead == '/') ADVANCE(10); if (lookahead == ':') ADVANCE(14); - if (lookahead == 'g') ADVANCE(44); - if (lookahead == 'i') ADVANCE(54); - if (lookahead == 'r') ADVANCE(45); - if (lookahead == 's') ADVANCE(59); - if (lookahead == '{') ADVANCE(91); + if (lookahead == '^') ADVANCE(79); + if (lookahead == 'g') ADVANCE(43); + if (lookahead == 'r') ADVANCE(44); + if (lookahead == 's') ADVANCE(58); + if (lookahead == '|') ADVANCE(77); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || - lookahead == ' ') SKIP(9) - if (sym_identifier_character_set_1(lookahead)) ADVANCE(62); + lookahead == ' ') SKIP(7) + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(62); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(61); END_STATE(); - case 10: - if (lookahead == ',') ADVANCE(40); - if (lookahead == '-') ADVANCE(16); - if (lookahead == '/') ADVANCE(6); - if (lookahead == ';') ADVANCE(98); + case 8: + if (lookahead == '!') ADVANCE(15); + if (lookahead == '%') ADVANCE(87); + if (lookahead == '&') ADVANCE(78); + if (lookahead == '(') ADVANCE(88); + if (lookahead == ')') ADVANCE(89); + if (lookahead == '*') ADVANCE(74); + if (lookahead == '+') ADVANCE(71); + if (lookahead == ',') ADVANCE(39); + if (lookahead == '-') ADVANCE(73); + if (lookahead == '.') ADVANCE(13); + if (lookahead == '/') ADVANCE(86); + if (lookahead == ':') ADVANCE(14); + if (lookahead == ';') ADVANCE(104); + if (lookahead == '<') ADVANCE(82); if (lookahead == '=') ADVANCE(96); - if (lookahead == 'i') ADVANCE(28); + if (lookahead == '>') ADVANCE(84); + if (lookahead == '[') ADVANCE(64); + if (lookahead == ']') ADVANCE(65); + if (lookahead == '^') ADVANCE(79); + if (lookahead == 'i') ADVANCE(27); if (lookahead == '{') ADVANCE(91); + if (lookahead == '|') ADVANCE(77); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || - lookahead == ' ') SKIP(10) + lookahead == ' ') SKIP(8) END_STATE(); - case 11: - if (lookahead == '-') ADVANCE(16); - if (lookahead == '/') ADVANCE(6); + case 9: + if (lookahead == '!') ADVANCE(15); + if (lookahead == '%') ADVANCE(87); + if (lookahead == '&') ADVANCE(78); + if (lookahead == '(') ADVANCE(88); + if (lookahead == ')') ADVANCE(89); + if (lookahead == '*') ADVANCE(74); + if (lookahead == '+') ADVANCE(71); + if (lookahead == ',') ADVANCE(39); + if (lookahead == '-') ADVANCE(73); + if (lookahead == '.') ADVANCE(13); + if (lookahead == '/') ADVANCE(86); if (lookahead == ':') ADVANCE(14); - if (lookahead == 'g') ADVANCE(44); - if (lookahead == 's') ADVANCE(59); + if (lookahead == ';') ADVANCE(104); + if (lookahead == '<') ADVANCE(82); + if (lookahead == '=') ADVANCE(96); + if (lookahead == '>') ADVANCE(84); + if (lookahead == '[') ADVANCE(64); + if (lookahead == ']') ADVANCE(65); + if (lookahead == '^') ADVANCE(79); if (lookahead == '{') ADVANCE(91); + if (lookahead == '|') ADVANCE(77); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || - lookahead == ' ') SKIP(11) - if (sym_identifier_character_set_1(lookahead)) ADVANCE(62); + lookahead == ' ') SKIP(9) + if (sym_identifier_character_set_1(lookahead)) ADVANCE(61); + END_STATE(); + case 10: + if (lookahead == '*') ADVANCE(12); + if (lookahead == '/') ADVANCE(1); + END_STATE(); + case 11: + if (lookahead == '*') ADVANCE(11); + if (lookahead == '/') ADVANCE(106); + if (lookahead != 0) ADVANCE(12); END_STATE(); case 12: - if (lookahead == '.') ADVANCE(90); + if (lookahead == '*') ADVANCE(11); + if (lookahead != 0) ADVANCE(12); END_STATE(); case 13: - if (lookahead == '/') ADVANCE(6); - if (lookahead == ':') ADVANCE(14); - if (lookahead == 'g') ADVANCE(44); - if (lookahead == 'r') ADVANCE(45); - if (lookahead == 's') ADVANCE(59); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(13) - if (sym_identifier_character_set_1(lookahead)) ADVANCE(62); + if (lookahead == '.') ADVANCE(90); END_STATE(); case 14: - if (lookahead == ':') ADVANCE(64); + if (lookahead == ':') ADVANCE(63); END_STATE(); case 15: if (lookahead == '=') ADVANCE(81); END_STATE(); case 16: - if (lookahead == '>') ADVANCE(41); + if (lookahead == 'a') ADVANCE(34); END_STATE(); case 17: - if (lookahead == 'a') ADVANCE(35); + if (lookahead == 'd') ADVANCE(35); END_STATE(); case 18: - if (lookahead == 'd') ADVANCE(36); + if (lookahead == 'e') ADVANCE(28); END_STATE(); case 19: - if (lookahead == 'e') ADVANCE(29); + if (lookahead == 'e') ADVANCE(24); END_STATE(); case 20: - if (lookahead == 'e') ADVANCE(25); + if (lookahead == 'e') ADVANCE(99); END_STATE(); case 21: - if (lookahead == 'e') ADVANCE(101); + if (lookahead == 'e') ADVANCE(66); END_STATE(); case 22: - if (lookahead == 'e') ADVANCE(67); + if (lookahead == 'e') ADVANCE(37); END_STATE(); case 23: - if (lookahead == 'e') ADVANCE(38); + if (lookahead == 'f') ADVANCE(97); + if (lookahead == 'n') ADVANCE(103); END_STATE(); case 24: - if (lookahead == 'f') ADVANCE(99); - if (lookahead == 'n') ADVANCE(105); + if (lookahead == 'g') ADVANCE(93); END_STATE(); case 25: - if (lookahead == 'g') ADVANCE(93); + if (lookahead == 'l') ADVANCE(32); END_STATE(); case 26: - if (lookahead == 'l') ADVANCE(33); + if (lookahead == 'l') ADVANCE(22); END_STATE(); case 27: - if (lookahead == 'l') ADVANCE(23); + if (lookahead == 'n') ADVANCE(103); END_STATE(); case 28: - if (lookahead == 'n') ADVANCE(105); + if (lookahead == 'n') ADVANCE(68); END_STATE(); case 29: - if (lookahead == 'n') ADVANCE(69); + if (lookahead == 'o') ADVANCE(31); END_STATE(); case 30: - if (lookahead == 'o') ADVANCE(32); + if (lookahead == 'o') ADVANCE(17); END_STATE(); case 31: - if (lookahead == 'o') ADVANCE(18); + if (lookahead == 'r') ADVANCE(101); END_STATE(); case 32: - if (lookahead == 'r') ADVANCE(103); + if (lookahead == 's') ADVANCE(20); END_STATE(); case 33: - if (lookahead == 's') ADVANCE(21); + if (lookahead == 't') ADVANCE(16); END_STATE(); case 34: - if (lookahead == 't') ADVANCE(17); + if (lookahead == 't') ADVANCE(21); END_STATE(); case 35: - if (lookahead == 't') ADVANCE(22); + if (lookahead == 'u') ADVANCE(26); END_STATE(); case 36: - if (lookahead == 'u') ADVANCE(27); + ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); case 37: - ACCEPT_TOKEN(ts_builtin_sym_end); + ACCEPT_TOKEN(anon_sym_module); END_STATE(); case 38: - ACCEPT_TOKEN(anon_sym_module); + ACCEPT_TOKEN(anon_sym_COLON); END_STATE(); case 39: - ACCEPT_TOKEN(anon_sym_COLON); + ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); case 40: - ACCEPT_TOKEN(anon_sym_COMMA); + ACCEPT_TOKEN(anon_sym_DASH_GT); END_STATE(); case 41: - ACCEPT_TOKEN(anon_sym_DASH_GT); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(51); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(61); END_STATE(); case 42: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'a') ADVANCE(52); - if (sym_identifier_character_set_2(lookahead)) ADVANCE(62); + if (lookahead == 'a') ADVANCE(60); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(61); END_STATE(); case 43: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'a') ADVANCE(61); - if (sym_identifier_character_set_2(lookahead)) ADVANCE(62); + if (lookahead == 'e') ADVANCE(54); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); END_STATE(); case 44: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(55); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); + if (lookahead == 'e') ADVANCE(48); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); END_STATE(); case 45: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(49); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); + if (lookahead == 'e') ADVANCE(67); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); END_STATE(); case 46: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(68); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); + if (lookahead == 'e') ADVANCE(100); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); END_STATE(); case 47: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(102); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); + if (lookahead == 'f') ADVANCE(98); + if (lookahead == 'n') ADVANCE(49); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); END_STATE(); case 48: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'f') ADVANCE(100); - if (lookahead == 'n') ADVANCE(50); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); + if (lookahead == 'g') ADVANCE(94); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); END_STATE(); case 49: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'g') ADVANCE(94); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); + if (lookahead == 'i') ADVANCE(59); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); END_STATE(); case 50: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'i') ADVANCE(60); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); + if (lookahead == 'i') ADVANCE(41); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); END_STATE(); case 51: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'i') ADVANCE(42); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); + if (lookahead == 'l') ADVANCE(95); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); END_STATE(); case 52: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'l') ADVANCE(95); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); + if (lookahead == 'l') ADVANCE(57); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); END_STATE(); case 53: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'l') ADVANCE(58); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); + if (lookahead == 'n') ADVANCE(49); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); END_STATE(); case 54: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'n') ADVANCE(50); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); + if (lookahead == 'n') ADVANCE(69); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); END_STATE(); case 55: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'n') ADVANCE(70); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); + if (lookahead == 'o') ADVANCE(56); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); END_STATE(); case 56: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'o') ADVANCE(57); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); + if (lookahead == 'r') ADVANCE(102); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); END_STATE(); case 57: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'r') ADVANCE(104); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); + if (lookahead == 's') ADVANCE(46); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); END_STATE(); case 58: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 's') ADVANCE(47); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); + if (lookahead == 't') ADVANCE(42); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); END_STATE(); case 59: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 't') ADVANCE(43); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); + if (lookahead == 't') ADVANCE(50); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); END_STATE(); case 60: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 't') ADVANCE(51); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); + if (lookahead == 't') ADVANCE(45); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); END_STATE(); case 61: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 't') ADVANCE(46); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); END_STATE(); case 62: - ACCEPT_TOKEN(sym_identifier); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); - END_STATE(); - case 63: ACCEPT_TOKEN(sym_number); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(63); + lookahead == '_') ADVANCE(62); END_STATE(); - case 64: + case 63: ACCEPT_TOKEN(anon_sym_COLON_COLON); END_STATE(); - case 65: + case 64: ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); - case 66: + case 65: ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); + case 66: + ACCEPT_TOKEN(anon_sym_state); + END_STATE(); case 67: ACCEPT_TOKEN(anon_sym_state); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); END_STATE(); case 68: - ACCEPT_TOKEN(anon_sym_state); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); + ACCEPT_TOKEN(anon_sym_gen); END_STATE(); case 69: ACCEPT_TOKEN(anon_sym_gen); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); END_STATE(); case 70: - ACCEPT_TOKEN(anon_sym_gen); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); + ACCEPT_TOKEN(anon_sym_SQUOTE); END_STATE(); case 71: ACCEPT_TOKEN(anon_sym_PLUS); @@ -2627,7 +2801,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 73: ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '>') ADVANCE(41); + if (lookahead == '>') ADVANCE(40); END_STATE(); case 74: ACCEPT_TOKEN(anon_sym_STAR); @@ -2670,7 +2844,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 86: ACCEPT_TOKEN(anon_sym_SLASH); - if (lookahead == '*') ADVANCE(8); + if (lookahead == '*') ADVANCE(12); if (lookahead == '/') ADVANCE(1); END_STATE(); case 87: @@ -2696,50 +2870,47 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 94: ACCEPT_TOKEN(anon_sym_reg); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); END_STATE(); case 95: ACCEPT_TOKEN(anon_sym_initial); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); END_STATE(); case 96: ACCEPT_TOKEN(anon_sym_EQ); + if (lookahead == '=') ADVANCE(80); END_STATE(); case 97: - ACCEPT_TOKEN(anon_sym_EQ); - if (lookahead == '=') ADVANCE(80); + ACCEPT_TOKEN(anon_sym_if); END_STATE(); case 98: - ACCEPT_TOKEN(anon_sym_SEMI); + ACCEPT_TOKEN(anon_sym_if); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); END_STATE(); case 99: - ACCEPT_TOKEN(anon_sym_if); + ACCEPT_TOKEN(anon_sym_else); END_STATE(); case 100: - ACCEPT_TOKEN(anon_sym_if); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); + ACCEPT_TOKEN(anon_sym_else); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); END_STATE(); case 101: - ACCEPT_TOKEN(anon_sym_else); + ACCEPT_TOKEN(anon_sym_for); END_STATE(); case 102: - ACCEPT_TOKEN(anon_sym_else); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); + ACCEPT_TOKEN(anon_sym_for); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); END_STATE(); case 103: - ACCEPT_TOKEN(anon_sym_for); + ACCEPT_TOKEN(anon_sym_in); END_STATE(); case 104: - ACCEPT_TOKEN(anon_sym_for); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(62); + ACCEPT_TOKEN(anon_sym_SEMI); END_STATE(); case 105: - ACCEPT_TOKEN(anon_sym_in); - END_STATE(); - case 106: ACCEPT_TOKEN(sym_single_line_comment); END_STATE(); - case 107: + case 106: ACCEPT_TOKEN(sym_multi_line_comment); END_STATE(); default: @@ -2750,113 +2921,113 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { static const TSLexMode ts_lex_modes[STATE_COUNT] = { [0] = {.lex_state = 0}, [1] = {.lex_state = 0}, - [2] = {.lex_state = 4}, - [3] = {.lex_state = 4}, - [4] = {.lex_state = 4}, - [5] = {.lex_state = 4}, - [6] = {.lex_state = 4}, - [7] = {.lex_state = 4}, - [8] = {.lex_state = 4}, - [9] = {.lex_state = 5}, - [10] = {.lex_state = 5}, - [11] = {.lex_state = 5}, - [12] = {.lex_state = 5}, - [13] = {.lex_state = 5}, - [14] = {.lex_state = 5}, - [15] = {.lex_state = 5}, - [16] = {.lex_state = 5}, - [17] = {.lex_state = 5}, - [18] = {.lex_state = 5}, - [19] = {.lex_state = 5}, - [20] = {.lex_state = 5}, - [21] = {.lex_state = 5}, - [22] = {.lex_state = 5}, - [23] = {.lex_state = 3}, - [24] = {.lex_state = 5}, - [25] = {.lex_state = 5}, - [26] = {.lex_state = 5}, - [27] = {.lex_state = 5}, - [28] = {.lex_state = 5}, - [29] = {.lex_state = 3}, - [30] = {.lex_state = 3}, - [31] = {.lex_state = 5}, - [32] = {.lex_state = 5}, - [33] = {.lex_state = 5}, + [2] = {.lex_state = 5}, + [3] = {.lex_state = 5}, + [4] = {.lex_state = 5}, + [5] = {.lex_state = 5}, + [6] = {.lex_state = 5}, + [7] = {.lex_state = 5}, + [8] = {.lex_state = 5}, + [9] = {.lex_state = 9}, + [10] = {.lex_state = 9}, + [11] = {.lex_state = 9}, + [12] = {.lex_state = 9}, + [13] = {.lex_state = 9}, + [14] = {.lex_state = 6}, + [15] = {.lex_state = 9}, + [16] = {.lex_state = 7}, + [17] = {.lex_state = 7}, + [18] = {.lex_state = 8}, + [19] = {.lex_state = 8}, + [20] = {.lex_state = 8}, + [21] = {.lex_state = 8}, + [22] = {.lex_state = 8}, + [23] = {.lex_state = 8}, + [24] = {.lex_state = 8}, + [25] = {.lex_state = 8}, + [26] = {.lex_state = 9}, + [27] = {.lex_state = 3}, + [28] = {.lex_state = 9}, + [29] = {.lex_state = 9}, + [30] = {.lex_state = 9}, + [31] = {.lex_state = 3}, + [32] = {.lex_state = 9}, + [33] = {.lex_state = 4}, [34] = {.lex_state = 4}, - [35] = {.lex_state = 5}, + [35] = {.lex_state = 9}, [36] = {.lex_state = 4}, - [37] = {.lex_state = 4}, - [38] = {.lex_state = 4}, - [39] = {.lex_state = 4}, - [40] = {.lex_state = 4}, - [41] = {.lex_state = 4}, - [42] = {.lex_state = 5}, - [43] = {.lex_state = 2}, - [44] = {.lex_state = 2}, - [45] = {.lex_state = 2}, - [46] = {.lex_state = 2}, - [47] = {.lex_state = 5}, - [48] = {.lex_state = 2}, - [49] = {.lex_state = 2}, - [50] = {.lex_state = 2}, - [51] = {.lex_state = 2}, + [37] = {.lex_state = 9}, + [38] = {.lex_state = 9}, + [39] = {.lex_state = 9}, + [40] = {.lex_state = 2}, + [41] = {.lex_state = 2}, + [42] = {.lex_state = 8}, + [43] = {.lex_state = 8}, + [44] = {.lex_state = 8}, + [45] = {.lex_state = 5}, + [46] = {.lex_state = 5}, + [47] = {.lex_state = 8}, + [48] = {.lex_state = 5}, + [49] = {.lex_state = 5}, + [50] = {.lex_state = 8}, + [51] = {.lex_state = 5}, [52] = {.lex_state = 2}, [53] = {.lex_state = 2}, [54] = {.lex_state = 2}, [55] = {.lex_state = 2}, [56] = {.lex_state = 2}, - [57] = {.lex_state = 2}, + [57] = {.lex_state = 9}, [58] = {.lex_state = 2}, - [59] = {.lex_state = 5}, - [60] = {.lex_state = 5}, - [61] = {.lex_state = 5}, - [62] = {.lex_state = 5}, - [63] = {.lex_state = 5}, - [64] = {.lex_state = 5}, - [65] = {.lex_state = 5}, - [66] = {.lex_state = 5}, - [67] = {.lex_state = 9}, - [68] = {.lex_state = 13}, - [69] = {.lex_state = 13}, - [70] = {.lex_state = 11}, - [71] = {.lex_state = 11}, - [72] = {.lex_state = 11}, - [73] = {.lex_state = 11}, - [74] = {.lex_state = 11}, - [75] = {.lex_state = 11}, - [76] = {.lex_state = 5}, - [77] = {.lex_state = 11}, - [78] = {.lex_state = 11}, - [79] = {.lex_state = 13}, - [80] = {.lex_state = 10}, - [81] = {.lex_state = 10}, - [82] = {.lex_state = 0}, - [83] = {.lex_state = 0}, - [84] = {.lex_state = 9}, - [85] = {.lex_state = 0}, - [86] = {.lex_state = 0}, - [87] = {.lex_state = 5}, - [88] = {.lex_state = 0}, - [89] = {.lex_state = 0}, - [90] = {.lex_state = 0}, - [91] = {.lex_state = 0}, - [92] = {.lex_state = 0}, - [93] = {.lex_state = 0}, - [94] = {.lex_state = 5}, + [59] = {.lex_state = 2}, + [60] = {.lex_state = 2}, + [61] = {.lex_state = 2}, + [62] = {.lex_state = 2}, + [63] = {.lex_state = 2}, + [64] = {.lex_state = 2}, + [65] = {.lex_state = 2}, + [66] = {.lex_state = 2}, + [67] = {.lex_state = 2}, + [68] = {.lex_state = 2}, + [69] = {.lex_state = 2}, + [70] = {.lex_state = 2}, + [71] = {.lex_state = 2}, + [72] = {.lex_state = 2}, + [73] = {.lex_state = 2}, + [74] = {.lex_state = 9}, + [75] = {.lex_state = 2}, + [76] = {.lex_state = 2}, + [77] = {.lex_state = 2}, + [78] = {.lex_state = 2}, + [79] = {.lex_state = 8}, + [80] = {.lex_state = 9}, + [81] = {.lex_state = 9}, + [82] = {.lex_state = 9}, + [83] = {.lex_state = 9}, + [84] = {.lex_state = 8}, + [85] = {.lex_state = 9}, + [86] = {.lex_state = 8}, + [87] = {.lex_state = 8}, + [88] = {.lex_state = 8}, + [89] = {.lex_state = 8}, + [90] = {.lex_state = 8}, + [91] = {.lex_state = 8}, + [92] = {.lex_state = 9}, + [93] = {.lex_state = 9}, + [94] = {.lex_state = 9}, [95] = {.lex_state = 9}, - [96] = {.lex_state = 0}, - [97] = {.lex_state = 0}, - [98] = {.lex_state = 9}, - [99] = {.lex_state = 0}, - [100] = {.lex_state = 5}, - [101] = {.lex_state = 0}, - [102] = {.lex_state = 0}, - [103] = {.lex_state = 9}, - [104] = {.lex_state = 5}, + [96] = {.lex_state = 9}, + [97] = {.lex_state = 7}, + [98] = {.lex_state = 3}, + [99] = {.lex_state = 3}, + [100] = {.lex_state = 3}, + [101] = {.lex_state = 3}, + [102] = {.lex_state = 3}, + [103] = {.lex_state = 3}, + [104] = {.lex_state = 0}, [105] = {.lex_state = 0}, - [106] = {.lex_state = 0}, - [107] = {.lex_state = 0}, - [108] = {.lex_state = 0}, + [106] = {.lex_state = 9}, + [107] = {.lex_state = 9}, + [108] = {.lex_state = 9}, [109] = {.lex_state = 0}, [110] = {.lex_state = 0}, [111] = {.lex_state = 0}, @@ -2864,15 +3035,50 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [113] = {.lex_state = 0}, [114] = {.lex_state = 0}, [115] = {.lex_state = 0}, - [116] = {.lex_state = 5}, - [117] = {.lex_state = 5}, - [118] = {.lex_state = 5}, - [119] = {.lex_state = 5}, + [116] = {.lex_state = 0}, + [117] = {.lex_state = 0}, + [118] = {.lex_state = 0}, + [119] = {.lex_state = 0}, [120] = {.lex_state = 0}, - [121] = {.lex_state = 5}, + [121] = {.lex_state = 0}, [122] = {.lex_state = 0}, [123] = {.lex_state = 0}, [124] = {.lex_state = 0}, + [125] = {.lex_state = 0}, + [126] = {.lex_state = 0}, + [127] = {.lex_state = 0}, + [128] = {.lex_state = 0}, + [129] = {.lex_state = 0}, + [130] = {.lex_state = 0}, + [131] = {.lex_state = 9}, + [132] = {.lex_state = 0}, + [133] = {.lex_state = 0}, + [134] = {.lex_state = 0}, + [135] = {.lex_state = 0}, + [136] = {.lex_state = 9}, + [137] = {.lex_state = 0}, + [138] = {.lex_state = 9}, + [139] = {.lex_state = 9}, + [140] = {.lex_state = 0}, + [141] = {.lex_state = 0}, + [142] = {.lex_state = 0}, + [143] = {.lex_state = 0}, + [144] = {.lex_state = 0}, + [145] = {.lex_state = 9}, + [146] = {.lex_state = 0}, + [147] = {.lex_state = 0}, + [148] = {.lex_state = 0}, + [149] = {.lex_state = 0}, + [150] = {.lex_state = 0}, + [151] = {.lex_state = 9}, + [152] = {.lex_state = 9}, + [153] = {.lex_state = 0}, + [154] = {.lex_state = 9}, + [155] = {.lex_state = 9}, + [156] = {.lex_state = 0}, + [157] = {.lex_state = 0}, + [158] = {.lex_state = 0}, + [159] = {.lex_state = 9}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -2887,6 +3093,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_RBRACK] = ACTIONS(1), [anon_sym_state] = ACTIONS(1), [anon_sym_gen] = ACTIONS(1), + [anon_sym_SQUOTE] = ACTIONS(1), [anon_sym_PLUS] = ACTIONS(1), [anon_sym_DASH] = ACTIONS(1), [anon_sym_STAR] = ACTIONS(1), @@ -2909,42 +3116,44 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_RBRACE] = ACTIONS(1), [anon_sym_reg] = ACTIONS(1), [anon_sym_EQ] = ACTIONS(1), - [anon_sym_SEMI] = ACTIONS(1), [anon_sym_if] = ACTIONS(1), [anon_sym_else] = ACTIONS(1), [anon_sym_for] = ACTIONS(1), [anon_sym_in] = ACTIONS(1), + [anon_sym_SEMI] = ACTIONS(1), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(124), - [sym_module] = STATE(86), - [aux_sym_source_file_repeat1] = STATE(86), + [sym_source_file] = STATE(156), + [sym_module] = STATE(111), + [aux_sym_source_file_repeat1] = STATE(111), [ts_builtin_sym_end] = ACTIONS(5), [anon_sym_module] = ACTIONS(7), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [2] = { - [sym_global_identifier] = STATE(35), - [sym_type] = STATE(119), - [sym_assignable_expr] = STATE(42), - [sym_declaration] = STATE(92), - [sym_unary_op] = STATE(64), - [sym_binary_op] = STATE(64), - [sym_func_call] = STATE(64), - [sym__expression] = STATE(64), + [sym_global_identifier] = STATE(38), + [sym__maybe_global_identifier] = STATE(18), + [sym_array_type] = STATE(136), + [sym__type] = STATE(136), + [sym_declaration] = STATE(117), + [sym_unary_op] = STATE(39), + [sym_binary_op] = STATE(39), + [sym_array_op] = STATE(39), + [sym_func_call] = STATE(39), + [sym__expression] = STATE(39), [sym_block] = STATE(6), - [sym__assign_left_side] = STATE(120), - [sym_decl_assign_statement] = STATE(6), - [sym_decl_statement] = STATE(6), - [sym_expression_statement] = STATE(6), + [sym__assign_left_side] = STATE(158), + [sym_decl_assign_statement] = STATE(157), + [sym_decl_statement] = STATE(157), + [sym_expression_statement] = STATE(157), [sym_if_statement] = STATE(6), [sym_for_statement] = STATE(6), [sym__statement] = STATE(6), [aux_sym_block_repeat1] = STATE(6), - [aux_sym__assign_left_side_repeat1] = STATE(68), + [aux_sym__assign_left_side_repeat1] = STATE(16), [sym_identifier] = ACTIONS(9), [sym_number] = ACTIONS(11), [anon_sym_COLON_COLON] = ACTIONS(13), @@ -2968,24 +3177,26 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [3] = { - [sym_global_identifier] = STATE(35), - [sym_type] = STATE(119), - [sym_assignable_expr] = STATE(42), - [sym_declaration] = STATE(92), - [sym_unary_op] = STATE(64), - [sym_binary_op] = STATE(64), - [sym_func_call] = STATE(64), - [sym__expression] = STATE(64), + [sym_global_identifier] = STATE(38), + [sym__maybe_global_identifier] = STATE(18), + [sym_array_type] = STATE(136), + [sym__type] = STATE(136), + [sym_declaration] = STATE(117), + [sym_unary_op] = STATE(39), + [sym_binary_op] = STATE(39), + [sym_array_op] = STATE(39), + [sym_func_call] = STATE(39), + [sym__expression] = STATE(39), [sym_block] = STATE(2), - [sym__assign_left_side] = STATE(120), - [sym_decl_assign_statement] = STATE(2), - [sym_decl_statement] = STATE(2), - [sym_expression_statement] = STATE(2), + [sym__assign_left_side] = STATE(158), + [sym_decl_assign_statement] = STATE(157), + [sym_decl_statement] = STATE(157), + [sym_expression_statement] = STATE(157), [sym_if_statement] = STATE(2), [sym_for_statement] = STATE(2), [sym__statement] = STATE(2), [aux_sym_block_repeat1] = STATE(2), - [aux_sym__assign_left_side_repeat1] = STATE(68), + [aux_sym__assign_left_side_repeat1] = STATE(16), [sym_identifier] = ACTIONS(9), [sym_number] = ACTIONS(11), [anon_sym_COLON_COLON] = ACTIONS(13), @@ -3009,24 +3220,26 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [4] = { - [sym_global_identifier] = STATE(35), - [sym_type] = STATE(119), - [sym_assignable_expr] = STATE(42), - [sym_declaration] = STATE(92), - [sym_unary_op] = STATE(64), - [sym_binary_op] = STATE(64), - [sym_func_call] = STATE(64), - [sym__expression] = STATE(64), + [sym_global_identifier] = STATE(38), + [sym__maybe_global_identifier] = STATE(18), + [sym_array_type] = STATE(136), + [sym__type] = STATE(136), + [sym_declaration] = STATE(117), + [sym_unary_op] = STATE(39), + [sym_binary_op] = STATE(39), + [sym_array_op] = STATE(39), + [sym_func_call] = STATE(39), + [sym__expression] = STATE(39), [sym_block] = STATE(6), - [sym__assign_left_side] = STATE(120), - [sym_decl_assign_statement] = STATE(6), - [sym_decl_statement] = STATE(6), - [sym_expression_statement] = STATE(6), + [sym__assign_left_side] = STATE(158), + [sym_decl_assign_statement] = STATE(157), + [sym_decl_statement] = STATE(157), + [sym_expression_statement] = STATE(157), [sym_if_statement] = STATE(6), [sym_for_statement] = STATE(6), [sym__statement] = STATE(6), [aux_sym_block_repeat1] = STATE(6), - [aux_sym__assign_left_side_repeat1] = STATE(68), + [aux_sym__assign_left_side_repeat1] = STATE(16), [sym_identifier] = ACTIONS(9), [sym_number] = ACTIONS(11), [anon_sym_COLON_COLON] = ACTIONS(13), @@ -3050,24 +3263,26 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [5] = { - [sym_global_identifier] = STATE(35), - [sym_type] = STATE(119), - [sym_assignable_expr] = STATE(42), - [sym_declaration] = STATE(92), - [sym_unary_op] = STATE(64), - [sym_binary_op] = STATE(64), - [sym_func_call] = STATE(64), - [sym__expression] = STATE(64), + [sym_global_identifier] = STATE(38), + [sym__maybe_global_identifier] = STATE(18), + [sym_array_type] = STATE(136), + [sym__type] = STATE(136), + [sym_declaration] = STATE(117), + [sym_unary_op] = STATE(39), + [sym_binary_op] = STATE(39), + [sym_array_op] = STATE(39), + [sym_func_call] = STATE(39), + [sym__expression] = STATE(39), [sym_block] = STATE(4), - [sym__assign_left_side] = STATE(120), - [sym_decl_assign_statement] = STATE(4), - [sym_decl_statement] = STATE(4), - [sym_expression_statement] = STATE(4), + [sym__assign_left_side] = STATE(158), + [sym_decl_assign_statement] = STATE(157), + [sym_decl_statement] = STATE(157), + [sym_expression_statement] = STATE(157), [sym_if_statement] = STATE(4), [sym_for_statement] = STATE(4), [sym__statement] = STATE(4), [aux_sym_block_repeat1] = STATE(4), - [aux_sym__assign_left_side_repeat1] = STATE(68), + [aux_sym__assign_left_side_repeat1] = STATE(16), [sym_identifier] = ACTIONS(9), [sym_number] = ACTIONS(11), [anon_sym_COLON_COLON] = ACTIONS(13), @@ -3091,24 +3306,26 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [6] = { - [sym_global_identifier] = STATE(35), - [sym_type] = STATE(119), - [sym_assignable_expr] = STATE(42), - [sym_declaration] = STATE(92), - [sym_unary_op] = STATE(64), - [sym_binary_op] = STATE(64), - [sym_func_call] = STATE(64), - [sym__expression] = STATE(64), + [sym_global_identifier] = STATE(38), + [sym__maybe_global_identifier] = STATE(18), + [sym_array_type] = STATE(136), + [sym__type] = STATE(136), + [sym_declaration] = STATE(117), + [sym_unary_op] = STATE(39), + [sym_binary_op] = STATE(39), + [sym_array_op] = STATE(39), + [sym_func_call] = STATE(39), + [sym__expression] = STATE(39), [sym_block] = STATE(6), - [sym__assign_left_side] = STATE(120), - [sym_decl_assign_statement] = STATE(6), - [sym_decl_statement] = STATE(6), - [sym_expression_statement] = STATE(6), + [sym__assign_left_side] = STATE(158), + [sym_decl_assign_statement] = STATE(157), + [sym_decl_statement] = STATE(157), + [sym_expression_statement] = STATE(157), [sym_if_statement] = STATE(6), [sym_for_statement] = STATE(6), [sym__statement] = STATE(6), [aux_sym_block_repeat1] = STATE(6), - [aux_sym__assign_left_side_repeat1] = STATE(68), + [aux_sym__assign_left_side_repeat1] = STATE(16), [sym_identifier] = ACTIONS(39), [sym_number] = ACTIONS(42), [anon_sym_COLON_COLON] = ACTIONS(45), @@ -3132,24 +3349,26 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [7] = { - [sym_global_identifier] = STATE(35), - [sym_type] = STATE(119), - [sym_assignable_expr] = STATE(42), - [sym_declaration] = STATE(92), - [sym_unary_op] = STATE(64), - [sym_binary_op] = STATE(64), - [sym_func_call] = STATE(64), - [sym__expression] = STATE(64), - [sym_block] = STATE(8), - [sym__assign_left_side] = STATE(120), - [sym_decl_assign_statement] = STATE(8), - [sym_decl_statement] = STATE(8), - [sym_expression_statement] = STATE(8), - [sym_if_statement] = STATE(8), - [sym_for_statement] = STATE(8), - [sym__statement] = STATE(8), - [aux_sym_block_repeat1] = STATE(8), - [aux_sym__assign_left_side_repeat1] = STATE(68), + [sym_global_identifier] = STATE(38), + [sym__maybe_global_identifier] = STATE(18), + [sym_array_type] = STATE(136), + [sym__type] = STATE(136), + [sym_declaration] = STATE(117), + [sym_unary_op] = STATE(39), + [sym_binary_op] = STATE(39), + [sym_array_op] = STATE(39), + [sym_func_call] = STATE(39), + [sym__expression] = STATE(39), + [sym_block] = STATE(6), + [sym__assign_left_side] = STATE(158), + [sym_decl_assign_statement] = STATE(157), + [sym_decl_statement] = STATE(157), + [sym_expression_statement] = STATE(157), + [sym_if_statement] = STATE(6), + [sym_for_statement] = STATE(6), + [sym__statement] = STATE(6), + [aux_sym_block_repeat1] = STATE(6), + [aux_sym__assign_left_side_repeat1] = STATE(16), [sym_identifier] = ACTIONS(9), [sym_number] = ACTIONS(11), [anon_sym_COLON_COLON] = ACTIONS(13), @@ -3173,24 +3392,26 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [8] = { - [sym_global_identifier] = STATE(35), - [sym_type] = STATE(119), - [sym_assignable_expr] = STATE(42), - [sym_declaration] = STATE(92), - [sym_unary_op] = STATE(64), - [sym_binary_op] = STATE(64), - [sym_func_call] = STATE(64), - [sym__expression] = STATE(64), - [sym_block] = STATE(6), - [sym__assign_left_side] = STATE(120), - [sym_decl_assign_statement] = STATE(6), - [sym_decl_statement] = STATE(6), - [sym_expression_statement] = STATE(6), - [sym_if_statement] = STATE(6), - [sym_for_statement] = STATE(6), - [sym__statement] = STATE(6), - [aux_sym_block_repeat1] = STATE(6), - [aux_sym__assign_left_side_repeat1] = STATE(68), + [sym_global_identifier] = STATE(38), + [sym__maybe_global_identifier] = STATE(18), + [sym_array_type] = STATE(136), + [sym__type] = STATE(136), + [sym_declaration] = STATE(117), + [sym_unary_op] = STATE(39), + [sym_binary_op] = STATE(39), + [sym_array_op] = STATE(39), + [sym_func_call] = STATE(39), + [sym__expression] = STATE(39), + [sym_block] = STATE(7), + [sym__assign_left_side] = STATE(158), + [sym_decl_assign_statement] = STATE(157), + [sym_decl_statement] = STATE(157), + [sym_expression_statement] = STATE(157), + [sym_if_statement] = STATE(7), + [sym_for_statement] = STATE(7), + [sym__statement] = STATE(7), + [aux_sym_block_repeat1] = STATE(7), + [aux_sym__assign_left_side_repeat1] = STATE(16), [sym_identifier] = ACTIONS(9), [sym_number] = ACTIONS(11), [anon_sym_COLON_COLON] = ACTIONS(13), @@ -3224,17 +3445,19 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(82), 3, + ACTIONS(82), 5, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, + anon_sym_EQ, ACTIONS(78), 20, anon_sym_COMMA, + anon_sym_DASH_GT, sym_identifier, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, - anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, @@ -3249,27 +3472,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DOT_DOT, anon_sym_LBRACE, anon_sym_SEMI, - [38] = 7, + [40] = 5, ACTIONS(80), 1, anon_sym_COLON_COLON, - ACTIONS(86), 1, - anon_sym_LBRACK, STATE(13), 1, aux_sym_global_identifier_repeat1, - STATE(16), 1, - aux_sym_type_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 3, + ACTIONS(86), 5, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - ACTIONS(84), 18, + anon_sym_EQ, + ACTIONS(84), 20, anon_sym_COMMA, + anon_sym_DASH_GT, + sym_identifier, + anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, - anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, @@ -3292,17 +3515,19 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(92), 3, + ACTIONS(90), 5, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - ACTIONS(90), 20, + anon_sym_EQ, + ACTIONS(88), 20, anon_sym_COMMA, + anon_sym_DASH_GT, sym_identifier, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, - anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, @@ -3317,25 +3542,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DOT_DOT, anon_sym_LBRACE, anon_sym_SEMI, - [118] = 5, - ACTIONS(96), 1, + [120] = 5, + ACTIONS(94), 1, anon_sym_COLON_COLON, STATE(12), 1, aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(99), 3, + ACTIONS(97), 5, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - ACTIONS(94), 20, + anon_sym_EQ, + ACTIONS(92), 20, anon_sym_COMMA, + anon_sym_DASH_GT, sym_identifier, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, - anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, @@ -3350,7 +3577,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DOT_DOT, anon_sym_LBRACE, anon_sym_SEMI, - [156] = 5, + [160] = 5, ACTIONS(80), 1, anon_sym_COLON_COLON, STATE(12), 1, @@ -3358,17 +3585,19 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(82), 3, + ACTIONS(82), 5, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, + anon_sym_EQ, ACTIONS(78), 20, anon_sym_COMMA, + anon_sym_DASH_GT, sym_identifier, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, - anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, @@ -3383,54 +3612,68 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DOT_DOT, anon_sym_LBRACE, anon_sym_SEMI, - [194] = 5, + [200] = 15, + ACTIONS(9), 1, + sym_identifier, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(99), 1, + sym_number, + ACTIONS(101), 1, + anon_sym_reg, ACTIONS(103), 1, - anon_sym_LBRACK, - STATE(14), 1, - aux_sym_type_repeat1, + anon_sym_initial, + STATE(17), 1, + aux_sym__assign_left_side_repeat1, + STATE(18), 1, + sym__maybe_global_identifier, + STATE(38), 1, + sym_global_identifier, + STATE(143), 1, + sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(106), 4, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, - anon_sym_EQ, - ACTIONS(101), 18, - anon_sym_COMMA, - sym_identifier, - anon_sym_RBRACK, + ACTIONS(15), 2, + anon_sym_state, + anon_sym_gen, + STATE(136), 2, + sym_array_type, + sym__type, + STATE(81), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_RPAREN, - anon_sym_DOT_DOT, - anon_sym_LBRACE, - anon_sym_SEMI, - [231] = 3, + [259] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(99), 3, + ACTIONS(97), 5, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - ACTIONS(94), 21, + anon_sym_EQ, + ACTIONS(92), 21, anon_sym_COMMA, + anon_sym_DASH_GT, sym_identifier, anon_sym_COLON_COLON, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, - anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, @@ -3445,24 +3688,108 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DOT_DOT, anon_sym_LBRACE, anon_sym_SEMI, - [264] = 5, - ACTIONS(86), 1, - anon_sym_LBRACK, - STATE(14), 1, - aux_sym_type_repeat1, + [294] = 14, + ACTIONS(9), 1, + sym_identifier, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(105), 1, + sym_number, + ACTIONS(107), 1, + anon_sym_reg, + STATE(18), 1, + sym__maybe_global_identifier, + STATE(38), 1, + sym_global_identifier, + STATE(97), 1, + aux_sym__assign_left_side_repeat1, + STATE(128), 1, + sym_declaration, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(15), 2, + anon_sym_state, + anon_sym_gen, + STATE(136), 2, + sym_array_type, + sym__type, + STATE(57), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(17), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [350] = 14, + ACTIONS(9), 1, + sym_identifier, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(107), 1, + anon_sym_reg, + ACTIONS(109), 1, + sym_number, + STATE(18), 1, + sym__maybe_global_identifier, + STATE(38), 1, + sym_global_identifier, + STATE(97), 1, + aux_sym__assign_left_side_repeat1, + STATE(148), 1, + sym_declaration, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(15), 2, + anon_sym_state, + anon_sym_gen, + STATE(136), 2, + sym_array_type, + sym__type, + STATE(82), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(17), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [406] = 4, + ACTIONS(115), 1, + anon_sym_LPAREN, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(110), 4, + ACTIONS(113), 5, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_EQ, - ACTIONS(108), 17, + ACTIONS(111), 19, anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, - anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, @@ -3475,23 +3802,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_DOT_DOT, anon_sym_LBRACE, + anon_sym_in, anon_sym_SEMI, - [300] = 3, + [442] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(114), 4, + ACTIONS(119), 5, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_EQ, - ACTIONS(112), 19, + ACTIONS(117), 19, anon_sym_COMMA, - sym_identifier, + anon_sym_DASH_GT, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, - anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, @@ -3504,30 +3832,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_DOT_DOT, anon_sym_LBRACE, + anon_sym_in, anon_sym_SEMI, - [332] = 8, - ACTIONS(80), 1, - anon_sym_COLON_COLON, - ACTIONS(116), 1, - anon_sym_COMMA, - ACTIONS(118), 1, - anon_sym_EQ, - STATE(13), 1, - aux_sym_global_identifier_repeat1, - STATE(16), 1, - aux_sym_type_repeat1, + [475] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 3, + ACTIONS(123), 5, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - ACTIONS(84), 15, - sym_identifier, + anon_sym_EQ, + ACTIONS(121), 19, + anon_sym_COMMA, + anon_sym_DASH_GT, anon_sym_LBRACK, + anon_sym_RBRACK, anon_sym_PLUS, - anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, @@ -3537,23 +3859,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, - anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_DOT_DOT, + anon_sym_LBRACE, + anon_sym_in, anon_sym_SEMI, - [374] = 4, - ACTIONS(124), 1, - anon_sym_LPAREN, + [508] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(122), 3, + ACTIONS(127), 5, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - ACTIONS(120), 17, + anon_sym_EQ, + ACTIONS(125), 19, anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, - anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, @@ -3566,50 +3892,54 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_DOT_DOT, anon_sym_LBRACE, + anon_sym_in, anon_sym_SEMI, - [406] = 7, - ACTIONS(132), 1, - anon_sym_CARET, - ACTIONS(136), 1, - anon_sym_SLASH, + [541] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 2, - anon_sym_PLUS, + ACTIONS(131), 5, anon_sym_DASH, - ACTIONS(130), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(134), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(126), 12, + anon_sym_SLASH, + anon_sym_EQ, + ACTIONS(129), 19, anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_DOT_DOT, anon_sym_LBRACE, + anon_sym_in, anon_sym_SEMI, - [443] = 3, + [574] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(134), 3, + ACTIONS(135), 5, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - ACTIONS(126), 17, + anon_sym_EQ, + ACTIONS(133), 19, anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, - anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, @@ -3622,20 +3952,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_DOT_DOT, anon_sym_LBRACE, + anon_sym_in, anon_sym_SEMI, - [472] = 3, + [607] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(140), 3, + ACTIONS(139), 5, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - ACTIONS(138), 17, + anon_sym_EQ, + ACTIONS(137), 19, anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, - anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, @@ -3648,46 +3982,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_DOT_DOT, anon_sym_LBRACE, + anon_sym_in, anon_sym_SEMI, - [501] = 3, + [640] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(142), 8, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_else, - anon_sym_for, - ACTIONS(144), 12, - sym_number, - anon_sym_COLON_COLON, - anon_sym_PLUS, + ACTIONS(143), 5, anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [530] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(148), 3, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - ACTIONS(146), 17, + anon_sym_EQ, + ACTIONS(141), 19, anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, - anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, @@ -3700,21 +4012,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_DOT_DOT, anon_sym_LBRACE, + anon_sym_in, anon_sym_SEMI, - [559] = 3, + [673] = 5, + ACTIONS(147), 1, + anon_sym_SLASH, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(152), 3, + ACTIONS(145), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(143), 4, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, - anon_sym_SLASH, - ACTIONS(150), 17, + anon_sym_EQ, + ACTIONS(141), 16, anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -3722,61 +4041,109 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_DOT_DOT, anon_sym_LBRACE, anon_sym_SEMI, - [588] = 3, + [709] = 12, + ACTIONS(9), 1, + sym_identifier, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(109), 1, + sym_number, + STATE(18), 1, + sym__maybe_global_identifier, + STATE(38), 1, + sym_global_identifier, + STATE(148), 1, + sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(156), 3, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, - ACTIONS(154), 17, - anon_sym_COMMA, - anon_sym_RBRACK, + ACTIONS(15), 2, + anon_sym_state, + anon_sym_gen, + STATE(136), 2, + sym_array_type, + sym__type, + STATE(82), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, + [759] = 8, + ACTIONS(147), 1, + anon_sym_SLASH, + ACTIONS(149), 1, + anon_sym_PLUS, + ACTIONS(151), 1, + anon_sym_DASH, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(145), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(143), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + ACTIONS(141), 14, + anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_PIPE, + anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_DOT_DOT, anon_sym_LBRACE, anon_sym_SEMI, - [617] = 9, - ACTIONS(132), 1, - anon_sym_CARET, - ACTIONS(136), 1, + [801] = 9, + ACTIONS(147), 1, anon_sym_SLASH, - ACTIONS(158), 1, + ACTIONS(149), 1, + anon_sym_PLUS, + ACTIONS(151), 1, + anon_sym_DASH, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, anon_sym_PIPE, - ACTIONS(160), 1, - anon_sym_AMP, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(130), 2, + ACTIONS(145), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(134), 2, + ACTIONS(143), 3, anon_sym_LT, anon_sym_GT, - ACTIONS(126), 10, + anon_sym_EQ, + ACTIONS(141), 13, anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -3785,23 +4152,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DOT_DOT, anon_sym_LBRACE, anon_sym_SEMI, - [658] = 6, - ACTIONS(136), 1, + [845] = 7, + ACTIONS(147), 1, anon_sym_SLASH, + ACTIONS(149), 1, + anon_sym_PLUS, + ACTIONS(151), 1, + anon_sym_DASH, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(130), 2, + ACTIONS(145), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(134), 2, + ACTIONS(143), 3, anon_sym_LT, anon_sym_GT, - ACTIONS(126), 13, + anon_sym_EQ, + ACTIONS(141), 15, anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PIPE, anon_sym_AMP, @@ -3814,49 +4185,37 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DOT_DOT, anon_sym_LBRACE, anon_sym_SEMI, - [693] = 4, - ACTIONS(166), 1, - anon_sym_else, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(162), 7, + [885] = 12, + ACTIONS(9), 1, sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(164), 12, - sym_number, + ACTIONS(13), 1, anon_sym_COLON_COLON, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, + ACTIONS(19), 1, anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [724] = 3, + ACTIONS(105), 1, + sym_number, + STATE(18), 1, + sym__maybe_global_identifier, + STATE(38), 1, + sym_global_identifier, + STATE(128), 1, + sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(168), 8, - sym_identifier, + ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_else, - anon_sym_for, - ACTIONS(170), 12, - sym_number, - anon_sym_COLON_COLON, + STATE(136), 2, + sym_array_type, + sym__type, + STATE(57), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3864,107 +4223,56 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [753] = 8, - ACTIONS(132), 1, - anon_sym_CARET, - ACTIONS(136), 1, + [935] = 10, + ACTIONS(147), 1, anon_sym_SLASH, - ACTIONS(158), 1, - anon_sym_PIPE, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(128), 2, + ACTIONS(149), 1, anon_sym_PLUS, + ACTIONS(151), 1, anon_sym_DASH, - ACTIONS(130), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(134), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(126), 11, - anon_sym_COMMA, - anon_sym_RBRACK, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, + anon_sym_PIPE, + ACTIONS(157), 1, anon_sym_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_RPAREN, - anon_sym_DOT_DOT, - anon_sym_LBRACE, - anon_sym_SEMI, - [792] = 5, - ACTIONS(136), 1, - anon_sym_SLASH, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 2, + ACTIONS(145), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(134), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(126), 15, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_RPAREN, - anon_sym_DOT_DOT, - anon_sym_LBRACE, - anon_sym_SEMI, - [825] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(174), 3, + ACTIONS(143), 3, anon_sym_LT, anon_sym_GT, - anon_sym_SLASH, - ACTIONS(172), 17, + anon_sym_EQ, + ACTIONS(141), 12, anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_DOT_DOT, anon_sym_LBRACE, anon_sym_SEMI, - [854] = 3, + [981] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(142), 7, + ACTIONS(159), 8, sym_identifier, anon_sym_state, anon_sym_gen, anon_sym_reg, anon_sym_initial, anon_sym_if, + anon_sym_else, anon_sym_for, - ACTIONS(144), 12, + ACTIONS(161), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -3977,48 +4285,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [882] = 7, - ACTIONS(86), 1, - anon_sym_LBRACK, - ACTIONS(124), 1, - anon_sym_LPAREN, - ACTIONS(176), 1, - sym_identifier, - STATE(104), 1, - aux_sym_type_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(122), 3, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, - ACTIONS(120), 12, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_SEMI, - [918] = 3, + [1010] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(178), 7, + ACTIONS(163), 8, sym_identifier, anon_sym_state, anon_sym_gen, anon_sym_reg, anon_sym_initial, anon_sym_if, + anon_sym_else, anon_sym_for, - ACTIONS(180), 12, + ACTIONS(165), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -4031,61 +4311,49 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [946] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(182), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(184), 12, - sym_number, - anon_sym_COLON_COLON, + [1039] = 13, + ACTIONS(147), 1, + anon_sym_SLASH, + ACTIONS(149), 1, anon_sym_PLUS, + ACTIONS(151), 1, anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, anon_sym_PIPE, + ACTIONS(157), 1, anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [974] = 3, + ACTIONS(169), 1, + anon_sym_LBRACK, + ACTIONS(175), 1, + anon_sym_EQ, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(186), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(188), 12, - sym_number, - anon_sym_COLON_COLON, - anon_sym_PLUS, - anon_sym_DASH, + ACTIONS(145), 2, anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, + anon_sym_PERCENT, + ACTIONS(173), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(167), 4, + anon_sym_COMMA, + anon_sym_DASH_GT, anon_sym_LBRACE, - anon_sym_RBRACE, - [1002] = 3, + anon_sym_SEMI, + ACTIONS(171), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [1088] = 4, + ACTIONS(181), 1, + anon_sym_else, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(190), 7, + ACTIONS(177), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -4093,7 +4361,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(192), 12, + ACTIONS(179), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -4106,71 +4374,57 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1030] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(168), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(170), 12, - sym_number, - anon_sym_COLON_COLON, + [1119] = 13, + ACTIONS(147), 1, + anon_sym_SLASH, + ACTIONS(149), 1, anon_sym_PLUS, + ACTIONS(151), 1, anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, anon_sym_PIPE, + ACTIONS(157), 1, anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1058] = 3, + ACTIONS(169), 1, + anon_sym_LBRACK, + ACTIONS(185), 1, + anon_sym_EQ, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(194), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(196), 12, - sym_number, - anon_sym_COLON_COLON, - anon_sym_PLUS, - anon_sym_DASH, + ACTIONS(145), 2, anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1086] = 6, - ACTIONS(198), 1, + anon_sym_PERCENT, + ACTIONS(173), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(171), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(183), 4, anon_sym_COMMA, - ACTIONS(200), 1, - anon_sym_EQ, - STATE(96), 1, - aux_sym__assign_left_side_repeat2, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_SEMI, + [1168] = 5, + ACTIONS(189), 1, + sym_identifier, + ACTIONS(191), 1, + anon_sym_LBRACK, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(122), 3, + ACTIONS(194), 4, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - ACTIONS(120), 12, + anon_sym_EQ, + ACTIONS(187), 14, + anon_sym_COMMA, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4182,8 +4436,45 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_SEMI, + [1201] = 14, + ACTIONS(147), 1, + anon_sym_SLASH, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, + anon_sym_PIPE, + ACTIONS(157), 1, + anon_sym_AMP, + ACTIONS(169), 1, + anon_sym_LBRACK, + ACTIONS(196), 1, + anon_sym_COMMA, + ACTIONS(198), 1, + anon_sym_EQ, + ACTIONS(200), 1, anon_sym_SEMI, - [1119] = 9, + STATE(124), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(145), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(149), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(173), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(171), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [1251] = 9, ACTIONS(13), 1, anon_sym_COLON_COLON, ACTIONS(19), 1, @@ -4192,17 +4483,18 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(204), 1, sym_number, - STATE(19), 1, - sym_global_identifier, - STATE(110), 1, - sym_range, + ACTIONS(206), 1, + anon_sym_RPAREN, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(66), 5, - sym_assignable_expr, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(74), 5, sym_unary_op, sym_binary_op, + sym_array_op, sym_func_call, sym__expression, ACTIONS(17), 7, @@ -4213,26 +4505,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1158] = 9, + [1291] = 9, ACTIONS(13), 1, anon_sym_COLON_COLON, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(202), 1, sym_identifier, - ACTIONS(206), 1, - sym_number, ACTIONS(208), 1, - anon_sym_RPAREN, - STATE(19), 1, - sym_global_identifier, + sym_number, + STATE(133), 1, + sym_range, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(47), 5, - sym_assignable_expr, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(94), 5, sym_unary_op, sym_binary_op, + sym_array_op, sym_func_call, sym__expression, ACTIONS(17), 7, @@ -4243,55 +4536,102 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1197] = 8, - ACTIONS(13), 1, - anon_sym_COLON_COLON, - ACTIONS(19), 1, - anon_sym_LPAREN, - ACTIONS(202), 1, - sym_identifier, + [1331] = 5, ACTIONS(210), 1, - sym_number, - STATE(19), 1, - sym_global_identifier, + anon_sym_COLON_COLON, + STATE(47), 1, + aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(20), 5, - sym_assignable_expr, - sym_unary_op, - sym_binary_op, - sym_func_call, - sym__expression, - ACTIONS(17), 7, + ACTIONS(82), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(78), 14, + anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, - anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1233] = 8, - ACTIONS(13), 1, - anon_sym_COLON_COLON, - ACTIONS(19), 1, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_LPAREN, - ACTIONS(202), 1, - sym_identifier, - ACTIONS(212), 1, - sym_number, - STATE(19), 1, - sym_global_identifier, + anon_sym_in, + [1363] = 5, + ACTIONS(210), 1, + anon_sym_COLON_COLON, + STATE(44), 1, + aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(28), 5, - sym_assignable_expr, - sym_unary_op, - sym_binary_op, - sym_func_call, - sym__expression, - ACTIONS(17), 7, + ACTIONS(82), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(78), 14, + anon_sym_LBRACK, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_in, + [1395] = 5, + ACTIONS(212), 1, + anon_sym_COLON_COLON, + STATE(44), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(97), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(92), 14, + anon_sym_LBRACK, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_in, + [1427] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(215), 7, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(217), 12, + sym_number, + anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4299,56 +4639,182 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1269] = 12, - ACTIONS(132), 1, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1455] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(163), 7, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(165), 12, + sym_number, + anon_sym_COLON_COLON, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, anon_sym_CARET, - ACTIONS(136), 1, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1483] = 5, + ACTIONS(210), 1, + anon_sym_COLON_COLON, + STATE(44), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(90), 3, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, - ACTIONS(158), 1, + ACTIONS(88), 14, + anon_sym_LBRACK, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, anon_sym_PIPE, - ACTIONS(160), 1, anon_sym_AMP, - ACTIONS(214), 1, - anon_sym_COMMA, - ACTIONS(220), 1, - anon_sym_RPAREN, - STATE(102), 1, - aux_sym_func_call_repeat1, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_in, + [1515] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 2, + ACTIONS(159), 7, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(161), 12, + sym_number, + anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(130), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(218), 2, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1543] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(219), 7, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(221), 12, + sym_number, + anon_sym_COLON_COLON, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1571] = 5, + ACTIONS(210), 1, + anon_sym_COLON_COLON, + STATE(43), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(86), 3, anon_sym_LT, anon_sym_GT, - ACTIONS(216), 4, + anon_sym_SLASH, + ACTIONS(84), 14, + anon_sym_LBRACK, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1313] = 8, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_in, + [1603] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(223), 7, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(225), 12, + sym_number, + anon_sym_COLON_COLON, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1631] = 8, ACTIONS(13), 1, anon_sym_COLON_COLON, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(202), 1, sym_identifier, - ACTIONS(222), 1, + ACTIONS(227), 1, sym_number, - STATE(19), 1, - sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(65), 5, - sym_assignable_expr, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(35), 5, sym_unary_op, sym_binary_op, + sym_array_op, sym_func_call, sym__expression, ACTIONS(17), 7, @@ -4359,24 +4825,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1349] = 8, + [1668] = 8, ACTIONS(13), 1, anon_sym_COLON_COLON, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(202), 1, sym_identifier, - ACTIONS(224), 1, + ACTIONS(229), 1, sym_number, - STATE(19), 1, - sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(21), 5, - sym_assignable_expr, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(25), 5, sym_unary_op, sym_binary_op, + sym_array_op, sym_func_call, sym__expression, ACTIONS(17), 7, @@ -4387,27 +4854,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1385] = 8, - ACTIONS(13), 1, - anon_sym_COLON_COLON, + [1705] = 8, ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(202), 1, + ACTIONS(231), 1, sym_identifier, - ACTIONS(226), 1, + ACTIONS(233), 1, sym_number, - STATE(19), 1, - sym_global_identifier, + ACTIONS(235), 1, + anon_sym_COLON_COLON, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(32), 5, - sym_assignable_expr, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(90), 5, sym_unary_op, sym_binary_op, + sym_array_op, sym_func_call, sym__expression, - ACTIONS(17), 7, + ACTIONS(237), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4415,24 +4883,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1421] = 8, + [1742] = 8, ACTIONS(13), 1, anon_sym_COLON_COLON, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(202), 1, sym_identifier, - ACTIONS(228), 1, + ACTIONS(239), 1, sym_number, - STATE(19), 1, - sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(62), 5, - sym_assignable_expr, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(92), 5, sym_unary_op, sym_binary_op, + sym_array_op, sym_func_call, sym__expression, ACTIONS(17), 7, @@ -4443,24 +4912,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1457] = 8, + [1779] = 8, ACTIONS(13), 1, anon_sym_COLON_COLON, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(202), 1, sym_identifier, - ACTIONS(230), 1, + ACTIONS(241), 1, sym_number, - STATE(19), 1, - sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(60), 5, - sym_assignable_expr, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(85), 5, sym_unary_op, sym_binary_op, + sym_array_op, sym_func_call, sym__expression, ACTIONS(17), 7, @@ -4471,27 +4941,62 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1493] = 8, - ACTIONS(13), 1, - anon_sym_COLON_COLON, + [1816] = 13, + ACTIONS(147), 1, + anon_sym_SLASH, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, + anon_sym_PIPE, + ACTIONS(157), 1, + anon_sym_AMP, + ACTIONS(169), 1, + anon_sym_LBRACK, + ACTIONS(196), 1, + anon_sym_COMMA, + ACTIONS(243), 1, + anon_sym_EQ, + STATE(121), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(145), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(149), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(173), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(171), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [1863] = 8, ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(202), 1, + ACTIONS(231), 1, sym_identifier, - ACTIONS(232), 1, + ACTIONS(235), 1, + anon_sym_COLON_COLON, + ACTIONS(245), 1, sym_number, - STATE(19), 1, - sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(63), 5, - sym_assignable_expr, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(89), 5, sym_unary_op, sym_binary_op, + sym_array_op, sym_func_call, sym__expression, - ACTIONS(17), 7, + ACTIONS(237), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4499,24 +5004,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1529] = 8, + [1900] = 8, ACTIONS(13), 1, anon_sym_COLON_COLON, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(202), 1, sym_identifier, - ACTIONS(234), 1, + ACTIONS(247), 1, sym_number, - STATE(19), 1, - sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(59), 5, - sym_assignable_expr, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(24), 5, sym_unary_op, sym_binary_op, + sym_array_op, sym_func_call, sym__expression, ACTIONS(17), 7, @@ -4527,24 +5033,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1565] = 8, + [1937] = 8, ACTIONS(13), 1, anon_sym_COLON_COLON, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(202), 1, sym_identifier, - ACTIONS(236), 1, + ACTIONS(249), 1, sym_number, - STATE(19), 1, - sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(61), 5, - sym_assignable_expr, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(83), 5, sym_unary_op, sym_binary_op, + sym_array_op, sym_func_call, sym__expression, ACTIONS(17), 7, @@ -4555,27 +5062,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1601] = 8, - ACTIONS(13), 1, - anon_sym_COLON_COLON, + [1974] = 8, ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(202), 1, + ACTIONS(231), 1, sym_identifier, - ACTIONS(238), 1, + ACTIONS(235), 1, + anon_sym_COLON_COLON, + ACTIONS(251), 1, sym_number, - STATE(19), 1, - sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(25), 5, - sym_assignable_expr, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(88), 5, sym_unary_op, sym_binary_op, + sym_array_op, sym_func_call, sym__expression, - ACTIONS(17), 7, + ACTIONS(237), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4583,27 +5091,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1637] = 8, - ACTIONS(13), 1, - anon_sym_COLON_COLON, + [2011] = 8, ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(202), 1, + ACTIONS(231), 1, sym_identifier, - ACTIONS(240), 1, + ACTIONS(235), 1, + anon_sym_COLON_COLON, + ACTIONS(253), 1, sym_number, - STATE(19), 1, - sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(31), 5, - sym_assignable_expr, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(87), 5, sym_unary_op, sym_binary_op, + sym_array_op, sym_func_call, sym__expression, - ACTIONS(17), 7, + ACTIONS(237), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4611,24 +5120,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1673] = 8, + [2048] = 8, ACTIONS(13), 1, anon_sym_COLON_COLON, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(202), 1, sym_identifier, - ACTIONS(242), 1, + ACTIONS(255), 1, sym_number, - STATE(19), 1, - sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(27), 5, - sym_assignable_expr, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(93), 5, sym_unary_op, sym_binary_op, + sym_array_op, sym_func_call, sym__expression, ACTIONS(17), 7, @@ -4639,445 +5149,1078 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1709] = 11, - ACTIONS(132), 1, - anon_sym_CARET, - ACTIONS(136), 1, + [2085] = 8, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(202), 1, + sym_identifier, + ACTIONS(257), 1, + sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(26), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(17), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [2122] = 8, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(202), 1, + sym_identifier, + ACTIONS(259), 1, + sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(80), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(17), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [2159] = 8, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(202), 1, + sym_identifier, + ACTIONS(261), 1, + sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(28), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(17), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [2196] = 8, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(202), 1, + sym_identifier, + ACTIONS(263), 1, + sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(29), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(17), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [2233] = 8, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(202), 1, + sym_identifier, + ACTIONS(265), 1, + sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(30), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(17), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [2270] = 8, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(202), 1, + sym_identifier, + ACTIONS(267), 1, + sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(32), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(17), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [2307] = 8, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(202), 1, + sym_identifier, + ACTIONS(269), 1, + sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(96), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(17), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [2344] = 8, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(229), 1, + sym_number, + ACTIONS(231), 1, + sym_identifier, + ACTIONS(235), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(25), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(237), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [2381] = 8, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(231), 1, + sym_identifier, + ACTIONS(235), 1, + anon_sym_COLON_COLON, + ACTIONS(247), 1, + sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(24), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(237), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [2418] = 8, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(231), 1, + sym_identifier, + ACTIONS(235), 1, + anon_sym_COLON_COLON, + ACTIONS(271), 1, + sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(91), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(237), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [2455] = 13, + ACTIONS(147), 1, + anon_sym_SLASH, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, + anon_sym_PIPE, + ACTIONS(157), 1, + anon_sym_AMP, + ACTIONS(169), 1, + anon_sym_LBRACK, + ACTIONS(273), 1, + anon_sym_COMMA, + ACTIONS(275), 1, + anon_sym_RPAREN, + STATE(120), 1, + aux_sym_func_call_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(145), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(149), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(173), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(171), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [2502] = 8, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(231), 1, + sym_identifier, + ACTIONS(235), 1, + anon_sym_COLON_COLON, + ACTIONS(277), 1, + sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(86), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(237), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [2539] = 8, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(202), 1, + sym_identifier, + ACTIONS(279), 1, + sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(37), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(17), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [2576] = 8, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(231), 1, + sym_identifier, + ACTIONS(235), 1, + anon_sym_COLON_COLON, + ACTIONS(281), 1, + sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(84), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(237), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [2613] = 8, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(202), 1, + sym_identifier, + ACTIONS(283), 1, + sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(18), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(95), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(17), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [2650] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(97), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(92), 15, + anon_sym_COLON_COLON, + anon_sym_LBRACK, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_in, + [2677] = 11, + ACTIONS(147), 1, + anon_sym_SLASH, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, + anon_sym_PIPE, + ACTIONS(157), 1, + anon_sym_AMP, + ACTIONS(169), 1, + anon_sym_LBRACK, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(145), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(149), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(173), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(285), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + ACTIONS(171), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [2719] = 12, + ACTIONS(147), 1, + anon_sym_SLASH, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, + anon_sym_PIPE, + ACTIONS(157), 1, + anon_sym_AMP, + ACTIONS(169), 1, + anon_sym_LBRACK, + ACTIONS(287), 1, + anon_sym_COMMA, + ACTIONS(289), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(145), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(149), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(173), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(171), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [2763] = 12, + ACTIONS(147), 1, anon_sym_SLASH, - ACTIONS(158), 1, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, anon_sym_PIPE, - ACTIONS(160), 1, + ACTIONS(157), 1, anon_sym_AMP, - ACTIONS(244), 1, - anon_sym_LBRACE, - STATE(29), 1, - sym_block, + ACTIONS(169), 1, + anon_sym_LBRACK, + ACTIONS(291), 1, + anon_sym_COMMA, + ACTIONS(293), 1, + anon_sym_EQ, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 2, + ACTIONS(145), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(149), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(130), 2, + ACTIONS(173), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(171), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [2807] = 12, + ACTIONS(147), 1, + anon_sym_SLASH, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, + anon_sym_PIPE, + ACTIONS(157), 1, + anon_sym_AMP, + ACTIONS(169), 1, + anon_sym_LBRACK, + ACTIONS(295), 1, + anon_sym_LBRACE, + STATE(36), 1, + sym_block, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(145), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(218), 2, + ACTIONS(149), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(173), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(216), 4, + ACTIONS(171), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1750] = 10, - ACTIONS(132), 1, - anon_sym_CARET, - ACTIONS(136), 1, - anon_sym_SLASH, - ACTIONS(158), 1, + [2851] = 11, + ACTIONS(167), 1, + anon_sym_in, + ACTIONS(169), 1, + anon_sym_LBRACK, + ACTIONS(301), 1, anon_sym_PIPE, - ACTIONS(160), 1, + ACTIONS(303), 1, anon_sym_AMP, + ACTIONS(305), 1, + anon_sym_CARET, + ACTIONS(311), 1, + anon_sym_SLASH, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 2, + ACTIONS(297), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(130), 2, + ACTIONS(299), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(218), 2, + ACTIONS(309), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(246), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - ACTIONS(216), 4, + ACTIONS(307), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1789] = 10, - ACTIONS(132), 1, - anon_sym_CARET, - ACTIONS(136), 1, + [2892] = 11, + ACTIONS(147), 1, anon_sym_SLASH, - ACTIONS(158), 1, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, anon_sym_PIPE, - ACTIONS(160), 1, + ACTIONS(157), 1, anon_sym_AMP, - ACTIONS(248), 1, + ACTIONS(169), 1, + anon_sym_LBRACK, + ACTIONS(313), 1, anon_sym_RPAREN, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(130), 2, + ACTIONS(145), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(218), 2, + ACTIONS(149), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(173), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(216), 4, + ACTIONS(171), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1827] = 10, - ACTIONS(132), 1, - anon_sym_CARET, - ACTIONS(136), 1, - anon_sym_SLASH, - ACTIONS(158), 1, + [2933] = 11, + ACTIONS(169), 1, + anon_sym_LBRACK, + ACTIONS(183), 1, + anon_sym_in, + ACTIONS(301), 1, anon_sym_PIPE, - ACTIONS(160), 1, + ACTIONS(303), 1, anon_sym_AMP, - ACTIONS(250), 1, - anon_sym_RBRACK, + ACTIONS(305), 1, + anon_sym_CARET, + ACTIONS(311), 1, + anon_sym_SLASH, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 2, + ACTIONS(297), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(130), 2, + ACTIONS(299), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(218), 2, + ACTIONS(309), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(216), 4, + ACTIONS(307), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1865] = 10, - ACTIONS(132), 1, - anon_sym_CARET, - ACTIONS(136), 1, - anon_sym_SLASH, - ACTIONS(158), 1, + [2974] = 9, + ACTIONS(301), 1, anon_sym_PIPE, - ACTIONS(160), 1, + ACTIONS(303), 1, anon_sym_AMP, - ACTIONS(252), 1, - anon_sym_SEMI, + ACTIONS(305), 1, + anon_sym_CARET, + ACTIONS(311), 1, + anon_sym_SLASH, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 2, + ACTIONS(143), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(297), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(130), 2, + ACTIONS(299), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(218), 2, + ACTIONS(141), 6, + anon_sym_LBRACK, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_in, + [3011] = 6, + ACTIONS(311), 1, + anon_sym_SLASH, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(143), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(216), 4, + ACTIONS(297), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(299), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(141), 9, + anon_sym_LBRACK, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1903] = 10, - ACTIONS(132), 1, + anon_sym_in, + [3042] = 8, + ACTIONS(301), 1, + anon_sym_PIPE, + ACTIONS(305), 1, anon_sym_CARET, - ACTIONS(136), 1, + ACTIONS(311), 1, anon_sym_SLASH, - ACTIONS(158), 1, - anon_sym_PIPE, - ACTIONS(160), 1, - anon_sym_AMP, - ACTIONS(254), 1, - anon_sym_SEMI, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 2, + ACTIONS(143), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(297), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(130), 2, + ACTIONS(299), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(218), 2, + ACTIONS(141), 7, + anon_sym_LBRACK, + anon_sym_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_in, + [3077] = 7, + ACTIONS(305), 1, + anon_sym_CARET, + ACTIONS(311), 1, + anon_sym_SLASH, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(143), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(216), 4, + ACTIONS(297), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(299), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(141), 8, + anon_sym_LBRACK, + anon_sym_PIPE, + anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1941] = 10, - ACTIONS(132), 1, + anon_sym_in, + [3110] = 5, + ACTIONS(311), 1, + anon_sym_SLASH, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(143), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(299), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(141), 11, + anon_sym_LBRACK, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PIPE, + anon_sym_AMP, anon_sym_CARET, - ACTIONS(136), 1, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_in, + [3139] = 11, + ACTIONS(147), 1, anon_sym_SLASH, - ACTIONS(158), 1, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, anon_sym_PIPE, - ACTIONS(160), 1, + ACTIONS(157), 1, anon_sym_AMP, - ACTIONS(256), 1, - anon_sym_LBRACE, + ACTIONS(169), 1, + anon_sym_LBRACK, + ACTIONS(315), 1, + anon_sym_RBRACK, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 2, + ACTIONS(145), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(149), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(130), 2, + ACTIONS(173), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(171), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [3180] = 11, + ACTIONS(147), 1, + anon_sym_SLASH, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, + anon_sym_PIPE, + ACTIONS(157), 1, + anon_sym_AMP, + ACTIONS(169), 1, + anon_sym_LBRACK, + ACTIONS(317), 1, + anon_sym_RBRACK, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(145), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(218), 2, + ACTIONS(149), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(173), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(216), 4, + ACTIONS(171), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1979] = 10, - ACTIONS(132), 1, - anon_sym_CARET, - ACTIONS(136), 1, + [3221] = 11, + ACTIONS(147), 1, anon_sym_SLASH, - ACTIONS(158), 1, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, anon_sym_PIPE, - ACTIONS(160), 1, + ACTIONS(157), 1, anon_sym_AMP, - ACTIONS(258), 1, + ACTIONS(169), 1, + anon_sym_LBRACK, + ACTIONS(319), 1, anon_sym_DOT_DOT, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(130), 2, + ACTIONS(145), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(218), 2, + ACTIONS(149), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(173), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(216), 4, + ACTIONS(171), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2017] = 10, - ACTIONS(13), 1, - anon_sym_COLON_COLON, - ACTIONS(260), 1, - sym_identifier, - ACTIONS(262), 1, - anon_sym_reg, - ACTIONS(264), 1, - anon_sym_initial, - STATE(69), 1, - aux_sym__assign_left_side_repeat1, - STATE(100), 1, - sym_global_identifier, - STATE(119), 1, - sym_type, + [3262] = 11, + ACTIONS(147), 1, + anon_sym_SLASH, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, + anon_sym_PIPE, + ACTIONS(157), 1, + anon_sym_AMP, + ACTIONS(169), 1, + anon_sym_LBRACK, + ACTIONS(321), 1, + anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(15), 2, - anon_sym_state, - anon_sym_gen, - STATE(111), 2, - sym_assignable_expr, - sym_declaration, - [2051] = 9, - ACTIONS(13), 1, - anon_sym_COLON_COLON, - ACTIONS(260), 1, - sym_identifier, - ACTIONS(266), 1, - anon_sym_reg, - STATE(79), 1, - aux_sym__assign_left_side_repeat1, - STATE(100), 1, - sym_global_identifier, - STATE(119), 1, - sym_type, + ACTIONS(145), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(149), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(173), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(171), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [3303] = 11, + ACTIONS(147), 1, + anon_sym_SLASH, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, + anon_sym_PIPE, + ACTIONS(157), 1, + anon_sym_AMP, + ACTIONS(169), 1, + anon_sym_LBRACK, + ACTIONS(323), 1, + anon_sym_SEMI, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(15), 2, - anon_sym_state, - anon_sym_gen, - STATE(97), 2, - sym_assignable_expr, - sym_declaration, - [2082] = 9, - ACTIONS(13), 1, - anon_sym_COLON_COLON, - ACTIONS(260), 1, - sym_identifier, - ACTIONS(266), 1, + ACTIONS(145), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(149), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(173), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(171), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [3344] = 5, + ACTIONS(329), 1, anon_sym_reg, - STATE(79), 1, + STATE(97), 1, aux_sym__assign_left_side_repeat1, - STATE(100), 1, - sym_global_identifier, - STATE(119), 1, - sym_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(15), 2, - anon_sym_state, - anon_sym_gen, - STATE(108), 2, - sym_assignable_expr, - sym_declaration, - [2113] = 9, - ACTIONS(13), 1, - anon_sym_COLON_COLON, - ACTIONS(268), 1, + ACTIONS(325), 3, sym_identifier, - ACTIONS(270), 1, - anon_sym_LBRACE, - STATE(83), 1, - sym_declaration, - STATE(100), 1, - sym_global_identifier, - STATE(106), 1, - sym_block, - STATE(119), 1, - sym_type, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - [2143] = 9, + ACTIONS(327), 10, + sym_number, + anon_sym_COLON_COLON, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + [3372] = 8, ACTIONS(13), 1, anon_sym_COLON_COLON, - ACTIONS(268), 1, + ACTIONS(332), 1, sym_identifier, - ACTIONS(270), 1, + ACTIONS(334), 1, anon_sym_LBRACE, - STATE(93), 1, + STATE(113), 1, sym_declaration, - STATE(100), 1, - sym_global_identifier, - STATE(109), 1, + STATE(141), 1, sym_block, - STATE(119), 1, - sym_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - [2173] = 9, + STATE(136), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [3401] = 8, ACTIONS(13), 1, anon_sym_COLON_COLON, - ACTIONS(268), 1, + ACTIONS(332), 1, sym_identifier, - ACTIONS(270), 1, + ACTIONS(334), 1, anon_sym_LBRACE, - STATE(88), 1, + STATE(118), 1, sym_declaration, - STATE(100), 1, - sym_global_identifier, - STATE(113), 1, + STATE(129), 1, sym_block, - STATE(119), 1, - sym_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - [2203] = 8, + STATE(136), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [3430] = 8, ACTIONS(13), 1, anon_sym_COLON_COLON, - ACTIONS(268), 1, + ACTIONS(332), 1, sym_identifier, - ACTIONS(272), 1, - anon_sym_DASH_GT, - STATE(100), 1, - sym_global_identifier, - STATE(103), 1, + ACTIONS(334), 1, + anon_sym_LBRACE, + STATE(116), 1, sym_declaration, - STATE(119), 1, - sym_type, + STATE(140), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - [2230] = 7, - ACTIONS(13), 1, - anon_sym_COLON_COLON, - ACTIONS(260), 1, - sym_identifier, - STATE(100), 1, + STATE(136), 3, sym_global_identifier, - STATE(119), 1, - sym_type, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(15), 2, - anon_sym_state, - anon_sym_gen, - STATE(97), 2, - sym_assignable_expr, - sym_declaration, - [2255] = 7, + sym_array_type, + sym__type, + [3459] = 7, ACTIONS(13), 1, anon_sym_COLON_COLON, - ACTIONS(260), 1, + ACTIONS(332), 1, sym_identifier, - STATE(100), 1, - sym_global_identifier, - STATE(119), 1, - sym_type, + ACTIONS(336), 1, + anon_sym_DASH_GT, + STATE(126), 1, + sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - STATE(108), 2, - sym_assignable_expr, - sym_declaration, - [2280] = 6, - ACTIONS(80), 1, - anon_sym_COLON_COLON, - STATE(13), 1, - aux_sym_global_identifier_repeat1, - STATE(16), 1, - aux_sym_type_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(84), 2, - sym_identifier, - anon_sym_LBRACK, - ACTIONS(116), 2, - anon_sym_COMMA, - anon_sym_EQ, - [2302] = 7, + STATE(136), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [3485] = 6, ACTIONS(13), 1, anon_sym_COLON_COLON, - ACTIONS(268), 1, + ACTIONS(332), 1, sym_identifier, - STATE(100), 1, - sym_global_identifier, - STATE(119), 1, - sym_type, - STATE(123), 1, + STATE(122), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -5085,562 +6228,670 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - [2326] = 7, + STATE(136), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [3508] = 6, ACTIONS(13), 1, anon_sym_COLON_COLON, - ACTIONS(268), 1, + ACTIONS(332), 1, sym_identifier, - STATE(98), 1, + STATE(150), 1, sym_declaration, - STATE(100), 1, - sym_global_identifier, - STATE(119), 1, - sym_type, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(15), 2, - anon_sym_state, - anon_sym_gen, - [2350] = 5, - ACTIONS(276), 1, - anon_sym_COLON_COLON, - ACTIONS(278), 1, - anon_sym_reg, - STATE(79), 1, - aux_sym__assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(274), 3, - sym_identifier, + ACTIONS(338), 2, anon_sym_state, anon_sym_gen, - [2369] = 2, + STATE(139), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [3531] = 3, + ACTIONS(342), 1, + anon_sym_SQUOTE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(281), 6, + ACTIONS(340), 5, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - anon_sym_in, - [2382] = 2, + [3546] = 3, + ACTIONS(346), 1, + anon_sym_SQUOTE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(283), 6, + ACTIONS(344), 5, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - anon_sym_in, - [2395] = 5, - ACTIONS(270), 1, - anon_sym_LBRACE, - ACTIONS(285), 1, - anon_sym_COMMA, - STATE(84), 1, - aux_sym_module_repeat1, - STATE(107), 1, - sym_block, + [3561] = 4, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(348), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2412] = 5, - ACTIONS(270), 1, - anon_sym_LBRACE, - ACTIONS(285), 1, - anon_sym_COMMA, - STATE(91), 1, - aux_sym_module_repeat1, - STATE(109), 1, - sym_block, + STATE(131), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [3577] = 4, + ACTIONS(13), 1, + anon_sym_COLON_COLON, + ACTIONS(348), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2429] = 4, - ACTIONS(287), 1, + STATE(138), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [3593] = 4, + ACTIONS(80), 1, + anon_sym_COLON_COLON, + STATE(13), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(84), 2, + sym_identifier, + anon_sym_LBRACK, + [3608] = 4, + ACTIONS(350), 1, anon_sym_COMMA, - STATE(84), 1, + STATE(109), 1, aux_sym_module_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(290), 2, + ACTIONS(353), 2, anon_sym_DASH_GT, anon_sym_LBRACE, - [2444] = 4, + [3623] = 4, ACTIONS(21), 1, anon_sym_LBRACE, - ACTIONS(292), 1, + ACTIONS(355), 1, anon_sym_if, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(41), 2, + STATE(49), 2, sym_block, sym_if_statement, - [2459] = 4, + [3638] = 4, ACTIONS(7), 1, anon_sym_module, - ACTIONS(294), 1, + ACTIONS(357), 1, ts_builtin_sym_end, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(89), 2, + STATE(112), 2, sym_module, aux_sym_source_file_repeat1, - [2474] = 5, - ACTIONS(13), 1, - anon_sym_COLON_COLON, - ACTIONS(296), 1, - sym_identifier, - STATE(100), 1, - sym_global_identifier, - STATE(116), 1, - sym_type, + [3653] = 4, + ACTIONS(359), 1, + ts_builtin_sym_end, + ACTIONS(361), 1, + anon_sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2491] = 5, - ACTIONS(270), 1, + STATE(112), 2, + sym_module, + aux_sym_source_file_repeat1, + [3668] = 5, + ACTIONS(334), 1, anon_sym_LBRACE, - ACTIONS(285), 1, + ACTIONS(364), 1, anon_sym_COMMA, - STATE(82), 1, + STATE(114), 1, aux_sym_module_repeat1, - STATE(115), 1, + STATE(132), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2508] = 4, - ACTIONS(298), 1, - ts_builtin_sym_end, - ACTIONS(300), 1, - anon_sym_module, + [3685] = 5, + ACTIONS(334), 1, + anon_sym_LBRACE, + ACTIONS(364), 1, + anon_sym_COMMA, + STATE(109), 1, + aux_sym_module_repeat1, + STATE(137), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(89), 2, - sym_module, - aux_sym_source_file_repeat1, - [2523] = 5, - ACTIONS(270), 1, + [3702] = 5, + ACTIONS(334), 1, anon_sym_LBRACE, - ACTIONS(285), 1, + ACTIONS(364), 1, anon_sym_COMMA, - STATE(84), 1, + STATE(109), 1, aux_sym_module_repeat1, - STATE(115), 1, + STATE(144), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2540] = 5, - ACTIONS(270), 1, + [3719] = 5, + ACTIONS(334), 1, anon_sym_LBRACE, - ACTIONS(285), 1, + ACTIONS(364), 1, anon_sym_COMMA, - STATE(84), 1, + STATE(119), 1, aux_sym_module_repeat1, - STATE(113), 1, + STATE(135), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2557] = 5, - ACTIONS(198), 1, + [3736] = 5, + ACTIONS(196), 1, anon_sym_COMMA, - ACTIONS(303), 1, + ACTIONS(366), 1, anon_sym_EQ, - ACTIONS(305), 1, + ACTIONS(368), 1, anon_sym_SEMI, - STATE(96), 1, + STATE(124), 1, aux_sym__assign_left_side_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2574] = 5, - ACTIONS(270), 1, + [3753] = 5, + ACTIONS(334), 1, anon_sym_LBRACE, - ACTIONS(285), 1, + ACTIONS(364), 1, anon_sym_COMMA, - STATE(90), 1, + STATE(115), 1, aux_sym_module_repeat1, - STATE(113), 1, + STATE(146), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2591] = 4, - ACTIONS(80), 1, - anon_sym_COLON_COLON, - STATE(13), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(84), 2, - sym_identifier, - anon_sym_LBRACK, - [2606] = 4, - ACTIONS(285), 1, + [3770] = 5, + ACTIONS(334), 1, + anon_sym_LBRACE, + ACTIONS(364), 1, anon_sym_COMMA, - ACTIONS(307), 1, - anon_sym_DASH_GT, - STATE(84), 1, + STATE(109), 1, aux_sym_module_repeat1, + STATE(147), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2620] = 4, - ACTIONS(198), 1, + [3787] = 4, + ACTIONS(273), 1, anon_sym_COMMA, - ACTIONS(309), 1, - anon_sym_EQ, - STATE(101), 1, - aux_sym__assign_left_side_repeat2, + ACTIONS(370), 1, + anon_sym_RPAREN, + STATE(125), 1, + aux_sym_func_call_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2634] = 4, - ACTIONS(198), 1, + [3801] = 4, + ACTIONS(196), 1, anon_sym_COMMA, - ACTIONS(309), 1, + ACTIONS(372), 1, anon_sym_EQ, - STATE(99), 1, + STATE(123), 1, aux_sym__assign_left_side_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2648] = 2, + [3815] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(290), 3, + ACTIONS(353), 3, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACE, - [2658] = 4, - ACTIONS(198), 1, - anon_sym_COMMA, - ACTIONS(311), 1, + [3825] = 4, + ACTIONS(287), 1, anon_sym_EQ, - STATE(101), 1, + ACTIONS(374), 1, + anon_sym_COMMA, + STATE(123), 1, aux_sym__assign_left_side_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2672] = 4, - ACTIONS(86), 1, - anon_sym_LBRACK, - ACTIONS(176), 1, - sym_identifier, - STATE(104), 1, - aux_sym_type_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [2686] = 4, - ACTIONS(313), 1, + [3839] = 4, + ACTIONS(196), 1, anon_sym_COMMA, - ACTIONS(316), 1, + ACTIONS(377), 1, anon_sym_EQ, - STATE(101), 1, + STATE(123), 1, aux_sym__assign_left_side_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2700] = 4, - ACTIONS(214), 1, - anon_sym_COMMA, - ACTIONS(318), 1, + [3853] = 4, + ACTIONS(285), 1, anon_sym_RPAREN, - STATE(105), 1, + ACTIONS(379), 1, + anon_sym_COMMA, + STATE(125), 1, aux_sym_func_call_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2714] = 4, - ACTIONS(285), 1, + [3867] = 4, + ACTIONS(364), 1, anon_sym_COMMA, - ACTIONS(320), 1, + ACTIONS(382), 1, anon_sym_DASH_GT, - STATE(95), 1, + STATE(127), 1, aux_sym_module_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2728] = 4, - ACTIONS(86), 1, - anon_sym_LBRACK, - ACTIONS(322), 1, - sym_identifier, - STATE(14), 1, - aux_sym_type_repeat1, + [3881] = 4, + ACTIONS(364), 1, + anon_sym_COMMA, + ACTIONS(384), 1, + anon_sym_DASH_GT, + STATE(109), 1, + aux_sym_module_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2742] = 4, - ACTIONS(246), 1, - anon_sym_RPAREN, - ACTIONS(324), 1, + [3895] = 4, + ACTIONS(196), 1, anon_sym_COMMA, - STATE(105), 1, - aux_sym_func_call_repeat1, + ACTIONS(377), 1, + anon_sym_EQ, + STATE(121), 1, + aux_sym__assign_left_side_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2756] = 2, + [3909] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(327), 2, + ACTIONS(386), 2, ts_builtin_sym_end, anon_sym_module, - [2765] = 2, + [3918] = 3, + ACTIONS(340), 1, + anon_sym_in, + ACTIONS(388), 1, + anon_sym_SQUOTE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(329), 2, - ts_builtin_sym_end, - anon_sym_module, - [2774] = 2, + [3929] = 3, + ACTIONS(390), 1, + sym_identifier, + ACTIONS(392), 1, + anon_sym_LBRACK, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(331), 2, - anon_sym_COMMA, - anon_sym_EQ, - [2783] = 2, + [3940] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(333), 2, + ACTIONS(394), 2, ts_builtin_sym_end, anon_sym_module, - [2792] = 3, + [3949] = 3, ACTIONS(21), 1, anon_sym_LBRACE, - STATE(37), 1, + STATE(45), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2803] = 2, + [3960] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(316), 2, - anon_sym_COMMA, - anon_sym_EQ, - [2812] = 2, + ACTIONS(165), 2, + ts_builtin_sym_end, + anon_sym_module, + [3969] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(396), 2, + ts_builtin_sym_end, + anon_sym_module, + [3978] = 3, + ACTIONS(392), 1, + anon_sym_LBRACK, + ACTIONS(398), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(144), 2, + [3989] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(400), 2, ts_builtin_sym_end, anon_sym_module, - [2821] = 2, + [3998] = 3, + ACTIONS(392), 1, + anon_sym_LBRACK, + ACTIONS(402), 1, + sym_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [4009] = 3, + ACTIONS(392), 1, + anon_sym_LBRACK, + ACTIONS(404), 1, + sym_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [4020] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(335), 2, + ACTIONS(406), 2, ts_builtin_sym_end, anon_sym_module, - [2830] = 2, + [4029] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(170), 2, + ACTIONS(408), 2, ts_builtin_sym_end, anon_sym_module, - [2839] = 2, + [4038] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(337), 2, + ACTIONS(161), 2, ts_builtin_sym_end, anon_sym_module, - [2848] = 2, - ACTIONS(339), 1, - sym_identifier, + [4047] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2856] = 2, - ACTIONS(341), 1, - sym_identifier, + ACTIONS(287), 2, + anon_sym_COMMA, + anon_sym_EQ, + [4056] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2864] = 2, - ACTIONS(343), 1, - sym_identifier, + ACTIONS(410), 2, + ts_builtin_sym_end, + anon_sym_module, + [4065] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2872] = 2, - ACTIONS(345), 1, + ACTIONS(412), 2, sym_identifier, + anon_sym_LBRACK, + [4074] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(414), 2, + ts_builtin_sym_end, + anon_sym_module, + [4083] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(416), 2, + ts_builtin_sym_end, + anon_sym_module, + [4092] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2880] = 2, - ACTIONS(347), 1, + ACTIONS(291), 2, + anon_sym_COMMA, anon_sym_EQ, + [4101] = 3, + ACTIONS(344), 1, + anon_sym_in, + ACTIONS(418), 1, + anon_sym_SQUOTE, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [4112] = 2, + ACTIONS(420), 1, + anon_sym_in, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [4120] = 2, + ACTIONS(422), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2888] = 2, - ACTIONS(349), 1, + [4128] = 2, + ACTIONS(424), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2896] = 2, - ACTIONS(351), 1, + [4136] = 2, + ACTIONS(426), 1, anon_sym_COLON, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2904] = 2, - ACTIONS(353), 1, - anon_sym_in, + [4144] = 2, + ACTIONS(428), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2912] = 2, - ACTIONS(355), 1, + [4152] = 2, + ACTIONS(430), 1, + sym_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [4160] = 2, + ACTIONS(432), 1, ts_builtin_sym_end, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, + [4168] = 2, + ACTIONS(434), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [4176] = 2, + ACTIONS(436), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [4184] = 2, + ACTIONS(438), 1, + sym_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(9)] = 0, - [SMALL_STATE(10)] = 38, + [SMALL_STATE(10)] = 40, [SMALL_STATE(11)] = 80, - [SMALL_STATE(12)] = 118, - [SMALL_STATE(13)] = 156, - [SMALL_STATE(14)] = 194, - [SMALL_STATE(15)] = 231, - [SMALL_STATE(16)] = 264, - [SMALL_STATE(17)] = 300, - [SMALL_STATE(18)] = 332, - [SMALL_STATE(19)] = 374, - [SMALL_STATE(20)] = 406, - [SMALL_STATE(21)] = 443, - [SMALL_STATE(22)] = 472, - [SMALL_STATE(23)] = 501, - [SMALL_STATE(24)] = 530, - [SMALL_STATE(25)] = 559, - [SMALL_STATE(26)] = 588, - [SMALL_STATE(27)] = 617, - [SMALL_STATE(28)] = 658, - [SMALL_STATE(29)] = 693, - [SMALL_STATE(30)] = 724, - [SMALL_STATE(31)] = 753, - [SMALL_STATE(32)] = 792, - [SMALL_STATE(33)] = 825, - [SMALL_STATE(34)] = 854, - [SMALL_STATE(35)] = 882, - [SMALL_STATE(36)] = 918, - [SMALL_STATE(37)] = 946, - [SMALL_STATE(38)] = 974, - [SMALL_STATE(39)] = 1002, - [SMALL_STATE(40)] = 1030, - [SMALL_STATE(41)] = 1058, - [SMALL_STATE(42)] = 1086, - [SMALL_STATE(43)] = 1119, - [SMALL_STATE(44)] = 1158, - [SMALL_STATE(45)] = 1197, - [SMALL_STATE(46)] = 1233, - [SMALL_STATE(47)] = 1269, - [SMALL_STATE(48)] = 1313, - [SMALL_STATE(49)] = 1349, - [SMALL_STATE(50)] = 1385, - [SMALL_STATE(51)] = 1421, - [SMALL_STATE(52)] = 1457, - [SMALL_STATE(53)] = 1493, - [SMALL_STATE(54)] = 1529, - [SMALL_STATE(55)] = 1565, - [SMALL_STATE(56)] = 1601, - [SMALL_STATE(57)] = 1637, - [SMALL_STATE(58)] = 1673, - [SMALL_STATE(59)] = 1709, - [SMALL_STATE(60)] = 1750, - [SMALL_STATE(61)] = 1789, - [SMALL_STATE(62)] = 1827, - [SMALL_STATE(63)] = 1865, - [SMALL_STATE(64)] = 1903, - [SMALL_STATE(65)] = 1941, - [SMALL_STATE(66)] = 1979, - [SMALL_STATE(67)] = 2017, - [SMALL_STATE(68)] = 2051, - [SMALL_STATE(69)] = 2082, - [SMALL_STATE(70)] = 2113, - [SMALL_STATE(71)] = 2143, - [SMALL_STATE(72)] = 2173, - [SMALL_STATE(73)] = 2203, - [SMALL_STATE(74)] = 2230, - [SMALL_STATE(75)] = 2255, - [SMALL_STATE(76)] = 2280, - [SMALL_STATE(77)] = 2302, - [SMALL_STATE(78)] = 2326, - [SMALL_STATE(79)] = 2350, - [SMALL_STATE(80)] = 2369, - [SMALL_STATE(81)] = 2382, - [SMALL_STATE(82)] = 2395, - [SMALL_STATE(83)] = 2412, - [SMALL_STATE(84)] = 2429, - [SMALL_STATE(85)] = 2444, - [SMALL_STATE(86)] = 2459, - [SMALL_STATE(87)] = 2474, - [SMALL_STATE(88)] = 2491, - [SMALL_STATE(89)] = 2508, - [SMALL_STATE(90)] = 2523, - [SMALL_STATE(91)] = 2540, - [SMALL_STATE(92)] = 2557, - [SMALL_STATE(93)] = 2574, - [SMALL_STATE(94)] = 2591, - [SMALL_STATE(95)] = 2606, - [SMALL_STATE(96)] = 2620, - [SMALL_STATE(97)] = 2634, - [SMALL_STATE(98)] = 2648, - [SMALL_STATE(99)] = 2658, - [SMALL_STATE(100)] = 2672, - [SMALL_STATE(101)] = 2686, - [SMALL_STATE(102)] = 2700, - [SMALL_STATE(103)] = 2714, - [SMALL_STATE(104)] = 2728, - [SMALL_STATE(105)] = 2742, - [SMALL_STATE(106)] = 2756, - [SMALL_STATE(107)] = 2765, - [SMALL_STATE(108)] = 2774, - [SMALL_STATE(109)] = 2783, - [SMALL_STATE(110)] = 2792, - [SMALL_STATE(111)] = 2803, - [SMALL_STATE(112)] = 2812, - [SMALL_STATE(113)] = 2821, - [SMALL_STATE(114)] = 2830, - [SMALL_STATE(115)] = 2839, - [SMALL_STATE(116)] = 2848, - [SMALL_STATE(117)] = 2856, - [SMALL_STATE(118)] = 2864, - [SMALL_STATE(119)] = 2872, - [SMALL_STATE(120)] = 2880, - [SMALL_STATE(121)] = 2888, - [SMALL_STATE(122)] = 2896, - [SMALL_STATE(123)] = 2904, - [SMALL_STATE(124)] = 2912, + [SMALL_STATE(12)] = 120, + [SMALL_STATE(13)] = 160, + [SMALL_STATE(14)] = 200, + [SMALL_STATE(15)] = 259, + [SMALL_STATE(16)] = 294, + [SMALL_STATE(17)] = 350, + [SMALL_STATE(18)] = 406, + [SMALL_STATE(19)] = 442, + [SMALL_STATE(20)] = 475, + [SMALL_STATE(21)] = 508, + [SMALL_STATE(22)] = 541, + [SMALL_STATE(23)] = 574, + [SMALL_STATE(24)] = 607, + [SMALL_STATE(25)] = 640, + [SMALL_STATE(26)] = 673, + [SMALL_STATE(27)] = 709, + [SMALL_STATE(28)] = 759, + [SMALL_STATE(29)] = 801, + [SMALL_STATE(30)] = 845, + [SMALL_STATE(31)] = 885, + [SMALL_STATE(32)] = 935, + [SMALL_STATE(33)] = 981, + [SMALL_STATE(34)] = 1010, + [SMALL_STATE(35)] = 1039, + [SMALL_STATE(36)] = 1088, + [SMALL_STATE(37)] = 1119, + [SMALL_STATE(38)] = 1168, + [SMALL_STATE(39)] = 1201, + [SMALL_STATE(40)] = 1251, + [SMALL_STATE(41)] = 1291, + [SMALL_STATE(42)] = 1331, + [SMALL_STATE(43)] = 1363, + [SMALL_STATE(44)] = 1395, + [SMALL_STATE(45)] = 1427, + [SMALL_STATE(46)] = 1455, + [SMALL_STATE(47)] = 1483, + [SMALL_STATE(48)] = 1515, + [SMALL_STATE(49)] = 1543, + [SMALL_STATE(50)] = 1571, + [SMALL_STATE(51)] = 1603, + [SMALL_STATE(52)] = 1631, + [SMALL_STATE(53)] = 1668, + [SMALL_STATE(54)] = 1705, + [SMALL_STATE(55)] = 1742, + [SMALL_STATE(56)] = 1779, + [SMALL_STATE(57)] = 1816, + [SMALL_STATE(58)] = 1863, + [SMALL_STATE(59)] = 1900, + [SMALL_STATE(60)] = 1937, + [SMALL_STATE(61)] = 1974, + [SMALL_STATE(62)] = 2011, + [SMALL_STATE(63)] = 2048, + [SMALL_STATE(64)] = 2085, + [SMALL_STATE(65)] = 2122, + [SMALL_STATE(66)] = 2159, + [SMALL_STATE(67)] = 2196, + [SMALL_STATE(68)] = 2233, + [SMALL_STATE(69)] = 2270, + [SMALL_STATE(70)] = 2307, + [SMALL_STATE(71)] = 2344, + [SMALL_STATE(72)] = 2381, + [SMALL_STATE(73)] = 2418, + [SMALL_STATE(74)] = 2455, + [SMALL_STATE(75)] = 2502, + [SMALL_STATE(76)] = 2539, + [SMALL_STATE(77)] = 2576, + [SMALL_STATE(78)] = 2613, + [SMALL_STATE(79)] = 2650, + [SMALL_STATE(80)] = 2677, + [SMALL_STATE(81)] = 2719, + [SMALL_STATE(82)] = 2763, + [SMALL_STATE(83)] = 2807, + [SMALL_STATE(84)] = 2851, + [SMALL_STATE(85)] = 2892, + [SMALL_STATE(86)] = 2933, + [SMALL_STATE(87)] = 2974, + [SMALL_STATE(88)] = 3011, + [SMALL_STATE(89)] = 3042, + [SMALL_STATE(90)] = 3077, + [SMALL_STATE(91)] = 3110, + [SMALL_STATE(92)] = 3139, + [SMALL_STATE(93)] = 3180, + [SMALL_STATE(94)] = 3221, + [SMALL_STATE(95)] = 3262, + [SMALL_STATE(96)] = 3303, + [SMALL_STATE(97)] = 3344, + [SMALL_STATE(98)] = 3372, + [SMALL_STATE(99)] = 3401, + [SMALL_STATE(100)] = 3430, + [SMALL_STATE(101)] = 3459, + [SMALL_STATE(102)] = 3485, + [SMALL_STATE(103)] = 3508, + [SMALL_STATE(104)] = 3531, + [SMALL_STATE(105)] = 3546, + [SMALL_STATE(106)] = 3561, + [SMALL_STATE(107)] = 3577, + [SMALL_STATE(108)] = 3593, + [SMALL_STATE(109)] = 3608, + [SMALL_STATE(110)] = 3623, + [SMALL_STATE(111)] = 3638, + [SMALL_STATE(112)] = 3653, + [SMALL_STATE(113)] = 3668, + [SMALL_STATE(114)] = 3685, + [SMALL_STATE(115)] = 3702, + [SMALL_STATE(116)] = 3719, + [SMALL_STATE(117)] = 3736, + [SMALL_STATE(118)] = 3753, + [SMALL_STATE(119)] = 3770, + [SMALL_STATE(120)] = 3787, + [SMALL_STATE(121)] = 3801, + [SMALL_STATE(122)] = 3815, + [SMALL_STATE(123)] = 3825, + [SMALL_STATE(124)] = 3839, + [SMALL_STATE(125)] = 3853, + [SMALL_STATE(126)] = 3867, + [SMALL_STATE(127)] = 3881, + [SMALL_STATE(128)] = 3895, + [SMALL_STATE(129)] = 3909, + [SMALL_STATE(130)] = 3918, + [SMALL_STATE(131)] = 3929, + [SMALL_STATE(132)] = 3940, + [SMALL_STATE(133)] = 3949, + [SMALL_STATE(134)] = 3960, + [SMALL_STATE(135)] = 3969, + [SMALL_STATE(136)] = 3978, + [SMALL_STATE(137)] = 3989, + [SMALL_STATE(138)] = 3998, + [SMALL_STATE(139)] = 4009, + [SMALL_STATE(140)] = 4020, + [SMALL_STATE(141)] = 4029, + [SMALL_STATE(142)] = 4038, + [SMALL_STATE(143)] = 4047, + [SMALL_STATE(144)] = 4056, + [SMALL_STATE(145)] = 4065, + [SMALL_STATE(146)] = 4074, + [SMALL_STATE(147)] = 4083, + [SMALL_STATE(148)] = 4092, + [SMALL_STATE(149)] = 4101, + [SMALL_STATE(150)] = 4112, + [SMALL_STATE(151)] = 4120, + [SMALL_STATE(152)] = 4128, + [SMALL_STATE(153)] = 4136, + [SMALL_STATE(154)] = 4144, + [SMALL_STATE(155)] = 4152, + [SMALL_STATE(156)] = 4160, + [SMALL_STATE(157)] = 4168, + [SMALL_STATE(158)] = 4176, + [SMALL_STATE(159)] = 4184, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -5648,172 +6899,213 @@ static const TSParseActionEntry ts_parse_actions[] = { [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 = true}}, SHIFT(118), - [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18), - [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), - [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(106), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), - [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [39] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(18), - [42] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(64), - [45] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(121), - [48] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(87), - [51] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(56), - [54] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(55), + [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(103), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [39] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(10), + [42] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(39), + [45] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(159), + [48] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(106), + [51] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(59), + [54] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(56), [57] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(5), [60] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), - [62] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(68), - [65] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(74), - [68] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(54), - [71] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(77), - [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), - [76] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [62] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(16), + [65] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(31), + [68] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(60), + [71] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(103), + [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), + [76] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), [78] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2), - [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2), [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1), - [86] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [88] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1), - [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 3), - [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 3), - [94] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), - [96] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(117), - [99] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), - [101] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 2), - [103] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 2), SHIFT_REPEAT(51), - [106] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_type_repeat1, 2), - [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignable_expr, 2), - [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignable_expr, 2), - [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 3), - [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_type_repeat1, 3), - [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignable_expr, 1), - [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignable_expr, 1), - [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3), - [128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3), - [136] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49), - [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 5), - [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 5), - [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), - [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 4), - [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 4), - [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2), - [152] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2), - [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 3), - [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 3), - [158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [162] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3), - [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3), - [166] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), - [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3), - [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 3), - [174] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 3), - [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 1), - [178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_statement, 2), - [180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_statement, 2), - [182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5), - [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5), - [186] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 4), - [188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 4), - [190] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 2), - [192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 2), - [194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5), - [196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5), - [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [200] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assign_left_side, 1), + [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1), + [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 3), + [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 3), + [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), + [94] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(155), + [97] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), + [99] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), + [103] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), + [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [107] = {.entry = {.count = 1, .reusable = false}}, SHIFT(97), + [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [111] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [117] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 3), + [119] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 3), + [121] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 3), + [123] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 3), + [125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 5), + [127] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 5), + [129] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 4), + [131] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 4), + [133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 4), + [135] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 4), + [137] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2), + [139] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2), + [141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3), + [143] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3), + [145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), + [149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [151] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64), + [153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3), + [161] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [163] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), + [165] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [167] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 7), + [169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [173] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69), + [175] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 4, .production_id = 7), + [177] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3), + [179] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3), + [181] = {.entry = {.count = 1, .reusable = false}}, SHIFT(110), + [183] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 10), + [185] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 5, .production_id = 10), + [187] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__maybe_global_identifier, 1), + [189] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), + [191] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__maybe_global_identifier, 1), REDUCE(sym__type, 1), + [194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), + [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assign_left_side, 1), + [200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 1), [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [218] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), - [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2), - [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_range, 3), - [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [260] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), - [262] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69), - [264] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), - [266] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), - [268] = {.entry = {.count = 1, .reusable = false}}, SHIFT(94), - [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [274] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), - [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), - [278] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), SHIFT_REPEAT(79), - [281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2), - [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3), - [285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [287] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(78), - [290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), - [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), - [300] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(118), - [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 1), - [305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 2), - [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 3), - [313] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), SHIFT_REPEAT(67), - [316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), - [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 2), - [324] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2), SHIFT_REPEAT(52), - [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5), - [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 9), - [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 3), - [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 6), - [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 7), - [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 8), - [339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), - [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [355] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), + [212] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(151), + [215] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5), + [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5), + [219] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5), + [221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5), + [223] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), + [225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), + [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), + [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [243] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assign_left_side, 2), + [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2), + [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), + [289] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), + [291] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 3), + [293] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat2, 3), + [295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [309] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), + [311] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), + [313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), + [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_range, 3), + [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3), + [325] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), + [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), + [329] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), SHIFT_REPEAT(97), + [332] = {.entry = {.count = 1, .reusable = false}}, SHIFT(108), + [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [338] = {.entry = {.count = 1, .reusable = false}}, SHIFT(107), + [340] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 4), + [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 2), + [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [350] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(102), + [353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), + [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [359] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), + [361] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(154), + [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 1), + [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_statement, 1), + [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 3), + [374] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), SHIFT_REPEAT(14), + [377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 2), + [379] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2), SHIFT_REPEAT(65), + [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5, .production_id = 1), + [388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 7, .production_id = 8), + [396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 8, .production_id = 12), + [398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 8, .production_id = 11), + [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), + [406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 7, .production_id = 9), + [408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 6, .production_id = 5), + [410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 7, .production_id = 6), + [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 4), + [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 6, .production_id = 3), + [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 9, .production_id = 13), + [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), + [430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [432] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), }; #ifdef __cplusplus @@ -5840,6 +7132,9 @@ extern const TSLanguage *tree_sitter_sus(void) { .small_parse_table_map = ts_small_parse_table_map, .parse_actions = ts_parse_actions, .symbol_names = ts_symbol_names, + .field_names = ts_field_names, + .field_map_slices = ts_field_map_slices, + .field_map_entries = ts_field_map_entries, .symbol_metadata = ts_symbol_metadata, .public_symbol_map = ts_symbol_map, .alias_map = ts_non_terminal_alias_map, From 22f4b7082cf7b2be01912cd5e023c52a4676f25d Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Sun, 10 Mar 2024 17:54:29 +0100 Subject: [PATCH 07/49] Add far more fields --- grammar.js | 46 +- src/grammar.json | 372 ++- src/node-types.json | 765 ++++-- src/parser.c | 6121 +++++++++++++++++++++---------------------- 4 files changed, 3760 insertions(+), 3544 deletions(-) diff --git a/grammar.js b/grammar.js index 2336556..c9d6bc6 100644 --- a/grammar.js +++ b/grammar.js @@ -22,21 +22,21 @@ module.exports = grammar({ name: 'sus', rules: { - // TODO: add the actual grammar rules source_file: $ => repeat($.module), module: $ => seq( 'module', field('name', $.identifier), - ':', + optional(seq(':', field('inputs', sepSeq($.declaration, ',')), - '->', - field('outputs', sepSeq($.declaration, ',')), - $.block + optional(seq('->', + field('outputs', sepSeq($.declaration, ',')))))) ), identifier: $ => /[\p{L}_][\p{L}_\d]*/, number: $ => /\d[\d_]*/, + word: $=> $.identifier, + global_identifier: $ => prec.left(PREC.namespace_path, seq( optional('::'), sepSeq1($.identifier, '::') @@ -73,7 +73,7 @@ module.exports = grammar({ unary_op: $ => prec(PREC.unary, seq( choice('+', '-', '*', '!', '|', '&', '^'), - $._expression + field('right', $._expression) )), binary_op: $ => { @@ -87,23 +87,23 @@ module.exports = grammar({ ]; return choice(...TABLE.map(([precedence, operator]) => prec.left(precedence, seq( - $._expression, + field('left', $._expression), operator, - $._expression + field('right', $._expression) )))); }, array_op: $ => seq( - $._expression, + field('arr', $._expression), '[', - $._expression, + field('arr_idx', $._expression), ']' ), func_call: $ => seq( - $._maybe_global_identifier, + field('module_name', $._maybe_global_identifier), '(', - sepSeq($._expression, ','), + sepSeq(field('argument', $._expression), ','), ')' ), @@ -118,9 +118,9 @@ module.exports = grammar({ ), range: $ => seq( - $._expression, - '..', - $._expression + field('from', $._expression), + ':', + field('to', $._expression), ), block: $ => seq( @@ -140,16 +140,16 @@ module.exports = grammar({ ) ), ','), decl_assign_statement: $ => seq( - $._assign_left_side, + field('assign_to', $._assign_left_side), '=', - $._expression + field('assign_value', $._expression), ), decl_statement: $ => $.declaration, expression_statement: $ => $._expression, if_statement: $ => seq( 'if', - $._expression, + field('condition', $._assign_left_side), $.block, optional(seq( 'else', @@ -174,19 +174,15 @@ module.exports = grammar({ $.if_statement, $.for_statement ), - - - single_line_comment: $ => /\/\/[^\n]*\n/, - multi_line_comment: $ => /\/\*[^\*]*\*+([^\/\*][^\*]*\*+)*\//, }, conflicts: $ => [ - [$._maybe_global_identifier, $._type] + [$._maybe_global_identifier, $._type] // Just because LR(1) is too weak to resolve 'ident[] a' vs 'type_name[]'. Tree sitter resolves this itself with more expensive GLR. NOT a precedence relation. ], extras: $ => [ /\s+/, - $.single_line_comment, - $.multi_line_comment + /\/\/[^\n]*\n/, // Single line comment + /\/\*[^\*]*\*+([^\/\*][^\*]*\*+)*\// // Multi line comment ] }); diff --git a/src/grammar.json b/src/grammar.json index 2c4ec01..ae07964 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -24,86 +24,112 @@ } }, { - "type": "STRING", - "value": ":" - }, - { - "type": "FIELD", - "name": "inputs", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "declaration" - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "SYMBOL", - "name": "declaration" - } - ] - } + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": ":" + }, + { + "type": "FIELD", + "name": "inputs", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "declaration" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "declaration" + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] } - ] - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "STRING", - "value": "->" - }, - { - "type": "FIELD", - "name": "outputs", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "declaration" - }, - { - "type": "REPEAT", - "content": { + }, + { + "type": "CHOICE", + "members": [ + { "type": "SEQ", "members": [ { "type": "STRING", - "value": "," + "value": "->" }, { - "type": "SYMBOL", - "name": "declaration" + "type": "FIELD", + "name": "outputs", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "declaration" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "declaration" + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + } } ] + }, + { + "type": "BLANK" } - } - ] - }, - { - "type": "BLANK" - } - ] - } + ] + } + ] + }, + { + "type": "BLANK" + } + ] }, { "type": "SYMBOL", @@ -119,6 +145,10 @@ "type": "PATTERN", "value": "\\d[\\d_]*" }, + "word": { + "type": "SYMBOL", + "name": "identifier" + }, "global_identifier": { "type": "PREC_LEFT", "value": 9, @@ -327,8 +357,12 @@ ] }, { - "type": "SYMBOL", - "name": "_expression" + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "_expression" + } } ] } @@ -343,8 +377,12 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_expression" + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "_expression" + } }, { "type": "CHOICE", @@ -376,8 +414,12 @@ ] }, { - "type": "SYMBOL", - "name": "_expression" + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "_expression" + } } ] } @@ -389,16 +431,24 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_expression" + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "_expression" + } }, { "type": "STRING", "value": "&" }, { - "type": "SYMBOL", - "name": "_expression" + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "_expression" + } } ] } @@ -410,16 +460,24 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_expression" + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "_expression" + } }, { "type": "STRING", "value": "|" }, { - "type": "SYMBOL", - "name": "_expression" + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "_expression" + } } ] } @@ -431,16 +489,24 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_expression" + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "_expression" + } }, { "type": "STRING", "value": "^" }, { - "type": "SYMBOL", - "name": "_expression" + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "_expression" + } } ] } @@ -452,8 +518,12 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_expression" + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "_expression" + } }, { "type": "CHOICE", @@ -469,8 +539,12 @@ ] }, { - "type": "SYMBOL", - "name": "_expression" + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "_expression" + } } ] } @@ -482,8 +556,12 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_expression" + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "_expression" + } }, { "type": "CHOICE", @@ -503,8 +581,12 @@ ] }, { - "type": "SYMBOL", - "name": "_expression" + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "_expression" + } } ] } @@ -515,16 +597,24 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_expression" + "type": "FIELD", + "name": "arr", + "content": { + "type": "SYMBOL", + "name": "_expression" + } }, { "type": "STRING", "value": "[" }, { - "type": "SYMBOL", - "name": "_expression" + "type": "FIELD", + "name": "arr_idx", + "content": { + "type": "SYMBOL", + "name": "_expression" + } }, { "type": "STRING", @@ -536,8 +626,12 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_maybe_global_identifier" + "type": "FIELD", + "name": "module_name", + "content": { + "type": "SYMBOL", + "name": "_maybe_global_identifier" + } }, { "type": "STRING", @@ -550,8 +644,12 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_expression" + "type": "FIELD", + "name": "argument", + "content": { + "type": "SYMBOL", + "name": "_expression" + } }, { "type": "REPEAT", @@ -563,8 +661,12 @@ "value": "," }, { - "type": "SYMBOL", - "name": "_expression" + "type": "FIELD", + "name": "argument", + "content": { + "type": "SYMBOL", + "name": "_expression" + } } ] } @@ -632,16 +734,24 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_expression" + "type": "FIELD", + "name": "from", + "content": { + "type": "SYMBOL", + "name": "_expression" + } }, { "type": "STRING", - "value": ".." + "value": ":" }, { - "type": "SYMBOL", - "name": "_expression" + "type": "FIELD", + "name": "to", + "content": { + "type": "SYMBOL", + "name": "_expression" + } } ] }, @@ -754,16 +864,24 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_assign_left_side" + "type": "FIELD", + "name": "assign_to", + "content": { + "type": "SYMBOL", + "name": "_assign_left_side" + } }, { "type": "STRING", "value": "=" }, { - "type": "SYMBOL", - "name": "_expression" + "type": "FIELD", + "name": "assign_value", + "content": { + "type": "SYMBOL", + "name": "_expression" + } } ] }, @@ -783,8 +901,12 @@ "value": "if" }, { - "type": "SYMBOL", - "name": "_expression" + "type": "FIELD", + "name": "condition", + "content": { + "type": "SYMBOL", + "name": "_assign_left_side" + } }, { "type": "SYMBOL", @@ -902,14 +1024,6 @@ "name": "for_statement" } ] - }, - "single_line_comment": { - "type": "PATTERN", - "value": "\\/\\/[^\\n]*\\n" - }, - "multi_line_comment": { - "type": "PATTERN", - "value": "\\/\\*[^\\*]*\\*+([^\\/\\*][^\\*]*\\*+)*\\/" } }, "extras": [ @@ -918,12 +1032,12 @@ "value": "\\s+" }, { - "type": "SYMBOL", - "name": "single_line_comment" + "type": "PATTERN", + "value": "\\/\\/[^\\n]*\\n" }, { - "type": "SYMBOL", - "name": "multi_line_comment" + "type": "PATTERN", + "value": "\\/\\*[^\\*]*\\*+([^\\/\\*][^\\*]*\\*+)*\\/" } ], "conflicts": [ diff --git a/src/node-types.json b/src/node-types.json index fda7383..578532c 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -2,40 +2,91 @@ { "type": "array_op", "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "array_op", - "named": true - }, - { - "type": "binary_op", - "named": true - }, - { - "type": "func_call", - "named": true - }, - { - "type": "global_identifier", - "named": true - }, - { - "type": "identifier", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "unary_op", - "named": true - } - ] + "fields": { + "arr": { + "multiple": true, + "required": true, + "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, + { + "type": "array_op", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "func_call", + "named": true + }, + { + "type": "global_identifier", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "unary_op", + "named": true + } + ] + }, + "arr_idx": { + "multiple": true, + "required": true, + "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, + { + "type": "array_op", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "func_call", + "named": true + }, + { + "type": "global_identifier", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "unary_op", + "named": true + } + ] + } } }, { @@ -84,40 +135,91 @@ { "type": "binary_op", "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "array_op", - "named": true - }, - { - "type": "binary_op", - "named": true - }, - { - "type": "func_call", - "named": true - }, - { - "type": "global_identifier", - "named": true - }, - { - "type": "identifier", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "unary_op", - "named": true - } - ] + "fields": { + "left": { + "multiple": true, + "required": true, + "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, + { + "type": "array_op", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "func_call", + "named": true + }, + { + "type": "global_identifier", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "unary_op", + "named": true + } + ] + }, + "right": { + "multiple": true, + "required": true, + "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, + { + "type": "array_op", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "func_call", + "named": true + }, + { + "type": "global_identifier", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "unary_op", + "named": true + } + ] + } } }, { @@ -158,44 +260,107 @@ { "type": "decl_assign_statement", "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "array_op", - "named": true - }, - { - "type": "binary_op", - "named": true - }, - { - "type": "declaration", - "named": true - }, - { - "type": "func_call", - "named": true - }, - { - "type": "global_identifier", - "named": true - }, - { - "type": "identifier", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "unary_op", - "named": true - } - ] + "fields": { + "assign_to": { + "multiple": true, + "required": true, + "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, + { + "type": ",", + "named": false + }, + { + "type": "array_op", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "declaration", + "named": true + }, + { + "type": "func_call", + "named": true + }, + { + "type": "global_identifier", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "initial", + "named": false + }, + { + "type": "number", + "named": true + }, + { + "type": "reg", + "named": false + }, + { + "type": "unary_op", + "named": true + } + ] + }, + "assign_value": { + "multiple": true, + "required": true, + "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, + { + "type": "array_op", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "func_call", + "named": true + }, + { + "type": "global_identifier", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "unary_op", + "named": true + } + ] + } } }, { @@ -350,40 +515,63 @@ { "type": "func_call", "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "array_op", - "named": true - }, - { - "type": "binary_op", - "named": true - }, - { - "type": "func_call", - "named": true - }, - { - "type": "global_identifier", - "named": true - }, - { - "type": "identifier", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "unary_op", - "named": true - } - ] + "fields": { + "argument": { + "multiple": true, + "required": false, + "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, + { + "type": "array_op", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "func_call", + "named": true + }, + { + "type": "global_identifier", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "unary_op", + "named": true + } + ] + }, + "module_name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "global_identifier", + "named": true + }, + { + "type": "identifier", + "named": true + } + ] + } } }, { @@ -404,46 +592,77 @@ { "type": "if_statement", "named": true, - "fields": {}, + "fields": { + "condition": { + "multiple": true, + "required": true, + "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, + { + "type": ",", + "named": false + }, + { + "type": "array_op", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "declaration", + "named": true + }, + { + "type": "func_call", + "named": true + }, + { + "type": "global_identifier", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "initial", + "named": false + }, + { + "type": "number", + "named": true + }, + { + "type": "reg", + "named": false + }, + { + "type": "unary_op", + "named": true + } + ] + } + }, "children": { "multiple": true, "required": true, "types": [ - { - "type": "array_op", - "named": true - }, - { - "type": "binary_op", - "named": true - }, { "type": "block", "named": true }, - { - "type": "func_call", - "named": true - }, - { - "type": "global_identifier", - "named": true - }, - { - "type": "identifier", - "named": true - }, { "type": "if_statement", "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "unary_op", - "named": true } ] } @@ -505,40 +724,91 @@ { "type": "range", "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "array_op", - "named": true - }, - { - "type": "binary_op", - "named": true - }, - { - "type": "func_call", - "named": true - }, - { - "type": "global_identifier", - "named": true - }, - { - "type": "identifier", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "unary_op", - "named": true - } - ] + "fields": { + "from": { + "multiple": true, + "required": true, + "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, + { + "type": "array_op", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "func_call", + "named": true + }, + { + "type": "global_identifier", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "unary_op", + "named": true + } + ] + }, + "to": { + "multiple": true, + "required": true, + "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, + { + "type": "array_op", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "func_call", + "named": true + }, + { + "type": "global_identifier", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "unary_op", + "named": true + } + ] + } } }, { @@ -559,40 +829,49 @@ { "type": "unary_op", "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "array_op", - "named": true - }, - { - "type": "binary_op", - "named": true - }, - { - "type": "func_call", - "named": true - }, - { - "type": "global_identifier", - "named": true - }, - { - "type": "identifier", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "unary_op", - "named": true - } - ] + "fields": { + "right": { + "multiple": true, + "required": true, + "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, + { + "type": "array_op", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "func_call", + "named": true + }, + { + "type": "global_identifier", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "unary_op", + "named": true + } + ] + } } }, { @@ -643,10 +922,6 @@ "type": "->", "named": false }, - { - "type": "..", - "named": false - }, { "type": "/", "named": false @@ -731,10 +1006,6 @@ "type": "module", "named": false }, - { - "type": "multi_line_comment", - "named": true - }, { "type": "number", "named": true @@ -743,10 +1014,6 @@ "type": "reg", "named": false }, - { - "type": "single_line_comment", - "named": true - }, { "type": "state", "named": false diff --git a/src/parser.c b/src/parser.c index 4ac5ebe..8b92b26 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,15 +6,15 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 160 +#define STATE_COUNT 173 #define LARGE_STATE_COUNT 9 -#define SYMBOL_COUNT 71 +#define SYMBOL_COUNT 68 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 43 +#define TOKEN_COUNT 40 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 5 +#define FIELD_COUNT 16 #define MAX_ALIAS_SEQUENCE_LENGTH 9 -#define PRODUCTION_ID_COUNT 14 +#define PRODUCTION_ID_COUNT 25 enum { anon_sym_module = 1, @@ -46,47 +46,44 @@ enum { anon_sym_PERCENT = 27, anon_sym_LPAREN = 28, anon_sym_RPAREN = 29, - anon_sym_DOT_DOT = 30, - anon_sym_LBRACE = 31, - anon_sym_RBRACE = 32, - anon_sym_reg = 33, - anon_sym_initial = 34, - anon_sym_EQ = 35, - anon_sym_if = 36, - anon_sym_else = 37, - anon_sym_for = 38, - anon_sym_in = 39, - anon_sym_SEMI = 40, - sym_single_line_comment = 41, - sym_multi_line_comment = 42, - sym_source_file = 43, - sym_module = 44, - sym_global_identifier = 45, - sym__maybe_global_identifier = 46, - sym_array_type = 47, - sym__type = 48, - sym_declaration = 49, - sym_unary_op = 50, - sym_binary_op = 51, - sym_array_op = 52, - sym_func_call = 53, - sym__expression = 54, - sym_range = 55, - sym_block = 56, - sym__assign_left_side = 57, - sym_decl_assign_statement = 58, - sym_decl_statement = 59, - sym_expression_statement = 60, - sym_if_statement = 61, - sym_for_statement = 62, - sym__statement = 63, - aux_sym_source_file_repeat1 = 64, - aux_sym_module_repeat1 = 65, - aux_sym_global_identifier_repeat1 = 66, - aux_sym_func_call_repeat1 = 67, - aux_sym_block_repeat1 = 68, - aux_sym__assign_left_side_repeat1 = 69, - aux_sym__assign_left_side_repeat2 = 70, + anon_sym_LBRACE = 30, + anon_sym_RBRACE = 31, + anon_sym_reg = 32, + anon_sym_initial = 33, + anon_sym_EQ = 34, + anon_sym_if = 35, + anon_sym_else = 36, + anon_sym_for = 37, + anon_sym_in = 38, + anon_sym_SEMI = 39, + sym_source_file = 40, + sym_module = 41, + sym_global_identifier = 42, + sym__maybe_global_identifier = 43, + sym_array_type = 44, + sym__type = 45, + sym_declaration = 46, + sym_unary_op = 47, + sym_binary_op = 48, + sym_array_op = 49, + sym_func_call = 50, + sym__expression = 51, + sym_range = 52, + sym_block = 53, + sym__assign_left_side = 54, + sym_decl_assign_statement = 55, + sym_decl_statement = 56, + sym_expression_statement = 57, + sym_if_statement = 58, + sym_for_statement = 59, + sym__statement = 60, + aux_sym_source_file_repeat1 = 61, + aux_sym_module_repeat1 = 62, + aux_sym_global_identifier_repeat1 = 63, + aux_sym_func_call_repeat1 = 64, + aux_sym_block_repeat1 = 65, + aux_sym__assign_left_side_repeat1 = 66, + aux_sym__assign_left_side_repeat2 = 67, }; static const char * const ts_symbol_names[] = { @@ -120,7 +117,6 @@ static const char * const ts_symbol_names[] = { [anon_sym_PERCENT] = "%", [anon_sym_LPAREN] = "(", [anon_sym_RPAREN] = ")", - [anon_sym_DOT_DOT] = "..", [anon_sym_LBRACE] = "{", [anon_sym_RBRACE] = "}", [anon_sym_reg] = "reg", @@ -131,8 +127,6 @@ static const char * const ts_symbol_names[] = { [anon_sym_for] = "for", [anon_sym_in] = "in", [anon_sym_SEMI] = ";", - [sym_single_line_comment] = "single_line_comment", - [sym_multi_line_comment] = "multi_line_comment", [sym_source_file] = "source_file", [sym_module] = "module", [sym_global_identifier] = "global_identifier", @@ -194,7 +188,6 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_PERCENT] = anon_sym_PERCENT, [anon_sym_LPAREN] = anon_sym_LPAREN, [anon_sym_RPAREN] = anon_sym_RPAREN, - [anon_sym_DOT_DOT] = anon_sym_DOT_DOT, [anon_sym_LBRACE] = anon_sym_LBRACE, [anon_sym_RBRACE] = anon_sym_RBRACE, [anon_sym_reg] = anon_sym_reg, @@ -205,8 +198,6 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_for] = anon_sym_for, [anon_sym_in] = anon_sym_in, [anon_sym_SEMI] = anon_sym_SEMI, - [sym_single_line_comment] = sym_single_line_comment, - [sym_multi_line_comment] = sym_multi_line_comment, [sym_source_file] = sym_source_file, [sym_module] = sym_module, [sym_global_identifier] = sym_global_identifier, @@ -358,10 +349,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_DOT_DOT] = { - .visible = true, - .named = false, - }, [anon_sym_LBRACE] = { .visible = true, .named = false, @@ -402,14 +389,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [sym_single_line_comment] = { - .visible = true, - .named = true, - }, - [sym_multi_line_comment] = { - .visible = true, - .named = true, - }, [sym_source_file] = { .visible = true, .named = true, @@ -525,19 +504,41 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { }; enum { - field_inputs = 1, - field_latency_spec = 2, - field_name = 3, - field_outputs = 4, - field_type = 5, + field_argument = 1, + field_arr = 2, + field_arr_idx = 3, + field_assign_to = 4, + field_assign_value = 5, + field_condition = 6, + field_from = 7, + field_inputs = 8, + field_latency_spec = 9, + field_left = 10, + field_module_name = 11, + field_name = 12, + field_outputs = 13, + field_right = 14, + field_to = 15, + field_type = 16, }; static const char * const ts_field_names[] = { [0] = NULL, + [field_argument] = "argument", + [field_arr] = "arr", + [field_arr_idx] = "arr_idx", + [field_assign_to] = "assign_to", + [field_assign_value] = "assign_value", + [field_condition] = "condition", + [field_from] = "from", [field_inputs] = "inputs", [field_latency_spec] = "latency_spec", + [field_left] = "left", + [field_module_name] = "module_name", [field_name] = "name", [field_outputs] = "outputs", + [field_right] = "right", + [field_to] = "to", [field_type] = "type", }; @@ -545,16 +546,27 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [1] = {.index = 0, .length = 1}, [2] = {.index = 1, .length = 2}, [3] = {.index = 3, .length = 2}, - [4] = {.index = 5, .length = 2}, - [5] = {.index = 7, .length = 2}, - [6] = {.index = 9, .length = 3}, - [7] = {.index = 12, .length = 3}, - [8] = {.index = 15, .length = 3}, - [9] = {.index = 18, .length = 3}, - [10] = {.index = 21, .length = 3}, - [11] = {.index = 24, .length = 4}, - [12] = {.index = 28, .length = 4}, - [13] = {.index = 32, .length = 5}, + [4] = {.index = 5, .length = 1}, + [5] = {.index = 6, .length = 2}, + [6] = {.index = 8, .length = 2}, + [7] = {.index = 10, .length = 3}, + [8] = {.index = 13, .length = 1}, + [9] = {.index = 14, .length = 1}, + [10] = {.index = 15, .length = 2}, + [11] = {.index = 17, .length = 2}, + [12] = {.index = 19, .length = 3}, + [13] = {.index = 22, .length = 3}, + [14] = {.index = 25, .length = 3}, + [15] = {.index = 28, .length = 2}, + [16] = {.index = 30, .length = 2}, + [17] = {.index = 32, .length = 3}, + [18] = {.index = 35, .length = 4}, + [19] = {.index = 39, .length = 4}, + [20] = {.index = 43, .length = 1}, + [21] = {.index = 44, .length = 3}, + [22] = {.index = 47, .length = 2}, + [23] = {.index = 49, .length = 5}, + [24] = {.index = 54, .length = 2}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -564,50 +576,80 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_name, 1}, {field_type, 0}, [3] = + {field_inputs, 3}, {field_name, 1}, - {field_outputs, 4}, [5] = + {field_right, 1}, + [6] = + {field_name, 1}, + {field_outputs, 4}, + [8] = {field_name, 2}, {field_type, 1}, - [7] = + [10] = {field_inputs, 3}, + {field_inputs, 4}, {field_name, 1}, - [9] = + [13] = + {field_condition, 1}, + [14] = + {field_module_name, 0}, + [15] = + {field_left, 0}, + {field_right, 2}, + [17] = + {field_assign_to, 0}, + {field_assign_value, 2}, + [19] = {field_name, 1}, {field_outputs, 4}, {field_outputs, 5}, - [12] = + [22] = {field_latency_spec, 3}, {field_name, 1}, {field_type, 0}, - [15] = + [25] = {field_inputs, 3}, {field_name, 1}, {field_outputs, 5}, - [18] = - {field_inputs, 3}, - {field_inputs, 4}, - {field_name, 1}, - [21] = + [28] = + {field_argument, 2}, + {field_module_name, 0}, + [30] = + {field_arr, 0}, + {field_arr_idx, 2}, + [32] = {field_latency_spec, 4}, {field_name, 2}, {field_type, 1}, - [24] = + [35] = {field_inputs, 3}, {field_name, 1}, {field_outputs, 5}, {field_outputs, 6}, - [28] = + [39] = {field_inputs, 3}, {field_inputs, 4}, {field_name, 1}, {field_outputs, 6}, - [32] = + [43] = + {field_argument, 1}, + [44] = + {field_argument, 2}, + {field_argument, 3, .inherited = true}, + {field_module_name, 0}, + [47] = + {field_argument, 0, .inherited = true}, + {field_argument, 1, .inherited = true}, + [49] = {field_inputs, 3}, {field_inputs, 4}, {field_name, 1}, {field_outputs, 6}, {field_outputs, 7}, + [54] = + {field_from, 0}, + {field_to, 2}, }; static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { @@ -625,9 +667,9 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [3] = 3, [4] = 2, [5] = 3, - [6] = 6, - [7] = 2, - [8] = 3, + [6] = 2, + [7] = 3, + [8] = 8, [9] = 9, [10] = 10, [11] = 11, @@ -661,18 +703,18 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [39] = 39, [40] = 40, [41] = 41, - [42] = 9, - [43] = 13, - [44] = 12, - [45] = 45, - [46] = 34, + [42] = 42, + [43] = 38, + [44] = 9, + [45] = 39, + [46] = 13, [47] = 11, - [48] = 33, - [49] = 49, - [50] = 10, + [48] = 48, + [49] = 12, + [50] = 50, [51] = 51, [52] = 52, - [53] = 53, + [53] = 14, [54] = 54, [55] = 55, [56] = 56, @@ -680,42 +722,42 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [58] = 58, [59] = 59, [60] = 60, - [61] = 61, + [61] = 55, [62] = 62, - [63] = 63, - [64] = 64, - [65] = 65, - [66] = 54, - [67] = 58, - [68] = 61, - [69] = 62, + [63] = 59, + [64] = 58, + [65] = 57, + [66] = 66, + [67] = 67, + [68] = 62, + [69] = 69, [70] = 70, - [71] = 53, - [72] = 59, - [73] = 64, + [71] = 71, + [72] = 16, + [73] = 73, [74] = 74, - [75] = 75, - [76] = 75, - [77] = 52, - [78] = 78, - [79] = 15, + [75] = 54, + [76] = 76, + [77] = 77, + [78] = 76, + [79] = 66, [80] = 80, [81] = 81, - [82] = 82, + [82] = 80, [83] = 83, - [84] = 35, - [85] = 85, - [86] = 37, - [87] = 32, - [88] = 30, - [89] = 29, - [90] = 28, - [91] = 26, - [92] = 92, - [93] = 93, - [94] = 94, + [84] = 84, + [85] = 32, + [86] = 36, + [87] = 35, + [88] = 88, + [89] = 89, + [90] = 90, + [91] = 91, + [92] = 30, + [93] = 27, + [94] = 31, [95] = 95, - [96] = 96, + [96] = 33, [97] = 97, [98] = 98, [99] = 99, @@ -726,20 +768,20 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [104] = 104, [105] = 105, [106] = 106, - [107] = 106, - [108] = 108, + [107] = 107, + [108] = 107, [109] = 109, [110] = 110, [111] = 111, [112] = 112, [113] = 113, - [114] = 114, + [114] = 12, [115] = 115, - [116] = 116, + [116] = 11, [117] = 117, - [118] = 118, + [118] = 13, [119] = 119, - [120] = 120, + [120] = 14, [121] = 121, [122] = 122, [123] = 123, @@ -749,36 +791,49 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [127] = 127, [128] = 128, [129] = 129, - [130] = 104, + [130] = 130, [131] = 131, [132] = 132, - [133] = 133, - [134] = 34, + [133] = 16, + [134] = 134, [135] = 135, [136] = 136, [137] = 137, - [138] = 131, - [139] = 136, + [138] = 138, + [139] = 139, [140] = 140, [141] = 141, - [142] = 33, + [142] = 142, [143] = 143, [144] = 144, [145] = 145, [146] = 146, [147] = 147, [148] = 148, - [149] = 105, + [149] = 140, [150] = 150, [151] = 151, - [152] = 152, - [153] = 153, - [154] = 154, - [155] = 151, + [152] = 38, + [153] = 144, + [154] = 39, + [155] = 155, [156] = 156, [157] = 157, [158] = 158, - [159] = 152, + [159] = 104, + [160] = 160, + [161] = 105, + [162] = 162, + [163] = 162, + [164] = 164, + [165] = 165, + [166] = 164, + [167] = 164, + [168] = 168, + [169] = 162, + [170] = 170, + [171] = 171, + [172] = 172, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -2328,590 +2383,735 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (eof) ADVANCE(36); - if (lookahead == '!') ADVANCE(76); - if (lookahead == '%') ADVANCE(87); - if (lookahead == '&') ADVANCE(78); - if (lookahead == '\'') ADVANCE(70); - if (lookahead == '(') ADVANCE(88); - if (lookahead == ')') ADVANCE(89); - if (lookahead == '*') ADVANCE(74); - if (lookahead == '+') ADVANCE(71); - if (lookahead == ',') ADVANCE(39); - if (lookahead == '-') ADVANCE(73); - if (lookahead == '.') ADVANCE(13); - if (lookahead == '/') ADVANCE(86); - if (lookahead == ':') ADVANCE(38); - if (lookahead == ';') ADVANCE(104); - if (lookahead == '<') ADVANCE(82); - if (lookahead == '=') ADVANCE(96); - if (lookahead == '>') ADVANCE(84); - if (lookahead == '[') ADVANCE(64); - if (lookahead == ']') ADVANCE(65); - if (lookahead == '^') ADVANCE(79); - if (lookahead == 'e') ADVANCE(25); - if (lookahead == 'f') ADVANCE(29); - if (lookahead == 'g') ADVANCE(18); - if (lookahead == 'i') ADVANCE(23); - if (lookahead == 'm') ADVANCE(30); - if (lookahead == 'r') ADVANCE(19); - if (lookahead == 's') ADVANCE(33); - if (lookahead == '{') ADVANCE(91); - if (lookahead == '|') ADVANCE(77); - if (lookahead == '}') ADVANCE(92); + if (eof) ADVANCE(66); + if (lookahead == '!') ADVANCE(107); + if (lookahead == '%') ADVANCE(118); + if (lookahead == '&') ADVANCE(109); + if (lookahead == '\'') ADVANCE(101); + if (lookahead == '(') ADVANCE(119); + if (lookahead == ')') ADVANCE(120); + if (lookahead == '*') ADVANCE(105); + if (lookahead == '+') ADVANCE(102); + if (lookahead == ',') ADVANCE(70); + if (lookahead == '-') ADVANCE(104); + if (lookahead == '/') SKIP(63) + if (lookahead == ':') ADVANCE(69); + if (lookahead == ';') ADVANCE(134); + if (lookahead == '<') ADVANCE(113); + if (lookahead == '=') ADVANCE(126); + if (lookahead == '>') ADVANCE(115); + if (lookahead == '[') ADVANCE(95); + if (lookahead == ']') ADVANCE(96); + if (lookahead == '^') ADVANCE(110); + if (lookahead == 'e') ADVANCE(51); + if (lookahead == 'f') ADVANCE(55); + if (lookahead == 'g') ADVANCE(44); + if (lookahead == 'i') ADVANCE(49); + if (lookahead == 'm') ADVANCE(56); + if (lookahead == 'r') ADVANCE(45); + if (lookahead == 's') ADVANCE(59); + if (lookahead == '{') ADVANCE(121); + if (lookahead == '|') ADVANCE(108); + if (lookahead == '}') ADVANCE(122); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(0) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(62); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(93); END_STATE(); case 1: - if (lookahead == '\n') ADVANCE(105); - if (lookahead != 0) ADVANCE(1); + if (lookahead == '\n') SKIP(10) + if (lookahead != 0) SKIP(1) END_STATE(); case 2: - if (lookahead == '!') ADVANCE(75); - if (lookahead == '&') ADVANCE(78); - if (lookahead == '(') ADVANCE(88); - if (lookahead == ')') ADVANCE(89); - if (lookahead == '*') ADVANCE(74); - if (lookahead == '+') ADVANCE(71); - if (lookahead == '-') ADVANCE(72); - if (lookahead == '/') ADVANCE(10); - if (lookahead == ':') ADVANCE(14); - if (lookahead == '^') ADVANCE(79); - if (lookahead == '|') ADVANCE(77); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(2) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(62); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(61); + if (lookahead == '\n') SKIP(11) + if (lookahead != 0) SKIP(2) END_STATE(); case 3: - if (lookahead == '!') ADVANCE(75); - if (lookahead == '&') ADVANCE(78); - if (lookahead == '(') ADVANCE(88); - if (lookahead == '*') ADVANCE(74); - if (lookahead == '+') ADVANCE(71); - if (lookahead == '-') ADVANCE(73); - if (lookahead == '/') ADVANCE(10); - if (lookahead == ':') ADVANCE(14); - if (lookahead == '^') ADVANCE(79); - if (lookahead == 'g') ADVANCE(43); - if (lookahead == 's') ADVANCE(58); - if (lookahead == '{') ADVANCE(91); - if (lookahead == '|') ADVANCE(77); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(3) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(62); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(61); + if (lookahead == '\n') SKIP(12) + if (lookahead != 0) SKIP(3) END_STATE(); case 4: - if (lookahead == '!') ADVANCE(75); - if (lookahead == '&') ADVANCE(78); - if (lookahead == '(') ADVANCE(88); - if (lookahead == '*') ADVANCE(74); - if (lookahead == '+') ADVANCE(71); - if (lookahead == '-') ADVANCE(72); - if (lookahead == '/') ADVANCE(10); - if (lookahead == ':') ADVANCE(14); - if (lookahead == '^') ADVANCE(79); - if (lookahead == 'e') ADVANCE(52); - if (lookahead == 'f') ADVANCE(55); - if (lookahead == 'g') ADVANCE(43); - if (lookahead == 'i') ADVANCE(47); - if (lookahead == 'r') ADVANCE(44); - if (lookahead == 's') ADVANCE(58); - if (lookahead == '{') ADVANCE(91); - if (lookahead == '|') ADVANCE(77); - if (lookahead == '}') ADVANCE(92); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(4) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(62); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(61); + if (lookahead == '\n') SKIP(9) + if (lookahead != 0) SKIP(4) END_STATE(); case 5: - if (lookahead == '!') ADVANCE(75); - if (lookahead == '&') ADVANCE(78); - if (lookahead == '(') ADVANCE(88); - if (lookahead == '*') ADVANCE(74); - if (lookahead == '+') ADVANCE(71); - if (lookahead == '-') ADVANCE(72); - if (lookahead == '/') ADVANCE(10); - if (lookahead == ':') ADVANCE(14); - if (lookahead == '^') ADVANCE(79); - if (lookahead == 'f') ADVANCE(55); - if (lookahead == 'g') ADVANCE(43); - if (lookahead == 'i') ADVANCE(47); - if (lookahead == 'r') ADVANCE(44); - if (lookahead == 's') ADVANCE(58); - if (lookahead == '{') ADVANCE(91); - if (lookahead == '|') ADVANCE(77); - if (lookahead == '}') ADVANCE(92); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(5) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(62); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(61); + if (lookahead == '\n') SKIP(13) + if (lookahead != 0) SKIP(5) END_STATE(); case 6: - if (lookahead == '!') ADVANCE(75); - if (lookahead == '&') ADVANCE(78); - if (lookahead == '(') ADVANCE(88); - if (lookahead == '*') ADVANCE(74); - if (lookahead == '+') ADVANCE(71); - if (lookahead == '-') ADVANCE(72); - if (lookahead == '/') ADVANCE(10); - if (lookahead == ':') ADVANCE(14); - if (lookahead == '^') ADVANCE(79); - if (lookahead == 'g') ADVANCE(43); - if (lookahead == 'i') ADVANCE(53); - if (lookahead == 'r') ADVANCE(44); - if (lookahead == 's') ADVANCE(58); - if (lookahead == '|') ADVANCE(77); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(6) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(62); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(61); + if (lookahead == '\n') SKIP(8) + if (lookahead != 0) SKIP(6) END_STATE(); case 7: - if (lookahead == '!') ADVANCE(75); - if (lookahead == '&') ADVANCE(78); - if (lookahead == '(') ADVANCE(88); - if (lookahead == '*') ADVANCE(74); - if (lookahead == '+') ADVANCE(71); - if (lookahead == '-') ADVANCE(72); - if (lookahead == '/') ADVANCE(10); - if (lookahead == ':') ADVANCE(14); - if (lookahead == '^') ADVANCE(79); - if (lookahead == 'g') ADVANCE(43); - if (lookahead == 'r') ADVANCE(44); - if (lookahead == 's') ADVANCE(58); - if (lookahead == '|') ADVANCE(77); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(7) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(62); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(61); + if (lookahead == '\n') SKIP(38) + if (lookahead != 0) SKIP(7) END_STATE(); case 8: - if (lookahead == '!') ADVANCE(15); - if (lookahead == '%') ADVANCE(87); - if (lookahead == '&') ADVANCE(78); - if (lookahead == '(') ADVANCE(88); - if (lookahead == ')') ADVANCE(89); - if (lookahead == '*') ADVANCE(74); - if (lookahead == '+') ADVANCE(71); - if (lookahead == ',') ADVANCE(39); - if (lookahead == '-') ADVANCE(73); - if (lookahead == '.') ADVANCE(13); - if (lookahead == '/') ADVANCE(86); - if (lookahead == ':') ADVANCE(14); - if (lookahead == ';') ADVANCE(104); - if (lookahead == '<') ADVANCE(82); - if (lookahead == '=') ADVANCE(96); - if (lookahead == '>') ADVANCE(84); - if (lookahead == '[') ADVANCE(64); - if (lookahead == ']') ADVANCE(65); - if (lookahead == '^') ADVANCE(79); - if (lookahead == 'i') ADVANCE(27); - if (lookahead == '{') ADVANCE(91); - if (lookahead == '|') ADVANCE(77); + if (lookahead == '!') ADVANCE(106); + if (lookahead == '&') ADVANCE(109); + if (lookahead == '(') ADVANCE(119); + if (lookahead == ')') ADVANCE(120); + if (lookahead == '*') ADVANCE(105); + if (lookahead == '+') ADVANCE(102); + if (lookahead == '-') ADVANCE(103); + if (lookahead == '/') SKIP(36) + if (lookahead == ':') ADVANCE(39); + if (lookahead == '[') ADVANCE(95); + if (lookahead == '^') ADVANCE(110); + if (lookahead == '|') ADVANCE(108); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(8) + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(93); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(92); END_STATE(); case 9: - if (lookahead == '!') ADVANCE(15); - if (lookahead == '%') ADVANCE(87); - if (lookahead == '&') ADVANCE(78); - if (lookahead == '(') ADVANCE(88); - if (lookahead == ')') ADVANCE(89); - if (lookahead == '*') ADVANCE(74); - if (lookahead == '+') ADVANCE(71); - if (lookahead == ',') ADVANCE(39); - if (lookahead == '-') ADVANCE(73); - if (lookahead == '.') ADVANCE(13); - if (lookahead == '/') ADVANCE(86); - if (lookahead == ':') ADVANCE(14); - if (lookahead == ';') ADVANCE(104); - if (lookahead == '<') ADVANCE(82); - if (lookahead == '=') ADVANCE(96); - if (lookahead == '>') ADVANCE(84); - if (lookahead == '[') ADVANCE(64); - if (lookahead == ']') ADVANCE(65); - if (lookahead == '^') ADVANCE(79); - if (lookahead == '{') ADVANCE(91); - if (lookahead == '|') ADVANCE(77); + if (lookahead == '!') ADVANCE(106); + if (lookahead == '&') ADVANCE(109); + if (lookahead == '(') ADVANCE(119); + if (lookahead == '*') ADVANCE(105); + if (lookahead == '+') ADVANCE(102); + if (lookahead == '-') ADVANCE(104); + if (lookahead == '/') SKIP(34) + if (lookahead == ':') ADVANCE(39); + if (lookahead == '^') ADVANCE(110); + if (lookahead == 'g') ADVANCE(74); + if (lookahead == 's') ADVANCE(89); + if (lookahead == '{') ADVANCE(121); + if (lookahead == '|') ADVANCE(108); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(9) - if (sym_identifier_character_set_1(lookahead)) ADVANCE(61); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(93); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(92); END_STATE(); case 10: - if (lookahead == '*') ADVANCE(12); - if (lookahead == '/') ADVANCE(1); + if (lookahead == '!') ADVANCE(106); + if (lookahead == '&') ADVANCE(109); + if (lookahead == '(') ADVANCE(119); + if (lookahead == '*') ADVANCE(105); + if (lookahead == '+') ADVANCE(102); + if (lookahead == '-') ADVANCE(103); + if (lookahead == '/') SKIP(17) + if (lookahead == ':') ADVANCE(39); + if (lookahead == '^') ADVANCE(110); + if (lookahead == 'f') ADVANCE(86); + if (lookahead == 'g') ADVANCE(74); + if (lookahead == 'i') ADVANCE(78); + if (lookahead == 'r') ADVANCE(75); + if (lookahead == 's') ADVANCE(89); + if (lookahead == '{') ADVANCE(121); + if (lookahead == '|') ADVANCE(108); + if (lookahead == '}') ADVANCE(122); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(10) + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(93); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(92); END_STATE(); case 11: - if (lookahead == '*') ADVANCE(11); - if (lookahead == '/') ADVANCE(106); - if (lookahead != 0) ADVANCE(12); + if (lookahead == '!') ADVANCE(106); + if (lookahead == '&') ADVANCE(109); + if (lookahead == '(') ADVANCE(119); + if (lookahead == '*') ADVANCE(105); + if (lookahead == '+') ADVANCE(102); + if (lookahead == '-') ADVANCE(103); + if (lookahead == '/') SKIP(32) + if (lookahead == ':') ADVANCE(39); + if (lookahead == '^') ADVANCE(110); + if (lookahead == 'g') ADVANCE(74); + if (lookahead == 'i') ADVANCE(84); + if (lookahead == 'r') ADVANCE(75); + if (lookahead == 's') ADVANCE(89); + if (lookahead == '|') ADVANCE(108); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(11) + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(93); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(92); END_STATE(); case 12: - if (lookahead == '*') ADVANCE(11); - if (lookahead != 0) ADVANCE(12); + if (lookahead == '!') ADVANCE(106); + if (lookahead == '&') ADVANCE(109); + if (lookahead == '(') ADVANCE(119); + if (lookahead == '*') ADVANCE(105); + if (lookahead == '+') ADVANCE(102); + if (lookahead == '-') ADVANCE(103); + if (lookahead == '/') SKIP(33) + if (lookahead == ':') ADVANCE(39); + if (lookahead == '^') ADVANCE(110); + if (lookahead == 'g') ADVANCE(74); + if (lookahead == 'r') ADVANCE(75); + if (lookahead == 's') ADVANCE(89); + if (lookahead == '|') ADVANCE(108); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(12) + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(93); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(92); END_STATE(); case 13: - if (lookahead == '.') ADVANCE(90); + if (lookahead == '!') ADVANCE(106); + if (lookahead == '&') ADVANCE(109); + if (lookahead == '(') ADVANCE(119); + if (lookahead == '*') ADVANCE(105); + if (lookahead == '+') ADVANCE(102); + if (lookahead == '-') ADVANCE(103); + if (lookahead == '/') SKIP(35) + if (lookahead == ':') ADVANCE(39); + if (lookahead == '^') ADVANCE(110); + if (lookahead == 'e') ADVANCE(83); + if (lookahead == 'f') ADVANCE(86); + if (lookahead == 'g') ADVANCE(74); + if (lookahead == 'i') ADVANCE(78); + if (lookahead == 'r') ADVANCE(75); + if (lookahead == 's') ADVANCE(89); + if (lookahead == '{') ADVANCE(121); + if (lookahead == '|') ADVANCE(108); + if (lookahead == '}') ADVANCE(122); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(13) + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(93); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(92); END_STATE(); case 14: - if (lookahead == ':') ADVANCE(63); + if (lookahead == '!') ADVANCE(40); + if (lookahead == '%') ADVANCE(118); + if (lookahead == '&') ADVANCE(109); + if (lookahead == '(') ADVANCE(119); + if (lookahead == ')') ADVANCE(120); + if (lookahead == '*') ADVANCE(105); + if (lookahead == '+') ADVANCE(102); + if (lookahead == ',') ADVANCE(70); + if (lookahead == '-') ADVANCE(104); + if (lookahead == '/') ADVANCE(117); + if (lookahead == ':') ADVANCE(69); + if (lookahead == ';') ADVANCE(134); + if (lookahead == '<') ADVANCE(113); + if (lookahead == '=') ADVANCE(126); + if (lookahead == '>') ADVANCE(115); + if (lookahead == '[') ADVANCE(95); + if (lookahead == ']') ADVANCE(96); + if (lookahead == '^') ADVANCE(110); + if (lookahead == '{') ADVANCE(121); + if (lookahead == '|') ADVANCE(108); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(14) + if (sym_identifier_character_set_1(lookahead)) ADVANCE(92); END_STATE(); case 15: - if (lookahead == '=') ADVANCE(81); + if (lookahead == '!') ADVANCE(40); + if (lookahead == '%') ADVANCE(118); + if (lookahead == '&') ADVANCE(109); + if (lookahead == '(') ADVANCE(119); + if (lookahead == ')') ADVANCE(120); + if (lookahead == '*') ADVANCE(105); + if (lookahead == '+') ADVANCE(102); + if (lookahead == ',') ADVANCE(70); + if (lookahead == '-') ADVANCE(104); + if (lookahead == '/') ADVANCE(117); + if (lookahead == ':') ADVANCE(68); + if (lookahead == ';') ADVANCE(134); + if (lookahead == '<') ADVANCE(113); + if (lookahead == '=') ADVANCE(126); + if (lookahead == '>') ADVANCE(115); + if (lookahead == '[') ADVANCE(95); + if (lookahead == ']') ADVANCE(96); + if (lookahead == '^') ADVANCE(110); + if (lookahead == 'i') ADVANCE(53); + if (lookahead == '{') ADVANCE(121); + if (lookahead == '|') ADVANCE(108); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(15) END_STATE(); case 16: - if (lookahead == 'a') ADVANCE(34); + if (lookahead == '!') ADVANCE(40); + if (lookahead == '%') ADVANCE(118); + if (lookahead == '&') ADVANCE(109); + if (lookahead == '(') ADVANCE(119); + if (lookahead == '*') ADVANCE(105); + if (lookahead == '+') ADVANCE(102); + if (lookahead == '-') ADVANCE(103); + if (lookahead == '/') ADVANCE(117); + if (lookahead == ':') ADVANCE(39); + if (lookahead == '<') ADVANCE(113); + if (lookahead == '=') ADVANCE(41); + if (lookahead == '>') ADVANCE(115); + if (lookahead == '[') ADVANCE(95); + if (lookahead == '^') ADVANCE(110); + if (lookahead == 'i') ADVANCE(53); + if (lookahead == '|') ADVANCE(108); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(16) END_STATE(); case 17: - if (lookahead == 'd') ADVANCE(35); + if (lookahead == '*') SKIP(19) + if (lookahead == '/') SKIP(1) END_STATE(); case 18: - if (lookahead == 'e') ADVANCE(28); + if (lookahead == '*') SKIP(18) + if (lookahead == '/') SKIP(10) + if (lookahead != 0) SKIP(19) END_STATE(); case 19: - if (lookahead == 'e') ADVANCE(24); + if (lookahead == '*') SKIP(18) + if (lookahead != 0) SKIP(19) END_STATE(); case 20: - if (lookahead == 'e') ADVANCE(99); + if (lookahead == '*') SKIP(20) + if (lookahead == '/') SKIP(11) + if (lookahead != 0) SKIP(21) END_STATE(); case 21: - if (lookahead == 'e') ADVANCE(66); + if (lookahead == '*') SKIP(20) + if (lookahead != 0) SKIP(21) END_STATE(); case 22: - if (lookahead == 'e') ADVANCE(37); + if (lookahead == '*') SKIP(22) + if (lookahead == '/') SKIP(12) + if (lookahead != 0) SKIP(23) END_STATE(); case 23: - if (lookahead == 'f') ADVANCE(97); - if (lookahead == 'n') ADVANCE(103); + if (lookahead == '*') SKIP(22) + if (lookahead != 0) SKIP(23) END_STATE(); case 24: - if (lookahead == 'g') ADVANCE(93); + if (lookahead == '*') SKIP(24) + if (lookahead == '/') SKIP(9) + if (lookahead != 0) SKIP(25) END_STATE(); case 25: - if (lookahead == 'l') ADVANCE(32); + if (lookahead == '*') SKIP(24) + if (lookahead != 0) SKIP(25) END_STATE(); case 26: - if (lookahead == 'l') ADVANCE(22); + if (lookahead == '*') SKIP(26) + if (lookahead == '/') SKIP(13) + if (lookahead != 0) SKIP(27) END_STATE(); case 27: - if (lookahead == 'n') ADVANCE(103); + if (lookahead == '*') SKIP(26) + if (lookahead != 0) SKIP(27) END_STATE(); case 28: - if (lookahead == 'n') ADVANCE(68); + if (lookahead == '*') SKIP(28) + if (lookahead == '/') SKIP(8) + if (lookahead != 0) SKIP(29) END_STATE(); case 29: - if (lookahead == 'o') ADVANCE(31); + if (lookahead == '*') SKIP(28) + if (lookahead != 0) SKIP(29) END_STATE(); case 30: - if (lookahead == 'o') ADVANCE(17); + if (lookahead == '*') SKIP(30) + if (lookahead == '/') SKIP(38) + if (lookahead != 0) SKIP(31) END_STATE(); case 31: - if (lookahead == 'r') ADVANCE(101); + if (lookahead == '*') SKIP(30) + if (lookahead != 0) SKIP(31) END_STATE(); case 32: - if (lookahead == 's') ADVANCE(20); + if (lookahead == '*') SKIP(21) + if (lookahead == '/') SKIP(2) END_STATE(); case 33: - if (lookahead == 't') ADVANCE(16); + if (lookahead == '*') SKIP(23) + if (lookahead == '/') SKIP(3) END_STATE(); case 34: - if (lookahead == 't') ADVANCE(21); + if (lookahead == '*') SKIP(25) + if (lookahead == '/') SKIP(4) END_STATE(); case 35: - if (lookahead == 'u') ADVANCE(26); + if (lookahead == '*') SKIP(27) + if (lookahead == '/') SKIP(5) END_STATE(); case 36: - ACCEPT_TOKEN(ts_builtin_sym_end); + if (lookahead == '*') SKIP(29) + if (lookahead == '/') SKIP(6) END_STATE(); case 37: - ACCEPT_TOKEN(anon_sym_module); + if (lookahead == '*') SKIP(31) + if (lookahead == '/') SKIP(7) END_STATE(); case 38: - ACCEPT_TOKEN(anon_sym_COLON); + if (lookahead == '/') SKIP(37) + if (lookahead == ':') ADVANCE(68); + if (lookahead == '{') ADVANCE(121); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(38) END_STATE(); case 39: - ACCEPT_TOKEN(anon_sym_COMMA); + if (lookahead == ':') ADVANCE(94); END_STATE(); case 40: - ACCEPT_TOKEN(anon_sym_DASH_GT); + if (lookahead == '=') ADVANCE(112); END_STATE(); case 41: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'a') ADVANCE(51); - if (sym_identifier_character_set_2(lookahead)) ADVANCE(61); + if (lookahead == '=') ADVANCE(111); END_STATE(); case 42: - ACCEPT_TOKEN(sym_identifier); if (lookahead == 'a') ADVANCE(60); - if (sym_identifier_character_set_2(lookahead)) ADVANCE(61); END_STATE(); case 43: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(54); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); + if (lookahead == 'd') ADVANCE(61); END_STATE(); case 44: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(48); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); + if (lookahead == 'e') ADVANCE(54); END_STATE(); case 45: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(67); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); + if (lookahead == 'e') ADVANCE(50); END_STATE(); case 46: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(100); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); + if (lookahead == 'e') ADVANCE(129); END_STATE(); case 47: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'f') ADVANCE(98); - if (lookahead == 'n') ADVANCE(49); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); + if (lookahead == 'e') ADVANCE(97); END_STATE(); case 48: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'g') ADVANCE(94); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); + if (lookahead == 'e') ADVANCE(67); END_STATE(); case 49: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'i') ADVANCE(59); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); + if (lookahead == 'f') ADVANCE(127); + if (lookahead == 'n') ADVANCE(133); END_STATE(); case 50: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'i') ADVANCE(41); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); + if (lookahead == 'g') ADVANCE(123); END_STATE(); case 51: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'l') ADVANCE(95); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); + if (lookahead == 'l') ADVANCE(58); END_STATE(); case 52: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'l') ADVANCE(57); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); + if (lookahead == 'l') ADVANCE(48); END_STATE(); case 53: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'n') ADVANCE(49); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); + if (lookahead == 'n') ADVANCE(133); END_STATE(); case 54: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'n') ADVANCE(69); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); + if (lookahead == 'n') ADVANCE(99); END_STATE(); case 55: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'o') ADVANCE(56); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); + if (lookahead == 'o') ADVANCE(57); END_STATE(); case 56: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'r') ADVANCE(102); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); + if (lookahead == 'o') ADVANCE(43); END_STATE(); case 57: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 's') ADVANCE(46); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); + if (lookahead == 'r') ADVANCE(131); END_STATE(); case 58: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 't') ADVANCE(42); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); + if (lookahead == 's') ADVANCE(46); END_STATE(); case 59: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 't') ADVANCE(50); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); + if (lookahead == 't') ADVANCE(42); END_STATE(); case 60: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 't') ADVANCE(45); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); + if (lookahead == 't') ADVANCE(47); END_STATE(); case 61: - ACCEPT_TOKEN(sym_identifier); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); + if (lookahead == 'u') ADVANCE(52); END_STATE(); case 62: - ACCEPT_TOKEN(sym_number); - if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(62); + if (eof) ADVANCE(66); + if (lookahead == '\n') SKIP(0) + if (lookahead != 0) SKIP(62) END_STATE(); case 63: - ACCEPT_TOKEN(anon_sym_COLON_COLON); + if (eof) ADVANCE(66); + if (lookahead == '*') SKIP(65) + if (lookahead == '/') SKIP(62) END_STATE(); case 64: - ACCEPT_TOKEN(anon_sym_LBRACK); + if (eof) ADVANCE(66); + if (lookahead == '*') SKIP(64) + if (lookahead == '/') SKIP(0) + if (lookahead != 0) SKIP(65) END_STATE(); case 65: - ACCEPT_TOKEN(anon_sym_RBRACK); + if (eof) ADVANCE(66); + if (lookahead == '*') SKIP(64) + if (lookahead != 0) SKIP(65) END_STATE(); case 66: - ACCEPT_TOKEN(anon_sym_state); + ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); case 67: - ACCEPT_TOKEN(anon_sym_state); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); + ACCEPT_TOKEN(anon_sym_module); END_STATE(); case 68: - ACCEPT_TOKEN(anon_sym_gen); + ACCEPT_TOKEN(anon_sym_COLON); END_STATE(); case 69: - ACCEPT_TOKEN(anon_sym_gen); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); + ACCEPT_TOKEN(anon_sym_COLON); + if (lookahead == ':') ADVANCE(94); END_STATE(); case 70: - ACCEPT_TOKEN(anon_sym_SQUOTE); + ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); case 71: - ACCEPT_TOKEN(anon_sym_PLUS); + ACCEPT_TOKEN(anon_sym_DASH_GT); END_STATE(); case 72: - ACCEPT_TOKEN(anon_sym_DASH); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(82); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(92); END_STATE(); case 73: - ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '>') ADVANCE(40); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(91); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(92); END_STATE(); case 74: - ACCEPT_TOKEN(anon_sym_STAR); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(85); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); END_STATE(); case 75: - ACCEPT_TOKEN(anon_sym_BANG); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(79); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); END_STATE(); case 76: - ACCEPT_TOKEN(anon_sym_BANG); - if (lookahead == '=') ADVANCE(81); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(98); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); END_STATE(); case 77: - ACCEPT_TOKEN(anon_sym_PIPE); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(130); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); END_STATE(); case 78: - ACCEPT_TOKEN(anon_sym_AMP); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'f') ADVANCE(128); + if (lookahead == 'n') ADVANCE(80); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); END_STATE(); case 79: - ACCEPT_TOKEN(anon_sym_CARET); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'g') ADVANCE(124); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); END_STATE(); case 80: - ACCEPT_TOKEN(anon_sym_EQ_EQ); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'i') ADVANCE(90); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); END_STATE(); case 81: - ACCEPT_TOKEN(anon_sym_BANG_EQ); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'i') ADVANCE(72); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); END_STATE(); case 82: - ACCEPT_TOKEN(anon_sym_LT); - if (lookahead == '=') ADVANCE(83); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'l') ADVANCE(125); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); END_STATE(); case 83: - ACCEPT_TOKEN(anon_sym_LT_EQ); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'l') ADVANCE(88); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); END_STATE(); case 84: - ACCEPT_TOKEN(anon_sym_GT); - if (lookahead == '=') ADVANCE(85); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'n') ADVANCE(80); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); END_STATE(); case 85: - ACCEPT_TOKEN(anon_sym_GT_EQ); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'n') ADVANCE(100); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); END_STATE(); case 86: - ACCEPT_TOKEN(anon_sym_SLASH); - if (lookahead == '*') ADVANCE(12); - if (lookahead == '/') ADVANCE(1); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'o') ADVANCE(87); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); END_STATE(); case 87: - ACCEPT_TOKEN(anon_sym_PERCENT); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'r') ADVANCE(132); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); END_STATE(); case 88: - ACCEPT_TOKEN(anon_sym_LPAREN); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 's') ADVANCE(77); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); END_STATE(); case 89: - ACCEPT_TOKEN(anon_sym_RPAREN); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 't') ADVANCE(73); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); END_STATE(); case 90: - ACCEPT_TOKEN(anon_sym_DOT_DOT); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 't') ADVANCE(81); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); END_STATE(); case 91: - ACCEPT_TOKEN(anon_sym_LBRACE); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 't') ADVANCE(76); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); END_STATE(); case 92: - ACCEPT_TOKEN(anon_sym_RBRACE); + ACCEPT_TOKEN(sym_identifier); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); END_STATE(); case 93: - ACCEPT_TOKEN(anon_sym_reg); + ACCEPT_TOKEN(sym_number); + if (('0' <= lookahead && lookahead <= '9') || + lookahead == '_') ADVANCE(93); END_STATE(); case 94: - ACCEPT_TOKEN(anon_sym_reg); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); + ACCEPT_TOKEN(anon_sym_COLON_COLON); END_STATE(); case 95: - ACCEPT_TOKEN(anon_sym_initial); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); + ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); case 96: - ACCEPT_TOKEN(anon_sym_EQ); - if (lookahead == '=') ADVANCE(80); + ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); case 97: - ACCEPT_TOKEN(anon_sym_if); + ACCEPT_TOKEN(anon_sym_state); END_STATE(); case 98: - ACCEPT_TOKEN(anon_sym_if); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); + ACCEPT_TOKEN(anon_sym_state); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); END_STATE(); case 99: - ACCEPT_TOKEN(anon_sym_else); + ACCEPT_TOKEN(anon_sym_gen); END_STATE(); case 100: - ACCEPT_TOKEN(anon_sym_else); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); + ACCEPT_TOKEN(anon_sym_gen); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); END_STATE(); case 101: - ACCEPT_TOKEN(anon_sym_for); + ACCEPT_TOKEN(anon_sym_SQUOTE); END_STATE(); case 102: - ACCEPT_TOKEN(anon_sym_for); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(61); + ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); case 103: - ACCEPT_TOKEN(anon_sym_in); + ACCEPT_TOKEN(anon_sym_DASH); END_STATE(); case 104: - ACCEPT_TOKEN(anon_sym_SEMI); + ACCEPT_TOKEN(anon_sym_DASH); + if (lookahead == '>') ADVANCE(71); END_STATE(); case 105: - ACCEPT_TOKEN(sym_single_line_comment); + ACCEPT_TOKEN(anon_sym_STAR); END_STATE(); case 106: - ACCEPT_TOKEN(sym_multi_line_comment); + ACCEPT_TOKEN(anon_sym_BANG); + END_STATE(); + case 107: + ACCEPT_TOKEN(anon_sym_BANG); + if (lookahead == '=') ADVANCE(112); + END_STATE(); + case 108: + ACCEPT_TOKEN(anon_sym_PIPE); + END_STATE(); + case 109: + ACCEPT_TOKEN(anon_sym_AMP); + END_STATE(); + case 110: + ACCEPT_TOKEN(anon_sym_CARET); + END_STATE(); + case 111: + ACCEPT_TOKEN(anon_sym_EQ_EQ); + END_STATE(); + case 112: + ACCEPT_TOKEN(anon_sym_BANG_EQ); + END_STATE(); + case 113: + ACCEPT_TOKEN(anon_sym_LT); + if (lookahead == '=') ADVANCE(114); + END_STATE(); + case 114: + ACCEPT_TOKEN(anon_sym_LT_EQ); + END_STATE(); + case 115: + ACCEPT_TOKEN(anon_sym_GT); + if (lookahead == '=') ADVANCE(116); + END_STATE(); + case 116: + ACCEPT_TOKEN(anon_sym_GT_EQ); + END_STATE(); + case 117: + ACCEPT_TOKEN(anon_sym_SLASH); + END_STATE(); + case 118: + ACCEPT_TOKEN(anon_sym_PERCENT); + END_STATE(); + case 119: + ACCEPT_TOKEN(anon_sym_LPAREN); + END_STATE(); + case 120: + ACCEPT_TOKEN(anon_sym_RPAREN); + END_STATE(); + case 121: + ACCEPT_TOKEN(anon_sym_LBRACE); + END_STATE(); + case 122: + ACCEPT_TOKEN(anon_sym_RBRACE); + END_STATE(); + case 123: + ACCEPT_TOKEN(anon_sym_reg); + END_STATE(); + case 124: + ACCEPT_TOKEN(anon_sym_reg); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + END_STATE(); + case 125: + ACCEPT_TOKEN(anon_sym_initial); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + END_STATE(); + case 126: + ACCEPT_TOKEN(anon_sym_EQ); + if (lookahead == '=') ADVANCE(111); + END_STATE(); + case 127: + ACCEPT_TOKEN(anon_sym_if); + END_STATE(); + case 128: + ACCEPT_TOKEN(anon_sym_if); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + END_STATE(); + case 129: + ACCEPT_TOKEN(anon_sym_else); + END_STATE(); + case 130: + ACCEPT_TOKEN(anon_sym_else); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + END_STATE(); + case 131: + ACCEPT_TOKEN(anon_sym_for); + END_STATE(); + case 132: + ACCEPT_TOKEN(anon_sym_for); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + END_STATE(); + case 133: + ACCEPT_TOKEN(anon_sym_in); + END_STATE(); + case 134: + ACCEPT_TOKEN(anon_sym_SEMI); END_STATE(); default: return false; @@ -2921,125 +3121,125 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { static const TSLexMode ts_lex_modes[STATE_COUNT] = { [0] = {.lex_state = 0}, [1] = {.lex_state = 0}, - [2] = {.lex_state = 5}, - [3] = {.lex_state = 5}, - [4] = {.lex_state = 5}, - [5] = {.lex_state = 5}, - [6] = {.lex_state = 5}, - [7] = {.lex_state = 5}, - [8] = {.lex_state = 5}, - [9] = {.lex_state = 9}, - [10] = {.lex_state = 9}, - [11] = {.lex_state = 9}, - [12] = {.lex_state = 9}, - [13] = {.lex_state = 9}, - [14] = {.lex_state = 6}, - [15] = {.lex_state = 9}, - [16] = {.lex_state = 7}, - [17] = {.lex_state = 7}, - [18] = {.lex_state = 8}, - [19] = {.lex_state = 8}, - [20] = {.lex_state = 8}, - [21] = {.lex_state = 8}, - [22] = {.lex_state = 8}, - [23] = {.lex_state = 8}, - [24] = {.lex_state = 8}, - [25] = {.lex_state = 8}, - [26] = {.lex_state = 9}, - [27] = {.lex_state = 3}, + [2] = {.lex_state = 10}, + [3] = {.lex_state = 10}, + [4] = {.lex_state = 10}, + [5] = {.lex_state = 10}, + [6] = {.lex_state = 10}, + [7] = {.lex_state = 10}, + [8] = {.lex_state = 10}, + [9] = {.lex_state = 14}, + [10] = {.lex_state = 11}, + [11] = {.lex_state = 14}, + [12] = {.lex_state = 14}, + [13] = {.lex_state = 14}, + [14] = {.lex_state = 14}, + [15] = {.lex_state = 11}, + [16] = {.lex_state = 14}, + [17] = {.lex_state = 12}, + [18] = {.lex_state = 12}, + [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 = 9}, [29] = {.lex_state = 9}, - [30] = {.lex_state = 9}, - [31] = {.lex_state = 3}, - [32] = {.lex_state = 9}, - [33] = {.lex_state = 4}, - [34] = {.lex_state = 4}, - [35] = {.lex_state = 9}, - [36] = {.lex_state = 4}, - [37] = {.lex_state = 9}, - [38] = {.lex_state = 9}, - [39] = {.lex_state = 9}, - [40] = {.lex_state = 2}, - [41] = {.lex_state = 2}, - [42] = {.lex_state = 8}, - [43] = {.lex_state = 8}, - [44] = {.lex_state = 8}, - [45] = {.lex_state = 5}, - [46] = {.lex_state = 5}, - [47] = {.lex_state = 8}, - [48] = {.lex_state = 5}, - [49] = {.lex_state = 5}, + [30] = {.lex_state = 15}, + [31] = {.lex_state = 15}, + [32] = {.lex_state = 15}, + [33] = {.lex_state = 15}, + [34] = {.lex_state = 14}, + [35] = {.lex_state = 14}, + [36] = {.lex_state = 14}, + [37] = {.lex_state = 13}, + [38] = {.lex_state = 13}, + [39] = {.lex_state = 13}, + [40] = {.lex_state = 14}, + [41] = {.lex_state = 10}, + [42] = {.lex_state = 10}, + [43] = {.lex_state = 10}, + [44] = {.lex_state = 16}, + [45] = {.lex_state = 10}, + [46] = {.lex_state = 16}, + [47] = {.lex_state = 16}, + [48] = {.lex_state = 14}, + [49] = {.lex_state = 16}, [50] = {.lex_state = 8}, - [51] = {.lex_state = 5}, - [52] = {.lex_state = 2}, - [53] = {.lex_state = 2}, - [54] = {.lex_state = 2}, - [55] = {.lex_state = 2}, - [56] = {.lex_state = 2}, - [57] = {.lex_state = 9}, - [58] = {.lex_state = 2}, - [59] = {.lex_state = 2}, - [60] = {.lex_state = 2}, - [61] = {.lex_state = 2}, - [62] = {.lex_state = 2}, - [63] = {.lex_state = 2}, - [64] = {.lex_state = 2}, - [65] = {.lex_state = 2}, - [66] = {.lex_state = 2}, - [67] = {.lex_state = 2}, - [68] = {.lex_state = 2}, - [69] = {.lex_state = 2}, - [70] = {.lex_state = 2}, - [71] = {.lex_state = 2}, - [72] = {.lex_state = 2}, - [73] = {.lex_state = 2}, - [74] = {.lex_state = 9}, - [75] = {.lex_state = 2}, - [76] = {.lex_state = 2}, - [77] = {.lex_state = 2}, - [78] = {.lex_state = 2}, + [51] = {.lex_state = 10}, + [52] = {.lex_state = 8}, + [53] = {.lex_state = 16}, + [54] = {.lex_state = 8}, + [55] = {.lex_state = 8}, + [56] = {.lex_state = 14}, + [57] = {.lex_state = 8}, + [58] = {.lex_state = 8}, + [59] = {.lex_state = 8}, + [60] = {.lex_state = 8}, + [61] = {.lex_state = 8}, + [62] = {.lex_state = 8}, + [63] = {.lex_state = 8}, + [64] = {.lex_state = 8}, + [65] = {.lex_state = 8}, + [66] = {.lex_state = 8}, + [67] = {.lex_state = 8}, + [68] = {.lex_state = 8}, + [69] = {.lex_state = 14}, + [70] = {.lex_state = 8}, + [71] = {.lex_state = 14}, + [72] = {.lex_state = 16}, + [73] = {.lex_state = 8}, + [74] = {.lex_state = 14}, + [75] = {.lex_state = 8}, + [76] = {.lex_state = 8}, + [77] = {.lex_state = 8}, + [78] = {.lex_state = 8}, [79] = {.lex_state = 8}, - [80] = {.lex_state = 9}, - [81] = {.lex_state = 9}, - [82] = {.lex_state = 9}, - [83] = {.lex_state = 9}, - [84] = {.lex_state = 8}, - [85] = {.lex_state = 9}, - [86] = {.lex_state = 8}, - [87] = {.lex_state = 8}, - [88] = {.lex_state = 8}, - [89] = {.lex_state = 8}, - [90] = {.lex_state = 8}, - [91] = {.lex_state = 8}, - [92] = {.lex_state = 9}, - [93] = {.lex_state = 9}, - [94] = {.lex_state = 9}, - [95] = {.lex_state = 9}, - [96] = {.lex_state = 9}, - [97] = {.lex_state = 7}, - [98] = {.lex_state = 3}, - [99] = {.lex_state = 3}, - [100] = {.lex_state = 3}, - [101] = {.lex_state = 3}, - [102] = {.lex_state = 3}, - [103] = {.lex_state = 3}, + [80] = {.lex_state = 8}, + [81] = {.lex_state = 8}, + [82] = {.lex_state = 8}, + [83] = {.lex_state = 14}, + [84] = {.lex_state = 15}, + [85] = {.lex_state = 15}, + [86] = {.lex_state = 15}, + [87] = {.lex_state = 15}, + [88] = {.lex_state = 14}, + [89] = {.lex_state = 14}, + [90] = {.lex_state = 14}, + [91] = {.lex_state = 14}, + [92] = {.lex_state = 15}, + [93] = {.lex_state = 15}, + [94] = {.lex_state = 15}, + [95] = {.lex_state = 14}, + [96] = {.lex_state = 15}, + [97] = {.lex_state = 12}, + [98] = {.lex_state = 9}, + [99] = {.lex_state = 9}, + [100] = {.lex_state = 9}, + [101] = {.lex_state = 9}, + [102] = {.lex_state = 9}, + [103] = {.lex_state = 9}, [104] = {.lex_state = 0}, [105] = {.lex_state = 0}, - [106] = {.lex_state = 9}, - [107] = {.lex_state = 9}, - [108] = {.lex_state = 9}, + [106] = {.lex_state = 0}, + [107] = {.lex_state = 8}, + [108] = {.lex_state = 8}, [109] = {.lex_state = 0}, [110] = {.lex_state = 0}, - [111] = {.lex_state = 0}, + [111] = {.lex_state = 8}, [112] = {.lex_state = 0}, [113] = {.lex_state = 0}, - [114] = {.lex_state = 0}, + [114] = {.lex_state = 8}, [115] = {.lex_state = 0}, - [116] = {.lex_state = 0}, + [116] = {.lex_state = 8}, [117] = {.lex_state = 0}, - [118] = {.lex_state = 0}, + [118] = {.lex_state = 8}, [119] = {.lex_state = 0}, - [120] = {.lex_state = 0}, + [120] = {.lex_state = 8}, [121] = {.lex_state = 0}, [122] = {.lex_state = 0}, [123] = {.lex_state = 0}, @@ -3050,35 +3250,48 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [128] = {.lex_state = 0}, [129] = {.lex_state = 0}, [130] = {.lex_state = 0}, - [131] = {.lex_state = 9}, - [132] = {.lex_state = 0}, - [133] = {.lex_state = 0}, + [131] = {.lex_state = 0}, + [132] = {.lex_state = 38}, + [133] = {.lex_state = 8}, [134] = {.lex_state = 0}, [135] = {.lex_state = 0}, - [136] = {.lex_state = 9}, + [136] = {.lex_state = 0}, [137] = {.lex_state = 0}, - [138] = {.lex_state = 9}, - [139] = {.lex_state = 9}, - [140] = {.lex_state = 0}, + [138] = {.lex_state = 0}, + [139] = {.lex_state = 0}, + [140] = {.lex_state = 8}, [141] = {.lex_state = 0}, [142] = {.lex_state = 0}, [143] = {.lex_state = 0}, - [144] = {.lex_state = 0}, - [145] = {.lex_state = 9}, + [144] = {.lex_state = 8}, + [145] = {.lex_state = 0}, [146] = {.lex_state = 0}, [147] = {.lex_state = 0}, - [148] = {.lex_state = 0}, - [149] = {.lex_state = 0}, + [148] = {.lex_state = 8}, + [149] = {.lex_state = 8}, [150] = {.lex_state = 0}, - [151] = {.lex_state = 9}, - [152] = {.lex_state = 9}, - [153] = {.lex_state = 0}, - [154] = {.lex_state = 9}, - [155] = {.lex_state = 9}, + [151] = {.lex_state = 0}, + [152] = {.lex_state = 0}, + [153] = {.lex_state = 8}, + [154] = {.lex_state = 0}, + [155] = {.lex_state = 0}, [156] = {.lex_state = 0}, [157] = {.lex_state = 0}, [158] = {.lex_state = 0}, - [159] = {.lex_state = 9}, + [159] = {.lex_state = 0}, + [160] = {.lex_state = 0}, + [161] = {.lex_state = 0}, + [162] = {.lex_state = 8}, + [163] = {.lex_state = 8}, + [164] = {.lex_state = 8}, + [165] = {.lex_state = 0}, + [166] = {.lex_state = 8}, + [167] = {.lex_state = 8}, + [168] = {.lex_state = 0}, + [169] = {.lex_state = 8}, + [170] = {.lex_state = 8}, + [171] = {.lex_state = 0}, + [172] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -3089,6 +3302,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_COMMA] = ACTIONS(1), [anon_sym_DASH_GT] = ACTIONS(1), [sym_number] = ACTIONS(1), + [anon_sym_COLON_COLON] = ACTIONS(1), [anon_sym_LBRACK] = ACTIONS(1), [anon_sym_RBRACK] = ACTIONS(1), [anon_sym_state] = ACTIONS(1), @@ -3107,11 +3321,9 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_LT_EQ] = ACTIONS(1), [anon_sym_GT] = ACTIONS(1), [anon_sym_GT_EQ] = ACTIONS(1), - [anon_sym_SLASH] = ACTIONS(1), [anon_sym_PERCENT] = ACTIONS(1), [anon_sym_LPAREN] = ACTIONS(1), [anon_sym_RPAREN] = ACTIONS(1), - [anon_sym_DOT_DOT] = ACTIONS(1), [anon_sym_LBRACE] = ACTIONS(1), [anon_sym_RBRACE] = ACTIONS(1), [anon_sym_reg] = ACTIONS(1), @@ -3121,503 +3333,513 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_for] = ACTIONS(1), [anon_sym_in] = ACTIONS(1), [anon_sym_SEMI] = ACTIONS(1), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(156), - [sym_module] = STATE(111), - [aux_sym_source_file_repeat1] = STATE(111), - [ts_builtin_sym_end] = ACTIONS(5), - [anon_sym_module] = ACTIONS(7), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), + [sym_source_file] = STATE(168), + [sym_module] = STATE(129), + [aux_sym_source_file_repeat1] = STATE(129), + [ts_builtin_sym_end] = ACTIONS(3), + [anon_sym_module] = ACTIONS(5), }, [2] = { - [sym_global_identifier] = STATE(38), - [sym__maybe_global_identifier] = STATE(18), - [sym_array_type] = STATE(136), - [sym__type] = STATE(136), - [sym_declaration] = STATE(117), - [sym_unary_op] = STATE(39), - [sym_binary_op] = STATE(39), - [sym_array_op] = STATE(39), - [sym_func_call] = STATE(39), - [sym__expression] = STATE(39), - [sym_block] = STATE(6), - [sym__assign_left_side] = STATE(158), - [sym_decl_assign_statement] = STATE(157), - [sym_decl_statement] = STATE(157), - [sym_expression_statement] = STATE(157), - [sym_if_statement] = STATE(6), - [sym_for_statement] = STATE(6), - [sym__statement] = STATE(6), - [aux_sym_block_repeat1] = STATE(6), - [aux_sym__assign_left_side_repeat1] = STATE(16), - [sym_identifier] = ACTIONS(9), - [sym_number] = ACTIONS(11), - [anon_sym_COLON_COLON] = ACTIONS(13), - [anon_sym_state] = ACTIONS(15), - [anon_sym_gen] = ACTIONS(15), - [anon_sym_PLUS] = ACTIONS(17), - [anon_sym_DASH] = ACTIONS(17), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_BANG] = ACTIONS(17), - [anon_sym_PIPE] = ACTIONS(17), - [anon_sym_AMP] = ACTIONS(17), - [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [anon_sym_LBRACE] = ACTIONS(21), - [anon_sym_RBRACE] = ACTIONS(23), - [anon_sym_reg] = ACTIONS(25), - [anon_sym_initial] = ACTIONS(27), - [anon_sym_if] = ACTIONS(29), - [anon_sym_for] = ACTIONS(31), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), + [sym_global_identifier] = STATE(34), + [sym__maybe_global_identifier] = STATE(19), + [sym_array_type] = STATE(144), + [sym__type] = STATE(144), + [sym_declaration] = STATE(122), + [sym_unary_op] = STATE(40), + [sym_binary_op] = STATE(40), + [sym_array_op] = STATE(40), + [sym_func_call] = STATE(40), + [sym__expression] = STATE(40), + [sym_block] = STATE(8), + [sym__assign_left_side] = STATE(171), + [sym_decl_assign_statement] = STATE(165), + [sym_decl_statement] = STATE(165), + [sym_expression_statement] = STATE(165), + [sym_if_statement] = STATE(8), + [sym_for_statement] = STATE(8), + [sym__statement] = STATE(8), + [aux_sym_block_repeat1] = STATE(8), + [aux_sym__assign_left_side_repeat1] = STATE(18), + [sym_identifier] = ACTIONS(7), + [sym_number] = ACTIONS(9), + [anon_sym_COLON_COLON] = ACTIONS(11), + [anon_sym_state] = ACTIONS(13), + [anon_sym_gen] = ACTIONS(13), + [anon_sym_PLUS] = ACTIONS(15), + [anon_sym_DASH] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(15), + [anon_sym_BANG] = ACTIONS(15), + [anon_sym_PIPE] = ACTIONS(15), + [anon_sym_AMP] = ACTIONS(15), + [anon_sym_CARET] = ACTIONS(15), + [anon_sym_LPAREN] = ACTIONS(17), + [anon_sym_LBRACE] = ACTIONS(19), + [anon_sym_RBRACE] = ACTIONS(21), + [anon_sym_reg] = ACTIONS(23), + [anon_sym_initial] = ACTIONS(25), + [anon_sym_if] = ACTIONS(27), + [anon_sym_for] = ACTIONS(29), }, [3] = { - [sym_global_identifier] = STATE(38), - [sym__maybe_global_identifier] = STATE(18), - [sym_array_type] = STATE(136), - [sym__type] = STATE(136), - [sym_declaration] = STATE(117), - [sym_unary_op] = STATE(39), - [sym_binary_op] = STATE(39), - [sym_array_op] = STATE(39), - [sym_func_call] = STATE(39), - [sym__expression] = STATE(39), + [sym_global_identifier] = STATE(34), + [sym__maybe_global_identifier] = STATE(19), + [sym_array_type] = STATE(144), + [sym__type] = STATE(144), + [sym_declaration] = STATE(122), + [sym_unary_op] = STATE(40), + [sym_binary_op] = STATE(40), + [sym_array_op] = STATE(40), + [sym_func_call] = STATE(40), + [sym__expression] = STATE(40), [sym_block] = STATE(2), - [sym__assign_left_side] = STATE(158), - [sym_decl_assign_statement] = STATE(157), - [sym_decl_statement] = STATE(157), - [sym_expression_statement] = STATE(157), + [sym__assign_left_side] = STATE(171), + [sym_decl_assign_statement] = STATE(165), + [sym_decl_statement] = STATE(165), + [sym_expression_statement] = STATE(165), [sym_if_statement] = STATE(2), [sym_for_statement] = STATE(2), [sym__statement] = STATE(2), [aux_sym_block_repeat1] = STATE(2), - [aux_sym__assign_left_side_repeat1] = STATE(16), - [sym_identifier] = ACTIONS(9), - [sym_number] = ACTIONS(11), - [anon_sym_COLON_COLON] = ACTIONS(13), - [anon_sym_state] = ACTIONS(15), - [anon_sym_gen] = ACTIONS(15), - [anon_sym_PLUS] = ACTIONS(17), - [anon_sym_DASH] = ACTIONS(17), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_BANG] = ACTIONS(17), - [anon_sym_PIPE] = ACTIONS(17), - [anon_sym_AMP] = ACTIONS(17), - [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [anon_sym_LBRACE] = ACTIONS(21), - [anon_sym_RBRACE] = ACTIONS(33), - [anon_sym_reg] = ACTIONS(25), - [anon_sym_initial] = ACTIONS(27), - [anon_sym_if] = ACTIONS(29), - [anon_sym_for] = ACTIONS(31), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), + [aux_sym__assign_left_side_repeat1] = STATE(18), + [sym_identifier] = ACTIONS(7), + [sym_number] = ACTIONS(9), + [anon_sym_COLON_COLON] = ACTIONS(11), + [anon_sym_state] = ACTIONS(13), + [anon_sym_gen] = ACTIONS(13), + [anon_sym_PLUS] = ACTIONS(15), + [anon_sym_DASH] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(15), + [anon_sym_BANG] = ACTIONS(15), + [anon_sym_PIPE] = ACTIONS(15), + [anon_sym_AMP] = ACTIONS(15), + [anon_sym_CARET] = ACTIONS(15), + [anon_sym_LPAREN] = ACTIONS(17), + [anon_sym_LBRACE] = ACTIONS(19), + [anon_sym_RBRACE] = ACTIONS(31), + [anon_sym_reg] = ACTIONS(23), + [anon_sym_initial] = ACTIONS(25), + [anon_sym_if] = ACTIONS(27), + [anon_sym_for] = ACTIONS(29), }, [4] = { - [sym_global_identifier] = STATE(38), - [sym__maybe_global_identifier] = STATE(18), - [sym_array_type] = STATE(136), - [sym__type] = STATE(136), - [sym_declaration] = STATE(117), - [sym_unary_op] = STATE(39), - [sym_binary_op] = STATE(39), - [sym_array_op] = STATE(39), - [sym_func_call] = STATE(39), - [sym__expression] = STATE(39), - [sym_block] = STATE(6), - [sym__assign_left_side] = STATE(158), - [sym_decl_assign_statement] = STATE(157), - [sym_decl_statement] = STATE(157), - [sym_expression_statement] = STATE(157), - [sym_if_statement] = STATE(6), - [sym_for_statement] = STATE(6), - [sym__statement] = STATE(6), - [aux_sym_block_repeat1] = STATE(6), - [aux_sym__assign_left_side_repeat1] = STATE(16), - [sym_identifier] = ACTIONS(9), - [sym_number] = ACTIONS(11), - [anon_sym_COLON_COLON] = ACTIONS(13), - [anon_sym_state] = ACTIONS(15), - [anon_sym_gen] = ACTIONS(15), - [anon_sym_PLUS] = ACTIONS(17), - [anon_sym_DASH] = ACTIONS(17), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_BANG] = ACTIONS(17), - [anon_sym_PIPE] = ACTIONS(17), - [anon_sym_AMP] = ACTIONS(17), - [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [anon_sym_LBRACE] = ACTIONS(21), - [anon_sym_RBRACE] = ACTIONS(35), - [anon_sym_reg] = ACTIONS(25), - [anon_sym_initial] = ACTIONS(27), - [anon_sym_if] = ACTIONS(29), - [anon_sym_for] = ACTIONS(31), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), + [sym_global_identifier] = STATE(34), + [sym__maybe_global_identifier] = STATE(19), + [sym_array_type] = STATE(144), + [sym__type] = STATE(144), + [sym_declaration] = STATE(122), + [sym_unary_op] = STATE(40), + [sym_binary_op] = STATE(40), + [sym_array_op] = STATE(40), + [sym_func_call] = STATE(40), + [sym__expression] = STATE(40), + [sym_block] = STATE(8), + [sym__assign_left_side] = STATE(171), + [sym_decl_assign_statement] = STATE(165), + [sym_decl_statement] = STATE(165), + [sym_expression_statement] = STATE(165), + [sym_if_statement] = STATE(8), + [sym_for_statement] = STATE(8), + [sym__statement] = STATE(8), + [aux_sym_block_repeat1] = STATE(8), + [aux_sym__assign_left_side_repeat1] = STATE(18), + [sym_identifier] = ACTIONS(7), + [sym_number] = ACTIONS(9), + [anon_sym_COLON_COLON] = ACTIONS(11), + [anon_sym_state] = ACTIONS(13), + [anon_sym_gen] = ACTIONS(13), + [anon_sym_PLUS] = ACTIONS(15), + [anon_sym_DASH] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(15), + [anon_sym_BANG] = ACTIONS(15), + [anon_sym_PIPE] = ACTIONS(15), + [anon_sym_AMP] = ACTIONS(15), + [anon_sym_CARET] = ACTIONS(15), + [anon_sym_LPAREN] = ACTIONS(17), + [anon_sym_LBRACE] = ACTIONS(19), + [anon_sym_RBRACE] = ACTIONS(33), + [anon_sym_reg] = ACTIONS(23), + [anon_sym_initial] = ACTIONS(25), + [anon_sym_if] = ACTIONS(27), + [anon_sym_for] = ACTIONS(29), }, [5] = { - [sym_global_identifier] = STATE(38), - [sym__maybe_global_identifier] = STATE(18), - [sym_array_type] = STATE(136), - [sym__type] = STATE(136), - [sym_declaration] = STATE(117), - [sym_unary_op] = STATE(39), - [sym_binary_op] = STATE(39), - [sym_array_op] = STATE(39), - [sym_func_call] = STATE(39), - [sym__expression] = STATE(39), + [sym_global_identifier] = STATE(34), + [sym__maybe_global_identifier] = STATE(19), + [sym_array_type] = STATE(144), + [sym__type] = STATE(144), + [sym_declaration] = STATE(122), + [sym_unary_op] = STATE(40), + [sym_binary_op] = STATE(40), + [sym_array_op] = STATE(40), + [sym_func_call] = STATE(40), + [sym__expression] = STATE(40), [sym_block] = STATE(4), - [sym__assign_left_side] = STATE(158), - [sym_decl_assign_statement] = STATE(157), - [sym_decl_statement] = STATE(157), - [sym_expression_statement] = STATE(157), + [sym__assign_left_side] = STATE(171), + [sym_decl_assign_statement] = STATE(165), + [sym_decl_statement] = STATE(165), + [sym_expression_statement] = STATE(165), [sym_if_statement] = STATE(4), [sym_for_statement] = STATE(4), [sym__statement] = STATE(4), [aux_sym_block_repeat1] = STATE(4), - [aux_sym__assign_left_side_repeat1] = STATE(16), - [sym_identifier] = ACTIONS(9), - [sym_number] = ACTIONS(11), - [anon_sym_COLON_COLON] = ACTIONS(13), - [anon_sym_state] = ACTIONS(15), - [anon_sym_gen] = ACTIONS(15), - [anon_sym_PLUS] = ACTIONS(17), - [anon_sym_DASH] = ACTIONS(17), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_BANG] = ACTIONS(17), - [anon_sym_PIPE] = ACTIONS(17), - [anon_sym_AMP] = ACTIONS(17), - [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [anon_sym_LBRACE] = ACTIONS(21), - [anon_sym_RBRACE] = ACTIONS(37), - [anon_sym_reg] = ACTIONS(25), - [anon_sym_initial] = ACTIONS(27), - [anon_sym_if] = ACTIONS(29), - [anon_sym_for] = ACTIONS(31), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), + [aux_sym__assign_left_side_repeat1] = STATE(18), + [sym_identifier] = ACTIONS(7), + [sym_number] = ACTIONS(9), + [anon_sym_COLON_COLON] = ACTIONS(11), + [anon_sym_state] = ACTIONS(13), + [anon_sym_gen] = ACTIONS(13), + [anon_sym_PLUS] = ACTIONS(15), + [anon_sym_DASH] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(15), + [anon_sym_BANG] = ACTIONS(15), + [anon_sym_PIPE] = ACTIONS(15), + [anon_sym_AMP] = ACTIONS(15), + [anon_sym_CARET] = ACTIONS(15), + [anon_sym_LPAREN] = ACTIONS(17), + [anon_sym_LBRACE] = ACTIONS(19), + [anon_sym_RBRACE] = ACTIONS(35), + [anon_sym_reg] = ACTIONS(23), + [anon_sym_initial] = ACTIONS(25), + [anon_sym_if] = ACTIONS(27), + [anon_sym_for] = ACTIONS(29), }, [6] = { - [sym_global_identifier] = STATE(38), - [sym__maybe_global_identifier] = STATE(18), - [sym_array_type] = STATE(136), - [sym__type] = STATE(136), - [sym_declaration] = STATE(117), - [sym_unary_op] = STATE(39), - [sym_binary_op] = STATE(39), - [sym_array_op] = STATE(39), - [sym_func_call] = STATE(39), - [sym__expression] = STATE(39), - [sym_block] = STATE(6), - [sym__assign_left_side] = STATE(158), - [sym_decl_assign_statement] = STATE(157), - [sym_decl_statement] = STATE(157), - [sym_expression_statement] = STATE(157), - [sym_if_statement] = STATE(6), - [sym_for_statement] = STATE(6), - [sym__statement] = STATE(6), - [aux_sym_block_repeat1] = STATE(6), - [aux_sym__assign_left_side_repeat1] = STATE(16), - [sym_identifier] = ACTIONS(39), - [sym_number] = ACTIONS(42), - [anon_sym_COLON_COLON] = ACTIONS(45), - [anon_sym_state] = ACTIONS(48), - [anon_sym_gen] = ACTIONS(48), - [anon_sym_PLUS] = ACTIONS(51), - [anon_sym_DASH] = ACTIONS(51), - [anon_sym_STAR] = ACTIONS(51), - [anon_sym_BANG] = ACTIONS(51), - [anon_sym_PIPE] = ACTIONS(51), - [anon_sym_AMP] = ACTIONS(51), - [anon_sym_CARET] = ACTIONS(51), - [anon_sym_LPAREN] = ACTIONS(54), - [anon_sym_LBRACE] = ACTIONS(57), - [anon_sym_RBRACE] = ACTIONS(60), - [anon_sym_reg] = ACTIONS(62), - [anon_sym_initial] = ACTIONS(65), - [anon_sym_if] = ACTIONS(68), - [anon_sym_for] = ACTIONS(71), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), + [sym_global_identifier] = STATE(34), + [sym__maybe_global_identifier] = STATE(19), + [sym_array_type] = STATE(144), + [sym__type] = STATE(144), + [sym_declaration] = STATE(122), + [sym_unary_op] = STATE(40), + [sym_binary_op] = STATE(40), + [sym_array_op] = STATE(40), + [sym_func_call] = STATE(40), + [sym__expression] = STATE(40), + [sym_block] = STATE(8), + [sym__assign_left_side] = STATE(171), + [sym_decl_assign_statement] = STATE(165), + [sym_decl_statement] = STATE(165), + [sym_expression_statement] = STATE(165), + [sym_if_statement] = STATE(8), + [sym_for_statement] = STATE(8), + [sym__statement] = STATE(8), + [aux_sym_block_repeat1] = STATE(8), + [aux_sym__assign_left_side_repeat1] = STATE(18), + [sym_identifier] = ACTIONS(7), + [sym_number] = ACTIONS(9), + [anon_sym_COLON_COLON] = ACTIONS(11), + [anon_sym_state] = ACTIONS(13), + [anon_sym_gen] = ACTIONS(13), + [anon_sym_PLUS] = ACTIONS(15), + [anon_sym_DASH] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(15), + [anon_sym_BANG] = ACTIONS(15), + [anon_sym_PIPE] = ACTIONS(15), + [anon_sym_AMP] = ACTIONS(15), + [anon_sym_CARET] = ACTIONS(15), + [anon_sym_LPAREN] = ACTIONS(17), + [anon_sym_LBRACE] = ACTIONS(19), + [anon_sym_RBRACE] = ACTIONS(37), + [anon_sym_reg] = ACTIONS(23), + [anon_sym_initial] = ACTIONS(25), + [anon_sym_if] = ACTIONS(27), + [anon_sym_for] = ACTIONS(29), }, [7] = { - [sym_global_identifier] = STATE(38), - [sym__maybe_global_identifier] = STATE(18), - [sym_array_type] = STATE(136), - [sym__type] = STATE(136), - [sym_declaration] = STATE(117), - [sym_unary_op] = STATE(39), - [sym_binary_op] = STATE(39), - [sym_array_op] = STATE(39), - [sym_func_call] = STATE(39), - [sym__expression] = STATE(39), + [sym_global_identifier] = STATE(34), + [sym__maybe_global_identifier] = STATE(19), + [sym_array_type] = STATE(144), + [sym__type] = STATE(144), + [sym_declaration] = STATE(122), + [sym_unary_op] = STATE(40), + [sym_binary_op] = STATE(40), + [sym_array_op] = STATE(40), + [sym_func_call] = STATE(40), + [sym__expression] = STATE(40), [sym_block] = STATE(6), - [sym__assign_left_side] = STATE(158), - [sym_decl_assign_statement] = STATE(157), - [sym_decl_statement] = STATE(157), - [sym_expression_statement] = STATE(157), + [sym__assign_left_side] = STATE(171), + [sym_decl_assign_statement] = STATE(165), + [sym_decl_statement] = STATE(165), + [sym_expression_statement] = STATE(165), [sym_if_statement] = STATE(6), [sym_for_statement] = STATE(6), [sym__statement] = STATE(6), [aux_sym_block_repeat1] = STATE(6), - [aux_sym__assign_left_side_repeat1] = STATE(16), - [sym_identifier] = ACTIONS(9), - [sym_number] = ACTIONS(11), - [anon_sym_COLON_COLON] = ACTIONS(13), - [anon_sym_state] = ACTIONS(15), - [anon_sym_gen] = ACTIONS(15), - [anon_sym_PLUS] = ACTIONS(17), - [anon_sym_DASH] = ACTIONS(17), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_BANG] = ACTIONS(17), - [anon_sym_PIPE] = ACTIONS(17), - [anon_sym_AMP] = ACTIONS(17), - [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [anon_sym_LBRACE] = ACTIONS(21), - [anon_sym_RBRACE] = ACTIONS(74), - [anon_sym_reg] = ACTIONS(25), - [anon_sym_initial] = ACTIONS(27), - [anon_sym_if] = ACTIONS(29), - [anon_sym_for] = ACTIONS(31), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), + [aux_sym__assign_left_side_repeat1] = STATE(18), + [sym_identifier] = ACTIONS(7), + [sym_number] = ACTIONS(9), + [anon_sym_COLON_COLON] = ACTIONS(11), + [anon_sym_state] = ACTIONS(13), + [anon_sym_gen] = ACTIONS(13), + [anon_sym_PLUS] = ACTIONS(15), + [anon_sym_DASH] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(15), + [anon_sym_BANG] = ACTIONS(15), + [anon_sym_PIPE] = ACTIONS(15), + [anon_sym_AMP] = ACTIONS(15), + [anon_sym_CARET] = ACTIONS(15), + [anon_sym_LPAREN] = ACTIONS(17), + [anon_sym_LBRACE] = ACTIONS(19), + [anon_sym_RBRACE] = ACTIONS(39), + [anon_sym_reg] = ACTIONS(23), + [anon_sym_initial] = ACTIONS(25), + [anon_sym_if] = ACTIONS(27), + [anon_sym_for] = ACTIONS(29), }, [8] = { - [sym_global_identifier] = STATE(38), - [sym__maybe_global_identifier] = STATE(18), - [sym_array_type] = STATE(136), - [sym__type] = STATE(136), - [sym_declaration] = STATE(117), - [sym_unary_op] = STATE(39), - [sym_binary_op] = STATE(39), - [sym_array_op] = STATE(39), - [sym_func_call] = STATE(39), - [sym__expression] = STATE(39), - [sym_block] = STATE(7), - [sym__assign_left_side] = STATE(158), - [sym_decl_assign_statement] = STATE(157), - [sym_decl_statement] = STATE(157), - [sym_expression_statement] = STATE(157), - [sym_if_statement] = STATE(7), - [sym_for_statement] = STATE(7), - [sym__statement] = STATE(7), - [aux_sym_block_repeat1] = STATE(7), - [aux_sym__assign_left_side_repeat1] = STATE(16), - [sym_identifier] = ACTIONS(9), - [sym_number] = ACTIONS(11), - [anon_sym_COLON_COLON] = ACTIONS(13), - [anon_sym_state] = ACTIONS(15), - [anon_sym_gen] = ACTIONS(15), - [anon_sym_PLUS] = ACTIONS(17), - [anon_sym_DASH] = ACTIONS(17), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_BANG] = ACTIONS(17), - [anon_sym_PIPE] = ACTIONS(17), - [anon_sym_AMP] = ACTIONS(17), - [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [anon_sym_LBRACE] = ACTIONS(21), - [anon_sym_RBRACE] = ACTIONS(76), - [anon_sym_reg] = ACTIONS(25), - [anon_sym_initial] = ACTIONS(27), - [anon_sym_if] = ACTIONS(29), - [anon_sym_for] = ACTIONS(31), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), + [sym_global_identifier] = STATE(34), + [sym__maybe_global_identifier] = STATE(19), + [sym_array_type] = STATE(144), + [sym__type] = STATE(144), + [sym_declaration] = STATE(122), + [sym_unary_op] = STATE(40), + [sym_binary_op] = STATE(40), + [sym_array_op] = STATE(40), + [sym_func_call] = STATE(40), + [sym__expression] = STATE(40), + [sym_block] = STATE(8), + [sym__assign_left_side] = STATE(171), + [sym_decl_assign_statement] = STATE(165), + [sym_decl_statement] = STATE(165), + [sym_expression_statement] = STATE(165), + [sym_if_statement] = STATE(8), + [sym_for_statement] = STATE(8), + [sym__statement] = STATE(8), + [aux_sym_block_repeat1] = STATE(8), + [aux_sym__assign_left_side_repeat1] = STATE(18), + [sym_identifier] = ACTIONS(41), + [sym_number] = ACTIONS(44), + [anon_sym_COLON_COLON] = ACTIONS(47), + [anon_sym_state] = ACTIONS(50), + [anon_sym_gen] = ACTIONS(50), + [anon_sym_PLUS] = ACTIONS(53), + [anon_sym_DASH] = ACTIONS(53), + [anon_sym_STAR] = ACTIONS(53), + [anon_sym_BANG] = ACTIONS(53), + [anon_sym_PIPE] = ACTIONS(53), + [anon_sym_AMP] = ACTIONS(53), + [anon_sym_CARET] = ACTIONS(53), + [anon_sym_LPAREN] = ACTIONS(56), + [anon_sym_LBRACE] = ACTIONS(59), + [anon_sym_RBRACE] = ACTIONS(62), + [anon_sym_reg] = ACTIONS(64), + [anon_sym_initial] = ACTIONS(67), + [anon_sym_if] = ACTIONS(70), + [anon_sym_for] = ACTIONS(73), }, }; static const uint16_t ts_small_parse_table[] = { - [0] = 5, - ACTIONS(80), 1, + [0] = 4, + ACTIONS(78), 1, anon_sym_COLON_COLON, + ACTIONS(80), 1, + anon_sym_SLASH, STATE(11), 1, aux_sym_global_identifier_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(82), 5, - anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, - anon_sym_EQ, - ACTIONS(78), 20, + ACTIONS(76), 24, + anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, sym_identifier, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, + anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_DOT_DOT, anon_sym_LBRACE, + anon_sym_EQ, anon_sym_SEMI, - [40] = 5, - ACTIONS(80), 1, + [36] = 15, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(11), 1, anon_sym_COLON_COLON, - STATE(13), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(86), 5, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(23), 1, + anon_sym_reg, + ACTIONS(25), 1, + anon_sym_initial, + ACTIONS(82), 1, + sym_number, + STATE(18), 1, + aux_sym__assign_left_side_repeat1, + STATE(19), 1, + sym__maybe_global_identifier, + STATE(34), 1, + sym_global_identifier, + STATE(137), 1, + sym_declaration, + STATE(142), 1, + sym__assign_left_side, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + STATE(144), 2, + sym_array_type, + sym__type, + STATE(56), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(15), 7, + anon_sym_PLUS, anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [94] = 4, + ACTIONS(78), 1, + anon_sym_COLON_COLON, + ACTIONS(86), 1, anon_sym_SLASH, - anon_sym_EQ, - ACTIONS(84), 20, + STATE(14), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(84), 24, + anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, sym_identifier, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, + anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_DOT_DOT, anon_sym_LBRACE, + anon_sym_EQ, anon_sym_SEMI, - [80] = 5, - ACTIONS(80), 1, + [130] = 4, + ACTIONS(78), 1, anon_sym_COLON_COLON, - STATE(12), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(90), 5, - anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, + ACTIONS(86), 1, anon_sym_SLASH, - anon_sym_EQ, - ACTIONS(88), 20, + STATE(13), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(84), 24, + anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, sym_identifier, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, + anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_DOT_DOT, anon_sym_LBRACE, + anon_sym_EQ, anon_sym_SEMI, - [120] = 5, - ACTIONS(94), 1, + [166] = 4, + ACTIONS(78), 1, anon_sym_COLON_COLON, - STATE(12), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(97), 5, - anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, + ACTIONS(90), 1, anon_sym_SLASH, - anon_sym_EQ, - ACTIONS(92), 20, + STATE(14), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(88), 24, + anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, sym_identifier, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, + anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_DOT_DOT, anon_sym_LBRACE, + anon_sym_EQ, anon_sym_SEMI, - [160] = 5, - ACTIONS(80), 1, + [202] = 4, + ACTIONS(94), 1, anon_sym_COLON_COLON, - STATE(12), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(82), 5, - anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, + ACTIONS(97), 1, anon_sym_SLASH, - anon_sym_EQ, - ACTIONS(78), 20, + STATE(14), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(92), 24, + anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, sym_identifier, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, + anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_DOT_DOT, anon_sym_LBRACE, + anon_sym_EQ, anon_sym_SEMI, - [200] = 15, - ACTIONS(9), 1, + [238] = 14, + ACTIONS(7), 1, sym_identifier, - ACTIONS(13), 1, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(19), 1, + ACTIONS(17), 1, anon_sym_LPAREN, ACTIONS(99), 1, sym_number, @@ -3627,28 +3849,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, STATE(17), 1, aux_sym__assign_left_side_repeat1, - STATE(18), 1, + STATE(19), 1, sym__maybe_global_identifier, - STATE(38), 1, + STATE(34), 1, sym_global_identifier, - STATE(143), 1, + STATE(136), 1, sym_declaration, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(15), 2, + ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(136), 2, + STATE(144), 2, sym_array_type, sym__type, - STATE(81), 5, + STATE(71), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(17), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3656,17 +3875,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [259] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(97), 5, - anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, + [293] = 2, + ACTIONS(97), 1, anon_sym_SLASH, - anon_sym_EQ, - ACTIONS(92), 21, + ACTIONS(92), 25, + anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, sym_identifier, @@ -3674,55 +3887,55 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, + anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_DOT_DOT, anon_sym_LBRACE, + anon_sym_EQ, anon_sym_SEMI, - [294] = 14, - ACTIONS(9), 1, + [324] = 13, + ACTIONS(7), 1, sym_identifier, - ACTIONS(13), 1, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(19), 1, + ACTIONS(17), 1, anon_sym_LPAREN, ACTIONS(105), 1, sym_number, ACTIONS(107), 1, anon_sym_reg, - STATE(18), 1, + STATE(19), 1, sym__maybe_global_identifier, - STATE(38), 1, + STATE(34), 1, sym_global_identifier, STATE(97), 1, aux_sym__assign_left_side_repeat1, - STATE(128), 1, + STATE(131), 1, sym_declaration, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(15), 2, + ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(136), 2, + STATE(144), 2, sym_array_type, sym__type, - STATE(57), 5, + STATE(74), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(17), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3730,41 +3943,38 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [350] = 14, - ACTIONS(9), 1, + [376] = 13, + ACTIONS(7), 1, sym_identifier, - ACTIONS(13), 1, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(19), 1, + ACTIONS(17), 1, anon_sym_LPAREN, ACTIONS(107), 1, anon_sym_reg, ACTIONS(109), 1, sym_number, - STATE(18), 1, + STATE(19), 1, sym__maybe_global_identifier, - STATE(38), 1, + STATE(34), 1, sym_global_identifier, STATE(97), 1, aux_sym__assign_left_side_repeat1, - STATE(148), 1, + STATE(126), 1, sym_declaration, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(15), 2, + ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(136), 2, + STATE(144), 2, sym_array_type, sym__type, - STATE(82), 5, + STATE(48), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(17), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3772,310 +3982,282 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [406] = 4, + [428] = 3, + ACTIONS(113), 1, + anon_sym_SLASH, ACTIONS(115), 1, anon_sym_LPAREN, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(113), 5, - anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, - anon_sym_EQ, - ACTIONS(111), 19, + ACTIONS(111), 23, + anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, + anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_RPAREN, - anon_sym_DOT_DOT, anon_sym_LBRACE, + anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [442] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(119), 5, - anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, + [460] = 2, + ACTIONS(119), 1, anon_sym_SLASH, - anon_sym_EQ, - ACTIONS(117), 19, + ACTIONS(117), 23, + anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, + anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_RPAREN, - anon_sym_DOT_DOT, anon_sym_LBRACE, + anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [475] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(123), 5, - anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, + [489] = 2, + ACTIONS(123), 1, anon_sym_SLASH, - anon_sym_EQ, - ACTIONS(121), 19, + ACTIONS(121), 23, + anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, + anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_RPAREN, - anon_sym_DOT_DOT, anon_sym_LBRACE, + anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [508] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(127), 5, - anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, + [518] = 2, + ACTIONS(127), 1, anon_sym_SLASH, - anon_sym_EQ, - ACTIONS(125), 19, + ACTIONS(125), 23, + anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, + anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_RPAREN, - anon_sym_DOT_DOT, anon_sym_LBRACE, + anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [541] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(131), 5, - anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, + [547] = 2, + ACTIONS(131), 1, anon_sym_SLASH, - anon_sym_EQ, - ACTIONS(129), 19, + ACTIONS(129), 23, + anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, + anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_RPAREN, - anon_sym_DOT_DOT, anon_sym_LBRACE, + anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [574] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(135), 5, - anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, + [576] = 2, + ACTIONS(135), 1, anon_sym_SLASH, - anon_sym_EQ, - ACTIONS(133), 19, + ACTIONS(133), 23, + anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, + anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_RPAREN, - anon_sym_DOT_DOT, anon_sym_LBRACE, + anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [607] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(139), 5, - anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, + [605] = 2, + ACTIONS(139), 1, anon_sym_SLASH, - anon_sym_EQ, - ACTIONS(137), 19, + ACTIONS(137), 23, + anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, + anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_RPAREN, - anon_sym_DOT_DOT, anon_sym_LBRACE, + anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [640] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(143), 5, - anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, + [634] = 2, + ACTIONS(143), 1, anon_sym_SLASH, - anon_sym_EQ, - ACTIONS(141), 19, + ACTIONS(141), 23, + anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_PLUS, + anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_RPAREN, - anon_sym_DOT_DOT, anon_sym_LBRACE, + anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [673] = 5, - ACTIONS(147), 1, + [663] = 6, + ACTIONS(149), 1, + anon_sym_PIPE, + ACTIONS(151), 1, + anon_sym_CARET, + ACTIONS(153), 1, anon_sym_SLASH, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, ACTIONS(145), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(143), 4, - anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - ACTIONS(141), 16, + ACTIONS(117), 16, + anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_PLUS, - anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, anon_sym_RPAREN, - anon_sym_DOT_DOT, anon_sym_LBRACE, + anon_sym_EQ, anon_sym_SEMI, - [709] = 12, - ACTIONS(9), 1, + [699] = 11, + ACTIONS(7), 1, sym_identifier, - ACTIONS(13), 1, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(19), 1, + ACTIONS(17), 1, anon_sym_LPAREN, ACTIONS(109), 1, sym_number, - STATE(18), 1, + STATE(19), 1, sym__maybe_global_identifier, - STATE(38), 1, + STATE(34), 1, sym_global_identifier, - STATE(148), 1, + STATE(126), 1, sym_declaration, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(15), 2, + ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(136), 2, + STATE(144), 2, sym_array_type, sym__type, - STATE(82), 5, + STATE(48), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(17), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4083,93 +4265,108 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [759] = 8, - ACTIONS(147), 1, - anon_sym_SLASH, - ACTIONS(149), 1, + [745] = 11, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(11), 1, + anon_sym_COLON_COLON, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(105), 1, + sym_number, + STATE(19), 1, + sym__maybe_global_identifier, + STATE(34), 1, + sym_global_identifier, + STATE(131), 1, + sym_declaration, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + STATE(144), 2, + sym_array_type, + sym__type, + STATE(74), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(15), 7, anon_sym_PLUS, - ACTIONS(151), 1, anon_sym_DASH, - ACTIONS(153), 1, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, anon_sym_CARET, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(145), 2, + [791] = 3, + ACTIONS(153), 1, + anon_sym_SLASH, + ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(143), 3, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - ACTIONS(141), 14, + ACTIONS(117), 20, + anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_PLUS, + anon_sym_DASH, anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, anon_sym_RPAREN, - anon_sym_DOT_DOT, anon_sym_LBRACE, + anon_sym_EQ, anon_sym_SEMI, - [801] = 9, - ACTIONS(147), 1, - anon_sym_SLASH, - ACTIONS(149), 1, - anon_sym_PLUS, + [821] = 5, ACTIONS(151), 1, - anon_sym_DASH, - ACTIONS(153), 1, anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_PIPE, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, + ACTIONS(153), 1, + anon_sym_SLASH, ACTIONS(145), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(143), 3, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - ACTIONS(141), 13, + ACTIONS(117), 17, + anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, anon_sym_RPAREN, - anon_sym_DOT_DOT, anon_sym_LBRACE, + anon_sym_EQ, anon_sym_SEMI, - [845] = 7, - ACTIONS(147), 1, + [855] = 4, + ACTIONS(153), 1, anon_sym_SLASH, - ACTIONS(149), 1, + ACTIONS(145), 2, anon_sym_PLUS, - ACTIONS(151), 1, anon_sym_DASH, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(145), 2, + ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(143), 3, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - ACTIONS(141), 15, + ACTIONS(117), 18, + anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACK, @@ -4179,91 +4376,157 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_RPAREN, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_SEMI, + [887] = 7, + ACTIONS(149), 1, + anon_sym_PIPE, + ACTIONS(151), 1, + anon_sym_CARET, + ACTIONS(153), 1, + anon_sym_SLASH, + ACTIONS(155), 1, + anon_sym_AMP, + ACTIONS(145), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(147), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(117), 15, + anon_sym_COLON, + anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, anon_sym_RPAREN, - anon_sym_DOT_DOT, anon_sym_LBRACE, + anon_sym_EQ, anon_sym_SEMI, - [885] = 12, - ACTIONS(9), 1, + [925] = 4, + ACTIONS(159), 1, sym_identifier, - ACTIONS(13), 1, - anon_sym_COLON_COLON, - ACTIONS(19), 1, - anon_sym_LPAREN, - ACTIONS(105), 1, - sym_number, - STATE(18), 1, - sym__maybe_global_identifier, - STATE(38), 1, - sym_global_identifier, - STATE(128), 1, - sym_declaration, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(15), 2, - anon_sym_state, - anon_sym_gen, - STATE(136), 2, - sym_array_type, - sym__type, - STATE(57), 5, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym__expression, - ACTIONS(17), 7, + ACTIONS(161), 1, + anon_sym_LBRACK, + ACTIONS(164), 1, + anon_sym_SLASH, + ACTIONS(157), 18, + anon_sym_COMMA, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, - anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [935] = 10, - ACTIONS(147), 1, - anon_sym_SLASH, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_SEMI, + [955] = 9, ACTIONS(149), 1, - anon_sym_PLUS, + anon_sym_PIPE, ACTIONS(151), 1, - anon_sym_DASH, - ACTIONS(153), 1, anon_sym_CARET, + ACTIONS(153), 1, + anon_sym_SLASH, ACTIONS(155), 1, - anon_sym_PIPE, - ACTIONS(157), 1, anon_sym_AMP, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, + ACTIONS(168), 1, + anon_sym_LBRACK, ACTIONS(145), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(143), 3, + ACTIONS(166), 5, + anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_SEMI, + ACTIONS(170), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, anon_sym_LT, + anon_sym_LT_EQ, anon_sym_GT, - anon_sym_EQ, - ACTIONS(141), 12, + anon_sym_GT_EQ, + [994] = 9, + ACTIONS(149), 1, + anon_sym_PIPE, + ACTIONS(151), 1, + anon_sym_CARET, + ACTIONS(153), 1, + anon_sym_SLASH, + ACTIONS(155), 1, + anon_sym_AMP, + ACTIONS(168), 1, + anon_sym_LBRACK, + ACTIONS(145), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(147), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(172), 5, anon_sym_COMMA, anon_sym_DASH_GT, - anon_sym_LBRACK, - anon_sym_RBRACK, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_SEMI, + ACTIONS(170), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, - anon_sym_RPAREN, - anon_sym_DOT_DOT, + [1033] = 3, + ACTIONS(178), 1, + anon_sym_else, + ACTIONS(174), 7, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(176), 12, + sym_number, + anon_sym_COLON_COLON, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, anon_sym_LBRACE, - anon_sym_SEMI, - [981] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(159), 8, + anon_sym_RBRACE, + [1060] = 2, + ACTIONS(180), 8, sym_identifier, anon_sym_state, anon_sym_gen, @@ -4272,7 +4535,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_else, anon_sym_for, - ACTIONS(161), 12, + ACTIONS(182), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -4285,11 +4548,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1010] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(163), 8, + [1085] = 2, + ACTIONS(184), 8, sym_identifier, anon_sym_state, anon_sym_gen, @@ -4298,7 +4558,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_else, anon_sym_for, - ACTIONS(165), 12, + ACTIONS(186), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -4311,49 +4571,40 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1039] = 13, - ACTIONS(147), 1, - anon_sym_SLASH, + [1110] = 12, ACTIONS(149), 1, - anon_sym_PLUS, + anon_sym_PIPE, ACTIONS(151), 1, - anon_sym_DASH, - ACTIONS(153), 1, anon_sym_CARET, + ACTIONS(153), 1, + anon_sym_SLASH, ACTIONS(155), 1, - anon_sym_PIPE, - ACTIONS(157), 1, anon_sym_AMP, - ACTIONS(169), 1, + ACTIONS(168), 1, anon_sym_LBRACK, - ACTIONS(175), 1, + ACTIONS(188), 1, + anon_sym_COMMA, + ACTIONS(190), 1, anon_sym_EQ, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, + ACTIONS(192), 1, + anon_sym_SEMI, + STATE(128), 1, + aux_sym__assign_left_side_repeat2, ACTIONS(145), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(173), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(167), 4, - anon_sym_COMMA, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_SEMI, - ACTIONS(171), 4, + ACTIONS(170), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, - [1088] = 4, - ACTIONS(181), 1, - anon_sym_else, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(177), 7, + [1154] = 2, + ACTIONS(194), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -4361,7 +4612,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(179), 12, + ACTIONS(196), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -4374,57 +4625,59 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1119] = 13, - ACTIONS(147), 1, - anon_sym_SLASH, - ACTIONS(149), 1, + [1178] = 2, + ACTIONS(198), 7, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(200), 12, + sym_number, + anon_sym_COLON_COLON, anon_sym_PLUS, - ACTIONS(151), 1, anon_sym_DASH, - ACTIONS(153), 1, - anon_sym_CARET, - ACTIONS(155), 1, + anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, - ACTIONS(157), 1, anon_sym_AMP, - ACTIONS(169), 1, - anon_sym_LBRACK, - ACTIONS(185), 1, - anon_sym_EQ, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(145), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(173), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(171), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - ACTIONS(183), 4, - anon_sym_COMMA, - anon_sym_DASH_GT, + anon_sym_CARET, + anon_sym_LPAREN, anon_sym_LBRACE, - anon_sym_SEMI, - [1168] = 5, - ACTIONS(189), 1, + anon_sym_RBRACE, + [1202] = 2, + ACTIONS(180), 7, sym_identifier, - ACTIONS(191), 1, - anon_sym_LBRACK, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(194), 4, - anon_sym_LT, - anon_sym_GT, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(182), 12, + sym_number, + anon_sym_COLON_COLON, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1226] = 4, + ACTIONS(80), 1, anon_sym_SLASH, - anon_sym_EQ, - ACTIONS(187), 14, - anon_sym_COMMA, + ACTIONS(202), 1, + anon_sym_COLON_COLON, + STATE(47), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(76), 16, + anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4433,71 +4686,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_SEMI, - [1201] = 14, - ACTIONS(147), 1, - anon_sym_SLASH, - ACTIONS(153), 1, - anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_PIPE, - ACTIONS(157), 1, - anon_sym_AMP, - ACTIONS(169), 1, - anon_sym_LBRACK, - ACTIONS(196), 1, - anon_sym_COMMA, - ACTIONS(198), 1, - anon_sym_EQ, - ACTIONS(200), 1, - anon_sym_SEMI, - STATE(124), 1, - aux_sym__assign_left_side_repeat2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(145), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(149), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(173), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(171), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [1251] = 9, - ACTIONS(13), 1, - anon_sym_COLON_COLON, - ACTIONS(19), 1, - anon_sym_LPAREN, - ACTIONS(202), 1, + anon_sym_in, + [1254] = 2, + ACTIONS(184), 7, sym_identifier, - ACTIONS(204), 1, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(186), 12, sym_number, - ACTIONS(206), 1, - anon_sym_RPAREN, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(74), 5, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym__expression, - ACTIONS(17), 7, + anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4505,50 +4712,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1291] = 9, - ACTIONS(13), 1, - anon_sym_COLON_COLON, - ACTIONS(19), 1, anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1278] = 4, + ACTIONS(90), 1, + anon_sym_SLASH, ACTIONS(202), 1, - sym_identifier, - ACTIONS(208), 1, - sym_number, - STATE(133), 1, - sym_range, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(94), 5, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym__expression, - ACTIONS(17), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [1331] = 5, - ACTIONS(210), 1, anon_sym_COLON_COLON, - STATE(47), 1, + STATE(53), 1, aux_sym_global_identifier_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(82), 3, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, - ACTIONS(78), 14, + ACTIONS(88), 16, anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DASH, @@ -4558,24 +4732,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, anon_sym_in, - [1363] = 5, - ACTIONS(210), 1, + [1306] = 4, + ACTIONS(86), 1, + anon_sym_SLASH, + ACTIONS(202), 1, anon_sym_COLON_COLON, - STATE(44), 1, + STATE(53), 1, aux_sym_global_identifier_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(82), 3, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, - ACTIONS(78), 14, + ACTIONS(84), 16, anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DASH, @@ -4585,24 +4756,52 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, anon_sym_in, - [1395] = 5, - ACTIONS(212), 1, - anon_sym_COLON_COLON, - STATE(44), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(97), 3, + [1334] = 11, + ACTIONS(149), 1, + anon_sym_PIPE, + ACTIONS(151), 1, + anon_sym_CARET, + ACTIONS(153), 1, + anon_sym_SLASH, + ACTIONS(155), 1, + anon_sym_AMP, + ACTIONS(168), 1, + anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_COMMA, + STATE(117), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(145), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(147), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(204), 2, + anon_sym_LBRACE, + anon_sym_EQ, + ACTIONS(170), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, anon_sym_LT, + anon_sym_LT_EQ, anon_sym_GT, + anon_sym_GT_EQ, + [1376] = 4, + ACTIONS(86), 1, anon_sym_SLASH, - ACTIONS(92), 14, + ACTIONS(202), 1, + anon_sym_COLON_COLON, + STATE(46), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(84), 16, anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DASH, @@ -4612,26 +4811,34 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, anon_sym_in, - [1427] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(215), 7, + [1404] = 8, + ACTIONS(11), 1, + anon_sym_COLON_COLON, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(206), 1, sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(217), 12, + ACTIONS(208), 1, sym_number, - anon_sym_COLON_COLON, + STATE(145), 1, + sym_range, + STATE(19), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(84), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4639,14 +4846,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1455] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(163), 7, + [1440] = 2, + ACTIONS(210), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -4654,7 +4855,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(165), 12, + ACTIONS(212), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -4667,19 +4868,42 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1483] = 5, - ACTIONS(210), 1, + [1464] = 8, + ACTIONS(11), 1, anon_sym_COLON_COLON, - STATE(44), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(90), 3, - anon_sym_LT, - anon_sym_GT, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(206), 1, + sym_identifier, + ACTIONS(214), 1, + sym_number, + ACTIONS(216), 1, + anon_sym_RPAREN, + STATE(19), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(69), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(15), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [1500] = 4, + ACTIONS(97), 1, anon_sym_SLASH, - ACTIONS(88), 14, + ACTIONS(218), 1, + anon_sym_COLON_COLON, + STATE(53), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(92), 16, anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DASH, @@ -4689,26 +4913,32 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, anon_sym_in, - [1515] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(159), 7, + [1528] = 7, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(221), 1, sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(161), 12, + ACTIONS(223), 1, sym_number, + ACTIONS(225), 1, anon_sym_COLON_COLON, + STATE(19), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(24), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(227), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4716,24 +4946,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, + [1561] = 7, + ACTIONS(17), 1, anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1543] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(219), 7, + ACTIONS(221), 1, sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(221), 12, - sym_number, + ACTIONS(225), 1, anon_sym_COLON_COLON, + ACTIONS(229), 1, + sym_number, + STATE(19), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(92), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(227), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4741,51 +4972,55 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1571] = 5, - ACTIONS(210), 1, - anon_sym_COLON_COLON, - STATE(43), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(86), 3, - anon_sym_LT, - anon_sym_GT, + [1594] = 11, + ACTIONS(149), 1, + anon_sym_PIPE, + ACTIONS(151), 1, + anon_sym_CARET, + ACTIONS(153), 1, anon_sym_SLASH, - ACTIONS(84), 14, + ACTIONS(155), 1, + anon_sym_AMP, + ACTIONS(168), 1, anon_sym_LBRACK, + ACTIONS(188), 1, + anon_sym_COMMA, + ACTIONS(190), 1, + anon_sym_LBRACE, + STATE(128), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(145), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(147), 2, anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, + anon_sym_PERCENT, + ACTIONS(170), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, - anon_sym_PERCENT, + [1635] = 7, + ACTIONS(17), 1, anon_sym_LPAREN, - anon_sym_in, - [1603] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(223), 7, + ACTIONS(221), 1, sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(225), 12, - sym_number, + ACTIONS(225), 1, anon_sym_COLON_COLON, + ACTIONS(231), 1, + sym_number, + STATE(19), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(85), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(227), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4793,31 +5028,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, + [1668] = 7, + ACTIONS(17), 1, anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1631] = 8, - ACTIONS(13), 1, - anon_sym_COLON_COLON, - ACTIONS(19), 1, - anon_sym_LPAREN, - ACTIONS(202), 1, + ACTIONS(221), 1, sym_identifier, - ACTIONS(227), 1, + ACTIONS(225), 1, + anon_sym_COLON_COLON, + ACTIONS(233), 1, sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(35), 5, + STATE(93), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(17), 7, + ACTIONS(227), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4825,28 +5054,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1668] = 8, - ACTIONS(13), 1, - anon_sym_COLON_COLON, - ACTIONS(19), 1, + [1701] = 7, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(202), 1, + ACTIONS(221), 1, sym_identifier, - ACTIONS(229), 1, + ACTIONS(225), 1, + anon_sym_COLON_COLON, + ACTIONS(235), 1, sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(25), 5, + STATE(94), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(17), 7, + ACTIONS(227), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4854,19 +5080,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1705] = 8, - ACTIONS(19), 1, + [1734] = 7, + ACTIONS(11), 1, + anon_sym_COLON_COLON, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(231), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(233), 1, + ACTIONS(237), 1, sym_number, - ACTIONS(235), 1, - anon_sym_COLON_COLON, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, STATE(90), 5, @@ -4875,7 +5098,7 @@ static const uint16_t ts_small_parse_table[] = { sym_array_op, sym_func_call, sym__expression, - ACTIONS(237), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4883,28 +5106,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1742] = 8, - ACTIONS(13), 1, + [1767] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(19), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(202), 1, + ACTIONS(206), 1, sym_identifier, ACTIONS(239), 1, sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(92), 5, + STATE(30), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(17), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4912,28 +5132,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1779] = 8, - ACTIONS(13), 1, + [1800] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(19), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(202), 1, + ACTIONS(206), 1, sym_identifier, ACTIONS(241), 1, sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(85), 5, + STATE(20), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(17), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4941,62 +5158,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1816] = 13, - ACTIONS(147), 1, - anon_sym_SLASH, - ACTIONS(153), 1, - anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_PIPE, - ACTIONS(157), 1, - anon_sym_AMP, - ACTIONS(169), 1, - anon_sym_LBRACK, - ACTIONS(196), 1, - anon_sym_COMMA, - ACTIONS(243), 1, - anon_sym_EQ, - STATE(121), 1, - aux_sym__assign_left_side_repeat2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(145), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(149), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(173), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(171), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [1863] = 8, - ACTIONS(19), 1, + [1833] = 7, + ACTIONS(11), 1, + anon_sym_COLON_COLON, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(231), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(235), 1, - anon_sym_COLON_COLON, - ACTIONS(245), 1, + ACTIONS(243), 1, sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(89), 5, + STATE(31), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(237), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5004,28 +5184,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1900] = 8, - ACTIONS(13), 1, + [1866] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(19), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(202), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(247), 1, + ACTIONS(245), 1, sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(24), 5, + STATE(27), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(17), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5033,28 +5210,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1937] = 8, - ACTIONS(13), 1, + [1899] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(19), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(202), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(249), 1, + ACTIONS(247), 1, sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(83), 5, + STATE(32), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(17), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5062,28 +5236,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1974] = 8, - ACTIONS(19), 1, + [1932] = 7, + ACTIONS(11), 1, + anon_sym_COLON_COLON, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(231), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(235), 1, - anon_sym_COLON_COLON, - ACTIONS(251), 1, + ACTIONS(249), 1, sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(88), 5, + STATE(33), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(237), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5091,28 +5262,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2011] = 8, - ACTIONS(19), 1, + [1965] = 7, + ACTIONS(11), 1, + anon_sym_COLON_COLON, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(231), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(235), 1, - anon_sym_COLON_COLON, - ACTIONS(253), 1, + ACTIONS(251), 1, sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(87), 5, + STATE(95), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(237), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5120,28 +5288,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2048] = 8, - ACTIONS(13), 1, - anon_sym_COLON_COLON, - ACTIONS(19), 1, + [1998] = 7, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(202), 1, + ACTIONS(221), 1, sym_identifier, - ACTIONS(255), 1, + ACTIONS(225), 1, + anon_sym_COLON_COLON, + ACTIONS(241), 1, sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(93), 5, + STATE(20), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(17), 7, + ACTIONS(227), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5149,28 +5314,55 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2085] = 8, - ACTIONS(13), 1, + [2031] = 11, + ACTIONS(149), 1, + anon_sym_PIPE, + ACTIONS(151), 1, + anon_sym_CARET, + ACTIONS(153), 1, + anon_sym_SLASH, + ACTIONS(155), 1, + anon_sym_AMP, + ACTIONS(168), 1, + anon_sym_LBRACK, + ACTIONS(253), 1, + anon_sym_COMMA, + ACTIONS(255), 1, + anon_sym_RPAREN, + STATE(130), 1, + aux_sym_func_call_repeat1, + ACTIONS(145), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(147), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(170), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [2072] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(19), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(202), 1, + ACTIONS(206), 1, sym_identifier, ACTIONS(257), 1, sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(26), 5, + STATE(88), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(17), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5178,57 +5370,74 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2122] = 8, - ACTIONS(13), 1, + [2105] = 9, + ACTIONS(149), 1, + anon_sym_PIPE, + ACTIONS(151), 1, + anon_sym_CARET, + ACTIONS(153), 1, + anon_sym_SLASH, + ACTIONS(155), 1, + anon_sym_AMP, + ACTIONS(168), 1, + anon_sym_LBRACK, + ACTIONS(145), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(147), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(259), 3, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_EQ, + ACTIONS(170), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [2142] = 2, + ACTIONS(97), 1, + anon_sym_SLASH, + ACTIONS(92), 17, anon_sym_COLON_COLON, - ACTIONS(19), 1, - anon_sym_LPAREN, - ACTIONS(202), 1, - sym_identifier, - ACTIONS(259), 1, - sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(80), 5, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym__expression, - ACTIONS(17), 7, + anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, - anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2159] = 8, - ACTIONS(13), 1, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_in, + [2165] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(19), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(202), 1, + ACTIONS(206), 1, sym_identifier, ACTIONS(261), 1, sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(28), 5, + STATE(89), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(17), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5236,28 +5445,53 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2196] = 8, - ACTIONS(13), 1, + [2198] = 9, + ACTIONS(149), 1, + anon_sym_PIPE, + ACTIONS(151), 1, + anon_sym_CARET, + ACTIONS(153), 1, + anon_sym_SLASH, + ACTIONS(155), 1, + anon_sym_AMP, + ACTIONS(168), 1, + anon_sym_LBRACK, + ACTIONS(145), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(147), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(263), 3, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_EQ, + ACTIONS(170), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [2235] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(19), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(202), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(263), 1, + ACTIONS(223), 1, sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(29), 5, + STATE(24), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(17), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5265,28 +5499,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2233] = 8, - ACTIONS(13), 1, + [2268] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(19), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(202), 1, + ACTIONS(206), 1, sym_identifier, ACTIONS(265), 1, sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(30), 5, + STATE(35), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(17), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5294,28 +5525,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2270] = 8, - ACTIONS(13), 1, + [2301] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(19), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(202), 1, + ACTIONS(206), 1, sym_identifier, ACTIONS(267), 1, sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(32), 5, + STATE(83), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(17), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5323,28 +5551,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2307] = 8, - ACTIONS(13), 1, - anon_sym_COLON_COLON, - ACTIONS(19), 1, + [2334] = 7, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(202), 1, + ACTIONS(221), 1, sym_identifier, + ACTIONS(225), 1, + anon_sym_COLON_COLON, ACTIONS(269), 1, sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(96), 5, + STATE(87), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(17), 7, + ACTIONS(227), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5352,28 +5577,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2344] = 8, - ACTIONS(19), 1, + [2367] = 7, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(229), 1, - sym_number, - ACTIONS(231), 1, + ACTIONS(221), 1, sym_identifier, - ACTIONS(235), 1, + ACTIONS(225), 1, anon_sym_COLON_COLON, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, + ACTIONS(271), 1, + sym_number, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(25), 5, + STATE(96), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(237), 7, + ACTIONS(227), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5381,28 +5603,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2381] = 8, - ACTIONS(19), 1, + [2400] = 7, + ACTIONS(11), 1, + anon_sym_COLON_COLON, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(231), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(235), 1, - anon_sym_COLON_COLON, - ACTIONS(247), 1, + ACTIONS(273), 1, sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(24), 5, + STATE(36), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(237), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5410,19 +5629,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2418] = 8, - ACTIONS(19), 1, + [2433] = 7, + ACTIONS(11), 1, + anon_sym_COLON_COLON, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(231), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(235), 1, - anon_sym_COLON_COLON, - ACTIONS(271), 1, + ACTIONS(275), 1, sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, STATE(91), 5, @@ -5431,7 +5647,7 @@ static const uint16_t ts_small_parse_table[] = { sym_array_op, sym_func_call, sym__expression, - ACTIONS(237), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5439,53 +5655,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2455] = 13, - ACTIONS(147), 1, - anon_sym_SLASH, - ACTIONS(153), 1, - anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_PIPE, - ACTIONS(157), 1, - anon_sym_AMP, - ACTIONS(169), 1, - anon_sym_LBRACK, - ACTIONS(273), 1, - anon_sym_COMMA, - ACTIONS(275), 1, - anon_sym_RPAREN, - STATE(120), 1, - aux_sym_func_call_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(145), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(149), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(173), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(171), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [2502] = 8, - ACTIONS(19), 1, + [2466] = 7, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(231), 1, + ACTIONS(221), 1, sym_identifier, - ACTIONS(235), 1, + ACTIONS(225), 1, anon_sym_COLON_COLON, ACTIONS(277), 1, sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, STATE(86), 5, @@ -5494,7 +5673,7 @@ static const uint16_t ts_small_parse_table[] = { sym_array_op, sym_func_call, sym__expression, - ACTIONS(237), 7, + ACTIONS(227), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5502,627 +5681,361 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2539] = 8, - ACTIONS(13), 1, - anon_sym_COLON_COLON, - ACTIONS(19), 1, - anon_sym_LPAREN, - ACTIONS(202), 1, - sym_identifier, - ACTIONS(279), 1, - sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(37), 5, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym__expression, - ACTIONS(17), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [2576] = 8, - ACTIONS(19), 1, - anon_sym_LPAREN, - ACTIONS(231), 1, - sym_identifier, - ACTIONS(235), 1, - anon_sym_COLON_COLON, - ACTIONS(281), 1, - sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(84), 5, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym__expression, - ACTIONS(237), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [2613] = 8, - ACTIONS(13), 1, - anon_sym_COLON_COLON, - ACTIONS(19), 1, - anon_sym_LPAREN, - ACTIONS(202), 1, - sym_identifier, - ACTIONS(283), 1, - sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(18), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(95), 5, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym__expression, - ACTIONS(17), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, + [2499] = 9, + ACTIONS(149), 1, anon_sym_PIPE, - anon_sym_AMP, + ACTIONS(151), 1, anon_sym_CARET, - [2650] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(97), 3, - anon_sym_LT, - anon_sym_GT, + ACTIONS(153), 1, anon_sym_SLASH, - ACTIONS(92), 15, - anon_sym_COLON_COLON, + ACTIONS(155), 1, + anon_sym_AMP, + ACTIONS(168), 1, anon_sym_LBRACK, + ACTIONS(145), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(147), 2, anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, + anon_sym_PERCENT, + ACTIONS(279), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + ACTIONS(170), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_in, - [2677] = 11, - ACTIONS(147), 1, - anon_sym_SLASH, - ACTIONS(153), 1, + [2535] = 9, + ACTIONS(149), 1, + anon_sym_PIPE, + ACTIONS(151), 1, anon_sym_CARET, + ACTIONS(153), 1, + anon_sym_SLASH, ACTIONS(155), 1, - anon_sym_PIPE, - ACTIONS(157), 1, anon_sym_AMP, - ACTIONS(169), 1, + ACTIONS(168), 1, anon_sym_LBRACK, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, + ACTIONS(281), 1, + anon_sym_COLON, ACTIONS(145), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(149), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(173), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(285), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - ACTIONS(171), 4, + ACTIONS(147), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(170), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, - [2719] = 12, - ACTIONS(147), 1, - anon_sym_SLASH, - ACTIONS(153), 1, - anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_PIPE, - ACTIONS(157), 1, - anon_sym_AMP, - ACTIONS(169), 1, - anon_sym_LBRACK, + [2570] = 4, ACTIONS(287), 1, - anon_sym_COMMA, - ACTIONS(289), 1, - anon_sym_EQ, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(145), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(149), 2, + anon_sym_SLASH, + ACTIONS(283), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(173), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(171), 4, + ACTIONS(285), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(117), 11, + anon_sym_LBRACK, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, - [2763] = 12, - ACTIONS(147), 1, + anon_sym_in, + [2595] = 9, + ACTIONS(168), 1, + anon_sym_LBRACK, + ACTIONS(172), 1, + anon_sym_in, + ACTIONS(287), 1, anon_sym_SLASH, - ACTIONS(153), 1, - anon_sym_CARET, - ACTIONS(155), 1, + ACTIONS(289), 1, anon_sym_PIPE, - ACTIONS(157), 1, - anon_sym_AMP, - ACTIONS(169), 1, - anon_sym_LBRACK, ACTIONS(291), 1, - anon_sym_COMMA, + anon_sym_AMP, ACTIONS(293), 1, - anon_sym_EQ, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(145), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(149), 2, + anon_sym_CARET, + ACTIONS(283), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(173), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(171), 4, + ACTIONS(285), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(295), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, - [2807] = 12, - ACTIONS(147), 1, + [2630] = 9, + ACTIONS(166), 1, + anon_sym_in, + ACTIONS(168), 1, + anon_sym_LBRACK, + ACTIONS(287), 1, anon_sym_SLASH, - ACTIONS(153), 1, - anon_sym_CARET, - ACTIONS(155), 1, + ACTIONS(289), 1, anon_sym_PIPE, - ACTIONS(157), 1, + ACTIONS(291), 1, anon_sym_AMP, - ACTIONS(169), 1, - anon_sym_LBRACK, - ACTIONS(295), 1, - anon_sym_LBRACE, - STATE(36), 1, - sym_block, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(145), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(149), 2, + ACTIONS(293), 1, + anon_sym_CARET, + ACTIONS(283), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(173), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(171), 4, + ACTIONS(285), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(295), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, - [2851] = 11, - ACTIONS(167), 1, - anon_sym_in, - ACTIONS(169), 1, - anon_sym_LBRACK, - ACTIONS(301), 1, + [2665] = 9, + ACTIONS(149), 1, anon_sym_PIPE, - ACTIONS(303), 1, - anon_sym_AMP, - ACTIONS(305), 1, + ACTIONS(151), 1, anon_sym_CARET, - ACTIONS(311), 1, + ACTIONS(153), 1, anon_sym_SLASH, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(297), 2, + ACTIONS(155), 1, + anon_sym_AMP, + ACTIONS(168), 1, + anon_sym_LBRACK, + ACTIONS(297), 1, + anon_sym_RPAREN, + ACTIONS(145), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(299), 2, + ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(309), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(307), 4, + ACTIONS(170), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, - [2892] = 11, - ACTIONS(147), 1, - anon_sym_SLASH, - ACTIONS(153), 1, + [2700] = 9, + ACTIONS(149), 1, + anon_sym_PIPE, + ACTIONS(151), 1, anon_sym_CARET, + ACTIONS(153), 1, + anon_sym_SLASH, ACTIONS(155), 1, - anon_sym_PIPE, - ACTIONS(157), 1, anon_sym_AMP, - ACTIONS(169), 1, + ACTIONS(168), 1, anon_sym_LBRACK, - ACTIONS(313), 1, - anon_sym_RPAREN, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, + ACTIONS(299), 1, + anon_sym_LBRACE, ACTIONS(145), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(149), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(173), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(171), 4, + ACTIONS(147), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(170), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, - [2933] = 11, - ACTIONS(169), 1, - anon_sym_LBRACK, - ACTIONS(183), 1, - anon_sym_in, - ACTIONS(301), 1, + [2735] = 9, + ACTIONS(149), 1, anon_sym_PIPE, - ACTIONS(303), 1, - anon_sym_AMP, - ACTIONS(305), 1, + ACTIONS(151), 1, anon_sym_CARET, - ACTIONS(311), 1, + ACTIONS(153), 1, anon_sym_SLASH, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(297), 2, + ACTIONS(155), 1, + anon_sym_AMP, + ACTIONS(168), 1, + anon_sym_LBRACK, + ACTIONS(301), 1, + anon_sym_RBRACK, + ACTIONS(145), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(299), 2, + ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(309), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(307), 4, + ACTIONS(170), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, - [2974] = 9, - ACTIONS(301), 1, + [2770] = 9, + ACTIONS(149), 1, anon_sym_PIPE, - ACTIONS(303), 1, - anon_sym_AMP, - ACTIONS(305), 1, + ACTIONS(151), 1, anon_sym_CARET, - ACTIONS(311), 1, + ACTIONS(153), 1, anon_sym_SLASH, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(143), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(297), 2, + ACTIONS(155), 1, + anon_sym_AMP, + ACTIONS(168), 1, + anon_sym_LBRACK, + ACTIONS(303), 1, + anon_sym_RBRACK, + ACTIONS(145), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(299), 2, + ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(141), 6, - anon_sym_LBRACK, + ACTIONS(170), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, - anon_sym_in, - [3011] = 6, - ACTIONS(311), 1, + [2805] = 3, + ACTIONS(287), 1, anon_sym_SLASH, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(143), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(297), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(299), 2, + ACTIONS(285), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(141), 9, + ACTIONS(117), 13, anon_sym_LBRACK, + anon_sym_PLUS, + anon_sym_DASH, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, anon_sym_in, - [3042] = 8, - ACTIONS(301), 1, + [2828] = 6, + ACTIONS(287), 1, + anon_sym_SLASH, + ACTIONS(289), 1, anon_sym_PIPE, - ACTIONS(305), 1, + ACTIONS(293), 1, anon_sym_CARET, - ACTIONS(311), 1, - anon_sym_SLASH, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(143), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(297), 2, + ACTIONS(283), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(299), 2, + ACTIONS(285), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(141), 7, + ACTIONS(117), 9, anon_sym_LBRACK, anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, anon_sym_in, - [3077] = 7, - ACTIONS(305), 1, - anon_sym_CARET, - ACTIONS(311), 1, + [2857] = 5, + ACTIONS(287), 1, anon_sym_SLASH, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(143), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(297), 2, + ACTIONS(293), 1, + anon_sym_CARET, + ACTIONS(283), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(299), 2, + ACTIONS(285), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(141), 8, + ACTIONS(117), 10, anon_sym_LBRACK, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, anon_sym_in, - [3110] = 5, - ACTIONS(311), 1, - anon_sym_SLASH, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(143), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(299), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(141), 11, - anon_sym_LBRACK, - anon_sym_PLUS, - anon_sym_DASH, + [2884] = 9, + ACTIONS(149), 1, anon_sym_PIPE, - anon_sym_AMP, + ACTIONS(151), 1, anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_in, - [3139] = 11, - ACTIONS(147), 1, - anon_sym_SLASH, ACTIONS(153), 1, - anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_PIPE, - ACTIONS(157), 1, - anon_sym_AMP, - ACTIONS(169), 1, - anon_sym_LBRACK, - ACTIONS(315), 1, - anon_sym_RBRACK, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(145), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(149), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(173), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(171), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [3180] = 11, - ACTIONS(147), 1, anon_sym_SLASH, - ACTIONS(153), 1, - anon_sym_CARET, ACTIONS(155), 1, - anon_sym_PIPE, - ACTIONS(157), 1, anon_sym_AMP, - ACTIONS(169), 1, + ACTIONS(168), 1, anon_sym_LBRACK, - ACTIONS(317), 1, - anon_sym_RBRACK, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, + ACTIONS(305), 1, + anon_sym_SEMI, ACTIONS(145), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(149), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(173), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(171), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [3221] = 11, - ACTIONS(147), 1, - anon_sym_SLASH, - ACTIONS(153), 1, - anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_PIPE, - ACTIONS(157), 1, - anon_sym_AMP, - ACTIONS(169), 1, - anon_sym_LBRACK, - ACTIONS(319), 1, - anon_sym_DOT_DOT, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(145), 2, + ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(149), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(173), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(171), 4, + ACTIONS(170), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [3262] = 11, - ACTIONS(147), 1, - anon_sym_SLASH, - ACTIONS(153), 1, - anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_PIPE, - ACTIONS(157), 1, - anon_sym_AMP, - ACTIONS(169), 1, - anon_sym_LBRACK, - ACTIONS(321), 1, - anon_sym_LBRACE, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(145), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(149), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(173), 2, anon_sym_LT, - anon_sym_GT, - ACTIONS(171), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, - [3303] = 11, - ACTIONS(147), 1, + [2919] = 7, + ACTIONS(287), 1, anon_sym_SLASH, - ACTIONS(153), 1, - anon_sym_CARET, - ACTIONS(155), 1, + ACTIONS(289), 1, anon_sym_PIPE, - ACTIONS(157), 1, - anon_sym_AMP, - ACTIONS(169), 1, - anon_sym_LBRACK, - ACTIONS(323), 1, - anon_sym_SEMI, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(145), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(149), 2, + ACTIONS(291), 1, + anon_sym_AMP, + ACTIONS(293), 1, + anon_sym_CARET, + ACTIONS(283), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(173), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(171), 4, + ACTIONS(285), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(117), 8, + anon_sym_LBRACK, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + anon_sym_LT, anon_sym_LT_EQ, + anon_sym_GT, anon_sym_GT_EQ, - [3344] = 5, - ACTIONS(329), 1, + anon_sym_in, + [2950] = 4, + ACTIONS(311), 1, anon_sym_reg, STATE(97), 1, aux_sym__assign_left_side_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(325), 3, + ACTIONS(307), 3, sym_identifier, anon_sym_state, anon_sym_gen, - ACTIONS(327), 10, + ACTIONS(309), 10, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -6133,979 +6046,905 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [3372] = 8, - ACTIONS(13), 1, - anon_sym_COLON_COLON, - ACTIONS(332), 1, + [2974] = 8, + ACTIONS(314), 1, + anon_sym_DASH_GT, + ACTIONS(316), 1, sym_identifier, - ACTIONS(334), 1, + ACTIONS(318), 1, + anon_sym_COLON_COLON, + ACTIONS(320), 1, anon_sym_LBRACE, - STATE(113), 1, + STATE(109), 1, sym_declaration, - STATE(141), 1, + STATE(143), 1, sym_block, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(15), 2, + ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(136), 3, + STATE(144), 3, sym_global_identifier, sym_array_type, sym__type, - [3401] = 8, - ACTIONS(13), 1, - anon_sym_COLON_COLON, - ACTIONS(332), 1, + [3002] = 7, + ACTIONS(316), 1, sym_identifier, - ACTIONS(334), 1, + ACTIONS(318), 1, + anon_sym_COLON_COLON, + ACTIONS(320), 1, anon_sym_LBRACE, - STATE(118), 1, + STATE(119), 1, sym_declaration, - STATE(129), 1, + STATE(155), 1, sym_block, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(15), 2, + ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(136), 3, + STATE(144), 3, sym_global_identifier, sym_array_type, sym__type, - [3430] = 8, - ACTIONS(13), 1, - anon_sym_COLON_COLON, - ACTIONS(332), 1, + [3027] = 7, + ACTIONS(316), 1, sym_identifier, - ACTIONS(334), 1, + ACTIONS(318), 1, + anon_sym_COLON_COLON, + ACTIONS(320), 1, anon_sym_LBRACE, - STATE(116), 1, + STATE(112), 1, sym_declaration, - STATE(140), 1, + STATE(156), 1, sym_block, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(15), 2, + ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(136), 3, + STATE(144), 3, sym_global_identifier, sym_array_type, sym__type, - [3459] = 7, - ACTIONS(13), 1, - anon_sym_COLON_COLON, - ACTIONS(332), 1, + [3052] = 7, + ACTIONS(316), 1, sym_identifier, - ACTIONS(336), 1, - anon_sym_DASH_GT, - STATE(126), 1, + ACTIONS(318), 1, + anon_sym_COLON_COLON, + ACTIONS(320), 1, + anon_sym_LBRACE, + STATE(123), 1, sym_declaration, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(15), 2, + STATE(146), 1, + sym_block, + ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(136), 3, + STATE(144), 3, sym_global_identifier, sym_array_type, sym__type, - [3485] = 6, - ACTIONS(13), 1, - anon_sym_COLON_COLON, - ACTIONS(332), 1, + [3077] = 5, + ACTIONS(316), 1, sym_identifier, - STATE(122), 1, + ACTIONS(318), 1, + anon_sym_COLON_COLON, + STATE(134), 1, sym_declaration, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(15), 2, + ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(136), 3, + STATE(144), 3, sym_global_identifier, sym_array_type, sym__type, - [3508] = 6, - ACTIONS(13), 1, - anon_sym_COLON_COLON, - ACTIONS(332), 1, + [3096] = 5, + ACTIONS(316), 1, sym_identifier, - STATE(150), 1, + ACTIONS(318), 1, + anon_sym_COLON_COLON, + STATE(172), 1, sym_declaration, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(338), 2, + ACTIONS(322), 2, anon_sym_state, anon_sym_gen, - STATE(139), 3, + STATE(153), 3, sym_global_identifier, sym_array_type, sym__type, - [3531] = 3, - ACTIONS(342), 1, + [3115] = 2, + ACTIONS(326), 1, anon_sym_SQUOTE, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(340), 5, + ACTIONS(324), 5, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3546] = 3, - ACTIONS(346), 1, + [3126] = 2, + ACTIONS(330), 1, anon_sym_SQUOTE, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(344), 5, + ACTIONS(328), 5, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3561] = 4, - ACTIONS(13), 1, + [3137] = 5, + ACTIONS(320), 1, + anon_sym_LBRACE, + ACTIONS(332), 1, + anon_sym_COMMA, + ACTIONS(334), 1, + anon_sym_DASH_GT, + STATE(113), 1, + aux_sym_module_repeat1, + STATE(139), 1, + sym_block, + [3153] = 3, + ACTIONS(318), 1, anon_sym_COLON_COLON, - ACTIONS(348), 1, + ACTIONS(336), 1, sym_identifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(131), 3, + STATE(140), 3, sym_global_identifier, sym_array_type, sym__type, - [3577] = 4, - ACTIONS(13), 1, + [3165] = 3, + ACTIONS(318), 1, anon_sym_COLON_COLON, - ACTIONS(348), 1, + ACTIONS(336), 1, sym_identifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(138), 3, + STATE(149), 3, sym_global_identifier, sym_array_type, sym__type, - [3593] = 4, - ACTIONS(80), 1, - anon_sym_COLON_COLON, - STATE(13), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(84), 2, - sym_identifier, - anon_sym_LBRACK, - [3608] = 4, - ACTIONS(350), 1, + [3177] = 5, + ACTIONS(320), 1, + anon_sym_LBRACE, + ACTIONS(332), 1, anon_sym_COMMA, - STATE(109), 1, - aux_sym_module_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(353), 2, + ACTIONS(338), 1, anon_sym_DASH_GT, - anon_sym_LBRACE, - [3623] = 4, - ACTIONS(21), 1, - anon_sym_LBRACE, - ACTIONS(355), 1, - anon_sym_if, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(49), 2, + STATE(106), 1, + aux_sym_module_repeat1, + STATE(138), 1, sym_block, - sym_if_statement, - [3638] = 4, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(357), 1, - ts_builtin_sym_end, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(112), 2, - sym_module, - aux_sym_source_file_repeat1, - [3653] = 4, - ACTIONS(359), 1, - ts_builtin_sym_end, - ACTIONS(361), 1, - anon_sym_module, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(112), 2, - sym_module, - aux_sym_source_file_repeat1, - [3668] = 5, - ACTIONS(334), 1, + [3193] = 4, + ACTIONS(320), 1, anon_sym_LBRACE, - ACTIONS(364), 1, + ACTIONS(332), 1, anon_sym_COMMA, - STATE(114), 1, + STATE(113), 1, aux_sym_module_repeat1, - STATE(132), 1, + STATE(157), 1, sym_block, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3685] = 5, - ACTIONS(334), 1, + [3206] = 3, + ACTIONS(340), 1, + anon_sym_COLON_COLON, + STATE(116), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(80), 2, + sym_identifier, + anon_sym_LBRACK, + [3217] = 4, + ACTIONS(320), 1, anon_sym_LBRACE, - ACTIONS(364), 1, + ACTIONS(332), 1, anon_sym_COMMA, - STATE(109), 1, + STATE(115), 1, aux_sym_module_repeat1, - STATE(137), 1, + STATE(147), 1, sym_block, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3702] = 5, - ACTIONS(334), 1, + [3230] = 3, + ACTIONS(342), 1, + anon_sym_COMMA, + STATE(113), 1, + aux_sym_module_repeat1, + ACTIONS(345), 2, + anon_sym_DASH_GT, + anon_sym_LBRACE, + [3241] = 3, + ACTIONS(340), 1, + anon_sym_COLON_COLON, + STATE(118), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(86), 2, + sym_identifier, + anon_sym_LBRACK, + [3252] = 4, + ACTIONS(320), 1, anon_sym_LBRACE, - ACTIONS(364), 1, + ACTIONS(332), 1, anon_sym_COMMA, - STATE(109), 1, + STATE(113), 1, aux_sym_module_repeat1, - STATE(144), 1, + STATE(141), 1, sym_block, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3719] = 5, - ACTIONS(334), 1, + [3265] = 3, + ACTIONS(340), 1, + anon_sym_COLON_COLON, + STATE(120), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(86), 2, + sym_identifier, + anon_sym_LBRACK, + [3276] = 3, + ACTIONS(347), 1, + anon_sym_COMMA, + STATE(125), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(349), 2, anon_sym_LBRACE, - ACTIONS(364), 1, + anon_sym_EQ, + [3287] = 3, + ACTIONS(340), 1, + anon_sym_COLON_COLON, + STATE(120), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(90), 2, + sym_identifier, + anon_sym_LBRACK, + [3298] = 4, + ACTIONS(320), 1, + anon_sym_LBRACE, + ACTIONS(332), 1, anon_sym_COMMA, - STATE(119), 1, + STATE(124), 1, aux_sym_module_repeat1, - STATE(135), 1, + STATE(160), 1, + sym_block, + [3311] = 3, + ACTIONS(351), 1, + anon_sym_COLON_COLON, + STATE(120), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(97), 2, + sym_identifier, + anon_sym_LBRACK, + [3322] = 3, + ACTIONS(19), 1, + anon_sym_LBRACE, + ACTIONS(354), 1, + anon_sym_if, + STATE(42), 2, sym_block, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3736] = 5, - ACTIONS(196), 1, + sym_if_statement, + [3333] = 4, + ACTIONS(347), 1, anon_sym_COMMA, - ACTIONS(366), 1, + ACTIONS(356), 1, anon_sym_EQ, - ACTIONS(368), 1, + ACTIONS(358), 1, anon_sym_SEMI, - STATE(124), 1, + STATE(128), 1, aux_sym__assign_left_side_repeat2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3753] = 5, - ACTIONS(334), 1, + [3346] = 4, + ACTIONS(320), 1, anon_sym_LBRACE, - ACTIONS(364), 1, + ACTIONS(332), 1, anon_sym_COMMA, - STATE(115), 1, + STATE(110), 1, aux_sym_module_repeat1, - STATE(146), 1, + STATE(151), 1, sym_block, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3770] = 5, - ACTIONS(334), 1, + [3359] = 4, + ACTIONS(320), 1, anon_sym_LBRACE, - ACTIONS(364), 1, + ACTIONS(332), 1, anon_sym_COMMA, - STATE(109), 1, + STATE(113), 1, aux_sym_module_repeat1, - STATE(147), 1, + STATE(150), 1, sym_block, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3787] = 4, - ACTIONS(273), 1, + [3372] = 3, + ACTIONS(360), 1, anon_sym_COMMA, - ACTIONS(370), 1, - anon_sym_RPAREN, STATE(125), 1, - aux_sym_func_call_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3801] = 4, - ACTIONS(196), 1, - anon_sym_COMMA, - ACTIONS(372), 1, - anon_sym_EQ, - STATE(123), 1, aux_sym__assign_left_side_repeat2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3815] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(353), 3, - anon_sym_COMMA, - anon_sym_DASH_GT, + ACTIONS(363), 2, anon_sym_LBRACE, - [3825] = 4, - ACTIONS(287), 1, anon_sym_EQ, - ACTIONS(374), 1, + [3383] = 3, + ACTIONS(347), 1, anon_sym_COMMA, - STATE(123), 1, + STATE(117), 1, aux_sym__assign_left_side_repeat2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3839] = 4, - ACTIONS(196), 1, - anon_sym_COMMA, - ACTIONS(377), 1, + ACTIONS(365), 2, + anon_sym_LBRACE, anon_sym_EQ, - STATE(123), 1, - aux_sym__assign_left_side_repeat2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3853] = 4, - ACTIONS(285), 1, - anon_sym_RPAREN, - ACTIONS(379), 1, + [3394] = 3, + ACTIONS(367), 1, + ts_builtin_sym_end, + ACTIONS(369), 1, + anon_sym_module, + STATE(127), 2, + sym_module, + aux_sym_source_file_repeat1, + [3405] = 3, + ACTIONS(347), 1, anon_sym_COMMA, STATE(125), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(365), 2, + anon_sym_LBRACE, + anon_sym_EQ, + [3416] = 3, + ACTIONS(5), 1, + anon_sym_module, + ACTIONS(372), 1, + ts_builtin_sym_end, + STATE(127), 2, + sym_module, + aux_sym_source_file_repeat1, + [3427] = 3, + ACTIONS(374), 1, + anon_sym_COMMA, + ACTIONS(376), 1, + anon_sym_RPAREN, + STATE(135), 1, aux_sym_func_call_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3867] = 4, - ACTIONS(364), 1, + [3437] = 1, + ACTIONS(378), 3, anon_sym_COMMA, - ACTIONS(382), 1, - anon_sym_DASH_GT, - STATE(127), 1, - aux_sym_module_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3881] = 4, - ACTIONS(364), 1, + anon_sym_LBRACE, + anon_sym_EQ, + [3443] = 3, + ACTIONS(320), 1, + anon_sym_LBRACE, + ACTIONS(380), 1, + anon_sym_COLON, + STATE(158), 1, + sym_block, + [3453] = 1, + ACTIONS(97), 3, + sym_identifier, + anon_sym_COLON_COLON, + anon_sym_LBRACK, + [3459] = 1, + ACTIONS(345), 3, anon_sym_COMMA, - ACTIONS(384), 1, anon_sym_DASH_GT, - STATE(109), 1, - aux_sym_module_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3895] = 4, - ACTIONS(196), 1, + anon_sym_LBRACE, + [3465] = 3, + ACTIONS(382), 1, + anon_sym_COMMA, + ACTIONS(385), 1, + anon_sym_RPAREN, + STATE(135), 1, + aux_sym_func_call_repeat1, + [3475] = 1, + ACTIONS(363), 3, anon_sym_COMMA, - ACTIONS(377), 1, + anon_sym_LBRACE, anon_sym_EQ, - STATE(121), 1, + [3481] = 3, + ACTIONS(347), 1, + anon_sym_COMMA, + ACTIONS(356), 1, + anon_sym_LBRACE, + STATE(128), 1, aux_sym__assign_left_side_repeat2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3909] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(386), 2, + [3491] = 1, + ACTIONS(387), 2, ts_builtin_sym_end, anon_sym_module, - [3918] = 3, - ACTIONS(340), 1, - anon_sym_in, - ACTIONS(388), 1, - anon_sym_SQUOTE, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3929] = 3, - ACTIONS(390), 1, + [3496] = 1, + ACTIONS(389), 2, + ts_builtin_sym_end, + anon_sym_module, + [3501] = 2, + ACTIONS(391), 1, sym_identifier, - ACTIONS(392), 1, + ACTIONS(393), 1, anon_sym_LBRACK, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3940] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(394), 2, + [3508] = 1, + ACTIONS(395), 2, ts_builtin_sym_end, anon_sym_module, - [3949] = 3, - ACTIONS(21), 1, + [3513] = 2, + ACTIONS(397), 1, anon_sym_LBRACE, - STATE(45), 1, + STATE(37), 1, sym_block, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3960] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(165), 2, + [3520] = 1, + ACTIONS(399), 2, ts_builtin_sym_end, anon_sym_module, - [3969] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(396), 2, - ts_builtin_sym_end, - anon_sym_module, - [3978] = 3, - ACTIONS(392), 1, + [3525] = 2, + ACTIONS(393), 1, anon_sym_LBRACK, - ACTIONS(398), 1, + ACTIONS(401), 1, sym_identifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3989] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(400), 2, + [3532] = 2, + ACTIONS(19), 1, + anon_sym_LBRACE, + STATE(41), 1, + sym_block, + [3539] = 1, + ACTIONS(403), 2, ts_builtin_sym_end, anon_sym_module, - [3998] = 3, - ACTIONS(392), 1, - anon_sym_LBRACK, - ACTIONS(402), 1, + [3544] = 1, + ACTIONS(405), 2, + ts_builtin_sym_end, + anon_sym_module, + [3549] = 1, + ACTIONS(407), 2, sym_identifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4009] = 3, - ACTIONS(392), 1, anon_sym_LBRACK, - ACTIONS(404), 1, + [3554] = 2, + ACTIONS(393), 1, + anon_sym_LBRACK, + ACTIONS(409), 1, sym_identifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4020] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(406), 2, + [3561] = 1, + ACTIONS(411), 2, ts_builtin_sym_end, anon_sym_module, - [4029] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(408), 2, + [3566] = 1, + ACTIONS(413), 2, ts_builtin_sym_end, anon_sym_module, - [4038] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(161), 2, + [3571] = 1, + ACTIONS(182), 2, ts_builtin_sym_end, anon_sym_module, - [4047] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(287), 2, - anon_sym_COMMA, - anon_sym_EQ, - [4056] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(410), 2, + [3576] = 2, + ACTIONS(393), 1, + anon_sym_LBRACK, + ACTIONS(415), 1, + sym_identifier, + [3583] = 1, + ACTIONS(186), 2, ts_builtin_sym_end, anon_sym_module, - [4065] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(412), 2, - sym_identifier, - anon_sym_LBRACK, - [4074] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(414), 2, + [3588] = 1, + ACTIONS(417), 2, ts_builtin_sym_end, anon_sym_module, - [4083] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(416), 2, + [3593] = 1, + ACTIONS(419), 2, ts_builtin_sym_end, anon_sym_module, - [4092] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(291), 2, - anon_sym_COMMA, - anon_sym_EQ, - [4101] = 3, - ACTIONS(344), 1, + [3598] = 1, + ACTIONS(421), 2, + ts_builtin_sym_end, + anon_sym_module, + [3603] = 1, + ACTIONS(423), 2, + ts_builtin_sym_end, + anon_sym_module, + [3608] = 2, + ACTIONS(324), 1, anon_sym_in, - ACTIONS(418), 1, + ACTIONS(425), 1, anon_sym_SQUOTE, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4112] = 2, - ACTIONS(420), 1, + [3615] = 1, + ACTIONS(427), 2, + ts_builtin_sym_end, + anon_sym_module, + [3620] = 2, + ACTIONS(328), 1, anon_sym_in, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4120] = 2, - ACTIONS(422), 1, + ACTIONS(429), 1, + anon_sym_SQUOTE, + [3627] = 1, + ACTIONS(431), 1, sym_identifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4128] = 2, - ACTIONS(424), 1, + [3631] = 1, + ACTIONS(433), 1, sym_identifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4136] = 2, - ACTIONS(426), 1, - anon_sym_COLON, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4144] = 2, - ACTIONS(428), 1, + [3635] = 1, + ACTIONS(435), 1, + sym_identifier, + [3639] = 1, + ACTIONS(437), 1, + anon_sym_SEMI, + [3643] = 1, + ACTIONS(439), 1, sym_identifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4152] = 2, - ACTIONS(430), 1, + [3647] = 1, + ACTIONS(441), 1, sym_identifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4160] = 2, - ACTIONS(432), 1, + [3651] = 1, + ACTIONS(443), 1, ts_builtin_sym_end, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4168] = 2, - ACTIONS(434), 1, - anon_sym_SEMI, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4176] = 2, - ACTIONS(436), 1, - anon_sym_EQ, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4184] = 2, - ACTIONS(438), 1, + [3655] = 1, + ACTIONS(445), 1, + sym_identifier, + [3659] = 1, + ACTIONS(447), 1, sym_identifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, + [3663] = 1, + ACTIONS(449), 1, + anon_sym_EQ, + [3667] = 1, + ACTIONS(451), 1, + anon_sym_in, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(9)] = 0, - [SMALL_STATE(10)] = 40, - [SMALL_STATE(11)] = 80, - [SMALL_STATE(12)] = 120, - [SMALL_STATE(13)] = 160, - [SMALL_STATE(14)] = 200, - [SMALL_STATE(15)] = 259, - [SMALL_STATE(16)] = 294, - [SMALL_STATE(17)] = 350, - [SMALL_STATE(18)] = 406, - [SMALL_STATE(19)] = 442, - [SMALL_STATE(20)] = 475, - [SMALL_STATE(21)] = 508, - [SMALL_STATE(22)] = 541, - [SMALL_STATE(23)] = 574, - [SMALL_STATE(24)] = 607, - [SMALL_STATE(25)] = 640, - [SMALL_STATE(26)] = 673, - [SMALL_STATE(27)] = 709, - [SMALL_STATE(28)] = 759, - [SMALL_STATE(29)] = 801, - [SMALL_STATE(30)] = 845, - [SMALL_STATE(31)] = 885, - [SMALL_STATE(32)] = 935, - [SMALL_STATE(33)] = 981, - [SMALL_STATE(34)] = 1010, - [SMALL_STATE(35)] = 1039, - [SMALL_STATE(36)] = 1088, - [SMALL_STATE(37)] = 1119, - [SMALL_STATE(38)] = 1168, - [SMALL_STATE(39)] = 1201, - [SMALL_STATE(40)] = 1251, - [SMALL_STATE(41)] = 1291, - [SMALL_STATE(42)] = 1331, - [SMALL_STATE(43)] = 1363, - [SMALL_STATE(44)] = 1395, - [SMALL_STATE(45)] = 1427, - [SMALL_STATE(46)] = 1455, - [SMALL_STATE(47)] = 1483, - [SMALL_STATE(48)] = 1515, - [SMALL_STATE(49)] = 1543, - [SMALL_STATE(50)] = 1571, - [SMALL_STATE(51)] = 1603, - [SMALL_STATE(52)] = 1631, - [SMALL_STATE(53)] = 1668, - [SMALL_STATE(54)] = 1705, - [SMALL_STATE(55)] = 1742, - [SMALL_STATE(56)] = 1779, - [SMALL_STATE(57)] = 1816, - [SMALL_STATE(58)] = 1863, - [SMALL_STATE(59)] = 1900, - [SMALL_STATE(60)] = 1937, - [SMALL_STATE(61)] = 1974, - [SMALL_STATE(62)] = 2011, - [SMALL_STATE(63)] = 2048, - [SMALL_STATE(64)] = 2085, - [SMALL_STATE(65)] = 2122, - [SMALL_STATE(66)] = 2159, - [SMALL_STATE(67)] = 2196, - [SMALL_STATE(68)] = 2233, - [SMALL_STATE(69)] = 2270, - [SMALL_STATE(70)] = 2307, - [SMALL_STATE(71)] = 2344, - [SMALL_STATE(72)] = 2381, - [SMALL_STATE(73)] = 2418, - [SMALL_STATE(74)] = 2455, - [SMALL_STATE(75)] = 2502, - [SMALL_STATE(76)] = 2539, - [SMALL_STATE(77)] = 2576, - [SMALL_STATE(78)] = 2613, - [SMALL_STATE(79)] = 2650, - [SMALL_STATE(80)] = 2677, - [SMALL_STATE(81)] = 2719, - [SMALL_STATE(82)] = 2763, - [SMALL_STATE(83)] = 2807, - [SMALL_STATE(84)] = 2851, - [SMALL_STATE(85)] = 2892, - [SMALL_STATE(86)] = 2933, - [SMALL_STATE(87)] = 2974, - [SMALL_STATE(88)] = 3011, - [SMALL_STATE(89)] = 3042, - [SMALL_STATE(90)] = 3077, - [SMALL_STATE(91)] = 3110, - [SMALL_STATE(92)] = 3139, - [SMALL_STATE(93)] = 3180, - [SMALL_STATE(94)] = 3221, - [SMALL_STATE(95)] = 3262, - [SMALL_STATE(96)] = 3303, - [SMALL_STATE(97)] = 3344, - [SMALL_STATE(98)] = 3372, - [SMALL_STATE(99)] = 3401, - [SMALL_STATE(100)] = 3430, - [SMALL_STATE(101)] = 3459, - [SMALL_STATE(102)] = 3485, - [SMALL_STATE(103)] = 3508, - [SMALL_STATE(104)] = 3531, - [SMALL_STATE(105)] = 3546, - [SMALL_STATE(106)] = 3561, - [SMALL_STATE(107)] = 3577, - [SMALL_STATE(108)] = 3593, - [SMALL_STATE(109)] = 3608, - [SMALL_STATE(110)] = 3623, - [SMALL_STATE(111)] = 3638, - [SMALL_STATE(112)] = 3653, - [SMALL_STATE(113)] = 3668, - [SMALL_STATE(114)] = 3685, - [SMALL_STATE(115)] = 3702, - [SMALL_STATE(116)] = 3719, - [SMALL_STATE(117)] = 3736, - [SMALL_STATE(118)] = 3753, - [SMALL_STATE(119)] = 3770, - [SMALL_STATE(120)] = 3787, - [SMALL_STATE(121)] = 3801, - [SMALL_STATE(122)] = 3815, - [SMALL_STATE(123)] = 3825, - [SMALL_STATE(124)] = 3839, - [SMALL_STATE(125)] = 3853, - [SMALL_STATE(126)] = 3867, - [SMALL_STATE(127)] = 3881, - [SMALL_STATE(128)] = 3895, - [SMALL_STATE(129)] = 3909, - [SMALL_STATE(130)] = 3918, - [SMALL_STATE(131)] = 3929, - [SMALL_STATE(132)] = 3940, - [SMALL_STATE(133)] = 3949, - [SMALL_STATE(134)] = 3960, - [SMALL_STATE(135)] = 3969, - [SMALL_STATE(136)] = 3978, - [SMALL_STATE(137)] = 3989, - [SMALL_STATE(138)] = 3998, - [SMALL_STATE(139)] = 4009, - [SMALL_STATE(140)] = 4020, - [SMALL_STATE(141)] = 4029, - [SMALL_STATE(142)] = 4038, - [SMALL_STATE(143)] = 4047, - [SMALL_STATE(144)] = 4056, - [SMALL_STATE(145)] = 4065, - [SMALL_STATE(146)] = 4074, - [SMALL_STATE(147)] = 4083, - [SMALL_STATE(148)] = 4092, - [SMALL_STATE(149)] = 4101, - [SMALL_STATE(150)] = 4112, - [SMALL_STATE(151)] = 4120, - [SMALL_STATE(152)] = 4128, - [SMALL_STATE(153)] = 4136, - [SMALL_STATE(154)] = 4144, - [SMALL_STATE(155)] = 4152, - [SMALL_STATE(156)] = 4160, - [SMALL_STATE(157)] = 4168, - [SMALL_STATE(158)] = 4176, - [SMALL_STATE(159)] = 4184, + [SMALL_STATE(10)] = 36, + [SMALL_STATE(11)] = 94, + [SMALL_STATE(12)] = 130, + [SMALL_STATE(13)] = 166, + [SMALL_STATE(14)] = 202, + [SMALL_STATE(15)] = 238, + [SMALL_STATE(16)] = 293, + [SMALL_STATE(17)] = 324, + [SMALL_STATE(18)] = 376, + [SMALL_STATE(19)] = 428, + [SMALL_STATE(20)] = 460, + [SMALL_STATE(21)] = 489, + [SMALL_STATE(22)] = 518, + [SMALL_STATE(23)] = 547, + [SMALL_STATE(24)] = 576, + [SMALL_STATE(25)] = 605, + [SMALL_STATE(26)] = 634, + [SMALL_STATE(27)] = 663, + [SMALL_STATE(28)] = 699, + [SMALL_STATE(29)] = 745, + [SMALL_STATE(30)] = 791, + [SMALL_STATE(31)] = 821, + [SMALL_STATE(32)] = 855, + [SMALL_STATE(33)] = 887, + [SMALL_STATE(34)] = 925, + [SMALL_STATE(35)] = 955, + [SMALL_STATE(36)] = 994, + [SMALL_STATE(37)] = 1033, + [SMALL_STATE(38)] = 1060, + [SMALL_STATE(39)] = 1085, + [SMALL_STATE(40)] = 1110, + [SMALL_STATE(41)] = 1154, + [SMALL_STATE(42)] = 1178, + [SMALL_STATE(43)] = 1202, + [SMALL_STATE(44)] = 1226, + [SMALL_STATE(45)] = 1254, + [SMALL_STATE(46)] = 1278, + [SMALL_STATE(47)] = 1306, + [SMALL_STATE(48)] = 1334, + [SMALL_STATE(49)] = 1376, + [SMALL_STATE(50)] = 1404, + [SMALL_STATE(51)] = 1440, + [SMALL_STATE(52)] = 1464, + [SMALL_STATE(53)] = 1500, + [SMALL_STATE(54)] = 1528, + [SMALL_STATE(55)] = 1561, + [SMALL_STATE(56)] = 1594, + [SMALL_STATE(57)] = 1635, + [SMALL_STATE(58)] = 1668, + [SMALL_STATE(59)] = 1701, + [SMALL_STATE(60)] = 1734, + [SMALL_STATE(61)] = 1767, + [SMALL_STATE(62)] = 1800, + [SMALL_STATE(63)] = 1833, + [SMALL_STATE(64)] = 1866, + [SMALL_STATE(65)] = 1899, + [SMALL_STATE(66)] = 1932, + [SMALL_STATE(67)] = 1965, + [SMALL_STATE(68)] = 1998, + [SMALL_STATE(69)] = 2031, + [SMALL_STATE(70)] = 2072, + [SMALL_STATE(71)] = 2105, + [SMALL_STATE(72)] = 2142, + [SMALL_STATE(73)] = 2165, + [SMALL_STATE(74)] = 2198, + [SMALL_STATE(75)] = 2235, + [SMALL_STATE(76)] = 2268, + [SMALL_STATE(77)] = 2301, + [SMALL_STATE(78)] = 2334, + [SMALL_STATE(79)] = 2367, + [SMALL_STATE(80)] = 2400, + [SMALL_STATE(81)] = 2433, + [SMALL_STATE(82)] = 2466, + [SMALL_STATE(83)] = 2499, + [SMALL_STATE(84)] = 2535, + [SMALL_STATE(85)] = 2570, + [SMALL_STATE(86)] = 2595, + [SMALL_STATE(87)] = 2630, + [SMALL_STATE(88)] = 2665, + [SMALL_STATE(89)] = 2700, + [SMALL_STATE(90)] = 2735, + [SMALL_STATE(91)] = 2770, + [SMALL_STATE(92)] = 2805, + [SMALL_STATE(93)] = 2828, + [SMALL_STATE(94)] = 2857, + [SMALL_STATE(95)] = 2884, + [SMALL_STATE(96)] = 2919, + [SMALL_STATE(97)] = 2950, + [SMALL_STATE(98)] = 2974, + [SMALL_STATE(99)] = 3002, + [SMALL_STATE(100)] = 3027, + [SMALL_STATE(101)] = 3052, + [SMALL_STATE(102)] = 3077, + [SMALL_STATE(103)] = 3096, + [SMALL_STATE(104)] = 3115, + [SMALL_STATE(105)] = 3126, + [SMALL_STATE(106)] = 3137, + [SMALL_STATE(107)] = 3153, + [SMALL_STATE(108)] = 3165, + [SMALL_STATE(109)] = 3177, + [SMALL_STATE(110)] = 3193, + [SMALL_STATE(111)] = 3206, + [SMALL_STATE(112)] = 3217, + [SMALL_STATE(113)] = 3230, + [SMALL_STATE(114)] = 3241, + [SMALL_STATE(115)] = 3252, + [SMALL_STATE(116)] = 3265, + [SMALL_STATE(117)] = 3276, + [SMALL_STATE(118)] = 3287, + [SMALL_STATE(119)] = 3298, + [SMALL_STATE(120)] = 3311, + [SMALL_STATE(121)] = 3322, + [SMALL_STATE(122)] = 3333, + [SMALL_STATE(123)] = 3346, + [SMALL_STATE(124)] = 3359, + [SMALL_STATE(125)] = 3372, + [SMALL_STATE(126)] = 3383, + [SMALL_STATE(127)] = 3394, + [SMALL_STATE(128)] = 3405, + [SMALL_STATE(129)] = 3416, + [SMALL_STATE(130)] = 3427, + [SMALL_STATE(131)] = 3437, + [SMALL_STATE(132)] = 3443, + [SMALL_STATE(133)] = 3453, + [SMALL_STATE(134)] = 3459, + [SMALL_STATE(135)] = 3465, + [SMALL_STATE(136)] = 3475, + [SMALL_STATE(137)] = 3481, + [SMALL_STATE(138)] = 3491, + [SMALL_STATE(139)] = 3496, + [SMALL_STATE(140)] = 3501, + [SMALL_STATE(141)] = 3508, + [SMALL_STATE(142)] = 3513, + [SMALL_STATE(143)] = 3520, + [SMALL_STATE(144)] = 3525, + [SMALL_STATE(145)] = 3532, + [SMALL_STATE(146)] = 3539, + [SMALL_STATE(147)] = 3544, + [SMALL_STATE(148)] = 3549, + [SMALL_STATE(149)] = 3554, + [SMALL_STATE(150)] = 3561, + [SMALL_STATE(151)] = 3566, + [SMALL_STATE(152)] = 3571, + [SMALL_STATE(153)] = 3576, + [SMALL_STATE(154)] = 3583, + [SMALL_STATE(155)] = 3588, + [SMALL_STATE(156)] = 3593, + [SMALL_STATE(157)] = 3598, + [SMALL_STATE(158)] = 3603, + [SMALL_STATE(159)] = 3608, + [SMALL_STATE(160)] = 3615, + [SMALL_STATE(161)] = 3620, + [SMALL_STATE(162)] = 3627, + [SMALL_STATE(163)] = 3631, + [SMALL_STATE(164)] = 3635, + [SMALL_STATE(165)] = 3639, + [SMALL_STATE(166)] = 3643, + [SMALL_STATE(167)] = 3647, + [SMALL_STATE(168)] = 3651, + [SMALL_STATE(169)] = 3655, + [SMALL_STATE(170)] = 3659, + [SMALL_STATE(171)] = 3663, + [SMALL_STATE(172)] = 3667, }; 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 = true}}, SHIFT(154), - [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10), - [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), - [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(106), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60), - [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(103), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [39] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(10), - [42] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(39), - [45] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(159), - [48] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(106), - [51] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(59), - [54] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(56), - [57] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(5), - [60] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), - [62] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(16), - [65] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(31), - [68] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(60), - [71] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(103), - [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), - [76] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), - [78] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2), - [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), - [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2), - [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1), - [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1), - [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 3), - [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 3), - [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), - [94] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(155), - [97] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), - [99] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [3] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), + [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(108), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(103), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), + [41] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(9), + [44] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(40), + [47] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(164), + [50] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(108), + [53] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(75), + [56] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(70), + [59] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(5), + [62] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), + [64] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(18), + [67] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(28), + [70] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(10), + [73] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(103), + [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1), + [78] = {.entry = {.count = 1, .reusable = false}}, SHIFT(163), + [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1), + [82] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [84] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2), + [86] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2), + [88] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 3), + [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 3), + [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), + [94] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(163), + [97] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), + [99] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), [101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), - [103] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), - [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [103] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29), + [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), [107] = {.entry = {.count = 1, .reusable = false}}, SHIFT(97), - [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [111] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [117] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 3), - [119] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 3), - [121] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 3), - [123] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 3), - [125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 5), - [127] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 5), - [129] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 4), - [131] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 4), - [133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 4), - [135] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 4), - [137] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2), - [139] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2), - [141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3), - [143] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3), - [145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), - [149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [151] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64), - [153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3), - [161] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [163] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), - [165] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [167] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 7), - [169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [173] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69), - [175] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 4, .production_id = 7), - [177] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3), - [179] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3), - [181] = {.entry = {.count = 1, .reusable = false}}, SHIFT(110), - [183] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 10), - [185] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 5, .production_id = 10), - [187] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__maybe_global_identifier, 1), - [189] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), - [191] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__maybe_global_identifier, 1), REDUCE(sym__type, 1), - [194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), - [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assign_left_side, 1), - [200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 1), - [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), - [212] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(151), - [215] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5), - [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5), - [219] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5), - [221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5), - [223] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), - [225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), - [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), - [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [243] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assign_left_side, 2), - [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), - [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [111] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [113] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [115] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), + [117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 10), + [119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 10), + [121] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 5, .production_id = 21), + [123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 5, .production_id = 21), + [125] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 4, .production_id = 15), + [127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 4, .production_id = 15), + [129] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 4, .production_id = 16), + [131] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 4, .production_id = 16), + [133] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 4), + [135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 4), + [137] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 3, .production_id = 9), + [139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 3, .production_id = 9), + [141] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 3), + [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 3), + [145] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61), + [147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), + [149] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), + [151] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), + [153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64), + [157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), + [159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type, 1), + [161] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), REDUCE(sym__type, 1), + [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__maybe_global_identifier, 1), + [166] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 4, .production_id = 13), + [168] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60), + [170] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), + [172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 5, .production_id = 17), + [174] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 8), + [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 8), + [178] = {.entry = {.count = 1, .reusable = false}}, SHIFT(121), + [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), + [182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [184] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3), + [186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [188] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), + [190] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assign_left_side, 1), + [192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 1), + [194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5), + [196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5), + [198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 8), + [200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 8), + [202] = {.entry = {.count = 1, .reusable = false}}, SHIFT(169), + [204] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assign_left_side, 2), + [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [210] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), + [212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), + [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [218] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(169), + [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), + [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [253] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), + [255] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), + [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [259] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), + [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [263] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat2, 3), + [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), [277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), - [283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2), - [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), - [289] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), - [291] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 3), - [293] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat2, 3), - [295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [309] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), - [311] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), - [313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), - [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_range, 3), - [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3), - [325] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), - [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), - [329] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), SHIFT_REPEAT(97), - [332] = {.entry = {.count = 1, .reusable = false}}, SHIFT(108), - [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [338] = {.entry = {.count = 1, .reusable = false}}, SHIFT(107), - [340] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 4), - [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 2), - [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [350] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(102), - [353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), - [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [359] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), - [361] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(154), - [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), - [366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 1), - [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_statement, 1), - [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 3), - [374] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), SHIFT_REPEAT(14), - [377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 2), - [379] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2), SHIFT_REPEAT(65), - [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5, .production_id = 1), - [388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 7, .production_id = 8), - [396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 8, .production_id = 12), - [398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 8, .production_id = 11), - [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), - [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), - [406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 7, .production_id = 9), - [408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 6, .production_id = 5), - [410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 7, .production_id = 6), - [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 4), - [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 6, .production_id = 3), - [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 9, .production_id = 13), - [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), - [430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [432] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [279] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 20), + [281] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), + [283] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), + [285] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), + [287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [289] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), + [291] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), + [293] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57), + [295] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), + [297] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), + [299] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 3, .production_id = 24), + [301] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), + [303] = {.entry = {.count = 1, .reusable = false}}, SHIFT(148), + [305] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 11), + [307] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), + [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), + [311] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), SHIFT_REPEAT(97), + [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [316] = {.entry = {.count = 1, .reusable = false}}, SHIFT(111), + [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), + [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [322] = {.entry = {.count = 1, .reusable = false}}, SHIFT(107), + [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 6), + [326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 2), + [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [342] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(102), + [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), + [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 3), + [351] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(162), + [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 1), + [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_statement, 1), + [360] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), SHIFT_REPEAT(15), + [363] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), + [365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 2), + [367] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), + [369] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(170), + [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 3), + [380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [382] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 22), SHIFT_REPEAT(77), + [385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 22), + [387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5, .production_id = 3), + [389] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 6, .production_id = 7), + [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 8, .production_id = 18), + [397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 1), + [401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [403] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 7, .production_id = 7), + [405] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 7, .production_id = 14), + [407] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 4), + [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [411] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 7, .production_id = 12), + [413] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 8, .production_id = 19), + [415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), + [417] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5, .production_id = 1), + [419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 6, .production_id = 3), + [421] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 9, .production_id = 23), + [423] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 1), + [425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 6, .production_id = 5), + [429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), + [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [443] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), + [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), }; #ifdef __cplusplus From be7ab816fdead6956bc9bc18eb724eeba46bdcbf Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Sat, 16 Mar 2024 18:45:32 +0100 Subject: [PATCH 08/49] Add more fields --- grammar.js | 42 +- src/grammar.json | 510 ++++--- src/node-types.json | 354 +++-- src/parser.c | 3505 +++++++++++++++++++++---------------------- 4 files changed, 2301 insertions(+), 2110 deletions(-) diff --git a/grammar.js b/grammar.js index c9d6bc6..4588c3d 100644 --- a/grammar.js +++ b/grammar.js @@ -24,13 +24,19 @@ module.exports = grammar({ rules: { source_file: $ => repeat($.module), + interface_ports : $ => seq( + ':', + field('inputs', sepSeq($.declaration, ',')), + optional(seq( + '->', + field('outputs', sepSeq($.declaration, ',')) + )) + ), module: $ => seq( 'module', field('name', $.identifier), - optional(seq(':', - field('inputs', sepSeq($.declaration, ',')), - optional(seq('->', - field('outputs', sepSeq($.declaration, ',')))))) + optional(field('interface_ports', $.interface_ports)), + field('block', $.block) ), identifier: $ => /[\p{L}_][\p{L}_\d]*/, number: $ => /\d[\d_]*/, @@ -48,9 +54,9 @@ module.exports = grammar({ ), array_type: $ => seq( - $._type, + field('array_element_type', $._type), '[', - $._expression, + field('array_size', $._expression), ']' ), _type: $ => choice( @@ -59,10 +65,10 @@ module.exports = grammar({ ), declaration: $ => seq( - optional(choice( + optional(field('declaration_modifiers', choice( 'state', 'gen' - )), + ))), field('type', $._type), field('name', $.identifier), optional(seq( @@ -72,7 +78,7 @@ module.exports = grammar({ ), unary_op: $ => prec(PREC.unary, seq( - choice('+', '-', '*', '!', '|', '&', '^'), + field('operator', choice('+', '-', '*', '!', '|', '&', '^')), field('right', $._expression) )), @@ -88,7 +94,7 @@ module.exports = grammar({ return choice(...TABLE.map(([precedence, operator]) => prec.left(precedence, seq( field('left', $._expression), - operator, + field('operator', operator), field('right', $._expression) )))); }, @@ -101,9 +107,9 @@ module.exports = grammar({ ), func_call: $ => seq( - field('module_name', $._maybe_global_identifier), + field('name', $._maybe_global_identifier), '(', - sepSeq(field('argument', $._expression), ','), + field('func_arguments', sepSeq($._expression, ',')), ')' ), @@ -150,21 +156,21 @@ module.exports = grammar({ if_statement: $ => seq( 'if', field('condition', $._assign_left_side), - $.block, + field('then_block', $.block), optional(seq( 'else', - choice( + field('else_block', choice( $.block, $.if_statement - ) + )) )) ), for_statement: $ => seq( 'for', - $.declaration, + field('for_decl', $.declaration), 'in', - $.range, - $.block + field('for_range', $.range), + field('block', $.block) ), _statement: $ => choice( $.block, diff --git a/src/grammar.json b/src/grammar.json index ae07964..a7e85e3 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -8,19 +8,48 @@ "name": "module" } }, - "module": { + "interface_ports": { "type": "SEQ", "members": [ { "type": "STRING", - "value": "module" + "value": ":" }, { "type": "FIELD", - "name": "name", + "name": "inputs", "content": { - "type": "SYMBOL", - "name": "identifier" + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "declaration" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "declaration" + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] } }, { @@ -31,11 +60,11 @@ "members": [ { "type": "STRING", - "value": ":" + "value": "->" }, { "type": "FIELD", - "name": "inputs", + "name": "outputs", "content": { "type": "CHOICE", "members": [ @@ -69,60 +98,6 @@ } ] } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "->" - }, - { - "type": "FIELD", - "name": "outputs", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "declaration" - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "SYMBOL", - "name": "declaration" - } - ] - } - } - ] - }, - { - "type": "BLANK" - } - ] - } - } - ] - }, - { - "type": "BLANK" - } - ] } ] }, @@ -130,10 +105,47 @@ "type": "BLANK" } ] + } + ] + }, + "module": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "module" }, { - "type": "SYMBOL", - "name": "block" + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "interface_ports", + "content": { + "type": "SYMBOL", + "name": "interface_ports" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "block", + "content": { + "type": "SYMBOL", + "name": "block" + } } ] }, @@ -220,16 +232,24 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_type" + "type": "FIELD", + "name": "array_element_type", + "content": { + "type": "SYMBOL", + "name": "_type" + } }, { "type": "STRING", "value": "[" }, { - "type": "SYMBOL", - "name": "_expression" + "type": "FIELD", + "name": "array_size", + "content": { + "type": "SYMBOL", + "name": "_expression" + } }, { "type": "STRING", @@ -257,17 +277,21 @@ "type": "CHOICE", "members": [ { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "state" - }, - { - "type": "STRING", - "value": "gen" - } - ] + "type": "FIELD", + "name": "declaration_modifiers", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "state" + }, + { + "type": "STRING", + "value": "gen" + } + ] + } }, { "type": "BLANK" @@ -324,37 +348,41 @@ "type": "SEQ", "members": [ { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "+" - }, - { - "type": "STRING", - "value": "-" - }, - { - "type": "STRING", - "value": "*" - }, - { - "type": "STRING", - "value": "!" - }, - { - "type": "STRING", - "value": "|" - }, - { - "type": "STRING", - "value": "&" - }, - { - "type": "STRING", - "value": "^" - } - ] + "type": "FIELD", + "name": "operator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "+" + }, + { + "type": "STRING", + "value": "-" + }, + { + "type": "STRING", + "value": "*" + }, + { + "type": "STRING", + "value": "!" + }, + { + "type": "STRING", + "value": "|" + }, + { + "type": "STRING", + "value": "&" + }, + { + "type": "STRING", + "value": "^" + } + ] + } }, { "type": "FIELD", @@ -385,33 +413,37 @@ } }, { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "==" - }, - { - "type": "STRING", - "value": "!=" - }, - { - "type": "STRING", - "value": "<" - }, - { - "type": "STRING", - "value": "<=" - }, - { - "type": "STRING", - "value": ">" - }, - { - "type": "STRING", - "value": ">=" - } - ] + "type": "FIELD", + "name": "operator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "==" + }, + { + "type": "STRING", + "value": "!=" + }, + { + "type": "STRING", + "value": "<" + }, + { + "type": "STRING", + "value": "<=" + }, + { + "type": "STRING", + "value": ">" + }, + { + "type": "STRING", + "value": ">=" + } + ] + } }, { "type": "FIELD", @@ -439,8 +471,12 @@ } }, { - "type": "STRING", - "value": "&" + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "&" + } }, { "type": "FIELD", @@ -468,8 +504,12 @@ } }, { - "type": "STRING", - "value": "|" + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "|" + } }, { "type": "FIELD", @@ -497,8 +537,12 @@ } }, { - "type": "STRING", - "value": "^" + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "^" + } }, { "type": "FIELD", @@ -526,17 +570,21 @@ } }, { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "+" - }, - { - "type": "STRING", - "value": "-" - } - ] + "type": "FIELD", + "name": "operator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "+" + }, + { + "type": "STRING", + "value": "-" + } + ] + } }, { "type": "FIELD", @@ -564,21 +612,25 @@ } }, { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "*" - }, - { - "type": "STRING", - "value": "/" - }, - { - "type": "STRING", - "value": "%" - } - ] + "type": "FIELD", + "name": "operator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "*" + }, + { + "type": "STRING", + "value": "/" + }, + { + "type": "STRING", + "value": "%" + } + ] + } }, { "type": "FIELD", @@ -627,7 +679,7 @@ "members": [ { "type": "FIELD", - "name": "module_name", + "name": "name", "content": { "type": "SYMBOL", "name": "_maybe_global_identifier" @@ -638,45 +690,41 @@ "value": "(" }, { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "argument", - "content": { + "type": "FIELD", + "name": "func_arguments", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { "type": "SYMBOL", "name": "_expression" - } - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "FIELD", - "name": "argument", - "content": { + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { "type": "SYMBOL", "name": "_expression" } - } - ] + ] + } } - } - ] - }, - { - "type": "BLANK" - } - ] + ] + }, + { + "type": "BLANK" + } + ] + } }, { "type": "STRING", @@ -909,8 +957,12 @@ } }, { - "type": "SYMBOL", - "name": "block" + "type": "FIELD", + "name": "then_block", + "content": { + "type": "SYMBOL", + "name": "block" + } }, { "type": "CHOICE", @@ -923,17 +975,21 @@ "value": "else" }, { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "block" - }, - { - "type": "SYMBOL", - "name": "if_statement" - } - ] + "type": "FIELD", + "name": "else_block", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "block" + }, + { + "type": "SYMBOL", + "name": "if_statement" + } + ] + } } ] }, @@ -952,20 +1008,32 @@ "value": "for" }, { - "type": "SYMBOL", - "name": "declaration" + "type": "FIELD", + "name": "for_decl", + "content": { + "type": "SYMBOL", + "name": "declaration" + } }, { "type": "STRING", "value": "in" }, { - "type": "SYMBOL", - "name": "range" + "type": "FIELD", + "name": "for_range", + "content": { + "type": "SYMBOL", + "name": "range" + } }, { - "type": "SYMBOL", - "name": "block" + "type": "FIELD", + "name": "block", + "content": { + "type": "SYMBOL", + "name": "block" + } } ] }, diff --git a/src/node-types.json b/src/node-types.json index 578532c..7e79afd 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -92,44 +92,63 @@ { "type": "array_type", "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "array_op", - "named": true - }, - { - "type": "array_type", - "named": true - }, - { - "type": "binary_op", - "named": true - }, - { - "type": "func_call", - "named": true - }, - { - "type": "global_identifier", - "named": true - }, - { - "type": "identifier", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "unary_op", - "named": true - } - ] + "fields": { + "array_element_type": { + "multiple": false, + "required": true, + "types": [ + { + "type": "array_type", + "named": true + }, + { + "type": "global_identifier", + "named": true + } + ] + }, + "array_size": { + "multiple": true, + "required": true, + "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, + { + "type": "array_op", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "func_call", + "named": true + }, + { + "type": "global_identifier", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "unary_op", + "named": true + } + ] + } } }, { @@ -178,6 +197,68 @@ } ] }, + "operator": { + "multiple": false, + "required": true, + "types": [ + { + "type": "!=", + "named": false + }, + { + "type": "%", + "named": false + }, + { + "type": "&", + "named": false + }, + { + "type": "*", + "named": false + }, + { + "type": "+", + "named": false + }, + { + "type": "-", + "named": false + }, + { + "type": "/", + "named": false + }, + { + "type": "<", + "named": false + }, + { + "type": "<=", + "named": false + }, + { + "type": "==", + "named": false + }, + { + "type": ">", + "named": false + }, + { + "type": ">=", + "named": false + }, + { + "type": "^", + "named": false + }, + { + "type": "|", + "named": false + } + ] + }, "right": { "multiple": true, "required": true, @@ -382,6 +463,20 @@ "type": "declaration", "named": true, "fields": { + "declaration_modifiers": { + "multiple": false, + "required": false, + "types": [ + { + "type": "gen", + "named": false + }, + { + "type": "state", + "named": false + } + ] + }, "latency_spec": { "multiple": true, "required": false, @@ -492,31 +587,44 @@ { "type": "for_statement", "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "block", - "named": true - }, - { - "type": "declaration", - "named": true - }, - { - "type": "range", - "named": true - } - ] + "fields": { + "block": { + "multiple": false, + "required": true, + "types": [ + { + "type": "block", + "named": true + } + ] + }, + "for_decl": { + "multiple": false, + "required": true, + "types": [ + { + "type": "declaration", + "named": true + } + ] + }, + "for_range": { + "multiple": false, + "required": true, + "types": [ + { + "type": "range", + "named": true + } + ] + } } }, { "type": "func_call", "named": true, "fields": { - "argument": { + "func_arguments": { "multiple": true, "required": false, "types": [ @@ -528,6 +636,10 @@ "type": ")", "named": false }, + { + "type": ",", + "named": false + }, { "type": "array_op", "named": true @@ -558,7 +670,7 @@ } ] }, - "module_name": { + "name": { "multiple": false, "required": true, "types": [ @@ -650,25 +762,35 @@ "named": true } ] + }, + "else_block": { + "multiple": false, + "required": false, + "types": [ + { + "type": "block", + "named": true + }, + { + "type": "if_statement", + "named": true + } + ] + }, + "then_block": { + "multiple": false, + "required": true, + "types": [ + { + "type": "block", + "named": true + } + ] } - }, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "block", - "named": true - }, - { - "type": "if_statement", - "named": true - } - ] } }, { - "type": "module", + "type": "interface_ports", "named": true, "fields": { "inputs": { @@ -685,40 +807,56 @@ } ] }, - "name": { + "outputs": { + "multiple": true, + "required": false, + "types": [ + { + "type": ",", + "named": false + }, + { + "type": "declaration", + "named": true + } + ] + } + } + }, + { + "type": "module", + "named": true, + "fields": { + "block": { "multiple": false, "required": true, "types": [ { - "type": "identifier", + "type": "block", "named": true } ] }, - "outputs": { - "multiple": true, + "interface_ports": { + "multiple": false, "required": false, "types": [ { - "type": ",", - "named": false - }, + "type": "interface_ports", + "named": true + } + ] + }, + "name": { + "multiple": false, + "required": true, + "types": [ { - "type": "declaration", + "type": "identifier", "named": true } ] } - }, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "block", - "named": true - } - ] } }, { @@ -830,6 +968,40 @@ "type": "unary_op", "named": true, "fields": { + "operator": { + "multiple": false, + "required": true, + "types": [ + { + "type": "!", + "named": false + }, + { + "type": "&", + "named": false + }, + { + "type": "*", + "named": false + }, + { + "type": "+", + "named": false + }, + { + "type": "-", + "named": false + }, + { + "type": "^", + "named": false + }, + { + "type": "|", + "named": false + } + ] + }, "right": { "multiple": true, "required": true, diff --git a/src/parser.c b/src/parser.c index 8b92b26..9ea27c2 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,21 +6,21 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 173 +#define STATE_COUNT 163 #define LARGE_STATE_COUNT 9 -#define SYMBOL_COUNT 68 +#define SYMBOL_COUNT 69 #define ALIAS_COUNT 0 #define TOKEN_COUNT 40 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 16 -#define MAX_ALIAS_SEQUENCE_LENGTH 9 -#define PRODUCTION_ID_COUNT 25 +#define FIELD_COUNT 25 +#define MAX_ALIAS_SEQUENCE_LENGTH 6 +#define PRODUCTION_ID_COUNT 27 enum { - anon_sym_module = 1, - anon_sym_COLON = 2, - anon_sym_COMMA = 3, - anon_sym_DASH_GT = 4, + anon_sym_COLON = 1, + anon_sym_COMMA = 2, + anon_sym_DASH_GT = 3, + anon_sym_module = 4, sym_identifier = 5, sym_number = 6, anon_sym_COLON_COLON = 7, @@ -57,41 +57,42 @@ enum { anon_sym_in = 38, anon_sym_SEMI = 39, sym_source_file = 40, - sym_module = 41, - sym_global_identifier = 42, - sym__maybe_global_identifier = 43, - sym_array_type = 44, - sym__type = 45, - sym_declaration = 46, - sym_unary_op = 47, - sym_binary_op = 48, - sym_array_op = 49, - sym_func_call = 50, - sym__expression = 51, - sym_range = 52, - sym_block = 53, - sym__assign_left_side = 54, - sym_decl_assign_statement = 55, - sym_decl_statement = 56, - sym_expression_statement = 57, - sym_if_statement = 58, - sym_for_statement = 59, - sym__statement = 60, - aux_sym_source_file_repeat1 = 61, - aux_sym_module_repeat1 = 62, - aux_sym_global_identifier_repeat1 = 63, - aux_sym_func_call_repeat1 = 64, - aux_sym_block_repeat1 = 65, - aux_sym__assign_left_side_repeat1 = 66, - aux_sym__assign_left_side_repeat2 = 67, + sym_interface_ports = 41, + sym_module = 42, + sym_global_identifier = 43, + sym__maybe_global_identifier = 44, + sym_array_type = 45, + sym__type = 46, + sym_declaration = 47, + sym_unary_op = 48, + sym_binary_op = 49, + sym_array_op = 50, + sym_func_call = 51, + sym__expression = 52, + sym_range = 53, + sym_block = 54, + sym__assign_left_side = 55, + sym_decl_assign_statement = 56, + sym_decl_statement = 57, + sym_expression_statement = 58, + sym_if_statement = 59, + sym_for_statement = 60, + sym__statement = 61, + aux_sym_source_file_repeat1 = 62, + aux_sym_interface_ports_repeat1 = 63, + aux_sym_global_identifier_repeat1 = 64, + aux_sym_func_call_repeat1 = 65, + aux_sym_block_repeat1 = 66, + aux_sym__assign_left_side_repeat1 = 67, + aux_sym__assign_left_side_repeat2 = 68, }; static const char * const ts_symbol_names[] = { [ts_builtin_sym_end] = "end", - [anon_sym_module] = "module", [anon_sym_COLON] = ":", [anon_sym_COMMA] = ",", [anon_sym_DASH_GT] = "->", + [anon_sym_module] = "module", [sym_identifier] = "identifier", [sym_number] = "number", [anon_sym_COLON_COLON] = "::", @@ -128,6 +129,7 @@ static const char * const ts_symbol_names[] = { [anon_sym_in] = "in", [anon_sym_SEMI] = ";", [sym_source_file] = "source_file", + [sym_interface_ports] = "interface_ports", [sym_module] = "module", [sym_global_identifier] = "global_identifier", [sym__maybe_global_identifier] = "_maybe_global_identifier", @@ -149,7 +151,7 @@ static const char * const ts_symbol_names[] = { [sym_for_statement] = "for_statement", [sym__statement] = "_statement", [aux_sym_source_file_repeat1] = "source_file_repeat1", - [aux_sym_module_repeat1] = "module_repeat1", + [aux_sym_interface_ports_repeat1] = "interface_ports_repeat1", [aux_sym_global_identifier_repeat1] = "global_identifier_repeat1", [aux_sym_func_call_repeat1] = "func_call_repeat1", [aux_sym_block_repeat1] = "block_repeat1", @@ -159,10 +161,10 @@ static const char * const ts_symbol_names[] = { static const TSSymbol ts_symbol_map[] = { [ts_builtin_sym_end] = ts_builtin_sym_end, - [anon_sym_module] = anon_sym_module, [anon_sym_COLON] = anon_sym_COLON, [anon_sym_COMMA] = anon_sym_COMMA, [anon_sym_DASH_GT] = anon_sym_DASH_GT, + [anon_sym_module] = anon_sym_module, [sym_identifier] = sym_identifier, [sym_number] = sym_number, [anon_sym_COLON_COLON] = anon_sym_COLON_COLON, @@ -199,6 +201,7 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_in] = anon_sym_in, [anon_sym_SEMI] = anon_sym_SEMI, [sym_source_file] = sym_source_file, + [sym_interface_ports] = sym_interface_ports, [sym_module] = sym_module, [sym_global_identifier] = sym_global_identifier, [sym__maybe_global_identifier] = sym__maybe_global_identifier, @@ -220,7 +223,7 @@ static const TSSymbol ts_symbol_map[] = { [sym_for_statement] = sym_for_statement, [sym__statement] = sym__statement, [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1, - [aux_sym_module_repeat1] = aux_sym_module_repeat1, + [aux_sym_interface_ports_repeat1] = aux_sym_interface_ports_repeat1, [aux_sym_global_identifier_repeat1] = aux_sym_global_identifier_repeat1, [aux_sym_func_call_repeat1] = aux_sym_func_call_repeat1, [aux_sym_block_repeat1] = aux_sym_block_repeat1, @@ -233,10 +236,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = true, }, - [anon_sym_module] = { - .visible = true, - .named = false, - }, [anon_sym_COLON] = { .visible = true, .named = false, @@ -249,6 +248,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_module] = { + .visible = true, + .named = false, + }, [sym_identifier] = { .visible = true, .named = true, @@ -393,6 +396,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_interface_ports] = { + .visible = true, + .named = true, + }, [sym_module] = { .visible = true, .named = true, @@ -477,7 +484,7 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, - [aux_sym_module_repeat1] = { + [aux_sym_interface_ports_repeat1] = { .visible = false, .named = false, }, @@ -504,150 +511,178 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { }; enum { - field_argument = 1, - field_arr = 2, - field_arr_idx = 3, - field_assign_to = 4, - field_assign_value = 5, - field_condition = 6, - field_from = 7, - field_inputs = 8, - field_latency_spec = 9, - field_left = 10, - field_module_name = 11, - field_name = 12, - field_outputs = 13, - field_right = 14, - field_to = 15, - field_type = 16, + field_arr = 1, + field_arr_idx = 2, + field_array_element_type = 3, + field_array_size = 4, + field_assign_to = 5, + field_assign_value = 6, + field_block = 7, + field_condition = 8, + field_declaration_modifiers = 9, + field_else_block = 10, + field_for_decl = 11, + field_for_range = 12, + field_from = 13, + field_func_arguments = 14, + field_inputs = 15, + field_interface_ports = 16, + field_latency_spec = 17, + field_left = 18, + field_name = 19, + field_operator = 20, + field_outputs = 21, + field_right = 22, + field_then_block = 23, + field_to = 24, + field_type = 25, }; static const char * const ts_field_names[] = { [0] = NULL, - [field_argument] = "argument", [field_arr] = "arr", [field_arr_idx] = "arr_idx", + [field_array_element_type] = "array_element_type", + [field_array_size] = "array_size", [field_assign_to] = "assign_to", [field_assign_value] = "assign_value", + [field_block] = "block", [field_condition] = "condition", + [field_declaration_modifiers] = "declaration_modifiers", + [field_else_block] = "else_block", + [field_for_decl] = "for_decl", + [field_for_range] = "for_range", [field_from] = "from", + [field_func_arguments] = "func_arguments", [field_inputs] = "inputs", + [field_interface_ports] = "interface_ports", [field_latency_spec] = "latency_spec", [field_left] = "left", - [field_module_name] = "module_name", [field_name] = "name", + [field_operator] = "operator", [field_outputs] = "outputs", [field_right] = "right", + [field_then_block] = "then_block", [field_to] = "to", [field_type] = "type", }; static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { - [1] = {.index = 0, .length = 1}, - [2] = {.index = 1, .length = 2}, - [3] = {.index = 3, .length = 2}, - [4] = {.index = 5, .length = 1}, - [5] = {.index = 6, .length = 2}, - [6] = {.index = 8, .length = 2}, - [7] = {.index = 10, .length = 3}, - [8] = {.index = 13, .length = 1}, - [9] = {.index = 14, .length = 1}, - [10] = {.index = 15, .length = 2}, - [11] = {.index = 17, .length = 2}, - [12] = {.index = 19, .length = 3}, - [13] = {.index = 22, .length = 3}, - [14] = {.index = 25, .length = 3}, - [15] = {.index = 28, .length = 2}, - [16] = {.index = 30, .length = 2}, - [17] = {.index = 32, .length = 3}, - [18] = {.index = 35, .length = 4}, - [19] = {.index = 39, .length = 4}, - [20] = {.index = 43, .length = 1}, - [21] = {.index = 44, .length = 3}, - [22] = {.index = 47, .length = 2}, - [23] = {.index = 49, .length = 5}, - [24] = {.index = 54, .length = 2}, + [1] = {.index = 0, .length = 2}, + [2] = {.index = 2, .length = 1}, + [3] = {.index = 3, .length = 3}, + [4] = {.index = 6, .length = 1}, + [5] = {.index = 7, .length = 2}, + [6] = {.index = 9, .length = 2}, + [7] = {.index = 11, .length = 2}, + [8] = {.index = 13, .length = 2}, + [9] = {.index = 15, .length = 3}, + [10] = {.index = 18, .length = 2}, + [11] = {.index = 20, .length = 2}, + [12] = {.index = 22, .length = 1}, + [13] = {.index = 23, .length = 3}, + [14] = {.index = 26, .length = 2}, + [15] = {.index = 28, .length = 3}, + [16] = {.index = 31, .length = 2}, + [17] = {.index = 33, .length = 3}, + [18] = {.index = 36, .length = 3}, + [19] = {.index = 39, .length = 2}, + [20] = {.index = 41, .length = 2}, + [21] = {.index = 43, .length = 4}, + [22] = {.index = 47, .length = 4}, + [23] = {.index = 51, .length = 3}, + [24] = {.index = 54, .length = 3}, + [25] = {.index = 57, .length = 3}, + [26] = {.index = 60, .length = 2}, }; static const TSFieldMapEntry ts_field_map_entries[] = { [0] = + {field_block, 2}, {field_name, 1}, - [1] = - {field_name, 1}, - {field_type, 0}, + [2] = + {field_inputs, 1}, [3] = - {field_inputs, 3}, + {field_block, 3}, + {field_interface_ports, 2}, {field_name, 1}, - [5] = - {field_right, 1}, [6] = + {field_outputs, 2}, + [7] = {field_name, 1}, - {field_outputs, 4}, - [8] = + {field_type, 0}, + [9] = + {field_inputs, 1}, + {field_inputs, 2}, + [11] = + {field_operator, 0}, + {field_right, 1}, + [13] = + {field_outputs, 2}, + {field_outputs, 3}, + [15] = + {field_declaration_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [10] = - {field_inputs, 3}, - {field_inputs, 4}, - {field_name, 1}, - [13] = + [18] = + {field_inputs, 1}, + {field_outputs, 3}, + [20] = {field_condition, 1}, - [14] = - {field_module_name, 0}, - [15] = + {field_then_block, 2}, + [22] = + {field_name, 0}, + [23] = {field_left, 0}, + {field_operator, 1}, {field_right, 2}, - [17] = + [26] = {field_assign_to, 0}, {field_assign_value, 2}, - [19] = - {field_name, 1}, - {field_outputs, 4}, - {field_outputs, 5}, - [22] = + [28] = {field_latency_spec, 3}, {field_name, 1}, {field_type, 0}, - [25] = - {field_inputs, 3}, - {field_name, 1}, - {field_outputs, 5}, - [28] = - {field_argument, 2}, - {field_module_name, 0}, - [30] = + [31] = + {field_array_element_type, 0}, + {field_array_size, 2}, + [33] = + {field_inputs, 1}, + {field_outputs, 3}, + {field_outputs, 4}, + [36] = + {field_inputs, 1}, + {field_inputs, 2}, + {field_outputs, 4}, + [39] = + {field_func_arguments, 2}, + {field_name, 0}, + [41] = {field_arr, 0}, {field_arr_idx, 2}, - [32] = + [43] = + {field_declaration_modifiers, 0}, {field_latency_spec, 4}, {field_name, 2}, {field_type, 1}, - [35] = - {field_inputs, 3}, - {field_name, 1}, - {field_outputs, 5}, - {field_outputs, 6}, - [39] = - {field_inputs, 3}, - {field_inputs, 4}, - {field_name, 1}, - {field_outputs, 6}, - [43] = - {field_argument, 1}, - [44] = - {field_argument, 2}, - {field_argument, 3, .inherited = true}, - {field_module_name, 0}, [47] = - {field_argument, 0, .inherited = true}, - {field_argument, 1, .inherited = true}, - [49] = - {field_inputs, 3}, - {field_inputs, 4}, - {field_name, 1}, - {field_outputs, 6}, - {field_outputs, 7}, + {field_inputs, 1}, + {field_inputs, 2}, + {field_outputs, 4}, + {field_outputs, 5}, + [51] = + {field_condition, 1}, + {field_else_block, 4}, + {field_then_block, 2}, [54] = + {field_block, 4}, + {field_for_decl, 1}, + {field_for_range, 3}, + [57] = + {field_func_arguments, 2}, + {field_func_arguments, 3}, + {field_name, 0}, + [60] = {field_from, 0}, {field_to, 2}, }; @@ -667,9 +702,9 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [3] = 3, [4] = 2, [5] = 3, - [6] = 2, - [7] = 3, - [8] = 8, + [6] = 6, + [7] = 2, + [8] = 3, [9] = 9, [10] = 10, [11] = 11, @@ -701,63 +736,63 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [37] = 37, [38] = 38, [39] = 39, - [40] = 40, - [41] = 41, + [40] = 38, + [41] = 11, [42] = 42, - [43] = 38, - [44] = 9, - [45] = 39, - [46] = 13, - [47] = 11, + [43] = 43, + [44] = 10, + [45] = 45, + [46] = 35, + [47] = 13, [48] = 48, - [49] = 12, + [49] = 9, [50] = 50, [51] = 51, - [52] = 52, - [53] = 14, + [52] = 12, + [53] = 53, [54] = 54, [55] = 55, [56] = 56, [57] = 57, [58] = 58, [59] = 59, - [60] = 60, - [61] = 55, + [60] = 54, + [61] = 61, [62] = 62, - [63] = 59, - [64] = 58, - [65] = 57, + [63] = 63, + [64] = 64, + [65] = 65, [66] = 66, [67] = 67, - [68] = 62, + [68] = 68, [69] = 69, [70] = 70, - [71] = 71, - [72] = 16, + [71] = 64, + [72] = 55, [73] = 73, - [74] = 74, - [75] = 54, - [76] = 76, + [74] = 16, + [75] = 57, + [76] = 59, [77] = 77, - [78] = 76, - [79] = 66, - [80] = 80, - [81] = 81, - [82] = 80, + [78] = 61, + [79] = 73, + [80] = 62, + [81] = 63, + [82] = 82, [83] = 83, [84] = 84, - [85] = 32, - [86] = 36, - [87] = 35, + [85] = 28, + [86] = 39, + [87] = 36, [88] = 88, - [89] = 89, - [90] = 90, + [89] = 27, + [90] = 30, [91] = 91, - [92] = 30, - [93] = 27, - [94] = 31, + [92] = 31, + [93] = 93, + [94] = 29, [95] = 95, - [96] = 33, + [96] = 96, [97] = 97, [98] = 98, [99] = 99, @@ -768,20 +803,20 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [104] = 104, [105] = 105, [106] = 106, - [107] = 107, - [108] = 107, - [109] = 109, + [107] = 106, + [108] = 9, + [109] = 12, [110] = 110, [111] = 111, [112] = 112, [113] = 113, - [114] = 12, + [114] = 114, [115] = 115, - [116] = 11, + [116] = 116, [117] = 117, - [118] = 13, - [119] = 119, - [120] = 14, + [118] = 11, + [119] = 13, + [120] = 120, [121] = 121, [122] = 122, [123] = 123, @@ -794,46 +829,36 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [130] = 130, [131] = 131, [132] = 132, - [133] = 16, - [134] = 134, + [133] = 133, + [134] = 16, [135] = 135, [136] = 136, [137] = 137, - [138] = 138, + [138] = 104, [139] = 139, [140] = 140, [141] = 141, [142] = 142, [143] = 143, - [144] = 144, - [145] = 145, + [144] = 35, + [145] = 140, [146] = 146, - [147] = 147, + [147] = 38, [148] = 148, - [149] = 140, + [149] = 148, [150] = 150, - [151] = 151, - [152] = 38, - [153] = 144, - [154] = 39, + [151] = 105, + [152] = 152, + [153] = 153, + [154] = 154, [155] = 155, - [156] = 156, - [157] = 157, + [156] = 154, + [157] = 154, [158] = 158, - [159] = 104, - [160] = 160, - [161] = 105, + [159] = 153, + [160] = 153, + [161] = 161, [162] = 162, - [163] = 162, - [164] = 164, - [165] = 165, - [166] = 164, - [167] = 164, - [168] = 168, - [169] = 162, - [170] = 170, - [171] = 171, - [172] = 172, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -2392,10 +2417,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == ')') ADVANCE(120); if (lookahead == '*') ADVANCE(105); if (lookahead == '+') ADVANCE(102); - if (lookahead == ',') ADVANCE(70); + if (lookahead == ',') ADVANCE(69); if (lookahead == '-') ADVANCE(104); if (lookahead == '/') SKIP(63) - if (lookahead == ':') ADVANCE(69); + if (lookahead == ':') ADVANCE(68); if (lookahead == ';') ADVANCE(134); if (lookahead == '<') ADVANCE(113); if (lookahead == '=') ADVANCE(126); @@ -2590,10 +2615,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == ')') ADVANCE(120); if (lookahead == '*') ADVANCE(105); if (lookahead == '+') ADVANCE(102); - if (lookahead == ',') ADVANCE(70); + if (lookahead == ',') ADVANCE(69); if (lookahead == '-') ADVANCE(104); if (lookahead == '/') ADVANCE(117); - if (lookahead == ':') ADVANCE(69); + if (lookahead == ':') ADVANCE(68); if (lookahead == ';') ADVANCE(134); if (lookahead == '<') ADVANCE(113); if (lookahead == '=') ADVANCE(126); @@ -2617,10 +2642,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == ')') ADVANCE(120); if (lookahead == '*') ADVANCE(105); if (lookahead == '+') ADVANCE(102); - if (lookahead == ',') ADVANCE(70); + if (lookahead == ',') ADVANCE(69); if (lookahead == '-') ADVANCE(104); if (lookahead == '/') ADVANCE(117); - if (lookahead == ':') ADVANCE(68); + if (lookahead == ':') ADVANCE(67); if (lookahead == ';') ADVANCE(134); if (lookahead == '<') ADVANCE(113); if (lookahead == '=') ADVANCE(126); @@ -2751,7 +2776,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 38: if (lookahead == '/') SKIP(37) - if (lookahead == ':') ADVANCE(68); + if (lookahead == ':') ADVANCE(67); if (lookahead == '{') ADVANCE(121); if (lookahead == '\t' || lookahead == '\n' || @@ -2786,7 +2811,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == 'e') ADVANCE(97); END_STATE(); case 48: - if (lookahead == 'e') ADVANCE(67); + if (lookahead == 'e') ADVANCE(71); END_STATE(); case 49: if (lookahead == 'f') ADVANCE(127); @@ -2853,20 +2878,20 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); case 67: - ACCEPT_TOKEN(anon_sym_module); + ACCEPT_TOKEN(anon_sym_COLON); END_STATE(); case 68: ACCEPT_TOKEN(anon_sym_COLON); + if (lookahead == ':') ADVANCE(94); END_STATE(); case 69: - ACCEPT_TOKEN(anon_sym_COLON); - if (lookahead == ':') ADVANCE(94); + ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); case 70: - ACCEPT_TOKEN(anon_sym_COMMA); + ACCEPT_TOKEN(anon_sym_DASH_GT); END_STATE(); case 71: - ACCEPT_TOKEN(anon_sym_DASH_GT); + ACCEPT_TOKEN(anon_sym_module); END_STATE(); case 72: ACCEPT_TOKEN(sym_identifier); @@ -3012,7 +3037,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 104: ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '>') ADVANCE(71); + if (lookahead == '>') ADVANCE(70); END_STATE(); case 105: ACCEPT_TOKEN(anon_sym_STAR); @@ -3129,11 +3154,11 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [7] = {.lex_state = 10}, [8] = {.lex_state = 10}, [9] = {.lex_state = 14}, - [10] = {.lex_state = 11}, + [10] = {.lex_state = 14}, [11] = {.lex_state = 14}, [12] = {.lex_state = 14}, [13] = {.lex_state = 14}, - [14] = {.lex_state = 14}, + [14] = {.lex_state = 11}, [15] = {.lex_state = 11}, [16] = {.lex_state = 14}, [17] = {.lex_state = 12}, @@ -3147,32 +3172,32 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [25] = {.lex_state = 15}, [26] = {.lex_state = 15}, [27] = {.lex_state = 15}, - [28] = {.lex_state = 9}, - [29] = {.lex_state = 9}, + [28] = {.lex_state = 15}, + [29] = {.lex_state = 15}, [30] = {.lex_state = 15}, [31] = {.lex_state = 15}, - [32] = {.lex_state = 15}, - [33] = {.lex_state = 15}, + [32] = {.lex_state = 9}, + [33] = {.lex_state = 9}, [34] = {.lex_state = 14}, - [35] = {.lex_state = 14}, + [35] = {.lex_state = 13}, [36] = {.lex_state = 14}, [37] = {.lex_state = 13}, [38] = {.lex_state = 13}, - [39] = {.lex_state = 13}, - [40] = {.lex_state = 14}, - [41] = {.lex_state = 10}, + [39] = {.lex_state = 14}, + [40] = {.lex_state = 10}, + [41] = {.lex_state = 16}, [42] = {.lex_state = 10}, [43] = {.lex_state = 10}, [44] = {.lex_state = 16}, - [45] = {.lex_state = 10}, - [46] = {.lex_state = 16}, + [45] = {.lex_state = 14}, + [46] = {.lex_state = 10}, [47] = {.lex_state = 16}, - [48] = {.lex_state = 14}, + [48] = {.lex_state = 8}, [49] = {.lex_state = 16}, - [50] = {.lex_state = 8}, - [51] = {.lex_state = 10}, - [52] = {.lex_state = 8}, - [53] = {.lex_state = 16}, + [50] = {.lex_state = 14}, + [51] = {.lex_state = 8}, + [52] = {.lex_state = 16}, + [53] = {.lex_state = 10}, [54] = {.lex_state = 8}, [55] = {.lex_state = 8}, [56] = {.lex_state = 14}, @@ -3186,14 +3211,14 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [64] = {.lex_state = 8}, [65] = {.lex_state = 8}, [66] = {.lex_state = 8}, - [67] = {.lex_state = 8}, + [67] = {.lex_state = 14}, [68] = {.lex_state = 8}, [69] = {.lex_state = 14}, [70] = {.lex_state = 8}, - [71] = {.lex_state = 14}, - [72] = {.lex_state = 16}, + [71] = {.lex_state = 8}, + [72] = {.lex_state = 8}, [73] = {.lex_state = 8}, - [74] = {.lex_state = 14}, + [74] = {.lex_state = 16}, [75] = {.lex_state = 8}, [76] = {.lex_state = 8}, [77] = {.lex_state = 8}, @@ -3201,21 +3226,21 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [79] = {.lex_state = 8}, [80] = {.lex_state = 8}, [81] = {.lex_state = 8}, - [82] = {.lex_state = 8}, + [82] = {.lex_state = 14}, [83] = {.lex_state = 14}, - [84] = {.lex_state = 15}, + [84] = {.lex_state = 14}, [85] = {.lex_state = 15}, [86] = {.lex_state = 15}, [87] = {.lex_state = 15}, [88] = {.lex_state = 14}, - [89] = {.lex_state = 14}, - [90] = {.lex_state = 14}, - [91] = {.lex_state = 14}, + [89] = {.lex_state = 15}, + [90] = {.lex_state = 15}, + [91] = {.lex_state = 15}, [92] = {.lex_state = 15}, - [93] = {.lex_state = 15}, + [93] = {.lex_state = 14}, [94] = {.lex_state = 15}, [95] = {.lex_state = 14}, - [96] = {.lex_state = 15}, + [96] = {.lex_state = 14}, [97] = {.lex_state = 12}, [98] = {.lex_state = 9}, [99] = {.lex_state = 9}, @@ -3225,24 +3250,24 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [103] = {.lex_state = 9}, [104] = {.lex_state = 0}, [105] = {.lex_state = 0}, - [106] = {.lex_state = 0}, + [106] = {.lex_state = 8}, [107] = {.lex_state = 8}, [108] = {.lex_state = 8}, - [109] = {.lex_state = 0}, + [109] = {.lex_state = 8}, [110] = {.lex_state = 0}, - [111] = {.lex_state = 8}, - [112] = {.lex_state = 0}, + [111] = {.lex_state = 0}, + [112] = {.lex_state = 38}, [113] = {.lex_state = 0}, - [114] = {.lex_state = 8}, + [114] = {.lex_state = 0}, [115] = {.lex_state = 0}, - [116] = {.lex_state = 8}, + [116] = {.lex_state = 0}, [117] = {.lex_state = 0}, [118] = {.lex_state = 8}, - [119] = {.lex_state = 0}, - [120] = {.lex_state = 8}, + [119] = {.lex_state = 8}, + [120] = {.lex_state = 0}, [121] = {.lex_state = 0}, [122] = {.lex_state = 0}, - [123] = {.lex_state = 0}, + [123] = {.lex_state = 8}, [124] = {.lex_state = 0}, [125] = {.lex_state = 0}, [126] = {.lex_state = 0}, @@ -3251,56 +3276,46 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [129] = {.lex_state = 0}, [130] = {.lex_state = 0}, [131] = {.lex_state = 0}, - [132] = {.lex_state = 38}, - [133] = {.lex_state = 8}, - [134] = {.lex_state = 0}, + [132] = {.lex_state = 0}, + [133] = {.lex_state = 0}, + [134] = {.lex_state = 8}, [135] = {.lex_state = 0}, [136] = {.lex_state = 0}, [137] = {.lex_state = 0}, [138] = {.lex_state = 0}, - [139] = {.lex_state = 0}, + [139] = {.lex_state = 8}, [140] = {.lex_state = 8}, [141] = {.lex_state = 0}, [142] = {.lex_state = 0}, [143] = {.lex_state = 0}, - [144] = {.lex_state = 8}, - [145] = {.lex_state = 0}, + [144] = {.lex_state = 0}, + [145] = {.lex_state = 8}, [146] = {.lex_state = 0}, [147] = {.lex_state = 0}, [148] = {.lex_state = 8}, [149] = {.lex_state = 8}, [150] = {.lex_state = 0}, [151] = {.lex_state = 0}, - [152] = {.lex_state = 0}, + [152] = {.lex_state = 8}, [153] = {.lex_state = 8}, - [154] = {.lex_state = 0}, + [154] = {.lex_state = 8}, [155] = {.lex_state = 0}, - [156] = {.lex_state = 0}, - [157] = {.lex_state = 0}, + [156] = {.lex_state = 8}, + [157] = {.lex_state = 8}, [158] = {.lex_state = 0}, - [159] = {.lex_state = 0}, - [160] = {.lex_state = 0}, + [159] = {.lex_state = 8}, + [160] = {.lex_state = 8}, [161] = {.lex_state = 0}, - [162] = {.lex_state = 8}, - [163] = {.lex_state = 8}, - [164] = {.lex_state = 8}, - [165] = {.lex_state = 0}, - [166] = {.lex_state = 8}, - [167] = {.lex_state = 8}, - [168] = {.lex_state = 0}, - [169] = {.lex_state = 8}, - [170] = {.lex_state = 8}, - [171] = {.lex_state = 0}, - [172] = {.lex_state = 0}, + [162] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [0] = { [ts_builtin_sym_end] = ACTIONS(1), - [anon_sym_module] = ACTIONS(1), [anon_sym_COLON] = ACTIONS(1), [anon_sym_COMMA] = ACTIONS(1), [anon_sym_DASH_GT] = ACTIONS(1), + [anon_sym_module] = ACTIONS(1), [sym_number] = ACTIONS(1), [anon_sym_COLON_COLON] = ACTIONS(1), [anon_sym_LBRACK] = ACTIONS(1), @@ -3335,33 +3350,33 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_SEMI] = ACTIONS(1), }, [1] = { - [sym_source_file] = STATE(168), - [sym_module] = STATE(129), - [aux_sym_source_file_repeat1] = STATE(129), + [sym_source_file] = STATE(158), + [sym_module] = STATE(111), + [aux_sym_source_file_repeat1] = STATE(111), [ts_builtin_sym_end] = ACTIONS(3), [anon_sym_module] = ACTIONS(5), }, [2] = { [sym_global_identifier] = STATE(34), [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(144), - [sym__type] = STATE(144), + [sym_array_type] = STATE(140), + [sym__type] = STATE(140), [sym_declaration] = STATE(122), - [sym_unary_op] = STATE(40), - [sym_binary_op] = STATE(40), - [sym_array_op] = STATE(40), - [sym_func_call] = STATE(40), - [sym__expression] = STATE(40), - [sym_block] = STATE(8), - [sym__assign_left_side] = STATE(171), - [sym_decl_assign_statement] = STATE(165), - [sym_decl_statement] = STATE(165), - [sym_expression_statement] = STATE(165), - [sym_if_statement] = STATE(8), - [sym_for_statement] = STATE(8), - [sym__statement] = STATE(8), - [aux_sym_block_repeat1] = STATE(8), - [aux_sym__assign_left_side_repeat1] = STATE(18), + [sym_unary_op] = STATE(45), + [sym_binary_op] = STATE(45), + [sym_array_op] = STATE(45), + [sym_func_call] = STATE(45), + [sym__expression] = STATE(45), + [sym_block] = STATE(6), + [sym__assign_left_side] = STATE(162), + [sym_decl_assign_statement] = STATE(161), + [sym_decl_statement] = STATE(161), + [sym_expression_statement] = STATE(161), + [sym_if_statement] = STATE(6), + [sym_for_statement] = STATE(6), + [sym__statement] = STATE(6), + [aux_sym_block_repeat1] = STATE(6), + [aux_sym__assign_left_side_repeat1] = STATE(17), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), [anon_sym_COLON_COLON] = ACTIONS(11), @@ -3385,24 +3400,24 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [3] = { [sym_global_identifier] = STATE(34), [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(144), - [sym__type] = STATE(144), + [sym_array_type] = STATE(140), + [sym__type] = STATE(140), [sym_declaration] = STATE(122), - [sym_unary_op] = STATE(40), - [sym_binary_op] = STATE(40), - [sym_array_op] = STATE(40), - [sym_func_call] = STATE(40), - [sym__expression] = STATE(40), + [sym_unary_op] = STATE(45), + [sym_binary_op] = STATE(45), + [sym_array_op] = STATE(45), + [sym_func_call] = STATE(45), + [sym__expression] = STATE(45), [sym_block] = STATE(2), - [sym__assign_left_side] = STATE(171), - [sym_decl_assign_statement] = STATE(165), - [sym_decl_statement] = STATE(165), - [sym_expression_statement] = STATE(165), + [sym__assign_left_side] = STATE(162), + [sym_decl_assign_statement] = STATE(161), + [sym_decl_statement] = STATE(161), + [sym_expression_statement] = STATE(161), [sym_if_statement] = STATE(2), [sym_for_statement] = STATE(2), [sym__statement] = STATE(2), [aux_sym_block_repeat1] = STATE(2), - [aux_sym__assign_left_side_repeat1] = STATE(18), + [aux_sym__assign_left_side_repeat1] = STATE(17), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), [anon_sym_COLON_COLON] = ACTIONS(11), @@ -3426,24 +3441,24 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [4] = { [sym_global_identifier] = STATE(34), [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(144), - [sym__type] = STATE(144), + [sym_array_type] = STATE(140), + [sym__type] = STATE(140), [sym_declaration] = STATE(122), - [sym_unary_op] = STATE(40), - [sym_binary_op] = STATE(40), - [sym_array_op] = STATE(40), - [sym_func_call] = STATE(40), - [sym__expression] = STATE(40), - [sym_block] = STATE(8), - [sym__assign_left_side] = STATE(171), - [sym_decl_assign_statement] = STATE(165), - [sym_decl_statement] = STATE(165), - [sym_expression_statement] = STATE(165), - [sym_if_statement] = STATE(8), - [sym_for_statement] = STATE(8), - [sym__statement] = STATE(8), - [aux_sym_block_repeat1] = STATE(8), - [aux_sym__assign_left_side_repeat1] = STATE(18), + [sym_unary_op] = STATE(45), + [sym_binary_op] = STATE(45), + [sym_array_op] = STATE(45), + [sym_func_call] = STATE(45), + [sym__expression] = STATE(45), + [sym_block] = STATE(6), + [sym__assign_left_side] = STATE(162), + [sym_decl_assign_statement] = STATE(161), + [sym_decl_statement] = STATE(161), + [sym_expression_statement] = STATE(161), + [sym_if_statement] = STATE(6), + [sym_for_statement] = STATE(6), + [sym__statement] = STATE(6), + [aux_sym_block_repeat1] = STATE(6), + [aux_sym__assign_left_side_repeat1] = STATE(17), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), [anon_sym_COLON_COLON] = ACTIONS(11), @@ -3467,24 +3482,24 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [5] = { [sym_global_identifier] = STATE(34), [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(144), - [sym__type] = STATE(144), + [sym_array_type] = STATE(140), + [sym__type] = STATE(140), [sym_declaration] = STATE(122), - [sym_unary_op] = STATE(40), - [sym_binary_op] = STATE(40), - [sym_array_op] = STATE(40), - [sym_func_call] = STATE(40), - [sym__expression] = STATE(40), + [sym_unary_op] = STATE(45), + [sym_binary_op] = STATE(45), + [sym_array_op] = STATE(45), + [sym_func_call] = STATE(45), + [sym__expression] = STATE(45), [sym_block] = STATE(4), - [sym__assign_left_side] = STATE(171), - [sym_decl_assign_statement] = STATE(165), - [sym_decl_statement] = STATE(165), - [sym_expression_statement] = STATE(165), + [sym__assign_left_side] = STATE(162), + [sym_decl_assign_statement] = STATE(161), + [sym_decl_statement] = STATE(161), + [sym_expression_statement] = STATE(161), [sym_if_statement] = STATE(4), [sym_for_statement] = STATE(4), [sym__statement] = STATE(4), [aux_sym_block_repeat1] = STATE(4), - [aux_sym__assign_left_side_repeat1] = STATE(18), + [aux_sym__assign_left_side_repeat1] = STATE(17), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), [anon_sym_COLON_COLON] = ACTIONS(11), @@ -3508,24 +3523,65 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [6] = { [sym_global_identifier] = STATE(34), [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(144), - [sym__type] = STATE(144), + [sym_array_type] = STATE(140), + [sym__type] = STATE(140), + [sym_declaration] = STATE(122), + [sym_unary_op] = STATE(45), + [sym_binary_op] = STATE(45), + [sym_array_op] = STATE(45), + [sym_func_call] = STATE(45), + [sym__expression] = STATE(45), + [sym_block] = STATE(6), + [sym__assign_left_side] = STATE(162), + [sym_decl_assign_statement] = STATE(161), + [sym_decl_statement] = STATE(161), + [sym_expression_statement] = STATE(161), + [sym_if_statement] = STATE(6), + [sym_for_statement] = STATE(6), + [sym__statement] = STATE(6), + [aux_sym_block_repeat1] = STATE(6), + [aux_sym__assign_left_side_repeat1] = STATE(17), + [sym_identifier] = ACTIONS(37), + [sym_number] = ACTIONS(40), + [anon_sym_COLON_COLON] = ACTIONS(43), + [anon_sym_state] = ACTIONS(46), + [anon_sym_gen] = ACTIONS(46), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_STAR] = ACTIONS(49), + [anon_sym_BANG] = ACTIONS(49), + [anon_sym_PIPE] = ACTIONS(49), + [anon_sym_AMP] = ACTIONS(49), + [anon_sym_CARET] = ACTIONS(49), + [anon_sym_LPAREN] = ACTIONS(52), + [anon_sym_LBRACE] = ACTIONS(55), + [anon_sym_RBRACE] = ACTIONS(58), + [anon_sym_reg] = ACTIONS(60), + [anon_sym_initial] = ACTIONS(63), + [anon_sym_if] = ACTIONS(66), + [anon_sym_for] = ACTIONS(69), + }, + [7] = { + [sym_global_identifier] = STATE(34), + [sym__maybe_global_identifier] = STATE(19), + [sym_array_type] = STATE(140), + [sym__type] = STATE(140), [sym_declaration] = STATE(122), - [sym_unary_op] = STATE(40), - [sym_binary_op] = STATE(40), - [sym_array_op] = STATE(40), - [sym_func_call] = STATE(40), - [sym__expression] = STATE(40), - [sym_block] = STATE(8), - [sym__assign_left_side] = STATE(171), - [sym_decl_assign_statement] = STATE(165), - [sym_decl_statement] = STATE(165), - [sym_expression_statement] = STATE(165), - [sym_if_statement] = STATE(8), - [sym_for_statement] = STATE(8), - [sym__statement] = STATE(8), - [aux_sym_block_repeat1] = STATE(8), - [aux_sym__assign_left_side_repeat1] = STATE(18), + [sym_unary_op] = STATE(45), + [sym_binary_op] = STATE(45), + [sym_array_op] = STATE(45), + [sym_func_call] = STATE(45), + [sym__expression] = STATE(45), + [sym_block] = STATE(6), + [sym__assign_left_side] = STATE(162), + [sym_decl_assign_statement] = STATE(161), + [sym_decl_statement] = STATE(161), + [sym_expression_statement] = STATE(161), + [sym_if_statement] = STATE(6), + [sym_for_statement] = STATE(6), + [sym__statement] = STATE(6), + [aux_sym_block_repeat1] = STATE(6), + [aux_sym__assign_left_side_repeat1] = STATE(17), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), [anon_sym_COLON_COLON] = ACTIONS(11), @@ -3540,33 +3596,33 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_CARET] = ACTIONS(15), [anon_sym_LPAREN] = ACTIONS(17), [anon_sym_LBRACE] = ACTIONS(19), - [anon_sym_RBRACE] = ACTIONS(37), + [anon_sym_RBRACE] = ACTIONS(72), [anon_sym_reg] = ACTIONS(23), [anon_sym_initial] = ACTIONS(25), [anon_sym_if] = ACTIONS(27), [anon_sym_for] = ACTIONS(29), }, - [7] = { + [8] = { [sym_global_identifier] = STATE(34), [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(144), - [sym__type] = STATE(144), + [sym_array_type] = STATE(140), + [sym__type] = STATE(140), [sym_declaration] = STATE(122), - [sym_unary_op] = STATE(40), - [sym_binary_op] = STATE(40), - [sym_array_op] = STATE(40), - [sym_func_call] = STATE(40), - [sym__expression] = STATE(40), - [sym_block] = STATE(6), - [sym__assign_left_side] = STATE(171), - [sym_decl_assign_statement] = STATE(165), - [sym_decl_statement] = STATE(165), - [sym_expression_statement] = STATE(165), - [sym_if_statement] = STATE(6), - [sym_for_statement] = STATE(6), - [sym__statement] = STATE(6), - [aux_sym_block_repeat1] = STATE(6), - [aux_sym__assign_left_side_repeat1] = STATE(18), + [sym_unary_op] = STATE(45), + [sym_binary_op] = STATE(45), + [sym_array_op] = STATE(45), + [sym_func_call] = STATE(45), + [sym__expression] = STATE(45), + [sym_block] = STATE(7), + [sym__assign_left_side] = STATE(162), + [sym_decl_assign_statement] = STATE(161), + [sym_decl_statement] = STATE(161), + [sym_expression_statement] = STATE(161), + [sym_if_statement] = STATE(7), + [sym_for_statement] = STATE(7), + [sym__statement] = STATE(7), + [aux_sym_block_repeat1] = STATE(7), + [aux_sym__assign_left_side_repeat1] = STATE(17), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), [anon_sym_COLON_COLON] = ACTIONS(11), @@ -3581,62 +3637,21 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_CARET] = ACTIONS(15), [anon_sym_LPAREN] = ACTIONS(17), [anon_sym_LBRACE] = ACTIONS(19), - [anon_sym_RBRACE] = ACTIONS(39), + [anon_sym_RBRACE] = ACTIONS(74), [anon_sym_reg] = ACTIONS(23), [anon_sym_initial] = ACTIONS(25), [anon_sym_if] = ACTIONS(27), [anon_sym_for] = ACTIONS(29), }, - [8] = { - [sym_global_identifier] = STATE(34), - [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(144), - [sym__type] = STATE(144), - [sym_declaration] = STATE(122), - [sym_unary_op] = STATE(40), - [sym_binary_op] = STATE(40), - [sym_array_op] = STATE(40), - [sym_func_call] = STATE(40), - [sym__expression] = STATE(40), - [sym_block] = STATE(8), - [sym__assign_left_side] = STATE(171), - [sym_decl_assign_statement] = STATE(165), - [sym_decl_statement] = STATE(165), - [sym_expression_statement] = STATE(165), - [sym_if_statement] = STATE(8), - [sym_for_statement] = STATE(8), - [sym__statement] = STATE(8), - [aux_sym_block_repeat1] = STATE(8), - [aux_sym__assign_left_side_repeat1] = STATE(18), - [sym_identifier] = ACTIONS(41), - [sym_number] = ACTIONS(44), - [anon_sym_COLON_COLON] = ACTIONS(47), - [anon_sym_state] = ACTIONS(50), - [anon_sym_gen] = ACTIONS(50), - [anon_sym_PLUS] = ACTIONS(53), - [anon_sym_DASH] = ACTIONS(53), - [anon_sym_STAR] = ACTIONS(53), - [anon_sym_BANG] = ACTIONS(53), - [anon_sym_PIPE] = ACTIONS(53), - [anon_sym_AMP] = ACTIONS(53), - [anon_sym_CARET] = ACTIONS(53), - [anon_sym_LPAREN] = ACTIONS(56), - [anon_sym_LBRACE] = ACTIONS(59), - [anon_sym_RBRACE] = ACTIONS(62), - [anon_sym_reg] = ACTIONS(64), - [anon_sym_initial] = ACTIONS(67), - [anon_sym_if] = ACTIONS(70), - [anon_sym_for] = ACTIONS(73), - }, }; static const uint16_t ts_small_parse_table[] = { [0] = 4, ACTIONS(78), 1, anon_sym_COLON_COLON, - ACTIONS(80), 1, + ACTIONS(81), 1, anon_sym_SLASH, - STATE(11), 1, + STATE(9), 1, aux_sym_global_identifier_repeat1, ACTIONS(76), 24, anon_sym_COLON, @@ -3663,57 +3678,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [36] = 15, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(23), 1, - anon_sym_reg, - ACTIONS(25), 1, - anon_sym_initial, - ACTIONS(82), 1, - sym_number, - STATE(18), 1, - aux_sym__assign_left_side_repeat1, - STATE(19), 1, - sym__maybe_global_identifier, - STATE(34), 1, - sym_global_identifier, - STATE(137), 1, - sym_declaration, - STATE(142), 1, - sym__assign_left_side, - ACTIONS(13), 2, - anon_sym_state, - anon_sym_gen, - STATE(144), 2, - sym_array_type, - sym__type, - STATE(56), 5, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [94] = 4, - ACTIONS(78), 1, + [36] = 4, + ACTIONS(85), 1, anon_sym_COLON_COLON, - ACTIONS(86), 1, + ACTIONS(87), 1, anon_sym_SLASH, - STATE(14), 1, + STATE(12), 1, aux_sym_global_identifier_repeat1, - ACTIONS(84), 24, + ACTIONS(83), 24, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, @@ -3738,14 +3710,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [130] = 4, - ACTIONS(78), 1, + [72] = 4, + ACTIONS(85), 1, anon_sym_COLON_COLON, - ACTIONS(86), 1, + ACTIONS(91), 1, anon_sym_SLASH, STATE(13), 1, aux_sym_global_identifier_repeat1, - ACTIONS(84), 24, + ACTIONS(89), 24, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, @@ -3770,14 +3742,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [166] = 4, - ACTIONS(78), 1, + [108] = 4, + ACTIONS(85), 1, anon_sym_COLON_COLON, - ACTIONS(90), 1, + ACTIONS(91), 1, anon_sym_SLASH, - STATE(14), 1, + STATE(9), 1, aux_sym_global_identifier_repeat1, - ACTIONS(88), 24, + ACTIONS(89), 24, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, @@ -3802,14 +3774,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [202] = 4, - ACTIONS(94), 1, + [144] = 4, + ACTIONS(85), 1, anon_sym_COLON_COLON, - ACTIONS(97), 1, + ACTIONS(95), 1, anon_sym_SLASH, - STATE(14), 1, + STATE(9), 1, aux_sym_global_identifier_repeat1, - ACTIONS(92), 24, + ACTIONS(93), 24, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, @@ -3834,6 +3806,49 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, + [180] = 15, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(11), 1, + anon_sym_COLON_COLON, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(23), 1, + anon_sym_reg, + ACTIONS(25), 1, + anon_sym_initial, + ACTIONS(97), 1, + sym_number, + STATE(17), 1, + aux_sym__assign_left_side_repeat1, + STATE(19), 1, + sym__maybe_global_identifier, + STATE(34), 1, + sym_global_identifier, + STATE(125), 1, + sym_declaration, + STATE(146), 1, + sym__assign_left_side, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + STATE(140), 2, + sym_array_type, + sym__type, + STATE(56), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(15), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, [238] = 14, ACTIONS(7), 1, sym_identifier, @@ -3847,21 +3862,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_reg, ACTIONS(103), 1, anon_sym_initial, - STATE(17), 1, + STATE(18), 1, aux_sym__assign_left_side_repeat1, STATE(19), 1, sym__maybe_global_identifier, STATE(34), 1, sym_global_identifier, - STATE(136), 1, + STATE(133), 1, sym_declaration, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(144), 2, + STATE(140), 2, sym_array_type, sym__type, - STATE(71), 5, + STATE(69), 5, sym_unary_op, sym_binary_op, sym_array_op, @@ -3876,9 +3891,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, [293] = 2, - ACTIONS(97), 1, + ACTIONS(81), 1, anon_sym_SLASH, - ACTIONS(92), 25, + ACTIONS(76), 25, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, @@ -3921,15 +3936,15 @@ static const uint16_t ts_small_parse_table[] = { sym_global_identifier, STATE(97), 1, aux_sym__assign_left_side_repeat1, - STATE(131), 1, + STATE(114), 1, sym_declaration, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(144), 2, + STATE(140), 2, sym_array_type, sym__type, - STATE(74), 5, + STATE(50), 5, sym_unary_op, sym_binary_op, sym_array_op, @@ -3960,15 +3975,15 @@ static const uint16_t ts_small_parse_table[] = { sym_global_identifier, STATE(97), 1, aux_sym__assign_left_side_repeat1, - STATE(126), 1, + STATE(132), 1, sym_declaration, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(144), 2, + STATE(140), 2, sym_array_type, sym__type, - STATE(48), 5, + STATE(67), 5, sym_unary_op, sym_binary_op, sym_array_op, @@ -4200,12 +4215,43 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [663] = 6, + [663] = 7, ACTIONS(149), 1, anon_sym_PIPE, ACTIONS(151), 1, + anon_sym_AMP, + ACTIONS(153), 1, anon_sym_CARET, + ACTIONS(155), 1, + anon_sym_SLASH, + ACTIONS(145), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(147), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(117), 15, + anon_sym_COLON, + anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_RPAREN, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_SEMI, + [701] = 6, + ACTIONS(149), 1, + anon_sym_PIPE, ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, anon_sym_SLASH, ACTIONS(145), 2, anon_sym_PLUS, @@ -4230,93 +4276,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [699] = 11, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(109), 1, - sym_number, - STATE(19), 1, - sym__maybe_global_identifier, - STATE(34), 1, - sym_global_identifier, - STATE(126), 1, - sym_declaration, - ACTIONS(13), 2, - anon_sym_state, - anon_sym_gen, - STATE(144), 2, - sym_array_type, - sym__type, - STATE(48), 5, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym__expression, - ACTIONS(15), 7, + [737] = 5, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, + anon_sym_SLASH, + ACTIONS(145), 2, anon_sym_PLUS, anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [745] = 11, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(105), 1, - sym_number, - STATE(19), 1, - sym__maybe_global_identifier, - STATE(34), 1, - sym_global_identifier, - STATE(131), 1, - sym_declaration, - ACTIONS(13), 2, - anon_sym_state, - anon_sym_gen, - STATE(144), 2, - sym_array_type, - sym__type, - STATE(74), 5, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [791] = 3, - ACTIONS(153), 1, - anon_sym_SLASH, - ACTIONS(147), 2, + ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(117), 20, + ACTIONS(117), 17, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_PLUS, - anon_sym_DASH, anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, @@ -4327,25 +4305,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [821] = 5, - ACTIONS(151), 1, - anon_sym_CARET, - ACTIONS(153), 1, + [771] = 3, + ACTIONS(155), 1, anon_sym_SLASH, - ACTIONS(145), 2, - anon_sym_PLUS, - anon_sym_DASH, ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(117), 17, + ACTIONS(117), 20, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_PLUS, + anon_sym_DASH, anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, @@ -4356,8 +4332,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [855] = 4, - ACTIONS(153), 1, + [801] = 4, + ACTIONS(155), 1, anon_sym_SLASH, ACTIONS(145), 2, anon_sym_PLUS, @@ -4384,37 +4360,76 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [887] = 7, - ACTIONS(149), 1, + [833] = 11, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(11), 1, + anon_sym_COLON_COLON, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(109), 1, + sym_number, + STATE(19), 1, + sym__maybe_global_identifier, + STATE(34), 1, + sym_global_identifier, + STATE(132), 1, + sym_declaration, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + STATE(140), 2, + sym_array_type, + sym__type, + STATE(67), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(15), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_CARET, - ACTIONS(153), 1, - anon_sym_SLASH, - ACTIONS(155), 1, anon_sym_AMP, - ACTIONS(145), 2, + anon_sym_CARET, + [879] = 11, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(11), 1, + anon_sym_COLON_COLON, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(105), 1, + sym_number, + STATE(19), 1, + sym__maybe_global_identifier, + STATE(34), 1, + sym_global_identifier, + STATE(114), 1, + sym_declaration, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + STATE(140), 2, + sym_array_type, + sym__type, + STATE(50), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(147), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(117), 15, - anon_sym_COLON, - anon_sym_COMMA, - anon_sym_DASH_GT, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_SEMI, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, [925] = 4, ACTIONS(159), 1, sym_identifier, @@ -4441,46 +4456,39 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [955] = 9, - ACTIONS(149), 1, - anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_CARET, - ACTIONS(153), 1, - anon_sym_SLASH, - ACTIONS(155), 1, - anon_sym_AMP, - ACTIONS(168), 1, - anon_sym_LBRACK, - ACTIONS(145), 2, + [955] = 2, + ACTIONS(166), 8, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_else, + anon_sym_for, + ACTIONS(168), 12, + sym_number, + anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(147), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(166), 5, - anon_sym_COMMA, - anon_sym_DASH_GT, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_SEMI, - ACTIONS(170), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [994] = 9, + anon_sym_RBRACE, + [980] = 9, ACTIONS(149), 1, anon_sym_PIPE, ACTIONS(151), 1, - anon_sym_CARET, + anon_sym_AMP, ACTIONS(153), 1, - anon_sym_SLASH, + anon_sym_CARET, ACTIONS(155), 1, - anon_sym_AMP, - ACTIONS(168), 1, + anon_sym_SLASH, + ACTIONS(172), 1, anon_sym_LBRACK, ACTIONS(145), 2, anon_sym_PLUS, @@ -4488,54 +4496,31 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(172), 5, + ACTIONS(170), 5, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - ACTIONS(170), 6, + ACTIONS(174), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1033] = 3, - ACTIONS(178), 1, + [1019] = 3, + ACTIONS(180), 1, anon_sym_else, - ACTIONS(174), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(176), 12, - sym_number, - anon_sym_COLON_COLON, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1060] = 2, - ACTIONS(180), 8, + ACTIONS(176), 7, sym_identifier, anon_sym_state, anon_sym_gen, anon_sym_reg, anon_sym_initial, anon_sym_if, - anon_sym_else, anon_sym_for, - ACTIONS(182), 12, + ACTIONS(178), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -4548,8 +4533,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1085] = 2, - ACTIONS(184), 8, + [1046] = 2, + ACTIONS(182), 8, sym_identifier, anon_sym_state, anon_sym_gen, @@ -4558,7 +4543,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_else, anon_sym_for, - ACTIONS(186), 12, + ACTIONS(184), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -4571,40 +4556,38 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1110] = 12, + [1071] = 9, ACTIONS(149), 1, anon_sym_PIPE, ACTIONS(151), 1, - anon_sym_CARET, + anon_sym_AMP, ACTIONS(153), 1, - anon_sym_SLASH, + anon_sym_CARET, ACTIONS(155), 1, - anon_sym_AMP, - ACTIONS(168), 1, + anon_sym_SLASH, + ACTIONS(172), 1, anon_sym_LBRACK, - ACTIONS(188), 1, - anon_sym_COMMA, - ACTIONS(190), 1, - anon_sym_EQ, - ACTIONS(192), 1, - anon_sym_SEMI, - STATE(128), 1, - aux_sym__assign_left_side_repeat2, ACTIONS(145), 2, anon_sym_PLUS, anon_sym_DASH, ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(170), 6, + ACTIONS(186), 5, + anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_SEMI, + ACTIONS(174), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1154] = 2, - ACTIONS(194), 7, + [1110] = 2, + ACTIONS(182), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -4612,7 +4595,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(196), 12, + ACTIONS(184), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -4625,8 +4608,32 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1178] = 2, - ACTIONS(198), 7, + [1134] = 4, + ACTIONS(91), 1, + anon_sym_SLASH, + ACTIONS(188), 1, + anon_sym_COLON_COLON, + STATE(47), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(89), 16, + anon_sym_LBRACK, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_in, + [1162] = 2, + ACTIONS(190), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -4634,7 +4641,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(200), 12, + ACTIONS(192), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -4647,8 +4654,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1202] = 2, - ACTIONS(180), 7, + [1186] = 2, + ACTIONS(194), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -4656,7 +4663,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(182), 12, + ACTIONS(196), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -4669,14 +4676,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1226] = 4, - ACTIONS(80), 1, + [1210] = 4, + ACTIONS(87), 1, anon_sym_SLASH, - ACTIONS(202), 1, + ACTIONS(188), 1, anon_sym_COLON_COLON, - STATE(47), 1, + STATE(52), 1, aux_sym_global_identifier_repeat1, - ACTIONS(76), 16, + ACTIONS(83), 16, anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DASH, @@ -4693,115 +4700,68 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_LPAREN, anon_sym_in, - [1254] = 2, - ACTIONS(184), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(186), 12, - sym_number, - anon_sym_COLON_COLON, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, + [1238] = 12, + ACTIONS(149), 1, anon_sym_PIPE, + ACTIONS(151), 1, anon_sym_AMP, + ACTIONS(153), 1, anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1278] = 4, - ACTIONS(90), 1, + ACTIONS(155), 1, anon_sym_SLASH, - ACTIONS(202), 1, - anon_sym_COLON_COLON, - STATE(53), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(88), 16, + ACTIONS(172), 1, anon_sym_LBRACK, + ACTIONS(198), 1, + anon_sym_COMMA, + ACTIONS(200), 1, + anon_sym_EQ, + ACTIONS(202), 1, + anon_sym_SEMI, + STATE(117), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(145), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(147), 2, anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, + anon_sym_PERCENT, + ACTIONS(174), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_in, - [1306] = 4, - ACTIONS(86), 1, - anon_sym_SLASH, - ACTIONS(202), 1, + [1282] = 2, + ACTIONS(166), 7, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(168), 12, + sym_number, anon_sym_COLON_COLON, - STATE(53), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(84), 16, - anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_in, - [1334] = 11, - ACTIONS(149), 1, - anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_CARET, - ACTIONS(153), 1, - anon_sym_SLASH, - ACTIONS(155), 1, - anon_sym_AMP, - ACTIONS(168), 1, - anon_sym_LBRACK, - ACTIONS(188), 1, - anon_sym_COMMA, - STATE(117), 1, - aux_sym__assign_left_side_repeat2, - ACTIONS(145), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(147), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(204), 2, anon_sym_LBRACE, - anon_sym_EQ, - ACTIONS(170), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [1376] = 4, - ACTIONS(86), 1, + anon_sym_RBRACE, + [1306] = 4, + ACTIONS(95), 1, anon_sym_SLASH, - ACTIONS(202), 1, + ACTIONS(188), 1, anon_sym_COLON_COLON, - STATE(46), 1, + STATE(49), 1, aux_sym_global_identifier_repeat1, - ACTIONS(84), 16, + ACTIONS(93), 16, anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DASH, @@ -4818,21 +4778,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_LPAREN, anon_sym_in, - [1404] = 8, + [1334] = 8, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(204), 1, sym_identifier, - ACTIONS(208), 1, + ACTIONS(206), 1, sym_number, - STATE(145), 1, + STATE(150), 1, sym_range, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(84), 5, + STATE(91), 5, sym_unary_op, sym_binary_op, sym_array_op, @@ -4846,43 +4806,76 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1440] = 2, - ACTIONS(210), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(212), 12, - sym_number, + [1370] = 4, + ACTIONS(81), 1, + anon_sym_SLASH, + ACTIONS(208), 1, anon_sym_COLON_COLON, + STATE(49), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(76), 16, + anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, - anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_LPAREN, + anon_sym_in, + [1398] = 11, + ACTIONS(149), 1, + anon_sym_PIPE, + ACTIONS(151), 1, + anon_sym_AMP, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, + anon_sym_SLASH, + ACTIONS(172), 1, + anon_sym_LBRACK, + ACTIONS(198), 1, + anon_sym_COMMA, + STATE(121), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(145), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(147), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(211), 2, anon_sym_LBRACE, - anon_sym_RBRACE, - [1464] = 8, + anon_sym_EQ, + ACTIONS(174), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [1440] = 8, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(204), 1, sym_identifier, - ACTIONS(214), 1, + ACTIONS(213), 1, sym_number, - ACTIONS(216), 1, + ACTIONS(215), 1, anon_sym_RPAREN, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(69), 5, + STATE(82), 5, sym_unary_op, sym_binary_op, sym_array_op, @@ -4896,14 +4889,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1500] = 4, - ACTIONS(97), 1, + [1476] = 4, + ACTIONS(91), 1, anon_sym_SLASH, - ACTIONS(218), 1, + ACTIONS(188), 1, anon_sym_COLON_COLON, - STATE(53), 1, + STATE(49), 1, aux_sym_global_identifier_repeat1, - ACTIONS(92), 16, + ACTIONS(89), 16, anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DASH, @@ -4920,6 +4913,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_LPAREN, anon_sym_in, + [1504] = 2, + ACTIONS(217), 7, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(219), 12, + sym_number, + anon_sym_COLON_COLON, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, [1528] = 7, ACTIONS(17), 1, anon_sym_LPAREN, @@ -4932,7 +4947,7 @@ static const uint16_t ts_small_parse_table[] = { STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(24), 5, + STATE(20), 5, sym_unary_op, sym_binary_op, sym_array_op, @@ -4958,7 +4973,7 @@ static const uint16_t ts_small_parse_table[] = { STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(92), 5, + STATE(86), 5, sym_unary_op, sym_binary_op, sym_array_op, @@ -4976,18 +4991,18 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(149), 1, anon_sym_PIPE, ACTIONS(151), 1, - anon_sym_CARET, + anon_sym_AMP, ACTIONS(153), 1, - anon_sym_SLASH, + anon_sym_CARET, ACTIONS(155), 1, - anon_sym_AMP, - ACTIONS(168), 1, + anon_sym_SLASH, + ACTIONS(172), 1, anon_sym_LBRACK, - ACTIONS(188), 1, + ACTIONS(198), 1, anon_sym_COMMA, - ACTIONS(190), 1, + ACTIONS(200), 1, anon_sym_LBRACE, - STATE(128), 1, + STATE(117), 1, aux_sym__assign_left_side_repeat2, ACTIONS(145), 2, anon_sym_PLUS, @@ -4995,7 +5010,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(170), 6, + ACTIONS(174), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, @@ -5003,24 +5018,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, [1635] = 7, + ACTIONS(11), 1, + anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(221), 1, + ACTIONS(204), 1, sym_identifier, - ACTIONS(225), 1, - anon_sym_COLON_COLON, ACTIONS(231), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(85), 5, + STATE(24), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(227), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5029,24 +5044,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, [1668] = 7, + ACTIONS(11), 1, + anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(221), 1, + ACTIONS(204), 1, sym_identifier, - ACTIONS(225), 1, - anon_sym_COLON_COLON, ACTIONS(233), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(93), 5, + STATE(88), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(227), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5055,24 +5070,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, [1701] = 7, + ACTIONS(11), 1, + anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(221), 1, + ACTIONS(204), 1, sym_identifier, - ACTIONS(225), 1, - anon_sym_COLON_COLON, ACTIONS(235), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(94), 5, + STATE(30), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(227), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5085,14 +5100,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(204), 1, sym_identifier, - ACTIONS(237), 1, + ACTIONS(223), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(90), 5, + STATE(20), 5, sym_unary_op, sym_binary_op, sym_array_op, @@ -5111,14 +5126,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(204), 1, sym_identifier, - ACTIONS(239), 1, + ACTIONS(237), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(30), 5, + STATE(29), 5, sym_unary_op, sym_binary_op, sym_array_op, @@ -5137,14 +5152,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(204), 1, sym_identifier, - ACTIONS(241), 1, + ACTIONS(239), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(20), 5, + STATE(28), 5, sym_unary_op, sym_binary_op, sym_array_op, @@ -5163,9 +5178,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(204), 1, sym_identifier, - ACTIONS(243), 1, + ACTIONS(241), 1, sym_number, STATE(19), 2, sym_global_identifier, @@ -5189,9 +5204,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(204), 1, sym_identifier, - ACTIONS(245), 1, + ACTIONS(243), 1, sym_number, STATE(19), 2, sym_global_identifier, @@ -5215,14 +5230,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(204), 1, sym_identifier, - ACTIONS(247), 1, + ACTIONS(245), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(32), 5, + STATE(84), 5, sym_unary_op, sym_binary_op, sym_array_op, @@ -5241,14 +5256,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(204), 1, sym_identifier, - ACTIONS(249), 1, + ACTIONS(247), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(33), 5, + STATE(95), 5, sym_unary_op, sym_binary_op, sym_array_op, @@ -5262,19 +5277,47 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1965] = 7, + [1965] = 9, + ACTIONS(149), 1, + anon_sym_PIPE, + ACTIONS(151), 1, + anon_sym_AMP, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, + anon_sym_SLASH, + ACTIONS(172), 1, + anon_sym_LBRACK, + ACTIONS(145), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(147), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(249), 3, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_EQ, + ACTIONS(174), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [2002] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(204), 1, sym_identifier, ACTIONS(251), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(95), 5, + STATE(83), 5, sym_unary_op, sym_binary_op, sym_array_op, @@ -5288,56 +5331,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1998] = 7, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(221), 1, - sym_identifier, - ACTIONS(225), 1, - anon_sym_COLON_COLON, - ACTIONS(241), 1, - sym_number, - STATE(19), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(20), 5, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym__expression, - ACTIONS(227), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [2031] = 11, + [2035] = 9, ACTIONS(149), 1, anon_sym_PIPE, ACTIONS(151), 1, - anon_sym_CARET, + anon_sym_AMP, ACTIONS(153), 1, - anon_sym_SLASH, + anon_sym_CARET, ACTIONS(155), 1, - anon_sym_AMP, - ACTIONS(168), 1, + anon_sym_SLASH, + ACTIONS(172), 1, anon_sym_LBRACK, - ACTIONS(253), 1, - anon_sym_COMMA, - ACTIONS(255), 1, - anon_sym_RPAREN, - STATE(130), 1, - aux_sym_func_call_repeat1, ACTIONS(145), 2, anon_sym_PLUS, anon_sym_DASH, ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(170), 6, + ACTIONS(253), 3, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_EQ, + ACTIONS(174), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, @@ -5349,14 +5364,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(204), 1, sym_identifier, - ACTIONS(257), 1, + ACTIONS(255), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(88), 5, + STATE(96), 5, sym_unary_op, sym_binary_op, sym_array_op, @@ -5370,68 +5385,71 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2105] = 9, - ACTIONS(149), 1, - anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_CARET, - ACTIONS(153), 1, - anon_sym_SLASH, - ACTIONS(155), 1, - anon_sym_AMP, - ACTIONS(168), 1, - anon_sym_LBRACK, - ACTIONS(145), 2, + [2105] = 7, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(221), 1, + sym_identifier, + ACTIONS(225), 1, + anon_sym_COLON_COLON, + ACTIONS(257), 1, + sym_number, + STATE(19), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(89), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(227), 7, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(147), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(259), 3, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_EQ, - ACTIONS(170), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [2142] = 2, - ACTIONS(97), 1, - anon_sym_SLASH, - ACTIONS(92), 17, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [2138] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - anon_sym_LBRACK, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(204), 1, + sym_identifier, + ACTIONS(259), 1, + sym_number, + STATE(19), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(39), 5, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym__expression, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_in, - [2165] = 7, + [2171] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(204), 1, sym_identifier, ACTIONS(261), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(89), 5, + STATE(36), 5, sym_unary_op, sym_binary_op, sym_array_op, @@ -5445,42 +5463,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2198] = 9, - ACTIONS(149), 1, - anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_CARET, - ACTIONS(153), 1, + [2204] = 2, + ACTIONS(81), 1, anon_sym_SLASH, - ACTIONS(155), 1, - anon_sym_AMP, - ACTIONS(168), 1, + ACTIONS(76), 17, + anon_sym_COLON_COLON, anon_sym_LBRACK, - ACTIONS(145), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(147), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(263), 3, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_EQ, - ACTIONS(170), 6, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2235] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_in, + [2227] = 7, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(221), 1, sym_identifier, - ACTIONS(223), 1, + ACTIONS(225), 1, + anon_sym_COLON_COLON, + ACTIONS(231), 1, sym_number, STATE(19), 2, sym_global_identifier, @@ -5491,7 +5502,7 @@ static const uint16_t ts_small_parse_table[] = { sym_array_op, sym_func_call, sym__expression, - ACTIONS(15), 7, + ACTIONS(227), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5499,25 +5510,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2268] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, + [2260] = 7, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(221), 1, sym_identifier, - ACTIONS(265), 1, + ACTIONS(225), 1, + anon_sym_COLON_COLON, + ACTIONS(263), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(35), 5, + STATE(90), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(15), 7, + ACTIONS(227), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5525,19 +5536,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2301] = 7, + [2293] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(204), 1, sym_identifier, - ACTIONS(267), 1, + ACTIONS(265), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(83), 5, + STATE(93), 5, sym_unary_op, sym_binary_op, sym_array_op, @@ -5551,19 +5562,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2334] = 7, + [2326] = 7, ACTIONS(17), 1, anon_sym_LPAREN, ACTIONS(221), 1, sym_identifier, ACTIONS(225), 1, anon_sym_COLON_COLON, - ACTIONS(269), 1, + ACTIONS(267), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(87), 5, + STATE(94), 5, sym_unary_op, sym_binary_op, sym_array_op, @@ -5577,19 +5588,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2367] = 7, + [2359] = 7, ACTIONS(17), 1, anon_sym_LPAREN, ACTIONS(221), 1, sym_identifier, ACTIONS(225), 1, anon_sym_COLON_COLON, - ACTIONS(271), 1, + ACTIONS(269), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(96), 5, + STATE(87), 5, sym_unary_op, sym_binary_op, sym_array_op, @@ -5603,51 +5614,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2400] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, + [2392] = 7, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(221), 1, sym_identifier, - ACTIONS(273), 1, - sym_number, - STATE(19), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(36), 5, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [2433] = 7, - ACTIONS(11), 1, + ACTIONS(225), 1, anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(206), 1, - sym_identifier, - ACTIONS(275), 1, + ACTIONS(271), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(91), 5, + STATE(85), 5, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym__expression, - ACTIONS(15), 7, + ACTIONS(227), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5655,19 +5640,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2466] = 7, + [2425] = 7, ACTIONS(17), 1, anon_sym_LPAREN, ACTIONS(221), 1, sym_identifier, ACTIONS(225), 1, anon_sym_COLON_COLON, - ACTIONS(277), 1, + ACTIONS(273), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(86), 5, + STATE(92), 5, sym_unary_op, sym_binary_op, sym_array_op, @@ -5681,16 +5666,46 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2499] = 9, + [2458] = 11, ACTIONS(149), 1, anon_sym_PIPE, ACTIONS(151), 1, - anon_sym_CARET, + anon_sym_AMP, ACTIONS(153), 1, - anon_sym_SLASH, + anon_sym_CARET, ACTIONS(155), 1, + anon_sym_SLASH, + ACTIONS(172), 1, + anon_sym_LBRACK, + ACTIONS(275), 1, + anon_sym_COMMA, + ACTIONS(277), 1, + anon_sym_RPAREN, + STATE(136), 1, + aux_sym_func_call_repeat1, + ACTIONS(145), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(147), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(174), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [2499] = 9, + ACTIONS(149), 1, + anon_sym_PIPE, + ACTIONS(151), 1, anon_sym_AMP, - ACTIONS(168), 1, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, + anon_sym_SLASH, + ACTIONS(172), 1, anon_sym_LBRACK, ACTIONS(145), 2, anon_sym_PLUS, @@ -5701,7 +5716,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(279), 2, anon_sym_COMMA, anon_sym_RPAREN, - ACTIONS(170), 6, + ACTIONS(174), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, @@ -5712,30 +5727,34 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(149), 1, anon_sym_PIPE, ACTIONS(151), 1, - anon_sym_CARET, + anon_sym_AMP, ACTIONS(153), 1, - anon_sym_SLASH, + anon_sym_CARET, ACTIONS(155), 1, - anon_sym_AMP, - ACTIONS(168), 1, + anon_sym_SLASH, + ACTIONS(172), 1, anon_sym_LBRACK, ACTIONS(281), 1, - anon_sym_COLON, + anon_sym_SEMI, ACTIONS(145), 2, anon_sym_PLUS, anon_sym_DASH, ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(170), 6, + ACTIONS(174), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2570] = 4, + [2570] = 6, ACTIONS(287), 1, + anon_sym_PIPE, + ACTIONS(289), 1, + anon_sym_CARET, + ACTIONS(291), 1, anon_sym_SLASH, ACTIONS(283), 2, anon_sym_PLUS, @@ -5743,11 +5762,9 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(285), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(117), 11, + ACTIONS(117), 9, anon_sym_LBRACK, - anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, @@ -5755,19 +5772,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_in, - [2595] = 9, - ACTIONS(168), 1, - anon_sym_LBRACK, + [2599] = 9, ACTIONS(172), 1, + anon_sym_LBRACK, + ACTIONS(186), 1, anon_sym_in, ACTIONS(287), 1, - anon_sym_SLASH, - ACTIONS(289), 1, anon_sym_PIPE, + ACTIONS(289), 1, + anon_sym_CARET, ACTIONS(291), 1, - anon_sym_AMP, + anon_sym_SLASH, ACTIONS(293), 1, - anon_sym_CARET, + anon_sym_AMP, ACTIONS(283), 2, anon_sym_PLUS, anon_sym_DASH, @@ -5781,19 +5798,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2630] = 9, - ACTIONS(166), 1, + [2634] = 9, + ACTIONS(170), 1, anon_sym_in, - ACTIONS(168), 1, + ACTIONS(172), 1, anon_sym_LBRACK, ACTIONS(287), 1, - anon_sym_SLASH, - ACTIONS(289), 1, anon_sym_PIPE, + ACTIONS(289), 1, + anon_sym_CARET, ACTIONS(291), 1, - anon_sym_AMP, + anon_sym_SLASH, ACTIONS(293), 1, - anon_sym_CARET, + anon_sym_AMP, ACTIONS(283), 2, anon_sym_PLUS, anon_sym_DASH, @@ -5807,120 +5824,113 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2665] = 9, + [2669] = 9, ACTIONS(149), 1, anon_sym_PIPE, ACTIONS(151), 1, - anon_sym_CARET, + anon_sym_AMP, ACTIONS(153), 1, - anon_sym_SLASH, + anon_sym_CARET, ACTIONS(155), 1, - anon_sym_AMP, - ACTIONS(168), 1, + anon_sym_SLASH, + ACTIONS(172), 1, anon_sym_LBRACK, ACTIONS(297), 1, - anon_sym_RPAREN, + anon_sym_RBRACK, ACTIONS(145), 2, anon_sym_PLUS, anon_sym_DASH, ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(170), 6, + ACTIONS(174), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2700] = 9, - ACTIONS(149), 1, + [2704] = 7, + ACTIONS(287), 1, anon_sym_PIPE, - ACTIONS(151), 1, + ACTIONS(289), 1, anon_sym_CARET, - ACTIONS(153), 1, + ACTIONS(291), 1, anon_sym_SLASH, - ACTIONS(155), 1, + ACTIONS(293), 1, anon_sym_AMP, - ACTIONS(168), 1, - anon_sym_LBRACK, - ACTIONS(299), 1, - anon_sym_LBRACE, - ACTIONS(145), 2, + ACTIONS(283), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(147), 2, + ACTIONS(285), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(170), 6, + ACTIONS(117), 8, + anon_sym_LBRACK, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2735] = 9, - ACTIONS(149), 1, - anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_CARET, - ACTIONS(153), 1, + anon_sym_in, + [2735] = 3, + ACTIONS(291), 1, anon_sym_SLASH, - ACTIONS(155), 1, - anon_sym_AMP, - ACTIONS(168), 1, + ACTIONS(285), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(117), 13, anon_sym_LBRACK, - ACTIONS(301), 1, - anon_sym_RBRACK, - ACTIONS(145), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(147), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(170), 6, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2770] = 9, + anon_sym_in, + [2758] = 9, ACTIONS(149), 1, anon_sym_PIPE, ACTIONS(151), 1, - anon_sym_CARET, + anon_sym_AMP, ACTIONS(153), 1, - anon_sym_SLASH, + anon_sym_CARET, ACTIONS(155), 1, - anon_sym_AMP, - ACTIONS(168), 1, + anon_sym_SLASH, + ACTIONS(172), 1, anon_sym_LBRACK, - ACTIONS(303), 1, - anon_sym_RBRACK, + ACTIONS(299), 1, + anon_sym_COLON, ACTIONS(145), 2, anon_sym_PLUS, anon_sym_DASH, ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(170), 6, + ACTIONS(174), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2805] = 3, - ACTIONS(287), 1, + [2793] = 4, + ACTIONS(291), 1, anon_sym_SLASH, + ACTIONS(283), 2, + anon_sym_PLUS, + anon_sym_DASH, ACTIONS(285), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(117), 13, + ACTIONS(117), 11, anon_sym_LBRACK, - anon_sym_PLUS, - anon_sym_DASH, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -5931,34 +5941,37 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_in, - [2828] = 6, - ACTIONS(287), 1, - anon_sym_SLASH, - ACTIONS(289), 1, + [2818] = 9, + ACTIONS(149), 1, anon_sym_PIPE, - ACTIONS(293), 1, + ACTIONS(151), 1, + anon_sym_AMP, + ACTIONS(153), 1, anon_sym_CARET, - ACTIONS(283), 2, + ACTIONS(155), 1, + anon_sym_SLASH, + ACTIONS(172), 1, + anon_sym_LBRACK, + ACTIONS(301), 1, + anon_sym_LBRACE, + ACTIONS(145), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(285), 2, + ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(117), 9, - anon_sym_LBRACK, - anon_sym_AMP, + ACTIONS(174), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_in, - [2857] = 5, - ACTIONS(287), 1, - anon_sym_SLASH, - ACTIONS(293), 1, + [2853] = 5, + ACTIONS(289), 1, anon_sym_CARET, + ACTIONS(291), 1, + anon_sym_SLASH, ACTIONS(283), 2, anon_sym_PLUS, anon_sym_DASH, @@ -5976,56 +5989,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_in, - [2884] = 9, + [2880] = 9, ACTIONS(149), 1, anon_sym_PIPE, ACTIONS(151), 1, - anon_sym_CARET, + anon_sym_AMP, ACTIONS(153), 1, - anon_sym_SLASH, + anon_sym_CARET, ACTIONS(155), 1, - anon_sym_AMP, - ACTIONS(168), 1, + anon_sym_SLASH, + ACTIONS(172), 1, anon_sym_LBRACK, - ACTIONS(305), 1, - anon_sym_SEMI, + ACTIONS(303), 1, + anon_sym_RPAREN, ACTIONS(145), 2, anon_sym_PLUS, anon_sym_DASH, ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(170), 6, + ACTIONS(174), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2919] = 7, - ACTIONS(287), 1, - anon_sym_SLASH, - ACTIONS(289), 1, + [2915] = 9, + ACTIONS(149), 1, anon_sym_PIPE, - ACTIONS(291), 1, + ACTIONS(151), 1, anon_sym_AMP, - ACTIONS(293), 1, + ACTIONS(153), 1, anon_sym_CARET, - ACTIONS(283), 2, + ACTIONS(155), 1, + anon_sym_SLASH, + ACTIONS(172), 1, + anon_sym_LBRACK, + ACTIONS(305), 1, + anon_sym_RBRACK, + ACTIONS(145), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(285), 2, + ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(117), 8, - anon_sym_LBRACK, + ACTIONS(174), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_in, [2950] = 4, ACTIONS(311), 1, anon_sym_reg, @@ -6046,7 +6061,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2974] = 8, + [2974] = 7, ACTIONS(314), 1, anon_sym_DASH_GT, ACTIONS(316), 1, @@ -6055,518 +6070,457 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(320), 1, anon_sym_LBRACE, - STATE(109), 1, + STATE(116), 1, sym_declaration, - STATE(143), 1, - sym_block, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(144), 3, + STATE(140), 3, sym_global_identifier, sym_array_type, sym__type, - [3002] = 7, + [2999] = 6, ACTIONS(316), 1, sym_identifier, ACTIONS(318), 1, anon_sym_COLON_COLON, - ACTIONS(320), 1, + ACTIONS(322), 1, anon_sym_LBRACE, - STATE(119), 1, + STATE(137), 1, sym_declaration, - STATE(155), 1, - sym_block, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(144), 3, + STATE(140), 3, sym_global_identifier, sym_array_type, sym__type, - [3027] = 7, + [3021] = 6, ACTIONS(316), 1, sym_identifier, ACTIONS(318), 1, anon_sym_COLON_COLON, - ACTIONS(320), 1, + ACTIONS(324), 1, anon_sym_LBRACE, - STATE(112), 1, + STATE(129), 1, sym_declaration, - STATE(156), 1, - sym_block, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(144), 3, + STATE(140), 3, sym_global_identifier, sym_array_type, sym__type, - [3052] = 7, + [3043] = 6, ACTIONS(316), 1, sym_identifier, ACTIONS(318), 1, anon_sym_COLON_COLON, - ACTIONS(320), 1, + ACTIONS(326), 1, anon_sym_LBRACE, - STATE(123), 1, + STATE(131), 1, sym_declaration, - STATE(146), 1, - sym_block, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(144), 3, + STATE(140), 3, sym_global_identifier, sym_array_type, sym__type, - [3077] = 5, + [3065] = 5, ACTIONS(316), 1, sym_identifier, ACTIONS(318), 1, anon_sym_COLON_COLON, - STATE(134), 1, + STATE(155), 1, sym_declaration, - ACTIONS(13), 2, + ACTIONS(328), 2, anon_sym_state, anon_sym_gen, - STATE(144), 3, + STATE(145), 3, sym_global_identifier, sym_array_type, sym__type, - [3096] = 5, + [3084] = 5, ACTIONS(316), 1, sym_identifier, ACTIONS(318), 1, anon_sym_COLON_COLON, - STATE(172), 1, + STATE(126), 1, sym_declaration, - ACTIONS(322), 2, + ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(153), 3, + STATE(140), 3, sym_global_identifier, sym_array_type, sym__type, - [3115] = 2, - ACTIONS(326), 1, + [3103] = 2, + ACTIONS(332), 1, anon_sym_SQUOTE, - ACTIONS(324), 5, + ACTIONS(330), 5, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3126] = 2, - ACTIONS(330), 1, + [3114] = 2, + ACTIONS(336), 1, anon_sym_SQUOTE, - ACTIONS(328), 5, + ACTIONS(334), 5, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3137] = 5, - ACTIONS(320), 1, - anon_sym_LBRACE, - ACTIONS(332), 1, - anon_sym_COMMA, - ACTIONS(334), 1, - anon_sym_DASH_GT, - STATE(113), 1, - aux_sym_module_repeat1, - STATE(139), 1, - sym_block, - [3153] = 3, + [3125] = 3, ACTIONS(318), 1, anon_sym_COLON_COLON, - ACTIONS(336), 1, + ACTIONS(338), 1, sym_identifier, - STATE(140), 3, + STATE(149), 3, sym_global_identifier, sym_array_type, sym__type, - [3165] = 3, + [3137] = 3, ACTIONS(318), 1, anon_sym_COLON_COLON, - ACTIONS(336), 1, + ACTIONS(338), 1, sym_identifier, - STATE(149), 3, + STATE(148), 3, sym_global_identifier, sym_array_type, sym__type, - [3177] = 5, - ACTIONS(320), 1, - anon_sym_LBRACE, - ACTIONS(332), 1, - anon_sym_COMMA, - ACTIONS(338), 1, - anon_sym_DASH_GT, - STATE(106), 1, - aux_sym_module_repeat1, - STATE(138), 1, - sym_block, - [3193] = 4, - ACTIONS(320), 1, - anon_sym_LBRACE, - ACTIONS(332), 1, - anon_sym_COMMA, - STATE(113), 1, - aux_sym_module_repeat1, - STATE(157), 1, - sym_block, - [3206] = 3, + [3149] = 3, ACTIONS(340), 1, anon_sym_COLON_COLON, - STATE(116), 1, + STATE(108), 1, aux_sym_global_identifier_repeat1, - ACTIONS(80), 2, + ACTIONS(81), 2, sym_identifier, anon_sym_LBRACK, - [3217] = 4, - ACTIONS(320), 1, - anon_sym_LBRACE, - ACTIONS(332), 1, - anon_sym_COMMA, - STATE(115), 1, - aux_sym_module_repeat1, - STATE(147), 1, - sym_block, - [3230] = 3, - ACTIONS(342), 1, - anon_sym_COMMA, - STATE(113), 1, - aux_sym_module_repeat1, - ACTIONS(345), 2, - anon_sym_DASH_GT, - anon_sym_LBRACE, - [3241] = 3, - ACTIONS(340), 1, + [3160] = 3, + ACTIONS(343), 1, anon_sym_COLON_COLON, - STATE(118), 1, + STATE(108), 1, aux_sym_global_identifier_repeat1, - ACTIONS(86), 2, + ACTIONS(91), 2, sym_identifier, anon_sym_LBRACK, - [3252] = 4, - ACTIONS(320), 1, - anon_sym_LBRACE, - ACTIONS(332), 1, + [3171] = 4, + ACTIONS(345), 1, anon_sym_COMMA, - STATE(113), 1, - aux_sym_module_repeat1, + ACTIONS(347), 1, + anon_sym_DASH_GT, + ACTIONS(349), 1, + anon_sym_LBRACE, + STATE(120), 1, + aux_sym_interface_ports_repeat1, + [3184] = 3, + ACTIONS(5), 1, + anon_sym_module, + ACTIONS(351), 1, + ts_builtin_sym_end, + STATE(113), 2, + sym_module, + aux_sym_source_file_repeat1, + [3195] = 4, + ACTIONS(353), 1, + anon_sym_COLON, + ACTIONS(355), 1, + anon_sym_LBRACE, STATE(141), 1, sym_block, + STATE(143), 1, + sym_interface_ports, + [3208] = 3, + ACTIONS(357), 1, + ts_builtin_sym_end, + ACTIONS(359), 1, + anon_sym_module, + STATE(113), 2, + sym_module, + aux_sym_source_file_repeat1, + [3219] = 3, + ACTIONS(362), 1, + anon_sym_COMMA, + STATE(121), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(364), 2, + anon_sym_LBRACE, + anon_sym_EQ, + [3230] = 3, + ACTIONS(19), 1, + anon_sym_LBRACE, + ACTIONS(366), 1, + anon_sym_if, + STATE(42), 2, + sym_block, + sym_if_statement, + [3241] = 4, + ACTIONS(345), 1, + anon_sym_COMMA, + ACTIONS(368), 1, + anon_sym_DASH_GT, + ACTIONS(370), 1, + anon_sym_LBRACE, + STATE(110), 1, + aux_sym_interface_ports_repeat1, + [3254] = 3, + ACTIONS(362), 1, + anon_sym_COMMA, + STATE(124), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(364), 2, + anon_sym_LBRACE, + anon_sym_EQ, [3265] = 3, - ACTIONS(340), 1, + ACTIONS(343), 1, anon_sym_COLON_COLON, - STATE(120), 1, + STATE(119), 1, aux_sym_global_identifier_repeat1, - ACTIONS(86), 2, + ACTIONS(91), 2, sym_identifier, anon_sym_LBRACK, [3276] = 3, - ACTIONS(347), 1, - anon_sym_COMMA, - STATE(125), 1, - aux_sym__assign_left_side_repeat2, - ACTIONS(349), 2, - anon_sym_LBRACE, - anon_sym_EQ, - [3287] = 3, - ACTIONS(340), 1, + ACTIONS(343), 1, anon_sym_COLON_COLON, - STATE(120), 1, + STATE(108), 1, aux_sym_global_identifier_repeat1, - ACTIONS(90), 2, + ACTIONS(95), 2, sym_identifier, anon_sym_LBRACK, - [3298] = 4, - ACTIONS(320), 1, + [3287] = 3, + ACTIONS(372), 1, + anon_sym_COMMA, + STATE(120), 1, + aux_sym_interface_ports_repeat1, + ACTIONS(375), 2, + anon_sym_DASH_GT, anon_sym_LBRACE, - ACTIONS(332), 1, + [3298] = 3, + ACTIONS(362), 1, anon_sym_COMMA, STATE(124), 1, - aux_sym_module_repeat1, - STATE(160), 1, - sym_block, - [3311] = 3, - ACTIONS(351), 1, - anon_sym_COLON_COLON, - STATE(120), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(97), 2, - sym_identifier, - anon_sym_LBRACK, - [3322] = 3, - ACTIONS(19), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(377), 2, anon_sym_LBRACE, - ACTIONS(354), 1, - anon_sym_if, - STATE(42), 2, - sym_block, - sym_if_statement, - [3333] = 4, - ACTIONS(347), 1, + anon_sym_EQ, + [3309] = 4, + ACTIONS(362), 1, anon_sym_COMMA, - ACTIONS(356), 1, + ACTIONS(379), 1, anon_sym_EQ, - ACTIONS(358), 1, + ACTIONS(381), 1, anon_sym_SEMI, - STATE(128), 1, + STATE(117), 1, aux_sym__assign_left_side_repeat2, - [3346] = 4, - ACTIONS(320), 1, - anon_sym_LBRACE, - ACTIONS(332), 1, - anon_sym_COMMA, - STATE(110), 1, - aux_sym_module_repeat1, - STATE(151), 1, - sym_block, - [3359] = 4, - ACTIONS(320), 1, - anon_sym_LBRACE, - ACTIONS(332), 1, - anon_sym_COMMA, - STATE(113), 1, - aux_sym_module_repeat1, - STATE(150), 1, - sym_block, - [3372] = 3, - ACTIONS(360), 1, + [3322] = 3, + ACTIONS(343), 1, + anon_sym_COLON_COLON, + STATE(109), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(87), 2, + sym_identifier, + anon_sym_LBRACK, + [3333] = 3, + ACTIONS(383), 1, anon_sym_COMMA, - STATE(125), 1, + STATE(124), 1, aux_sym__assign_left_side_repeat2, - ACTIONS(363), 2, + ACTIONS(386), 2, anon_sym_LBRACE, anon_sym_EQ, - [3383] = 3, - ACTIONS(347), 1, + [3344] = 3, + ACTIONS(362), 1, anon_sym_COMMA, + ACTIONS(379), 1, + anon_sym_LBRACE, STATE(117), 1, aux_sym__assign_left_side_repeat2, - ACTIONS(365), 2, + [3354] = 1, + ACTIONS(375), 3, + anon_sym_COMMA, + anon_sym_DASH_GT, anon_sym_LBRACE, - anon_sym_EQ, - [3394] = 3, - ACTIONS(367), 1, - ts_builtin_sym_end, - ACTIONS(369), 1, - anon_sym_module, - STATE(127), 2, - sym_module, - aux_sym_source_file_repeat1, - [3405] = 3, - ACTIONS(347), 1, + [3360] = 3, + ACTIONS(345), 1, anon_sym_COMMA, - STATE(125), 1, - aux_sym__assign_left_side_repeat2, - ACTIONS(365), 2, + ACTIONS(388), 1, anon_sym_LBRACE, - anon_sym_EQ, - [3416] = 3, - ACTIONS(5), 1, - anon_sym_module, - ACTIONS(372), 1, - ts_builtin_sym_end, - STATE(127), 2, - sym_module, - aux_sym_source_file_repeat1, - [3427] = 3, - ACTIONS(374), 1, + STATE(120), 1, + aux_sym_interface_ports_repeat1, + [3370] = 3, + ACTIONS(390), 1, anon_sym_COMMA, - ACTIONS(376), 1, + ACTIONS(393), 1, anon_sym_RPAREN, - STATE(135), 1, + STATE(128), 1, aux_sym_func_call_repeat1, - [3437] = 1, - ACTIONS(378), 3, + [3380] = 3, + ACTIONS(345), 1, + anon_sym_COMMA, + ACTIONS(395), 1, + anon_sym_LBRACE, + STATE(127), 1, + aux_sym_interface_ports_repeat1, + [3390] = 3, + ACTIONS(345), 1, + anon_sym_COMMA, + ACTIONS(397), 1, + anon_sym_LBRACE, + STATE(120), 1, + aux_sym_interface_ports_repeat1, + [3400] = 3, + ACTIONS(345), 1, + anon_sym_COMMA, + ACTIONS(399), 1, + anon_sym_LBRACE, + STATE(130), 1, + aux_sym_interface_ports_repeat1, + [3410] = 1, + ACTIONS(401), 3, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, - [3443] = 3, - ACTIONS(320), 1, + [3416] = 1, + ACTIONS(386), 3, + anon_sym_COMMA, anon_sym_LBRACE, - ACTIONS(380), 1, - anon_sym_COLON, - STATE(158), 1, - sym_block, - [3453] = 1, - ACTIONS(97), 3, + anon_sym_EQ, + [3422] = 1, + ACTIONS(81), 3, sym_identifier, anon_sym_COLON_COLON, anon_sym_LBRACK, - [3459] = 1, - ACTIONS(345), 3, + [3428] = 3, + ACTIONS(345), 1, anon_sym_COMMA, - anon_sym_DASH_GT, + ACTIONS(403), 1, anon_sym_LBRACE, - [3465] = 3, - ACTIONS(382), 1, + STATE(120), 1, + aux_sym_interface_ports_repeat1, + [3438] = 3, + ACTIONS(405), 1, anon_sym_COMMA, - ACTIONS(385), 1, + ACTIONS(407), 1, anon_sym_RPAREN, - STATE(135), 1, + STATE(128), 1, aux_sym_func_call_repeat1, - [3475] = 1, - ACTIONS(363), 3, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_EQ, - [3481] = 3, - ACTIONS(347), 1, + [3448] = 3, + ACTIONS(345), 1, anon_sym_COMMA, - ACTIONS(356), 1, + ACTIONS(409), 1, anon_sym_LBRACE, - STATE(128), 1, - aux_sym__assign_left_side_repeat2, - [3491] = 1, - ACTIONS(387), 2, - ts_builtin_sym_end, - anon_sym_module, - [3496] = 1, - ACTIONS(389), 2, - ts_builtin_sym_end, - anon_sym_module, - [3501] = 2, - ACTIONS(391), 1, + STATE(135), 1, + aux_sym_interface_ports_repeat1, + [3458] = 2, + ACTIONS(330), 1, + anon_sym_in, + ACTIONS(411), 1, + anon_sym_SQUOTE, + [3465] = 1, + ACTIONS(413), 2, sym_identifier, - ACTIONS(393), 1, anon_sym_LBRACK, - [3508] = 1, - ACTIONS(395), 2, + [3470] = 2, + ACTIONS(415), 1, + sym_identifier, + ACTIONS(417), 1, + anon_sym_LBRACK, + [3477] = 1, + ACTIONS(419), 2, ts_builtin_sym_end, anon_sym_module, - [3513] = 2, - ACTIONS(397), 1, + [3482] = 1, + ACTIONS(421), 2, + ts_builtin_sym_end, + anon_sym_module, + [3487] = 2, + ACTIONS(355), 1, anon_sym_LBRACE, - STATE(37), 1, + STATE(142), 1, sym_block, - [3520] = 1, - ACTIONS(399), 2, + [3494] = 1, + ACTIONS(168), 2, ts_builtin_sym_end, anon_sym_module, - [3525] = 2, - ACTIONS(393), 1, + [3499] = 2, + ACTIONS(417), 1, anon_sym_LBRACK, - ACTIONS(401), 1, + ACTIONS(423), 1, sym_identifier, - [3532] = 2, - ACTIONS(19), 1, + [3506] = 2, + ACTIONS(425), 1, anon_sym_LBRACE, - STATE(41), 1, + STATE(37), 1, sym_block, - [3539] = 1, - ACTIONS(403), 2, + [3513] = 1, + ACTIONS(184), 2, ts_builtin_sym_end, anon_sym_module, - [3544] = 1, - ACTIONS(405), 2, - ts_builtin_sym_end, - anon_sym_module, - [3549] = 1, - ACTIONS(407), 2, - sym_identifier, + [3518] = 2, + ACTIONS(417), 1, anon_sym_LBRACK, - [3554] = 2, - ACTIONS(393), 1, - anon_sym_LBRACK, - ACTIONS(409), 1, + ACTIONS(427), 1, sym_identifier, - [3561] = 1, - ACTIONS(411), 2, - ts_builtin_sym_end, - anon_sym_module, - [3566] = 1, - ACTIONS(413), 2, - ts_builtin_sym_end, - anon_sym_module, - [3571] = 1, - ACTIONS(182), 2, - ts_builtin_sym_end, - anon_sym_module, - [3576] = 2, - ACTIONS(393), 1, + [3525] = 2, + ACTIONS(417), 1, anon_sym_LBRACK, - ACTIONS(415), 1, + ACTIONS(429), 1, sym_identifier, - [3583] = 1, - ACTIONS(186), 2, - ts_builtin_sym_end, - anon_sym_module, - [3588] = 1, - ACTIONS(417), 2, - ts_builtin_sym_end, - anon_sym_module, - [3593] = 1, - ACTIONS(419), 2, - ts_builtin_sym_end, - anon_sym_module, - [3598] = 1, - ACTIONS(421), 2, - ts_builtin_sym_end, - anon_sym_module, - [3603] = 1, - ACTIONS(423), 2, - ts_builtin_sym_end, - anon_sym_module, - [3608] = 2, - ACTIONS(324), 1, - anon_sym_in, - ACTIONS(425), 1, - anon_sym_SQUOTE, - [3615] = 1, - ACTIONS(427), 2, - ts_builtin_sym_end, - anon_sym_module, - [3620] = 2, - ACTIONS(328), 1, + [3532] = 2, + ACTIONS(19), 1, + anon_sym_LBRACE, + STATE(43), 1, + sym_block, + [3539] = 2, + ACTIONS(334), 1, anon_sym_in, - ACTIONS(429), 1, - anon_sym_SQUOTE, - [3627] = 1, ACTIONS(431), 1, - sym_identifier, - [3631] = 1, + anon_sym_SQUOTE, + [3546] = 1, ACTIONS(433), 1, sym_identifier, - [3635] = 1, + [3550] = 1, ACTIONS(435), 1, sym_identifier, - [3639] = 1, + [3554] = 1, ACTIONS(437), 1, - anon_sym_SEMI, - [3643] = 1, - ACTIONS(439), 1, sym_identifier, - [3647] = 1, + [3558] = 1, + ACTIONS(439), 1, + anon_sym_in, + [3562] = 1, ACTIONS(441), 1, sym_identifier, - [3651] = 1, + [3566] = 1, ACTIONS(443), 1, - ts_builtin_sym_end, - [3655] = 1, - ACTIONS(445), 1, sym_identifier, - [3659] = 1, + [3570] = 1, + ACTIONS(445), 1, + ts_builtin_sym_end, + [3574] = 1, ACTIONS(447), 1, sym_identifier, - [3663] = 1, + [3578] = 1, ACTIONS(449), 1, - anon_sym_EQ, - [3667] = 1, + sym_identifier, + [3582] = 1, ACTIONS(451), 1, - anon_sym_in, + anon_sym_SEMI, + [3586] = 1, + ACTIONS(453), 1, + anon_sym_EQ, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(9)] = 0, [SMALL_STATE(10)] = 36, - [SMALL_STATE(11)] = 94, - [SMALL_STATE(12)] = 130, - [SMALL_STATE(13)] = 166, - [SMALL_STATE(14)] = 202, + [SMALL_STATE(11)] = 72, + [SMALL_STATE(12)] = 108, + [SMALL_STATE(13)] = 144, + [SMALL_STATE(14)] = 180, [SMALL_STATE(15)] = 238, [SMALL_STATE(16)] = 293, [SMALL_STATE(17)] = 324, @@ -6580,32 +6534,32 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(25)] = 605, [SMALL_STATE(26)] = 634, [SMALL_STATE(27)] = 663, - [SMALL_STATE(28)] = 699, - [SMALL_STATE(29)] = 745, - [SMALL_STATE(30)] = 791, - [SMALL_STATE(31)] = 821, - [SMALL_STATE(32)] = 855, - [SMALL_STATE(33)] = 887, + [SMALL_STATE(28)] = 701, + [SMALL_STATE(29)] = 737, + [SMALL_STATE(30)] = 771, + [SMALL_STATE(31)] = 801, + [SMALL_STATE(32)] = 833, + [SMALL_STATE(33)] = 879, [SMALL_STATE(34)] = 925, [SMALL_STATE(35)] = 955, - [SMALL_STATE(36)] = 994, - [SMALL_STATE(37)] = 1033, - [SMALL_STATE(38)] = 1060, - [SMALL_STATE(39)] = 1085, + [SMALL_STATE(36)] = 980, + [SMALL_STATE(37)] = 1019, + [SMALL_STATE(38)] = 1046, + [SMALL_STATE(39)] = 1071, [SMALL_STATE(40)] = 1110, - [SMALL_STATE(41)] = 1154, - [SMALL_STATE(42)] = 1178, - [SMALL_STATE(43)] = 1202, - [SMALL_STATE(44)] = 1226, - [SMALL_STATE(45)] = 1254, - [SMALL_STATE(46)] = 1278, + [SMALL_STATE(41)] = 1134, + [SMALL_STATE(42)] = 1162, + [SMALL_STATE(43)] = 1186, + [SMALL_STATE(44)] = 1210, + [SMALL_STATE(45)] = 1238, + [SMALL_STATE(46)] = 1282, [SMALL_STATE(47)] = 1306, [SMALL_STATE(48)] = 1334, - [SMALL_STATE(49)] = 1376, - [SMALL_STATE(50)] = 1404, + [SMALL_STATE(49)] = 1370, + [SMALL_STATE(50)] = 1398, [SMALL_STATE(51)] = 1440, - [SMALL_STATE(52)] = 1464, - [SMALL_STATE(53)] = 1500, + [SMALL_STATE(52)] = 1476, + [SMALL_STATE(53)] = 1504, [SMALL_STATE(54)] = 1528, [SMALL_STATE(55)] = 1561, [SMALL_STATE(56)] = 1594, @@ -6620,331 +6574,322 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(65)] = 1899, [SMALL_STATE(66)] = 1932, [SMALL_STATE(67)] = 1965, - [SMALL_STATE(68)] = 1998, - [SMALL_STATE(69)] = 2031, + [SMALL_STATE(68)] = 2002, + [SMALL_STATE(69)] = 2035, [SMALL_STATE(70)] = 2072, [SMALL_STATE(71)] = 2105, - [SMALL_STATE(72)] = 2142, - [SMALL_STATE(73)] = 2165, - [SMALL_STATE(74)] = 2198, - [SMALL_STATE(75)] = 2235, - [SMALL_STATE(76)] = 2268, - [SMALL_STATE(77)] = 2301, - [SMALL_STATE(78)] = 2334, - [SMALL_STATE(79)] = 2367, - [SMALL_STATE(80)] = 2400, - [SMALL_STATE(81)] = 2433, - [SMALL_STATE(82)] = 2466, + [SMALL_STATE(72)] = 2138, + [SMALL_STATE(73)] = 2171, + [SMALL_STATE(74)] = 2204, + [SMALL_STATE(75)] = 2227, + [SMALL_STATE(76)] = 2260, + [SMALL_STATE(77)] = 2293, + [SMALL_STATE(78)] = 2326, + [SMALL_STATE(79)] = 2359, + [SMALL_STATE(80)] = 2392, + [SMALL_STATE(81)] = 2425, + [SMALL_STATE(82)] = 2458, [SMALL_STATE(83)] = 2499, [SMALL_STATE(84)] = 2535, [SMALL_STATE(85)] = 2570, - [SMALL_STATE(86)] = 2595, - [SMALL_STATE(87)] = 2630, - [SMALL_STATE(88)] = 2665, - [SMALL_STATE(89)] = 2700, + [SMALL_STATE(86)] = 2599, + [SMALL_STATE(87)] = 2634, + [SMALL_STATE(88)] = 2669, + [SMALL_STATE(89)] = 2704, [SMALL_STATE(90)] = 2735, - [SMALL_STATE(91)] = 2770, - [SMALL_STATE(92)] = 2805, - [SMALL_STATE(93)] = 2828, - [SMALL_STATE(94)] = 2857, - [SMALL_STATE(95)] = 2884, - [SMALL_STATE(96)] = 2919, + [SMALL_STATE(91)] = 2758, + [SMALL_STATE(92)] = 2793, + [SMALL_STATE(93)] = 2818, + [SMALL_STATE(94)] = 2853, + [SMALL_STATE(95)] = 2880, + [SMALL_STATE(96)] = 2915, [SMALL_STATE(97)] = 2950, [SMALL_STATE(98)] = 2974, - [SMALL_STATE(99)] = 3002, - [SMALL_STATE(100)] = 3027, - [SMALL_STATE(101)] = 3052, - [SMALL_STATE(102)] = 3077, - [SMALL_STATE(103)] = 3096, - [SMALL_STATE(104)] = 3115, - [SMALL_STATE(105)] = 3126, - [SMALL_STATE(106)] = 3137, - [SMALL_STATE(107)] = 3153, - [SMALL_STATE(108)] = 3165, - [SMALL_STATE(109)] = 3177, - [SMALL_STATE(110)] = 3193, - [SMALL_STATE(111)] = 3206, - [SMALL_STATE(112)] = 3217, - [SMALL_STATE(113)] = 3230, - [SMALL_STATE(114)] = 3241, - [SMALL_STATE(115)] = 3252, - [SMALL_STATE(116)] = 3265, - [SMALL_STATE(117)] = 3276, - [SMALL_STATE(118)] = 3287, - [SMALL_STATE(119)] = 3298, - [SMALL_STATE(120)] = 3311, - [SMALL_STATE(121)] = 3322, - [SMALL_STATE(122)] = 3333, - [SMALL_STATE(123)] = 3346, - [SMALL_STATE(124)] = 3359, - [SMALL_STATE(125)] = 3372, - [SMALL_STATE(126)] = 3383, - [SMALL_STATE(127)] = 3394, - [SMALL_STATE(128)] = 3405, - [SMALL_STATE(129)] = 3416, - [SMALL_STATE(130)] = 3427, - [SMALL_STATE(131)] = 3437, - [SMALL_STATE(132)] = 3443, - [SMALL_STATE(133)] = 3453, - [SMALL_STATE(134)] = 3459, - [SMALL_STATE(135)] = 3465, - [SMALL_STATE(136)] = 3475, - [SMALL_STATE(137)] = 3481, - [SMALL_STATE(138)] = 3491, - [SMALL_STATE(139)] = 3496, - [SMALL_STATE(140)] = 3501, - [SMALL_STATE(141)] = 3508, - [SMALL_STATE(142)] = 3513, - [SMALL_STATE(143)] = 3520, - [SMALL_STATE(144)] = 3525, - [SMALL_STATE(145)] = 3532, - [SMALL_STATE(146)] = 3539, - [SMALL_STATE(147)] = 3544, - [SMALL_STATE(148)] = 3549, - [SMALL_STATE(149)] = 3554, - [SMALL_STATE(150)] = 3561, - [SMALL_STATE(151)] = 3566, - [SMALL_STATE(152)] = 3571, - [SMALL_STATE(153)] = 3576, - [SMALL_STATE(154)] = 3583, - [SMALL_STATE(155)] = 3588, - [SMALL_STATE(156)] = 3593, - [SMALL_STATE(157)] = 3598, - [SMALL_STATE(158)] = 3603, - [SMALL_STATE(159)] = 3608, - [SMALL_STATE(160)] = 3615, - [SMALL_STATE(161)] = 3620, - [SMALL_STATE(162)] = 3627, - [SMALL_STATE(163)] = 3631, - [SMALL_STATE(164)] = 3635, - [SMALL_STATE(165)] = 3639, - [SMALL_STATE(166)] = 3643, - [SMALL_STATE(167)] = 3647, - [SMALL_STATE(168)] = 3651, - [SMALL_STATE(169)] = 3655, - [SMALL_STATE(170)] = 3659, - [SMALL_STATE(171)] = 3663, - [SMALL_STATE(172)] = 3667, + [SMALL_STATE(99)] = 2999, + [SMALL_STATE(100)] = 3021, + [SMALL_STATE(101)] = 3043, + [SMALL_STATE(102)] = 3065, + [SMALL_STATE(103)] = 3084, + [SMALL_STATE(104)] = 3103, + [SMALL_STATE(105)] = 3114, + [SMALL_STATE(106)] = 3125, + [SMALL_STATE(107)] = 3137, + [SMALL_STATE(108)] = 3149, + [SMALL_STATE(109)] = 3160, + [SMALL_STATE(110)] = 3171, + [SMALL_STATE(111)] = 3184, + [SMALL_STATE(112)] = 3195, + [SMALL_STATE(113)] = 3208, + [SMALL_STATE(114)] = 3219, + [SMALL_STATE(115)] = 3230, + [SMALL_STATE(116)] = 3241, + [SMALL_STATE(117)] = 3254, + [SMALL_STATE(118)] = 3265, + [SMALL_STATE(119)] = 3276, + [SMALL_STATE(120)] = 3287, + [SMALL_STATE(121)] = 3298, + [SMALL_STATE(122)] = 3309, + [SMALL_STATE(123)] = 3322, + [SMALL_STATE(124)] = 3333, + [SMALL_STATE(125)] = 3344, + [SMALL_STATE(126)] = 3354, + [SMALL_STATE(127)] = 3360, + [SMALL_STATE(128)] = 3370, + [SMALL_STATE(129)] = 3380, + [SMALL_STATE(130)] = 3390, + [SMALL_STATE(131)] = 3400, + [SMALL_STATE(132)] = 3410, + [SMALL_STATE(133)] = 3416, + [SMALL_STATE(134)] = 3422, + [SMALL_STATE(135)] = 3428, + [SMALL_STATE(136)] = 3438, + [SMALL_STATE(137)] = 3448, + [SMALL_STATE(138)] = 3458, + [SMALL_STATE(139)] = 3465, + [SMALL_STATE(140)] = 3470, + [SMALL_STATE(141)] = 3477, + [SMALL_STATE(142)] = 3482, + [SMALL_STATE(143)] = 3487, + [SMALL_STATE(144)] = 3494, + [SMALL_STATE(145)] = 3499, + [SMALL_STATE(146)] = 3506, + [SMALL_STATE(147)] = 3513, + [SMALL_STATE(148)] = 3518, + [SMALL_STATE(149)] = 3525, + [SMALL_STATE(150)] = 3532, + [SMALL_STATE(151)] = 3539, + [SMALL_STATE(152)] = 3546, + [SMALL_STATE(153)] = 3550, + [SMALL_STATE(154)] = 3554, + [SMALL_STATE(155)] = 3558, + [SMALL_STATE(156)] = 3562, + [SMALL_STATE(157)] = 3566, + [SMALL_STATE(158)] = 3570, + [SMALL_STATE(159)] = 3574, + [SMALL_STATE(160)] = 3578, + [SMALL_STATE(161)] = 3582, + [SMALL_STATE(162)] = 3586, }; 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}}, REDUCE(sym_source_file, 0), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), - [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(108), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), + [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(106), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(103), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(102), [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), - [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), - [41] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(9), - [44] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(40), - [47] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(164), - [50] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(108), - [53] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(75), - [56] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(70), - [59] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(5), - [62] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), - [64] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(18), - [67] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(28), - [70] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(10), - [73] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(103), - [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1), - [78] = {.entry = {.count = 1, .reusable = false}}, SHIFT(163), - [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1), - [82] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [84] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2), - [86] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2), - [88] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 3), - [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 3), - [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), - [94] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(163), - [97] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), - [99] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), - [103] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29), - [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [37] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(10), + [40] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(45), + [43] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(154), + [46] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(106), + [49] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(57), + [52] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(66), + [55] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(5), + [58] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), + [60] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(17), + [63] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(33), + [66] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(14), + [69] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(102), + [72] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), + [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), + [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), + [78] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(153), + [81] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), + [83] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1), + [85] = {.entry = {.count = 1, .reusable = false}}, SHIFT(153), + [87] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1), + [89] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2), + [91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2), + [93] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 3), + [95] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 3), + [97] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [99] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18), + [103] = {.entry = {.count = 1, .reusable = false}}, SHIFT(32), + [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), [107] = {.entry = {.count = 1, .reusable = false}}, SHIFT(97), - [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), [111] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), [113] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [115] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), - [117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 10), - [119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 10), - [121] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 5, .production_id = 21), - [123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 5, .production_id = 21), - [125] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 4, .production_id = 15), - [127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 4, .production_id = 15), - [129] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 4, .production_id = 16), - [131] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 4, .production_id = 16), - [133] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 4), - [135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 4), - [137] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 3, .production_id = 9), - [139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 3, .production_id = 9), + [115] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51), + [117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 13), + [119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 13), + [121] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 4, .production_id = 20), + [123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 4, .production_id = 20), + [125] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 4, .production_id = 19), + [127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 4, .production_id = 19), + [129] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 5, .production_id = 25), + [131] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 5, .production_id = 25), + [133] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 7), + [135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 7), + [137] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 3, .production_id = 12), + [139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 3, .production_id = 12), [141] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 3), [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 3), - [145] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61), - [147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), - [149] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), - [151] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), - [153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64), + [145] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), + [147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60), + [149] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61), + [151] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), + [153] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), + [155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), [157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), [159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type, 1), [161] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), REDUCE(sym__type, 1), [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__maybe_global_identifier, 1), - [166] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 4, .production_id = 13), - [168] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60), - [170] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), - [172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 5, .production_id = 17), - [174] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 8), - [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 8), - [178] = {.entry = {.count = 1, .reusable = false}}, SHIFT(121), - [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), - [182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [184] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3), - [186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [188] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), - [190] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assign_left_side, 1), - [192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 1), - [194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5), - [196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5), - [198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 8), - [200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 8), - [202] = {.entry = {.count = 1, .reusable = false}}, SHIFT(169), - [204] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assign_left_side, 2), - [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), - [210] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), - [212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), - [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [218] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(169), + [166] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3), + [168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 4, .production_id = 15), + [172] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), + [174] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64), + [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 11), + [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 11), + [180] = {.entry = {.count = 1, .reusable = false}}, SHIFT(115), + [182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), + [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [186] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 5, .production_id = 21), + [188] = {.entry = {.count = 1, .reusable = false}}, SHIFT(159), + [190] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 23), + [192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 23), + [194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5, .production_id = 24), + [196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5, .production_id = 24), + [198] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), + [200] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assign_left_side, 1), + [202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 1), + [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [208] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(159), + [211] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assign_left_side, 2), + [213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [217] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), + [219] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), - [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [253] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), - [255] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), - [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [259] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), - [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [263] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat2, 3), - [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), + [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [249] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat2, 3), + [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [253] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), + [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), [269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), - [277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [279] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 20), - [281] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), - [283] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), - [285] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), - [287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [289] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), - [291] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), - [293] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57), - [295] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), - [297] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), - [299] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 3, .production_id = 24), - [301] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), - [303] = {.entry = {.count = 1, .reusable = false}}, SHIFT(148), - [305] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 11), + [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [275] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), + [277] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), + [279] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_func_call_repeat1, 2), + [281] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 14), + [283] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), + [285] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), + [287] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), + [289] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), + [291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [293] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80), + [295] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), + [297] = {.entry = {.count = 1, .reusable = false}}, SHIFT(21), + [299] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), + [301] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 3, .production_id = 26), + [303] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), + [305] = {.entry = {.count = 1, .reusable = false}}, SHIFT(139), [307] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), [311] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), SHIFT_REPEAT(97), - [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [316] = {.entry = {.count = 1, .reusable = false}}, SHIFT(111), - [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), - [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [322] = {.entry = {.count = 1, .reusable = false}}, SHIFT(107), - [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 6), - [326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 2), - [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), - [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), - [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), - [342] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(102), - [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), - [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 3), - [351] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(162), - [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 1), - [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_statement, 1), - [360] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), SHIFT_REPEAT(15), - [363] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), - [365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 2), - [367] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), - [369] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(170), - [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 3), - [380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [382] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 22), SHIFT_REPEAT(77), - [385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 22), - [387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5, .production_id = 3), - [389] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 6, .production_id = 7), - [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), - [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 8, .production_id = 18), - [397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 1), - [401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [403] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 7, .production_id = 7), - [405] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 7, .production_id = 14), - [407] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 4), - [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [411] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 7, .production_id = 12), - [413] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 8, .production_id = 19), - [415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), - [417] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5, .production_id = 1), - [419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 6, .production_id = 3), - [421] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 9, .production_id = 23), - [423] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 1), - [425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 6, .production_id = 5), - [429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), - [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), - [441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [443] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), - [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [316] = {.entry = {.count = 1, .reusable = false}}, SHIFT(123), + [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 1), + [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 2), + [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 6), + [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2), + [328] = {.entry = {.count = 1, .reusable = false}}, SHIFT(107), + [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 9), + [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 5), + [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), + [340] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(160), + [343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), + [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 6), + [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), + [359] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(152), + [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 2), + [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 2), + [372] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_interface_ports_repeat1, 2), SHIFT_REPEAT(103), + [375] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_interface_ports_repeat1, 2), + [377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 3), + [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 1), + [381] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_statement, 1), + [383] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), SHIFT_REPEAT(15), + [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), + [388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 6, .production_id = 22), + [390] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2), SHIFT_REPEAT(68), + [393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2), + [395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 5, .production_id = 18), + [397] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 8), + [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 4), + [401] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 3), + [403] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 5, .production_id = 17), + [405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [409] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 10), + [411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [413] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 4, .production_id = 16), + [415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 1), + [421] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 3), + [423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), + [425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), + [429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), + [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [445] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), + [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), }; #ifdef __cplusplus From 8b4d109a0168a072a8202799f3e377e56b9f3ab6 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Sat, 23 Mar 2024 20:36:11 +0100 Subject: [PATCH 09/49] Explicitly add parenthesis expr + Update TreeSitter --- Cargo.toml | 2 +- grammar.js | 10 +- src/grammar.json | 98 +- src/node-types.json | 226 ++- src/parser.c | 3452 ++++++++++++++++++++++--------------------- 5 files changed, 1927 insertions(+), 1861 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index acb7962..78bcffb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,7 @@ include = [ path = "bindings/rust/lib.rs" [dependencies] -tree-sitter = "~0.20.10" +tree-sitter = "~0.22.1" [build-dependencies] cc = "1.0" diff --git a/grammar.js b/grammar.js index 4588c3d..b29553a 100644 --- a/grammar.js +++ b/grammar.js @@ -109,7 +109,13 @@ module.exports = grammar({ func_call: $ => seq( field('name', $._maybe_global_identifier), '(', - field('func_arguments', sepSeq($._expression, ',')), + sepSeq(field('argument', $._expression), ','), + ')' + ), + + parenthesis_expression: $ => seq( + '(', + field('right', $._expression), ')' ), @@ -117,7 +123,7 @@ module.exports = grammar({ $._maybe_global_identifier, $.array_op, $.number, - seq('(', $._expression, ')'), + $.parenthesis_expression, $.unary_op, $.binary_op, $.func_call diff --git a/src/grammar.json b/src/grammar.json index a7e85e3..484fd17 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -690,40 +690,65 @@ "value": "(" }, { - "type": "FIELD", - "name": "func_arguments", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "argument", + "content": { "type": "SYMBOL", "name": "_expression" - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "FIELD", + "name": "argument", + "content": { "type": "SYMBOL", "name": "_expression" } - ] - } + } + ] } - ] - }, - { - "type": "BLANK" - } - ] + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "parenthesis_expression": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "_expression" } }, { @@ -748,21 +773,8 @@ "name": "number" }, { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "(" - }, - { - "type": "SYMBOL", - "name": "_expression" - }, - { - "type": "STRING", - "value": ")" - } - ] + "type": "SYMBOL", + "name": "parenthesis_expression" }, { "type": "SYMBOL", diff --git a/src/node-types.json b/src/node-types.json index 7e79afd..e9d3dff 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -4,17 +4,9 @@ "named": true, "fields": { "arr": { - "multiple": true, + "multiple": false, "required": true, "types": [ - { - "type": "(", - "named": false - }, - { - "type": ")", - "named": false - }, { "type": "array_op", "named": true @@ -39,6 +31,10 @@ "type": "number", "named": true }, + { + "type": "parenthesis_expression", + "named": true + }, { "type": "unary_op", "named": true @@ -46,17 +42,9 @@ ] }, "arr_idx": { - "multiple": true, + "multiple": false, "required": true, "types": [ - { - "type": "(", - "named": false - }, - { - "type": ")", - "named": false - }, { "type": "array_op", "named": true @@ -81,6 +69,10 @@ "type": "number", "named": true }, + { + "type": "parenthesis_expression", + "named": true + }, { "type": "unary_op", "named": true @@ -108,17 +100,9 @@ ] }, "array_size": { - "multiple": true, + "multiple": false, "required": true, "types": [ - { - "type": "(", - "named": false - }, - { - "type": ")", - "named": false - }, { "type": "array_op", "named": true @@ -143,6 +127,10 @@ "type": "number", "named": true }, + { + "type": "parenthesis_expression", + "named": true + }, { "type": "unary_op", "named": true @@ -156,17 +144,9 @@ "named": true, "fields": { "left": { - "multiple": true, + "multiple": false, "required": true, "types": [ - { - "type": "(", - "named": false - }, - { - "type": ")", - "named": false - }, { "type": "array_op", "named": true @@ -191,6 +171,10 @@ "type": "number", "named": true }, + { + "type": "parenthesis_expression", + "named": true + }, { "type": "unary_op", "named": true @@ -260,17 +244,9 @@ ] }, "right": { - "multiple": true, + "multiple": false, "required": true, "types": [ - { - "type": "(", - "named": false - }, - { - "type": ")", - "named": false - }, { "type": "array_op", "named": true @@ -295,6 +271,10 @@ "type": "number", "named": true }, + { + "type": "parenthesis_expression", + "named": true + }, { "type": "unary_op", "named": true @@ -346,14 +326,6 @@ "multiple": true, "required": true, "types": [ - { - "type": "(", - "named": false - }, - { - "type": ")", - "named": false - }, { "type": ",", "named": false @@ -390,6 +362,10 @@ "type": "number", "named": true }, + { + "type": "parenthesis_expression", + "named": true + }, { "type": "reg", "named": false @@ -401,17 +377,9 @@ ] }, "assign_value": { - "multiple": true, + "multiple": false, "required": true, "types": [ - { - "type": "(", - "named": false - }, - { - "type": ")", - "named": false - }, { "type": "array_op", "named": true @@ -436,6 +404,10 @@ "type": "number", "named": true }, + { + "type": "parenthesis_expression", + "named": true + }, { "type": "unary_op", "named": true @@ -478,17 +450,9 @@ ] }, "latency_spec": { - "multiple": true, + "multiple": false, "required": false, "types": [ - { - "type": "(", - "named": false - }, - { - "type": ")", - "named": false - }, { "type": "array_op", "named": true @@ -513,6 +477,10 @@ "type": "number", "named": true }, + { + "type": "parenthesis_expression", + "named": true + }, { "type": "unary_op", "named": true @@ -577,6 +545,10 @@ "type": "number", "named": true }, + { + "type": "parenthesis_expression", + "named": true + }, { "type": "unary_op", "named": true @@ -624,22 +596,10 @@ "type": "func_call", "named": true, "fields": { - "func_arguments": { + "argument": { "multiple": true, "required": false, "types": [ - { - "type": "(", - "named": false - }, - { - "type": ")", - "named": false - }, - { - "type": ",", - "named": false - }, { "type": "array_op", "named": true @@ -664,6 +624,10 @@ "type": "number", "named": true }, + { + "type": "parenthesis_expression", + "named": true + }, { "type": "unary_op", "named": true @@ -709,14 +673,6 @@ "multiple": true, "required": true, "types": [ - { - "type": "(", - "named": false - }, - { - "type": ")", - "named": false - }, { "type": ",", "named": false @@ -753,6 +709,10 @@ "type": "number", "named": true }, + { + "type": "parenthesis_expression", + "named": true + }, { "type": "reg", "named": false @@ -860,21 +820,57 @@ } }, { - "type": "range", + "type": "parenthesis_expression", "named": true, "fields": { - "from": { - "multiple": true, + "right": { + "multiple": false, "required": true, "types": [ { - "type": "(", - "named": false + "type": "array_op", + "named": true }, { - "type": ")", - "named": false + "type": "binary_op", + "named": true + }, + { + "type": "func_call", + "named": true }, + { + "type": "global_identifier", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "parenthesis_expression", + "named": true + }, + { + "type": "unary_op", + "named": true + } + ] + } + } + }, + { + "type": "range", + "named": true, + "fields": { + "from": { + "multiple": false, + "required": true, + "types": [ { "type": "array_op", "named": true @@ -899,6 +895,10 @@ "type": "number", "named": true }, + { + "type": "parenthesis_expression", + "named": true + }, { "type": "unary_op", "named": true @@ -906,17 +906,9 @@ ] }, "to": { - "multiple": true, + "multiple": false, "required": true, "types": [ - { - "type": "(", - "named": false - }, - { - "type": ")", - "named": false - }, { "type": "array_op", "named": true @@ -941,6 +933,10 @@ "type": "number", "named": true }, + { + "type": "parenthesis_expression", + "named": true + }, { "type": "unary_op", "named": true @@ -1003,17 +999,9 @@ ] }, "right": { - "multiple": true, + "multiple": false, "required": true, "types": [ - { - "type": "(", - "named": false - }, - { - "type": ")", - "named": false - }, { "type": "array_op", "named": true @@ -1038,6 +1026,10 @@ "type": "number", "named": true }, + { + "type": "parenthesis_expression", + "named": true + }, { "type": "unary_op", "named": true diff --git a/src/parser.c b/src/parser.c index 9ea27c2..0ebb4a7 100644 --- a/src/parser.c +++ b/src/parser.c @@ -8,13 +8,13 @@ #define LANGUAGE_VERSION 14 #define STATE_COUNT 163 #define LARGE_STATE_COUNT 9 -#define SYMBOL_COUNT 69 +#define SYMBOL_COUNT 70 #define ALIAS_COUNT 0 #define TOKEN_COUNT 40 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 25 #define MAX_ALIAS_SEQUENCE_LENGTH 6 -#define PRODUCTION_ID_COUNT 27 +#define PRODUCTION_ID_COUNT 30 enum { anon_sym_COLON = 1, @@ -68,23 +68,24 @@ enum { sym_binary_op = 49, sym_array_op = 50, sym_func_call = 51, - sym__expression = 52, - sym_range = 53, - sym_block = 54, - sym__assign_left_side = 55, - sym_decl_assign_statement = 56, - sym_decl_statement = 57, - sym_expression_statement = 58, - sym_if_statement = 59, - sym_for_statement = 60, - sym__statement = 61, - aux_sym_source_file_repeat1 = 62, - aux_sym_interface_ports_repeat1 = 63, - aux_sym_global_identifier_repeat1 = 64, - aux_sym_func_call_repeat1 = 65, - aux_sym_block_repeat1 = 66, - aux_sym__assign_left_side_repeat1 = 67, - aux_sym__assign_left_side_repeat2 = 68, + sym_parenthesis_expression = 52, + sym__expression = 53, + sym_range = 54, + sym_block = 55, + sym__assign_left_side = 56, + sym_decl_assign_statement = 57, + sym_decl_statement = 58, + sym_expression_statement = 59, + sym_if_statement = 60, + sym_for_statement = 61, + sym__statement = 62, + aux_sym_source_file_repeat1 = 63, + aux_sym_interface_ports_repeat1 = 64, + aux_sym_global_identifier_repeat1 = 65, + aux_sym_func_call_repeat1 = 66, + aux_sym_block_repeat1 = 67, + aux_sym__assign_left_side_repeat1 = 68, + aux_sym__assign_left_side_repeat2 = 69, }; static const char * const ts_symbol_names[] = { @@ -140,6 +141,7 @@ static const char * const ts_symbol_names[] = { [sym_binary_op] = "binary_op", [sym_array_op] = "array_op", [sym_func_call] = "func_call", + [sym_parenthesis_expression] = "parenthesis_expression", [sym__expression] = "_expression", [sym_range] = "range", [sym_block] = "block", @@ -212,6 +214,7 @@ static const TSSymbol ts_symbol_map[] = { [sym_binary_op] = sym_binary_op, [sym_array_op] = sym_array_op, [sym_func_call] = sym_func_call, + [sym_parenthesis_expression] = sym_parenthesis_expression, [sym__expression] = sym__expression, [sym_range] = sym_range, [sym_block] = sym_block, @@ -440,6 +443,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_parenthesis_expression] = { + .visible = true, + .named = true, + }, [sym__expression] = { .visible = false, .named = true, @@ -511,20 +518,20 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { }; enum { - field_arr = 1, - field_arr_idx = 2, - field_array_element_type = 3, - field_array_size = 4, - field_assign_to = 5, - field_assign_value = 6, - field_block = 7, - field_condition = 8, - field_declaration_modifiers = 9, - field_else_block = 10, - field_for_decl = 11, - field_for_range = 12, - field_from = 13, - field_func_arguments = 14, + field_argument = 1, + field_arr = 2, + field_arr_idx = 3, + field_array_element_type = 4, + field_array_size = 5, + field_assign_to = 6, + field_assign_value = 7, + field_block = 8, + field_condition = 9, + field_declaration_modifiers = 10, + field_else_block = 11, + field_for_decl = 12, + field_for_range = 13, + field_from = 14, field_inputs = 15, field_interface_ports = 16, field_latency_spec = 17, @@ -540,6 +547,7 @@ enum { static const char * const ts_field_names[] = { [0] = NULL, + [field_argument] = "argument", [field_arr] = "arr", [field_arr_idx] = "arr_idx", [field_array_element_type] = "array_element_type", @@ -553,7 +561,6 @@ static const char * const ts_field_names[] = { [field_for_decl] = "for_decl", [field_for_range] = "for_range", [field_from] = "from", - [field_func_arguments] = "func_arguments", [field_inputs] = "inputs", [field_interface_ports] = "interface_ports", [field_latency_spec] = "latency_spec", @@ -578,22 +585,25 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [8] = {.index = 13, .length = 2}, [9] = {.index = 15, .length = 3}, [10] = {.index = 18, .length = 2}, - [11] = {.index = 20, .length = 2}, - [12] = {.index = 22, .length = 1}, - [13] = {.index = 23, .length = 3}, - [14] = {.index = 26, .length = 2}, - [15] = {.index = 28, .length = 3}, - [16] = {.index = 31, .length = 2}, - [17] = {.index = 33, .length = 3}, - [18] = {.index = 36, .length = 3}, - [19] = {.index = 39, .length = 2}, - [20] = {.index = 41, .length = 2}, - [21] = {.index = 43, .length = 4}, - [22] = {.index = 47, .length = 4}, - [23] = {.index = 51, .length = 3}, - [24] = {.index = 54, .length = 3}, - [25] = {.index = 57, .length = 3}, - [26] = {.index = 60, .length = 2}, + [11] = {.index = 20, .length = 1}, + [12] = {.index = 21, .length = 2}, + [13] = {.index = 23, .length = 1}, + [14] = {.index = 24, .length = 3}, + [15] = {.index = 27, .length = 2}, + [16] = {.index = 29, .length = 3}, + [17] = {.index = 32, .length = 2}, + [18] = {.index = 34, .length = 3}, + [19] = {.index = 37, .length = 3}, + [20] = {.index = 40, .length = 2}, + [21] = {.index = 42, .length = 2}, + [22] = {.index = 44, .length = 4}, + [23] = {.index = 48, .length = 4}, + [24] = {.index = 52, .length = 3}, + [25] = {.index = 55, .length = 3}, + [26] = {.index = 58, .length = 1}, + [27] = {.index = 59, .length = 3}, + [28] = {.index = 62, .length = 2}, + [29] = {.index = 64, .length = 2}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -628,61 +638,68 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_inputs, 1}, {field_outputs, 3}, [20] = + {field_right, 1}, + [21] = {field_condition, 1}, {field_then_block, 2}, - [22] = - {field_name, 0}, [23] = + {field_name, 0}, + [24] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [26] = + [27] = {field_assign_to, 0}, {field_assign_value, 2}, - [28] = + [29] = {field_latency_spec, 3}, {field_name, 1}, {field_type, 0}, - [31] = + [32] = {field_array_element_type, 0}, {field_array_size, 2}, - [33] = + [34] = {field_inputs, 1}, {field_outputs, 3}, {field_outputs, 4}, - [36] = + [37] = {field_inputs, 1}, {field_inputs, 2}, {field_outputs, 4}, - [39] = - {field_func_arguments, 2}, + [40] = + {field_argument, 2}, {field_name, 0}, - [41] = + [42] = {field_arr, 0}, {field_arr_idx, 2}, - [43] = + [44] = {field_declaration_modifiers, 0}, {field_latency_spec, 4}, {field_name, 2}, {field_type, 1}, - [47] = + [48] = {field_inputs, 1}, {field_inputs, 2}, {field_outputs, 4}, {field_outputs, 5}, - [51] = + [52] = {field_condition, 1}, {field_else_block, 4}, {field_then_block, 2}, - [54] = + [55] = {field_block, 4}, {field_for_decl, 1}, {field_for_range, 3}, - [57] = - {field_func_arguments, 2}, - {field_func_arguments, 3}, + [58] = + {field_argument, 1}, + [59] = + {field_argument, 2}, + {field_argument, 3, .inherited = true}, {field_name, 0}, - [60] = + [62] = + {field_argument, 0, .inherited = true}, + {field_argument, 1, .inherited = true}, + [64] = {field_from, 0}, {field_to, 2}, }; @@ -736,62 +753,62 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [37] = 37, [38] = 38, [39] = 39, - [40] = 38, - [41] = 11, + [40] = 40, + [41] = 41, [42] = 42, [43] = 43, - [44] = 10, + [44] = 11, [45] = 45, - [46] = 35, - [47] = 13, - [48] = 48, - [49] = 9, - [50] = 50, + [46] = 10, + [47] = 47, + [48] = 13, + [49] = 14, + [50] = 47, [51] = 51, - [52] = 12, + [52] = 43, [53] = 53, - [54] = 54, + [54] = 41, [55] = 55, [56] = 56, [57] = 57, [58] = 58, [59] = 59, - [60] = 54, + [60] = 60, [61] = 61, - [62] = 62, - [63] = 63, + [62] = 56, + [63] = 55, [64] = 64, [65] = 65, - [66] = 66, - [67] = 67, - [68] = 68, - [69] = 69, - [70] = 70, - [71] = 64, - [72] = 55, + [66] = 61, + [67] = 60, + [68] = 59, + [69] = 58, + [70] = 39, + [71] = 15, + [72] = 72, [73] = 73, - [74] = 16, - [75] = 57, - [76] = 59, - [77] = 77, - [78] = 61, - [79] = 73, - [80] = 62, - [81] = 63, - [82] = 82, + [74] = 74, + [75] = 75, + [76] = 76, + [77] = 42, + [78] = 78, + [79] = 79, + [80] = 80, + [81] = 81, + [82] = 16, [83] = 83, [84] = 84, - [85] = 28, - [86] = 39, - [87] = 36, - [88] = 88, - [89] = 27, - [90] = 30, + [85] = 30, + [86] = 86, + [87] = 87, + [88] = 33, + [89] = 32, + [90] = 90, [91] = 91, - [92] = 31, - [93] = 93, + [92] = 35, + [93] = 37, [94] = 29, - [95] = 95, + [95] = 31, [96] = 96, [97] = 97, [98] = 98, @@ -804,8 +821,8 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [105] = 105, [106] = 106, [107] = 106, - [108] = 9, - [109] = 12, + [108] = 10, + [109] = 109, [110] = 110, [111] = 111, [112] = 112, @@ -814,50 +831,50 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [115] = 115, [116] = 116, [117] = 117, - [118] = 11, - [119] = 13, + [118] = 118, + [119] = 119, [120] = 120, [121] = 121, - [122] = 122, - [123] = 123, - [124] = 124, + [122] = 11, + [123] = 14, + [124] = 13, [125] = 125, [126] = 126, [127] = 127, - [128] = 128, + [128] = 16, [129] = 129, [130] = 130, [131] = 131, [132] = 132, [133] = 133, - [134] = 16, + [134] = 134, [135] = 135, [136] = 136, [137] = 137, - [138] = 104, + [138] = 39, [139] = 139, [140] = 140, [141] = 141, - [142] = 142, - [143] = 143, - [144] = 35, - [145] = 140, + [142] = 41, + [143] = 139, + [144] = 144, + [145] = 145, [146] = 146, - [147] = 38, + [147] = 147, [148] = 148, - [149] = 148, - [150] = 150, - [151] = 105, + [149] = 105, + [150] = 104, + [151] = 146, [152] = 152, [153] = 153, [154] = 154, [155] = 155, - [156] = 154, - [157] = 154, + [156] = 156, + [157] = 152, [158] = 158, [159] = 153, [160] = 153, - [161] = 161, + [161] = 152, [162] = 162, }; @@ -2461,11 +2478,11 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead != 0) SKIP(4) END_STATE(); case 5: - if (lookahead == '\n') SKIP(13) + if (lookahead == '\n') SKIP(8) if (lookahead != 0) SKIP(5) END_STATE(); case 6: - if (lookahead == '\n') SKIP(8) + if (lookahead == '\n') SKIP(13) if (lookahead != 0) SKIP(6) END_STATE(); case 7: @@ -2480,7 +2497,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '*') ADVANCE(105); if (lookahead == '+') ADVANCE(102); if (lookahead == '-') ADVANCE(103); - if (lookahead == '/') SKIP(36) + if (lookahead == '/') SKIP(35) if (lookahead == ':') ADVANCE(39); if (lookahead == '[') ADVANCE(95); if (lookahead == '^') ADVANCE(110); @@ -2588,7 +2605,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '*') ADVANCE(105); if (lookahead == '+') ADVANCE(102); if (lookahead == '-') ADVANCE(103); - if (lookahead == '/') SKIP(35) + if (lookahead == '/') SKIP(36) if (lookahead == ':') ADVANCE(39); if (lookahead == '^') ADVANCE(110); if (lookahead == 'e') ADVANCE(83); @@ -2725,7 +2742,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 26: if (lookahead == '*') SKIP(26) - if (lookahead == '/') SKIP(13) + if (lookahead == '/') SKIP(8) if (lookahead != 0) SKIP(27) END_STATE(); case 27: @@ -2734,7 +2751,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 28: if (lookahead == '*') SKIP(28) - if (lookahead == '/') SKIP(8) + if (lookahead == '/') SKIP(13) if (lookahead != 0) SKIP(29) END_STATE(); case 29: @@ -3153,13 +3170,13 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [6] = {.lex_state = 10}, [7] = {.lex_state = 10}, [8] = {.lex_state = 10}, - [9] = {.lex_state = 14}, + [9] = {.lex_state = 11}, [10] = {.lex_state = 14}, [11] = {.lex_state = 14}, - [12] = {.lex_state = 14}, + [12] = {.lex_state = 11}, [13] = {.lex_state = 14}, - [14] = {.lex_state = 11}, - [15] = {.lex_state = 11}, + [14] = {.lex_state = 14}, + [15] = {.lex_state = 14}, [16] = {.lex_state = 14}, [17] = {.lex_state = 12}, [18] = {.lex_state = 12}, @@ -3167,40 +3184,40 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [20] = {.lex_state = 15}, [21] = {.lex_state = 15}, [22] = {.lex_state = 15}, - [23] = {.lex_state = 15}, + [23] = {.lex_state = 9}, [24] = {.lex_state = 15}, [25] = {.lex_state = 15}, [26] = {.lex_state = 15}, [27] = {.lex_state = 15}, - [28] = {.lex_state = 15}, + [28] = {.lex_state = 9}, [29] = {.lex_state = 15}, [30] = {.lex_state = 15}, [31] = {.lex_state = 15}, - [32] = {.lex_state = 9}, - [33] = {.lex_state = 9}, + [32] = {.lex_state = 15}, + [33] = {.lex_state = 15}, [34] = {.lex_state = 14}, - [35] = {.lex_state = 13}, - [36] = {.lex_state = 14}, - [37] = {.lex_state = 13}, + [35] = {.lex_state = 14}, + [36] = {.lex_state = 8}, + [37] = {.lex_state = 14}, [38] = {.lex_state = 13}, - [39] = {.lex_state = 14}, - [40] = {.lex_state = 10}, - [41] = {.lex_state = 16}, - [42] = {.lex_state = 10}, - [43] = {.lex_state = 10}, + [39] = {.lex_state = 13}, + [40] = {.lex_state = 8}, + [41] = {.lex_state = 13}, + [42] = {.lex_state = 8}, + [43] = {.lex_state = 8}, [44] = {.lex_state = 16}, - [45] = {.lex_state = 14}, - [46] = {.lex_state = 10}, - [47] = {.lex_state = 16}, - [48] = {.lex_state = 8}, + [45] = {.lex_state = 8}, + [46] = {.lex_state = 16}, + [47] = {.lex_state = 8}, + [48] = {.lex_state = 16}, [49] = {.lex_state = 16}, - [50] = {.lex_state = 14}, - [51] = {.lex_state = 8}, - [52] = {.lex_state = 16}, - [53] = {.lex_state = 10}, - [54] = {.lex_state = 8}, + [50] = {.lex_state = 8}, + [51] = {.lex_state = 14}, + [52] = {.lex_state = 8}, + [53] = {.lex_state = 8}, + [54] = {.lex_state = 10}, [55] = {.lex_state = 8}, - [56] = {.lex_state = 14}, + [56] = {.lex_state = 8}, [57] = {.lex_state = 8}, [58] = {.lex_state = 8}, [59] = {.lex_state = 8}, @@ -3209,37 +3226,37 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [62] = {.lex_state = 8}, [63] = {.lex_state = 8}, [64] = {.lex_state = 8}, - [65] = {.lex_state = 8}, + [65] = {.lex_state = 10}, [66] = {.lex_state = 8}, - [67] = {.lex_state = 14}, + [67] = {.lex_state = 8}, [68] = {.lex_state = 8}, - [69] = {.lex_state = 14}, - [70] = {.lex_state = 8}, - [71] = {.lex_state = 8}, + [69] = {.lex_state = 8}, + [70] = {.lex_state = 10}, + [71] = {.lex_state = 16}, [72] = {.lex_state = 8}, - [73] = {.lex_state = 8}, - [74] = {.lex_state = 16}, + [73] = {.lex_state = 14}, + [74] = {.lex_state = 10}, [75] = {.lex_state = 8}, - [76] = {.lex_state = 8}, + [76] = {.lex_state = 10}, [77] = {.lex_state = 8}, - [78] = {.lex_state = 8}, - [79] = {.lex_state = 8}, - [80] = {.lex_state = 8}, - [81] = {.lex_state = 8}, - [82] = {.lex_state = 14}, + [78] = {.lex_state = 14}, + [79] = {.lex_state = 14}, + [80] = {.lex_state = 14}, + [81] = {.lex_state = 14}, + [82] = {.lex_state = 16}, [83] = {.lex_state = 14}, - [84] = {.lex_state = 14}, + [84] = {.lex_state = 15}, [85] = {.lex_state = 15}, - [86] = {.lex_state = 15}, - [87] = {.lex_state = 15}, - [88] = {.lex_state = 14}, + [86] = {.lex_state = 14}, + [87] = {.lex_state = 14}, + [88] = {.lex_state = 15}, [89] = {.lex_state = 15}, - [90] = {.lex_state = 15}, - [91] = {.lex_state = 15}, + [90] = {.lex_state = 14}, + [91] = {.lex_state = 14}, [92] = {.lex_state = 15}, - [93] = {.lex_state = 14}, + [93] = {.lex_state = 15}, [94] = {.lex_state = 15}, - [95] = {.lex_state = 14}, + [95] = {.lex_state = 15}, [96] = {.lex_state = 14}, [97] = {.lex_state = 12}, [98] = {.lex_state = 9}, @@ -3255,57 +3272,57 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [108] = {.lex_state = 8}, [109] = {.lex_state = 8}, [110] = {.lex_state = 0}, - [111] = {.lex_state = 0}, - [112] = {.lex_state = 38}, + [111] = {.lex_state = 38}, + [112] = {.lex_state = 0}, [113] = {.lex_state = 0}, [114] = {.lex_state = 0}, [115] = {.lex_state = 0}, [116] = {.lex_state = 0}, [117] = {.lex_state = 0}, - [118] = {.lex_state = 8}, - [119] = {.lex_state = 8}, + [118] = {.lex_state = 0}, + [119] = {.lex_state = 0}, [120] = {.lex_state = 0}, [121] = {.lex_state = 0}, - [122] = {.lex_state = 0}, + [122] = {.lex_state = 8}, [123] = {.lex_state = 8}, - [124] = {.lex_state = 0}, + [124] = {.lex_state = 8}, [125] = {.lex_state = 0}, [126] = {.lex_state = 0}, [127] = {.lex_state = 0}, - [128] = {.lex_state = 0}, + [128] = {.lex_state = 8}, [129] = {.lex_state = 0}, [130] = {.lex_state = 0}, [131] = {.lex_state = 0}, [132] = {.lex_state = 0}, [133] = {.lex_state = 0}, - [134] = {.lex_state = 8}, + [134] = {.lex_state = 0}, [135] = {.lex_state = 0}, [136] = {.lex_state = 0}, [137] = {.lex_state = 0}, [138] = {.lex_state = 0}, [139] = {.lex_state = 8}, - [140] = {.lex_state = 8}, - [141] = {.lex_state = 0}, + [140] = {.lex_state = 0}, + [141] = {.lex_state = 8}, [142] = {.lex_state = 0}, - [143] = {.lex_state = 0}, + [143] = {.lex_state = 8}, [144] = {.lex_state = 0}, - [145] = {.lex_state = 8}, - [146] = {.lex_state = 0}, + [145] = {.lex_state = 0}, + [146] = {.lex_state = 8}, [147] = {.lex_state = 0}, - [148] = {.lex_state = 8}, - [149] = {.lex_state = 8}, + [148] = {.lex_state = 0}, + [149] = {.lex_state = 0}, [150] = {.lex_state = 0}, - [151] = {.lex_state = 0}, + [151] = {.lex_state = 8}, [152] = {.lex_state = 8}, [153] = {.lex_state = 8}, - [154] = {.lex_state = 8}, - [155] = {.lex_state = 0}, - [156] = {.lex_state = 8}, + [154] = {.lex_state = 0}, + [155] = {.lex_state = 8}, + [156] = {.lex_state = 0}, [157] = {.lex_state = 8}, [158] = {.lex_state = 0}, [159] = {.lex_state = 8}, [160] = {.lex_state = 8}, - [161] = {.lex_state = 0}, + [161] = {.lex_state = 8}, [162] = {.lex_state = 0}, }; @@ -3351,32 +3368,33 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { }, [1] = { [sym_source_file] = STATE(158), - [sym_module] = STATE(111), - [aux_sym_source_file_repeat1] = STATE(111), + [sym_module] = STATE(110), + [aux_sym_source_file_repeat1] = STATE(110), [ts_builtin_sym_end] = ACTIONS(3), [anon_sym_module] = ACTIONS(5), }, [2] = { [sym_global_identifier] = STATE(34), [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(140), - [sym__type] = STATE(140), - [sym_declaration] = STATE(122), - [sym_unary_op] = STATE(45), - [sym_binary_op] = STATE(45), - [sym_array_op] = STATE(45), - [sym_func_call] = STATE(45), - [sym__expression] = STATE(45), + [sym_array_type] = STATE(151), + [sym__type] = STATE(151), + [sym_declaration] = STATE(118), + [sym_unary_op] = STATE(73), + [sym_binary_op] = STATE(73), + [sym_array_op] = STATE(73), + [sym_func_call] = STATE(73), + [sym_parenthesis_expression] = STATE(73), + [sym__expression] = STATE(73), [sym_block] = STATE(6), - [sym__assign_left_side] = STATE(162), - [sym_decl_assign_statement] = STATE(161), - [sym_decl_statement] = STATE(161), - [sym_expression_statement] = STATE(161), + [sym__assign_left_side] = STATE(154), + [sym_decl_assign_statement] = STATE(162), + [sym_decl_statement] = STATE(162), + [sym_expression_statement] = STATE(162), [sym_if_statement] = STATE(6), [sym_for_statement] = STATE(6), [sym__statement] = STATE(6), [aux_sym_block_repeat1] = STATE(6), - [aux_sym__assign_left_side_repeat1] = STATE(17), + [aux_sym__assign_left_side_repeat1] = STATE(18), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), [anon_sym_COLON_COLON] = ACTIONS(11), @@ -3400,24 +3418,25 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [3] = { [sym_global_identifier] = STATE(34), [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(140), - [sym__type] = STATE(140), - [sym_declaration] = STATE(122), - [sym_unary_op] = STATE(45), - [sym_binary_op] = STATE(45), - [sym_array_op] = STATE(45), - [sym_func_call] = STATE(45), - [sym__expression] = STATE(45), + [sym_array_type] = STATE(151), + [sym__type] = STATE(151), + [sym_declaration] = STATE(118), + [sym_unary_op] = STATE(73), + [sym_binary_op] = STATE(73), + [sym_array_op] = STATE(73), + [sym_func_call] = STATE(73), + [sym_parenthesis_expression] = STATE(73), + [sym__expression] = STATE(73), [sym_block] = STATE(2), - [sym__assign_left_side] = STATE(162), - [sym_decl_assign_statement] = STATE(161), - [sym_decl_statement] = STATE(161), - [sym_expression_statement] = STATE(161), + [sym__assign_left_side] = STATE(154), + [sym_decl_assign_statement] = STATE(162), + [sym_decl_statement] = STATE(162), + [sym_expression_statement] = STATE(162), [sym_if_statement] = STATE(2), [sym_for_statement] = STATE(2), [sym__statement] = STATE(2), [aux_sym_block_repeat1] = STATE(2), - [aux_sym__assign_left_side_repeat1] = STATE(17), + [aux_sym__assign_left_side_repeat1] = STATE(18), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), [anon_sym_COLON_COLON] = ACTIONS(11), @@ -3441,24 +3460,25 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [4] = { [sym_global_identifier] = STATE(34), [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(140), - [sym__type] = STATE(140), - [sym_declaration] = STATE(122), - [sym_unary_op] = STATE(45), - [sym_binary_op] = STATE(45), - [sym_array_op] = STATE(45), - [sym_func_call] = STATE(45), - [sym__expression] = STATE(45), + [sym_array_type] = STATE(151), + [sym__type] = STATE(151), + [sym_declaration] = STATE(118), + [sym_unary_op] = STATE(73), + [sym_binary_op] = STATE(73), + [sym_array_op] = STATE(73), + [sym_func_call] = STATE(73), + [sym_parenthesis_expression] = STATE(73), + [sym__expression] = STATE(73), [sym_block] = STATE(6), - [sym__assign_left_side] = STATE(162), - [sym_decl_assign_statement] = STATE(161), - [sym_decl_statement] = STATE(161), - [sym_expression_statement] = STATE(161), + [sym__assign_left_side] = STATE(154), + [sym_decl_assign_statement] = STATE(162), + [sym_decl_statement] = STATE(162), + [sym_expression_statement] = STATE(162), [sym_if_statement] = STATE(6), [sym_for_statement] = STATE(6), [sym__statement] = STATE(6), [aux_sym_block_repeat1] = STATE(6), - [aux_sym__assign_left_side_repeat1] = STATE(17), + [aux_sym__assign_left_side_repeat1] = STATE(18), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), [anon_sym_COLON_COLON] = ACTIONS(11), @@ -3482,24 +3502,25 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [5] = { [sym_global_identifier] = STATE(34), [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(140), - [sym__type] = STATE(140), - [sym_declaration] = STATE(122), - [sym_unary_op] = STATE(45), - [sym_binary_op] = STATE(45), - [sym_array_op] = STATE(45), - [sym_func_call] = STATE(45), - [sym__expression] = STATE(45), + [sym_array_type] = STATE(151), + [sym__type] = STATE(151), + [sym_declaration] = STATE(118), + [sym_unary_op] = STATE(73), + [sym_binary_op] = STATE(73), + [sym_array_op] = STATE(73), + [sym_func_call] = STATE(73), + [sym_parenthesis_expression] = STATE(73), + [sym__expression] = STATE(73), [sym_block] = STATE(4), - [sym__assign_left_side] = STATE(162), - [sym_decl_assign_statement] = STATE(161), - [sym_decl_statement] = STATE(161), - [sym_expression_statement] = STATE(161), + [sym__assign_left_side] = STATE(154), + [sym_decl_assign_statement] = STATE(162), + [sym_decl_statement] = STATE(162), + [sym_expression_statement] = STATE(162), [sym_if_statement] = STATE(4), [sym_for_statement] = STATE(4), [sym__statement] = STATE(4), [aux_sym_block_repeat1] = STATE(4), - [aux_sym__assign_left_side_repeat1] = STATE(17), + [aux_sym__assign_left_side_repeat1] = STATE(18), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), [anon_sym_COLON_COLON] = ACTIONS(11), @@ -3523,24 +3544,25 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [6] = { [sym_global_identifier] = STATE(34), [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(140), - [sym__type] = STATE(140), - [sym_declaration] = STATE(122), - [sym_unary_op] = STATE(45), - [sym_binary_op] = STATE(45), - [sym_array_op] = STATE(45), - [sym_func_call] = STATE(45), - [sym__expression] = STATE(45), + [sym_array_type] = STATE(151), + [sym__type] = STATE(151), + [sym_declaration] = STATE(118), + [sym_unary_op] = STATE(73), + [sym_binary_op] = STATE(73), + [sym_array_op] = STATE(73), + [sym_func_call] = STATE(73), + [sym_parenthesis_expression] = STATE(73), + [sym__expression] = STATE(73), [sym_block] = STATE(6), - [sym__assign_left_side] = STATE(162), - [sym_decl_assign_statement] = STATE(161), - [sym_decl_statement] = STATE(161), - [sym_expression_statement] = STATE(161), + [sym__assign_left_side] = STATE(154), + [sym_decl_assign_statement] = STATE(162), + [sym_decl_statement] = STATE(162), + [sym_expression_statement] = STATE(162), [sym_if_statement] = STATE(6), [sym_for_statement] = STATE(6), [sym__statement] = STATE(6), [aux_sym_block_repeat1] = STATE(6), - [aux_sym__assign_left_side_repeat1] = STATE(17), + [aux_sym__assign_left_side_repeat1] = STATE(18), [sym_identifier] = ACTIONS(37), [sym_number] = ACTIONS(40), [anon_sym_COLON_COLON] = ACTIONS(43), @@ -3564,24 +3586,25 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [7] = { [sym_global_identifier] = STATE(34), [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(140), - [sym__type] = STATE(140), - [sym_declaration] = STATE(122), - [sym_unary_op] = STATE(45), - [sym_binary_op] = STATE(45), - [sym_array_op] = STATE(45), - [sym_func_call] = STATE(45), - [sym__expression] = STATE(45), + [sym_array_type] = STATE(151), + [sym__type] = STATE(151), + [sym_declaration] = STATE(118), + [sym_unary_op] = STATE(73), + [sym_binary_op] = STATE(73), + [sym_array_op] = STATE(73), + [sym_func_call] = STATE(73), + [sym_parenthesis_expression] = STATE(73), + [sym__expression] = STATE(73), [sym_block] = STATE(6), - [sym__assign_left_side] = STATE(162), - [sym_decl_assign_statement] = STATE(161), - [sym_decl_statement] = STATE(161), - [sym_expression_statement] = STATE(161), + [sym__assign_left_side] = STATE(154), + [sym_decl_assign_statement] = STATE(162), + [sym_decl_statement] = STATE(162), + [sym_expression_statement] = STATE(162), [sym_if_statement] = STATE(6), [sym_for_statement] = STATE(6), [sym__statement] = STATE(6), [aux_sym_block_repeat1] = STATE(6), - [aux_sym__assign_left_side_repeat1] = STATE(17), + [aux_sym__assign_left_side_repeat1] = STATE(18), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), [anon_sym_COLON_COLON] = ACTIONS(11), @@ -3605,24 +3628,25 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [8] = { [sym_global_identifier] = STATE(34), [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(140), - [sym__type] = STATE(140), - [sym_declaration] = STATE(122), - [sym_unary_op] = STATE(45), - [sym_binary_op] = STATE(45), - [sym_array_op] = STATE(45), - [sym_func_call] = STATE(45), - [sym__expression] = STATE(45), + [sym_array_type] = STATE(151), + [sym__type] = STATE(151), + [sym_declaration] = STATE(118), + [sym_unary_op] = STATE(73), + [sym_binary_op] = STATE(73), + [sym_array_op] = STATE(73), + [sym_func_call] = STATE(73), + [sym_parenthesis_expression] = STATE(73), + [sym__expression] = STATE(73), [sym_block] = STATE(7), - [sym__assign_left_side] = STATE(162), - [sym_decl_assign_statement] = STATE(161), - [sym_decl_statement] = STATE(161), - [sym_expression_statement] = STATE(161), + [sym__assign_left_side] = STATE(154), + [sym_decl_assign_statement] = STATE(162), + [sym_decl_statement] = STATE(162), + [sym_expression_statement] = STATE(162), [sym_if_statement] = STATE(7), [sym_for_statement] = STATE(7), [sym__statement] = STATE(7), [aux_sym_block_repeat1] = STATE(7), - [aux_sym__assign_left_side_repeat1] = STATE(17), + [aux_sym__assign_left_side_repeat1] = STATE(18), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), [anon_sym_COLON_COLON] = ACTIONS(11), @@ -3646,14 +3670,58 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { }; static const uint16_t ts_small_parse_table[] = { - [0] = 4, - ACTIONS(78), 1, + [0] = 15, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(11), 1, + anon_sym_COLON_COLON, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(23), 1, + anon_sym_reg, + ACTIONS(25), 1, + anon_sym_initial, + ACTIONS(76), 1, + sym_number, + STATE(18), 1, + aux_sym__assign_left_side_repeat1, + STATE(19), 1, + sym__maybe_global_identifier, + STATE(34), 1, + sym_global_identifier, + STATE(136), 1, + sym_declaration, + STATE(147), 1, + sym__assign_left_side, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + STATE(151), 2, + sym_array_type, + sym__type, + STATE(79), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(15), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [59] = 4, + ACTIONS(80), 1, anon_sym_COLON_COLON, - ACTIONS(81), 1, + ACTIONS(83), 1, anon_sym_SLASH, - STATE(9), 1, + STATE(10), 1, aux_sym_global_identifier_repeat1, - ACTIONS(76), 24, + ACTIONS(78), 24, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, @@ -3678,14 +3746,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [36] = 4, - ACTIONS(85), 1, - anon_sym_COLON_COLON, + [95] = 4, ACTIONS(87), 1, + anon_sym_COLON_COLON, + ACTIONS(89), 1, anon_sym_SLASH, - STATE(12), 1, + STATE(10), 1, aux_sym_global_identifier_repeat1, - ACTIONS(83), 24, + ACTIONS(85), 24, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, @@ -3710,14 +3778,56 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [72] = 4, - ACTIONS(85), 1, + [131] = 14, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(11), 1, anon_sym_COLON_COLON, + ACTIONS(17), 1, + anon_sym_LPAREN, ACTIONS(91), 1, + sym_number, + ACTIONS(93), 1, + anon_sym_reg, + ACTIONS(95), 1, + anon_sym_initial, + STATE(17), 1, + aux_sym__assign_left_side_repeat1, + STATE(19), 1, + sym__maybe_global_identifier, + STATE(34), 1, + sym_global_identifier, + STATE(127), 1, + sym_declaration, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + STATE(151), 2, + sym_array_type, + sym__type, + STATE(80), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(15), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [187] = 4, + ACTIONS(87), 1, + anon_sym_COLON_COLON, + ACTIONS(99), 1, anon_sym_SLASH, - STATE(13), 1, + STATE(11), 1, aux_sym_global_identifier_repeat1, - ACTIONS(89), 24, + ACTIONS(97), 24, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, @@ -3742,14 +3852,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [108] = 4, - ACTIONS(85), 1, + [223] = 4, + ACTIONS(87), 1, anon_sym_COLON_COLON, - ACTIONS(91), 1, + ACTIONS(99), 1, anon_sym_SLASH, - STATE(9), 1, + STATE(10), 1, aux_sym_global_identifier_repeat1, - ACTIONS(89), 24, + ACTIONS(97), 24, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, @@ -3774,14 +3884,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [144] = 4, - ACTIONS(85), 1, + [259] = 4, + ACTIONS(87), 1, anon_sym_COLON_COLON, - ACTIONS(95), 1, + ACTIONS(103), 1, anon_sym_SLASH, - STATE(9), 1, + STATE(14), 1, aux_sym_global_identifier_repeat1, - ACTIONS(93), 24, + ACTIONS(101), 24, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, @@ -3806,94 +3916,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [180] = 15, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(23), 1, - anon_sym_reg, - ACTIONS(25), 1, - anon_sym_initial, - ACTIONS(97), 1, - sym_number, - STATE(17), 1, - aux_sym__assign_left_side_repeat1, - STATE(19), 1, - sym__maybe_global_identifier, - STATE(34), 1, - sym_global_identifier, - STATE(125), 1, - sym_declaration, - STATE(146), 1, - sym__assign_left_side, - ACTIONS(13), 2, - anon_sym_state, - anon_sym_gen, - STATE(140), 2, - sym_array_type, - sym__type, - STATE(56), 5, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [238] = 14, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(99), 1, - sym_number, - ACTIONS(101), 1, - anon_sym_reg, - ACTIONS(103), 1, - anon_sym_initial, - STATE(18), 1, - aux_sym__assign_left_side_repeat1, - STATE(19), 1, - sym__maybe_global_identifier, - STATE(34), 1, - sym_global_identifier, - STATE(133), 1, - sym_declaration, - ACTIONS(13), 2, - anon_sym_state, - anon_sym_gen, - STATE(140), 2, - sym_array_type, - sym__type, - STATE(69), 5, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [293] = 2, - ACTIONS(81), 1, + [295] = 2, + ACTIONS(83), 1, anon_sym_SLASH, - ACTIONS(76), 25, + ACTIONS(78), 25, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, @@ -3919,7 +3945,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [324] = 13, + [326] = 13, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, @@ -3936,19 +3962,20 @@ static const uint16_t ts_small_parse_table[] = { sym_global_identifier, STATE(97), 1, aux_sym__assign_left_side_repeat1, - STATE(114), 1, + STATE(131), 1, sym_declaration, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(140), 2, + STATE(151), 2, sym_array_type, sym__type, - STATE(50), 5, + STATE(78), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_parenthesis_expression, sym__expression, ACTIONS(15), 7, anon_sym_PLUS, @@ -3958,7 +3985,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [376] = 13, + [379] = 13, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, @@ -3975,19 +4002,20 @@ static const uint16_t ts_small_parse_table[] = { sym_global_identifier, STATE(97), 1, aux_sym__assign_left_side_repeat1, - STATE(132), 1, + STATE(117), 1, sym_declaration, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(140), 2, + STATE(151), 2, sym_array_type, sym__type, - STATE(67), 5, + STATE(51), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_parenthesis_expression, sym__expression, ACTIONS(15), 7, anon_sym_PLUS, @@ -3997,7 +4025,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [428] = 3, + [432] = 3, ACTIONS(113), 1, anon_sym_SLASH, ACTIONS(115), 1, @@ -4026,7 +4054,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [460] = 2, + [464] = 2, ACTIONS(119), 1, anon_sym_SLASH, ACTIONS(117), 23, @@ -4053,7 +4081,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [489] = 2, + [493] = 2, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(121), 23, @@ -4080,7 +4108,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [518] = 2, + [522] = 2, ACTIONS(127), 1, anon_sym_SLASH, ACTIONS(125), 23, @@ -4107,7 +4135,43 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [547] = 2, + [551] = 11, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(11), 1, + anon_sym_COLON_COLON, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(109), 1, + sym_number, + STATE(19), 1, + sym__maybe_global_identifier, + STATE(34), 1, + sym_global_identifier, + STATE(117), 1, + sym_declaration, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + STATE(151), 2, + sym_array_type, + sym__type, + STATE(51), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(15), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [598] = 2, ACTIONS(131), 1, anon_sym_SLASH, ACTIONS(129), 23, @@ -4134,7 +4198,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [576] = 2, + [627] = 2, ACTIONS(135), 1, anon_sym_SLASH, ACTIONS(133), 23, @@ -4161,7 +4225,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [605] = 2, + [656] = 2, ACTIONS(139), 1, anon_sym_SLASH, ACTIONS(137), 23, @@ -4188,7 +4252,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [634] = 2, + [685] = 2, ACTIONS(143), 1, anon_sym_SLASH, ACTIONS(141), 23, @@ -4215,7 +4279,43 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [663] = 7, + [714] = 11, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(11), 1, + anon_sym_COLON_COLON, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(105), 1, + sym_number, + STATE(19), 1, + sym__maybe_global_identifier, + STATE(34), 1, + sym_global_identifier, + STATE(131), 1, + sym_declaration, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + STATE(151), 2, + sym_array_type, + sym__type, + STATE(78), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(15), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [761] = 7, ACTIONS(149), 1, anon_sym_PIPE, ACTIONS(151), 1, @@ -4230,7 +4330,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(117), 15, + ACTIONS(133), 15, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, @@ -4246,11 +4346,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [701] = 6, - ACTIONS(149), 1, - anon_sym_PIPE, - ACTIONS(153), 1, - anon_sym_CARET, + [799] = 4, ACTIONS(155), 1, anon_sym_SLASH, ACTIONS(145), 2, @@ -4259,13 +4355,15 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(117), 16, + ACTIONS(133), 18, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, @@ -4276,7 +4374,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [737] = 5, + [831] = 6, + ACTIONS(149), 1, + anon_sym_PIPE, ACTIONS(153), 1, anon_sym_CARET, ACTIONS(155), 1, @@ -4287,13 +4387,12 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(117), 17, + ACTIONS(133), 16, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, @@ -4305,23 +4404,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [771] = 3, + [867] = 5, + ACTIONS(153), 1, + anon_sym_CARET, ACTIONS(155), 1, anon_sym_SLASH, + ACTIONS(145), 2, + anon_sym_PLUS, + anon_sym_DASH, ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(117), 20, + ACTIONS(133), 17, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_PLUS, - anon_sym_DASH, anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, @@ -4332,21 +4433,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [801] = 4, + [901] = 3, ACTIONS(155), 1, anon_sym_SLASH, - ACTIONS(145), 2, - anon_sym_PLUS, - anon_sym_DASH, ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(117), 18, + ACTIONS(133), 20, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_PLUS, + anon_sym_DASH, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -4360,77 +4460,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [833] = 11, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(109), 1, - sym_number, - STATE(19), 1, - sym__maybe_global_identifier, - STATE(34), 1, - sym_global_identifier, - STATE(132), 1, - sym_declaration, - ACTIONS(13), 2, - anon_sym_state, - anon_sym_gen, - STATE(140), 2, - sym_array_type, - sym__type, - STATE(67), 5, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [879] = 11, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(105), 1, - sym_number, - STATE(19), 1, - sym__maybe_global_identifier, - STATE(34), 1, - sym_global_identifier, - STATE(114), 1, - sym_declaration, - ACTIONS(13), 2, - anon_sym_state, - anon_sym_gen, - STATE(140), 2, - sym_array_type, - sym__type, - STATE(50), 5, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [925] = 4, + [931] = 4, ACTIONS(159), 1, sym_identifier, ACTIONS(161), 1, @@ -4456,30 +4486,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [955] = 2, - ACTIONS(166), 8, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_else, - anon_sym_for, - ACTIONS(168), 12, - sym_number, - anon_sym_COLON_COLON, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [980] = 9, + [961] = 9, ACTIONS(149), 1, anon_sym_PIPE, ACTIONS(151), 1, @@ -4488,7 +4495,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, ACTIONS(155), 1, anon_sym_SLASH, - ACTIONS(172), 1, + ACTIONS(168), 1, anon_sym_LBRACK, ACTIONS(145), 2, anon_sym_PLUS, @@ -4496,56 +4503,41 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(170), 5, + ACTIONS(166), 5, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - ACTIONS(174), 6, + ACTIONS(170), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1019] = 3, - ACTIONS(180), 1, - anon_sym_else, - ACTIONS(176), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(178), 12, - sym_number, + [1000] = 8, + ACTIONS(11), 1, anon_sym_COLON_COLON, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, + ACTIONS(17), 1, anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1046] = 2, - ACTIONS(182), 8, + ACTIONS(172), 1, sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_else, - anon_sym_for, - ACTIONS(184), 12, + ACTIONS(174), 1, sym_number, - anon_sym_COLON_COLON, + STATE(140), 1, + sym_range, + STATE(19), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(84), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4553,10 +4545,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1071] = 9, + [1037] = 9, ACTIONS(149), 1, anon_sym_PIPE, ACTIONS(151), 1, @@ -4565,7 +4554,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, ACTIONS(155), 1, anon_sym_SLASH, - ACTIONS(172), 1, + ACTIONS(168), 1, anon_sym_LBRACK, ACTIONS(145), 2, anon_sym_PLUS, @@ -4573,21 +4562,23 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(186), 5, + ACTIONS(176), 5, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - ACTIONS(174), 6, + ACTIONS(170), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1110] = 2, - ACTIONS(182), 7, + [1076] = 3, + ACTIONS(182), 1, + anon_sym_else, + ACTIONS(178), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -4595,7 +4586,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(184), 12, + ACTIONS(180), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -4608,40 +4599,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1134] = 4, - ACTIONS(91), 1, - anon_sym_SLASH, - ACTIONS(188), 1, - anon_sym_COLON_COLON, - STATE(47), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(89), 16, - anon_sym_LBRACK, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_in, - [1162] = 2, - ACTIONS(190), 7, + [1103] = 2, + ACTIONS(184), 8, sym_identifier, anon_sym_state, anon_sym_gen, anon_sym_reg, anon_sym_initial, anon_sym_if, + anon_sym_else, anon_sym_for, - ACTIONS(192), 12, + ACTIONS(186), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -4654,16 +4622,46 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1186] = 2, - ACTIONS(194), 7, + [1128] = 8, + ACTIONS(11), 1, + anon_sym_COLON_COLON, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(172), 1, + sym_identifier, + ACTIONS(188), 1, + sym_number, + ACTIONS(190), 1, + anon_sym_RPAREN, + STATE(19), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(81), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(15), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [1165] = 2, + ACTIONS(192), 8, sym_identifier, anon_sym_state, anon_sym_gen, anon_sym_reg, anon_sym_initial, anon_sym_if, + anon_sym_else, anon_sym_for, - ACTIONS(196), 12, + ACTIONS(194), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -4676,74 +4674,53 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1210] = 4, - ACTIONS(87), 1, - anon_sym_SLASH, - ACTIONS(188), 1, + [1190] = 7, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(196), 1, + sym_identifier, + ACTIONS(198), 1, + sym_number, + ACTIONS(200), 1, anon_sym_COLON_COLON, - STATE(52), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(83), 16, - anon_sym_LBRACK, + STATE(19), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(26), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(202), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_PERCENT, + [1224] = 7, + ACTIONS(11), 1, + anon_sym_COLON_COLON, + ACTIONS(17), 1, anon_sym_LPAREN, - anon_sym_in, - [1238] = 12, - ACTIONS(149), 1, - anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_AMP, - ACTIONS(153), 1, - anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_SLASH, ACTIONS(172), 1, - anon_sym_LBRACK, - ACTIONS(198), 1, - anon_sym_COMMA, - ACTIONS(200), 1, - anon_sym_EQ, - ACTIONS(202), 1, - anon_sym_SEMI, - STATE(117), 1, - aux_sym__assign_left_side_repeat2, - ACTIONS(145), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(147), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(174), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [1282] = 2, - ACTIONS(166), 7, sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(168), 12, + ACTIONS(204), 1, sym_number, - anon_sym_COLON_COLON, + STATE(19), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(37), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4751,17 +4728,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1306] = 4, - ACTIONS(95), 1, + [1258] = 4, + ACTIONS(89), 1, anon_sym_SLASH, - ACTIONS(188), 1, + ACTIONS(206), 1, anon_sym_COLON_COLON, - STATE(49), 1, + STATE(46), 1, aux_sym_global_identifier_repeat1, - ACTIONS(93), 16, + ACTIONS(85), 16, anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DASH, @@ -4778,25 +4752,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_LPAREN, anon_sym_in, - [1334] = 8, + [1286] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(204), 1, + ACTIONS(172), 1, sym_identifier, - ACTIONS(206), 1, + ACTIONS(208), 1, sym_number, - STATE(150), 1, - sym_range, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(91), 5, + STATE(86), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_parenthesis_expression, sym__expression, ACTIONS(15), 7, anon_sym_PLUS, @@ -4806,14 +4779,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1370] = 4, - ACTIONS(81), 1, + [1320] = 4, + ACTIONS(83), 1, anon_sym_SLASH, - ACTIONS(208), 1, + ACTIONS(210), 1, anon_sym_COLON_COLON, - STATE(49), 1, + STATE(46), 1, aux_sym_global_identifier_repeat1, - ACTIONS(76), 16, + ACTIONS(78), 16, anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DASH, @@ -4830,56 +4803,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_LPAREN, anon_sym_in, - [1398] = 11, - ACTIONS(149), 1, - anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_AMP, - ACTIONS(153), 1, - anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_SLASH, - ACTIONS(172), 1, - anon_sym_LBRACK, - ACTIONS(198), 1, - anon_sym_COMMA, - STATE(121), 1, - aux_sym__assign_left_side_repeat2, - ACTIONS(145), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(147), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(211), 2, - anon_sym_LBRACE, - anon_sym_EQ, - ACTIONS(174), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [1440] = 8, + [1348] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(204), 1, + ACTIONS(172), 1, sym_identifier, ACTIONS(213), 1, sym_number, - ACTIONS(215), 1, - anon_sym_RPAREN, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(82), 5, + STATE(35), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_parenthesis_expression, sym__expression, ACTIONS(15), 7, anon_sym_PLUS, @@ -4889,14 +4830,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1476] = 4, - ACTIONS(91), 1, + [1382] = 4, + ACTIONS(99), 1, anon_sym_SLASH, - ACTIONS(188), 1, + ACTIONS(206), 1, anon_sym_COLON_COLON, - STATE(49), 1, + STATE(44), 1, aux_sym_global_identifier_repeat1, - ACTIONS(89), 16, + ACTIONS(97), 16, anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DASH, @@ -4913,73 +4854,50 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_LPAREN, anon_sym_in, - [1504] = 2, - ACTIONS(217), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(219), 12, - sym_number, + [1410] = 4, + ACTIONS(99), 1, + anon_sym_SLASH, + ACTIONS(206), 1, anon_sym_COLON_COLON, + STATE(46), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(97), 16, + anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, - anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1528] = 7, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(221), 1, - sym_identifier, - ACTIONS(223), 1, - sym_number, - ACTIONS(225), 1, - anon_sym_COLON_COLON, - STATE(19), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(20), 5, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym__expression, - ACTIONS(227), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [1561] = 7, + anon_sym_in, + [1438] = 7, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(221), 1, + ACTIONS(196), 1, sym_identifier, - ACTIONS(225), 1, + ACTIONS(200), 1, anon_sym_COLON_COLON, - ACTIONS(229), 1, + ACTIONS(215), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(86), 5, + STATE(92), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_parenthesis_expression, sym__expression, - ACTIONS(227), 7, + ACTIONS(202), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4987,7 +4905,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1594] = 11, + [1472] = 11, ACTIONS(149), 1, anon_sym_PIPE, ACTIONS(151), 1, @@ -4996,13 +4914,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, ACTIONS(155), 1, anon_sym_SLASH, - ACTIONS(172), 1, + ACTIONS(168), 1, anon_sym_LBRACK, - ACTIONS(198), 1, + ACTIONS(217), 1, anon_sym_COMMA, - ACTIONS(200), 1, - anon_sym_LBRACE, - STATE(117), 1, + STATE(114), 1, aux_sym__assign_left_side_repeat2, ACTIONS(145), 2, anon_sym_PLUS, @@ -5010,32 +4926,36 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(174), 6, + ACTIONS(219), 2, + anon_sym_LBRACE, + anon_sym_EQ, + ACTIONS(170), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1635] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, + [1514] = 7, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(204), 1, + ACTIONS(196), 1, sym_identifier, - ACTIONS(231), 1, + ACTIONS(200), 1, + anon_sym_COLON_COLON, + ACTIONS(221), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(24), 5, + STATE(93), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(202), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5043,23 +4963,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1668] = 7, + [1548] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(204), 1, + ACTIONS(172), 1, sym_identifier, - ACTIONS(233), 1, + ACTIONS(223), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(88), 5, + STATE(83), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_parenthesis_expression, sym__expression, ACTIONS(15), 7, anon_sym_PLUS, @@ -5069,25 +4990,48 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1701] = 7, - ACTIONS(11), 1, + [1582] = 2, + ACTIONS(192), 7, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(194), 12, + sym_number, anon_sym_COLON_COLON, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1606] = 7, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(204), 1, + ACTIONS(196), 1, sym_identifier, - ACTIONS(235), 1, + ACTIONS(200), 1, + anon_sym_COLON_COLON, + ACTIONS(225), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(30), 5, + STATE(94), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(202), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5095,25 +5039,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1734] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, + [1640] = 7, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(204), 1, + ACTIONS(196), 1, sym_identifier, - ACTIONS(223), 1, + ACTIONS(200), 1, + anon_sym_COLON_COLON, + ACTIONS(227), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(20), 5, + STATE(85), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(202), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5121,23 +5066,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1767] = 7, + [1674] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(204), 1, + ACTIONS(172), 1, sym_identifier, - ACTIONS(237), 1, + ACTIONS(229), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(29), 5, + STATE(90), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_parenthesis_expression, sym__expression, ACTIONS(15), 7, anon_sym_PLUS, @@ -5147,23 +5093,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1800] = 7, + [1708] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(204), 1, + ACTIONS(172), 1, sym_identifier, - ACTIONS(239), 1, + ACTIONS(231), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(28), 5, + STATE(33), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_parenthesis_expression, sym__expression, ACTIONS(15), 7, anon_sym_PLUS, @@ -5173,23 +5120,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1833] = 7, + [1742] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(204), 1, + ACTIONS(172), 1, sym_identifier, - ACTIONS(241), 1, + ACTIONS(233), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(31), 5, + STATE(25), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_parenthesis_expression, sym__expression, ACTIONS(15), 7, anon_sym_PLUS, @@ -5199,23 +5147,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1866] = 7, + [1776] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(204), 1, + ACTIONS(172), 1, sym_identifier, - ACTIONS(243), 1, + ACTIONS(235), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(27), 5, + STATE(32), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_parenthesis_expression, sym__expression, ACTIONS(15), 7, anon_sym_PLUS, @@ -5225,23 +5174,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1899] = 7, + [1810] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(204), 1, + ACTIONS(172), 1, sym_identifier, - ACTIONS(245), 1, + ACTIONS(237), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(84), 5, + STATE(31), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_parenthesis_expression, sym__expression, ACTIONS(15), 7, anon_sym_PLUS, @@ -5251,23 +5201,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1932] = 7, + [1844] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(204), 1, + ACTIONS(172), 1, sym_identifier, - ACTIONS(247), 1, + ACTIONS(239), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(95), 5, + STATE(30), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_parenthesis_expression, sym__expression, ACTIONS(15), 7, anon_sym_PLUS, @@ -5277,51 +5228,51 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1965] = 9, - ACTIONS(149), 1, - anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_AMP, - ACTIONS(153), 1, - anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_SLASH, + [1878] = 7, + ACTIONS(11), 1, + anon_sym_COLON_COLON, + ACTIONS(17), 1, + anon_sym_LPAREN, ACTIONS(172), 1, - anon_sym_LBRACK, - ACTIONS(145), 2, + sym_identifier, + ACTIONS(241), 1, + sym_number, + STATE(19), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(29), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(147), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(249), 3, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_EQ, - ACTIONS(174), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [2002] = 7, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [1912] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(204), 1, + ACTIONS(172), 1, sym_identifier, - ACTIONS(251), 1, + ACTIONS(243), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(83), 5, + STATE(96), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_parenthesis_expression, sym__expression, ACTIONS(15), 7, anon_sym_PLUS, @@ -5331,53 +5282,48 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2035] = 9, - ACTIONS(149), 1, - anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_AMP, - ACTIONS(153), 1, - anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_SLASH, - ACTIONS(172), 1, - anon_sym_LBRACK, - ACTIONS(145), 2, + [1946] = 2, + ACTIONS(245), 7, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(247), 12, + sym_number, + anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(147), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(253), 3, - anon_sym_COMMA, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, anon_sym_LBRACE, - anon_sym_EQ, - ACTIONS(174), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [2072] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, + anon_sym_RBRACE, + [1970] = 7, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(204), 1, + ACTIONS(196), 1, sym_identifier, - ACTIONS(255), 1, + ACTIONS(200), 1, + anon_sym_COLON_COLON, + ACTIONS(249), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(96), 5, + STATE(95), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(202), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5385,25 +5331,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2105] = 7, + [2004] = 7, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(221), 1, + ACTIONS(196), 1, sym_identifier, - ACTIONS(225), 1, + ACTIONS(200), 1, anon_sym_COLON_COLON, - ACTIONS(257), 1, + ACTIONS(251), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(89), 5, + STATE(89), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_parenthesis_expression, sym__expression, - ACTIONS(227), 7, + ACTIONS(202), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5411,25 +5358,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2138] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, + [2038] = 7, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(204), 1, + ACTIONS(196), 1, sym_identifier, - ACTIONS(259), 1, + ACTIONS(200), 1, + anon_sym_COLON_COLON, + ACTIONS(233), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(39), 5, + STATE(25), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(202), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5437,25 +5385,45 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2171] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, + [2072] = 7, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(204), 1, + ACTIONS(196), 1, sym_identifier, - ACTIONS(261), 1, + ACTIONS(200), 1, + anon_sym_COLON_COLON, + ACTIONS(253), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(36), 5, + STATE(88), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(202), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [2106] = 2, + ACTIONS(184), 7, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(186), 12, + sym_number, + anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5463,11 +5431,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2204] = 2, - ACTIONS(81), 1, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [2130] = 4, + ACTIONS(103), 1, anon_sym_SLASH, - ACTIONS(76), 17, + ACTIONS(206), 1, anon_sym_COLON_COLON, + STATE(49), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(101), 16, anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DASH, @@ -5484,25 +5458,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_LPAREN, anon_sym_in, - [2227] = 7, + [2158] = 7, + ACTIONS(11), 1, + anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(221), 1, + ACTIONS(172), 1, sym_identifier, - ACTIONS(225), 1, - anon_sym_COLON_COLON, - ACTIONS(231), 1, + ACTIONS(255), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(24), 5, + STATE(91), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_parenthesis_expression, sym__expression, - ACTIONS(227), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5510,25 +5485,50 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2260] = 7, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(221), 1, + [2192] = 12, + ACTIONS(149), 1, + anon_sym_PIPE, + ACTIONS(151), 1, + anon_sym_AMP, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, + anon_sym_SLASH, + ACTIONS(168), 1, + anon_sym_LBRACK, + ACTIONS(217), 1, + anon_sym_COMMA, + ACTIONS(257), 1, + anon_sym_EQ, + ACTIONS(259), 1, + anon_sym_SEMI, + STATE(121), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(145), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(147), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(170), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [2236] = 2, + ACTIONS(261), 7, sym_identifier, - ACTIONS(225), 1, - anon_sym_COLON_COLON, - ACTIONS(263), 1, - sym_number, - STATE(19), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(90), 5, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym__expression, - ACTIONS(227), 7, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(263), 12, + sym_number, + anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5536,23 +5536,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2293] = 7, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [2260] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(204), 1, + ACTIONS(172), 1, sym_identifier, ACTIONS(265), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(93), 5, + STATE(87), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_parenthesis_expression, sym__expression, ACTIONS(15), 7, anon_sym_PLUS, @@ -5562,25 +5566,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2326] = 7, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(221), 1, + [2294] = 2, + ACTIONS(267), 7, sym_identifier, - ACTIONS(225), 1, - anon_sym_COLON_COLON, - ACTIONS(267), 1, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(269), 12, sym_number, - STATE(19), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(94), 5, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym__expression, - ACTIONS(227), 7, + anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5588,25 +5585,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2359] = 7, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [2318] = 7, + ACTIONS(11), 1, + anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(221), 1, + ACTIONS(172), 1, sym_identifier, - ACTIONS(225), 1, - anon_sym_COLON_COLON, - ACTIONS(269), 1, + ACTIONS(198), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(87), 5, + STATE(26), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_parenthesis_expression, sym__expression, - ACTIONS(227), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5614,59 +5615,93 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2392] = 7, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(221), 1, - sym_identifier, - ACTIONS(225), 1, - anon_sym_COLON_COLON, - ACTIONS(271), 1, - sym_number, - STATE(19), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(85), 5, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym__expression, - ACTIONS(227), 7, + [2352] = 9, + ACTIONS(149), 1, + anon_sym_PIPE, + ACTIONS(151), 1, + anon_sym_AMP, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, + anon_sym_SLASH, + ACTIONS(168), 1, + anon_sym_LBRACK, + ACTIONS(145), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(147), 2, anon_sym_STAR, - anon_sym_BANG, + anon_sym_PERCENT, + ACTIONS(271), 3, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_EQ, + ACTIONS(170), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [2389] = 11, + ACTIONS(149), 1, anon_sym_PIPE, + ACTIONS(151), 1, anon_sym_AMP, + ACTIONS(153), 1, anon_sym_CARET, - [2425] = 7, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(221), 1, - sym_identifier, - ACTIONS(225), 1, - anon_sym_COLON_COLON, - ACTIONS(273), 1, - sym_number, - STATE(19), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(92), 5, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym__expression, - ACTIONS(227), 7, + ACTIONS(155), 1, + anon_sym_SLASH, + ACTIONS(168), 1, + anon_sym_LBRACK, + ACTIONS(217), 1, + anon_sym_COMMA, + ACTIONS(257), 1, + anon_sym_LBRACE, + STATE(121), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(145), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(147), 2, anon_sym_STAR, - anon_sym_BANG, + anon_sym_PERCENT, + ACTIONS(170), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [2430] = 9, + ACTIONS(149), 1, anon_sym_PIPE, + ACTIONS(151), 1, anon_sym_AMP, + ACTIONS(153), 1, anon_sym_CARET, - [2458] = 11, + ACTIONS(155), 1, + anon_sym_SLASH, + ACTIONS(168), 1, + anon_sym_LBRACK, + ACTIONS(145), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(147), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(273), 3, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_EQ, + ACTIONS(170), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [2467] = 11, ACTIONS(149), 1, anon_sym_PIPE, ACTIONS(151), 1, @@ -5675,13 +5710,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, ACTIONS(155), 1, anon_sym_SLASH, - ACTIONS(172), 1, + ACTIONS(168), 1, anon_sym_LBRACK, ACTIONS(275), 1, anon_sym_COMMA, ACTIONS(277), 1, anon_sym_RPAREN, - STATE(136), 1, + STATE(130), 1, aux_sym_func_call_repeat1, ACTIONS(145), 2, anon_sym_PLUS, @@ -5689,14 +5724,35 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(174), 6, + ACTIONS(170), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [2508] = 2, + ACTIONS(83), 1, + anon_sym_SLASH, + ACTIONS(78), 17, + anon_sym_COLON_COLON, + anon_sym_LBRACK, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2499] = 9, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_in, + [2531] = 9, ACTIONS(149), 1, anon_sym_PIPE, ACTIONS(151), 1, @@ -5705,7 +5761,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, ACTIONS(155), 1, anon_sym_SLASH, - ACTIONS(172), 1, + ACTIONS(168), 1, anon_sym_LBRACK, ACTIONS(145), 2, anon_sym_PLUS, @@ -5716,14 +5772,14 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(279), 2, anon_sym_COMMA, anon_sym_RPAREN, - ACTIONS(174), 6, + ACTIONS(170), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2535] = 9, + [2567] = 9, ACTIONS(149), 1, anon_sym_PIPE, ACTIONS(151), 1, @@ -5732,29 +5788,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, ACTIONS(155), 1, anon_sym_SLASH, - ACTIONS(172), 1, + ACTIONS(168), 1, anon_sym_LBRACK, ACTIONS(281), 1, - anon_sym_SEMI, + anon_sym_COLON, ACTIONS(145), 2, anon_sym_PLUS, anon_sym_DASH, ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(174), 6, + ACTIONS(170), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2570] = 6, + [2602] = 4, ACTIONS(287), 1, - anon_sym_PIPE, - ACTIONS(289), 1, - anon_sym_CARET, - ACTIONS(291), 1, anon_sym_SLASH, ACTIONS(283), 2, anon_sym_PLUS, @@ -5762,9 +5814,11 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(285), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(117), 9, + ACTIONS(133), 11, anon_sym_LBRACK, + anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, @@ -5772,59 +5826,33 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_in, - [2599] = 9, - ACTIONS(172), 1, - anon_sym_LBRACK, - ACTIONS(186), 1, - anon_sym_in, - ACTIONS(287), 1, + [2627] = 9, + ACTIONS(149), 1, anon_sym_PIPE, - ACTIONS(289), 1, + ACTIONS(151), 1, + anon_sym_AMP, + ACTIONS(153), 1, anon_sym_CARET, - ACTIONS(291), 1, + ACTIONS(155), 1, anon_sym_SLASH, - ACTIONS(293), 1, - anon_sym_AMP, - ACTIONS(283), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(285), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(295), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [2634] = 9, - ACTIONS(170), 1, - anon_sym_in, - ACTIONS(172), 1, + ACTIONS(168), 1, anon_sym_LBRACK, - ACTIONS(287), 1, - anon_sym_PIPE, ACTIONS(289), 1, - anon_sym_CARET, - ACTIONS(291), 1, - anon_sym_SLASH, - ACTIONS(293), 1, - anon_sym_AMP, - ACTIONS(283), 2, + anon_sym_RBRACK, + ACTIONS(145), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(285), 2, + ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(295), 6, + ACTIONS(170), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2669] = 9, + [2662] = 9, ACTIONS(149), 1, anon_sym_PIPE, ACTIONS(151), 1, @@ -5833,40 +5861,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, ACTIONS(155), 1, anon_sym_SLASH, - ACTIONS(172), 1, + ACTIONS(168), 1, anon_sym_LBRACK, - ACTIONS(297), 1, - anon_sym_RBRACK, + ACTIONS(291), 1, + anon_sym_LBRACE, ACTIONS(145), 2, anon_sym_PLUS, anon_sym_DASH, ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(174), 6, + ACTIONS(170), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2704] = 7, + [2697] = 3, ACTIONS(287), 1, + anon_sym_SLASH, + ACTIONS(285), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(133), 13, + anon_sym_LBRACK, + anon_sym_PLUS, + anon_sym_DASH, anon_sym_PIPE, - ACTIONS(289), 1, + anon_sym_AMP, anon_sym_CARET, - ACTIONS(291), 1, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_in, + [2720] = 5, + ACTIONS(287), 1, anon_sym_SLASH, ACTIONS(293), 1, - anon_sym_AMP, + anon_sym_CARET, ACTIONS(283), 2, anon_sym_PLUS, anon_sym_DASH, ACTIONS(285), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(117), 8, + ACTIONS(133), 10, anon_sym_LBRACK, + anon_sym_PIPE, + anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, @@ -5874,27 +5920,33 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_in, - [2735] = 3, - ACTIONS(291), 1, + [2747] = 9, + ACTIONS(149), 1, + anon_sym_PIPE, + ACTIONS(151), 1, + anon_sym_AMP, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, anon_sym_SLASH, - ACTIONS(285), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(117), 13, + ACTIONS(168), 1, anon_sym_LBRACK, + ACTIONS(295), 1, + anon_sym_RBRACK, + ACTIONS(145), 2, anon_sym_PLUS, anon_sym_DASH, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, + ACTIONS(147), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(170), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_in, - [2758] = 9, + [2782] = 9, ACTIONS(149), 1, anon_sym_PIPE, ACTIONS(151), 1, @@ -5903,85 +5955,92 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, ACTIONS(155), 1, anon_sym_SLASH, - ACTIONS(172), 1, - anon_sym_LBRACK, - ACTIONS(299), 1, - anon_sym_COLON, + ACTIONS(168), 1, + anon_sym_LBRACK, + ACTIONS(297), 1, + anon_sym_RPAREN, ACTIONS(145), 2, anon_sym_PLUS, anon_sym_DASH, ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(174), 6, + ACTIONS(170), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2793] = 4, - ACTIONS(291), 1, + [2817] = 9, + ACTIONS(166), 1, + anon_sym_in, + ACTIONS(168), 1, + anon_sym_LBRACK, + ACTIONS(287), 1, anon_sym_SLASH, + ACTIONS(293), 1, + anon_sym_CARET, + ACTIONS(299), 1, + anon_sym_PIPE, + ACTIONS(301), 1, + anon_sym_AMP, ACTIONS(283), 2, anon_sym_PLUS, anon_sym_DASH, ACTIONS(285), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(117), 11, - anon_sym_LBRACK, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, + ACTIONS(303), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, + [2852] = 9, + ACTIONS(168), 1, + anon_sym_LBRACK, + ACTIONS(176), 1, anon_sym_in, - [2818] = 9, - ACTIONS(149), 1, - anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_AMP, - ACTIONS(153), 1, - anon_sym_CARET, - ACTIONS(155), 1, + ACTIONS(287), 1, anon_sym_SLASH, - ACTIONS(172), 1, - anon_sym_LBRACK, + ACTIONS(293), 1, + anon_sym_CARET, + ACTIONS(299), 1, + anon_sym_PIPE, ACTIONS(301), 1, - anon_sym_LBRACE, - ACTIONS(145), 2, + anon_sym_AMP, + ACTIONS(283), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(147), 2, + ACTIONS(285), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(174), 6, + ACTIONS(303), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2853] = 5, - ACTIONS(289), 1, - anon_sym_CARET, - ACTIONS(291), 1, + [2887] = 7, + ACTIONS(287), 1, anon_sym_SLASH, + ACTIONS(293), 1, + anon_sym_CARET, + ACTIONS(299), 1, + anon_sym_PIPE, + ACTIONS(301), 1, + anon_sym_AMP, ACTIONS(283), 2, anon_sym_PLUS, anon_sym_DASH, ACTIONS(285), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(117), 10, + ACTIONS(133), 8, anon_sym_LBRACK, - anon_sym_PIPE, - anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, @@ -5989,33 +6048,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_in, - [2880] = 9, - ACTIONS(149), 1, - anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_AMP, - ACTIONS(153), 1, - anon_sym_CARET, - ACTIONS(155), 1, + [2918] = 6, + ACTIONS(287), 1, anon_sym_SLASH, - ACTIONS(172), 1, - anon_sym_LBRACK, - ACTIONS(303), 1, - anon_sym_RPAREN, - ACTIONS(145), 2, + ACTIONS(293), 1, + anon_sym_CARET, + ACTIONS(299), 1, + anon_sym_PIPE, + ACTIONS(283), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(147), 2, + ACTIONS(285), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(174), 6, + ACTIONS(133), 9, + anon_sym_LBRACK, + anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2915] = 9, + anon_sym_in, + [2947] = 9, ACTIONS(149), 1, anon_sym_PIPE, ACTIONS(151), 1, @@ -6024,24 +6080,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, ACTIONS(155), 1, anon_sym_SLASH, - ACTIONS(172), 1, + ACTIONS(168), 1, anon_sym_LBRACK, ACTIONS(305), 1, - anon_sym_RBRACK, + anon_sym_SEMI, ACTIONS(145), 2, anon_sym_PLUS, anon_sym_DASH, ACTIONS(147), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(174), 6, + ACTIONS(170), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2950] = 4, + [2982] = 4, ACTIONS(311), 1, anon_sym_reg, STATE(97), 1, @@ -6061,7 +6117,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2974] = 7, + [3006] = 7, ACTIONS(314), 1, anon_sym_DASH_GT, ACTIONS(316), 1, @@ -6070,78 +6126,78 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(320), 1, anon_sym_LBRACE, - STATE(116), 1, + STATE(119), 1, sym_declaration, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(140), 3, + STATE(151), 3, sym_global_identifier, sym_array_type, sym__type, - [2999] = 6, + [3031] = 6, ACTIONS(316), 1, sym_identifier, ACTIONS(318), 1, anon_sym_COLON_COLON, ACTIONS(322), 1, anon_sym_LBRACE, - STATE(137), 1, + STATE(133), 1, sym_declaration, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(140), 3, + STATE(151), 3, sym_global_identifier, sym_array_type, sym__type, - [3021] = 6, + [3053] = 6, ACTIONS(316), 1, sym_identifier, ACTIONS(318), 1, anon_sym_COLON_COLON, ACTIONS(324), 1, anon_sym_LBRACE, - STATE(129), 1, + STATE(134), 1, sym_declaration, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(140), 3, + STATE(151), 3, sym_global_identifier, sym_array_type, sym__type, - [3043] = 6, + [3075] = 6, ACTIONS(316), 1, sym_identifier, ACTIONS(318), 1, anon_sym_COLON_COLON, ACTIONS(326), 1, anon_sym_LBRACE, - STATE(131), 1, + STATE(125), 1, sym_declaration, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(140), 3, + STATE(151), 3, sym_global_identifier, sym_array_type, sym__type, - [3065] = 5, + [3097] = 5, ACTIONS(316), 1, sym_identifier, ACTIONS(318), 1, anon_sym_COLON_COLON, - STATE(155), 1, + STATE(156), 1, sym_declaration, ACTIONS(328), 2, anon_sym_state, anon_sym_gen, - STATE(145), 3, + STATE(146), 3, sym_global_identifier, sym_array_type, sym__type, - [3084] = 5, + [3116] = 5, ACTIONS(316), 1, sym_identifier, ACTIONS(318), 1, @@ -6151,11 +6207,11 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(140), 3, + STATE(151), 3, sym_global_identifier, sym_array_type, sym__type, - [3103] = 2, + [3135] = 2, ACTIONS(332), 1, anon_sym_SQUOTE, ACTIONS(330), 5, @@ -6164,7 +6220,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3114] = 2, + [3146] = 2, ACTIONS(336), 1, anon_sym_SQUOTE, ACTIONS(334), 5, @@ -6173,722 +6229,722 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3125] = 3, + [3157] = 3, ACTIONS(318), 1, anon_sym_COLON_COLON, ACTIONS(338), 1, sym_identifier, - STATE(149), 3, + STATE(139), 3, sym_global_identifier, sym_array_type, sym__type, - [3137] = 3, + [3169] = 3, ACTIONS(318), 1, anon_sym_COLON_COLON, ACTIONS(338), 1, sym_identifier, - STATE(148), 3, + STATE(143), 3, sym_global_identifier, sym_array_type, sym__type, - [3149] = 3, + [3181] = 3, ACTIONS(340), 1, anon_sym_COLON_COLON, STATE(108), 1, aux_sym_global_identifier_repeat1, - ACTIONS(81), 2, + ACTIONS(83), 2, sym_identifier, anon_sym_LBRACK, - [3160] = 3, + [3192] = 3, ACTIONS(343), 1, anon_sym_COLON_COLON, - STATE(108), 1, + STATE(123), 1, aux_sym_global_identifier_repeat1, - ACTIONS(91), 2, + ACTIONS(103), 2, sym_identifier, anon_sym_LBRACK, - [3171] = 4, - ACTIONS(345), 1, - anon_sym_COMMA, - ACTIONS(347), 1, - anon_sym_DASH_GT, - ACTIONS(349), 1, - anon_sym_LBRACE, - STATE(120), 1, - aux_sym_interface_ports_repeat1, - [3184] = 3, + [3203] = 3, ACTIONS(5), 1, anon_sym_module, - ACTIONS(351), 1, + ACTIONS(345), 1, ts_builtin_sym_end, - STATE(113), 2, + STATE(112), 2, sym_module, aux_sym_source_file_repeat1, - [3195] = 4, - ACTIONS(353), 1, + [3214] = 4, + ACTIONS(347), 1, anon_sym_COLON, - ACTIONS(355), 1, + ACTIONS(349), 1, anon_sym_LBRACE, - STATE(141), 1, - sym_block, - STATE(143), 1, + STATE(144), 1, sym_interface_ports, - [3208] = 3, - ACTIONS(357), 1, + STATE(148), 1, + sym_block, + [3227] = 3, + ACTIONS(351), 1, ts_builtin_sym_end, - ACTIONS(359), 1, + ACTIONS(353), 1, anon_sym_module, - STATE(113), 2, + STATE(112), 2, sym_module, aux_sym_source_file_repeat1, - [3219] = 3, - ACTIONS(362), 1, + [3238] = 3, + ACTIONS(356), 1, anon_sym_COMMA, - STATE(121), 1, + STATE(113), 1, aux_sym__assign_left_side_repeat2, - ACTIONS(364), 2, + ACTIONS(359), 2, anon_sym_LBRACE, anon_sym_EQ, - [3230] = 3, - ACTIONS(19), 1, + [3249] = 3, + ACTIONS(361), 1, + anon_sym_COMMA, + STATE(113), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(363), 2, anon_sym_LBRACE, - ACTIONS(366), 1, - anon_sym_if, - STATE(42), 2, - sym_block, - sym_if_statement, - [3241] = 4, - ACTIONS(345), 1, + anon_sym_EQ, + [3260] = 3, + ACTIONS(365), 1, + anon_sym_COMMA, + STATE(115), 1, + aux_sym_interface_ports_repeat1, + ACTIONS(368), 2, + anon_sym_DASH_GT, + anon_sym_LBRACE, + [3271] = 4, + ACTIONS(370), 1, anon_sym_COMMA, - ACTIONS(368), 1, + ACTIONS(372), 1, anon_sym_DASH_GT, + ACTIONS(374), 1, + anon_sym_LBRACE, + STATE(115), 1, + aux_sym_interface_ports_repeat1, + [3284] = 3, + ACTIONS(361), 1, + anon_sym_COMMA, + STATE(114), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(376), 2, + anon_sym_LBRACE, + anon_sym_EQ, + [3295] = 4, + ACTIONS(361), 1, + anon_sym_COMMA, + ACTIONS(378), 1, + anon_sym_EQ, + ACTIONS(380), 1, + anon_sym_SEMI, + STATE(121), 1, + aux_sym__assign_left_side_repeat2, + [3308] = 4, ACTIONS(370), 1, + anon_sym_COMMA, + ACTIONS(382), 1, + anon_sym_DASH_GT, + ACTIONS(384), 1, anon_sym_LBRACE, - STATE(110), 1, + STATE(116), 1, aux_sym_interface_ports_repeat1, - [3254] = 3, - ACTIONS(362), 1, + [3321] = 3, + ACTIONS(19), 1, + anon_sym_LBRACE, + ACTIONS(386), 1, + anon_sym_if, + STATE(76), 2, + sym_block, + sym_if_statement, + [3332] = 3, + ACTIONS(361), 1, anon_sym_COMMA, - STATE(124), 1, + STATE(113), 1, aux_sym__assign_left_side_repeat2, - ACTIONS(364), 2, + ACTIONS(376), 2, anon_sym_LBRACE, anon_sym_EQ, - [3265] = 3, + [3343] = 3, ACTIONS(343), 1, anon_sym_COLON_COLON, - STATE(119), 1, + STATE(108), 1, aux_sym_global_identifier_repeat1, - ACTIONS(91), 2, + ACTIONS(89), 2, sym_identifier, anon_sym_LBRACK, - [3276] = 3, + [3354] = 3, ACTIONS(343), 1, anon_sym_COLON_COLON, STATE(108), 1, aux_sym_global_identifier_repeat1, - ACTIONS(95), 2, + ACTIONS(99), 2, sym_identifier, anon_sym_LBRACK, - [3287] = 3, - ACTIONS(372), 1, - anon_sym_COMMA, - STATE(120), 1, - aux_sym_interface_ports_repeat1, - ACTIONS(375), 2, - anon_sym_DASH_GT, - anon_sym_LBRACE, - [3298] = 3, - ACTIONS(362), 1, - anon_sym_COMMA, - STATE(124), 1, - aux_sym__assign_left_side_repeat2, - ACTIONS(377), 2, - anon_sym_LBRACE, - anon_sym_EQ, - [3309] = 4, - ACTIONS(362), 1, - anon_sym_COMMA, - ACTIONS(379), 1, - anon_sym_EQ, - ACTIONS(381), 1, - anon_sym_SEMI, - STATE(117), 1, - aux_sym__assign_left_side_repeat2, - [3322] = 3, + [3365] = 3, ACTIONS(343), 1, anon_sym_COLON_COLON, - STATE(109), 1, + STATE(122), 1, aux_sym_global_identifier_repeat1, - ACTIONS(87), 2, + ACTIONS(99), 2, sym_identifier, anon_sym_LBRACK, - [3333] = 3, - ACTIONS(383), 1, + [3376] = 3, + ACTIONS(370), 1, anon_sym_COMMA, - STATE(124), 1, - aux_sym__assign_left_side_repeat2, - ACTIONS(386), 2, + ACTIONS(388), 1, anon_sym_LBRACE, - anon_sym_EQ, - [3344] = 3, - ACTIONS(362), 1, + STATE(132), 1, + aux_sym_interface_ports_repeat1, + [3386] = 1, + ACTIONS(368), 3, anon_sym_COMMA, - ACTIONS(379), 1, + anon_sym_DASH_GT, anon_sym_LBRACE, - STATE(117), 1, - aux_sym__assign_left_side_repeat2, - [3354] = 1, - ACTIONS(375), 3, + [3392] = 1, + ACTIONS(359), 3, anon_sym_COMMA, - anon_sym_DASH_GT, anon_sym_LBRACE, - [3360] = 3, - ACTIONS(345), 1, + anon_sym_EQ, + [3398] = 1, + ACTIONS(83), 3, + sym_identifier, + anon_sym_COLON_COLON, + anon_sym_LBRACK, + [3404] = 3, + ACTIONS(370), 1, anon_sym_COMMA, - ACTIONS(388), 1, + ACTIONS(390), 1, anon_sym_LBRACE, - STATE(120), 1, + STATE(115), 1, aux_sym_interface_ports_repeat1, - [3370] = 3, - ACTIONS(390), 1, + [3414] = 3, + ACTIONS(392), 1, anon_sym_COMMA, - ACTIONS(393), 1, + ACTIONS(394), 1, anon_sym_RPAREN, - STATE(128), 1, + STATE(135), 1, aux_sym_func_call_repeat1, - [3380] = 3, - ACTIONS(345), 1, + [3424] = 1, + ACTIONS(396), 3, anon_sym_COMMA, - ACTIONS(395), 1, anon_sym_LBRACE, - STATE(127), 1, - aux_sym_interface_ports_repeat1, - [3390] = 3, - ACTIONS(345), 1, + anon_sym_EQ, + [3430] = 3, + ACTIONS(370), 1, anon_sym_COMMA, - ACTIONS(397), 1, + ACTIONS(398), 1, anon_sym_LBRACE, - STATE(120), 1, + STATE(115), 1, aux_sym_interface_ports_repeat1, - [3400] = 3, - ACTIONS(345), 1, + [3440] = 3, + ACTIONS(370), 1, anon_sym_COMMA, - ACTIONS(399), 1, + ACTIONS(400), 1, anon_sym_LBRACE, - STATE(130), 1, + STATE(137), 1, aux_sym_interface_ports_repeat1, - [3410] = 1, - ACTIONS(401), 3, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_EQ, - [3416] = 1, - ACTIONS(386), 3, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_EQ, - [3422] = 1, - ACTIONS(81), 3, - sym_identifier, - anon_sym_COLON_COLON, - anon_sym_LBRACK, - [3428] = 3, - ACTIONS(345), 1, + [3450] = 3, + ACTIONS(370), 1, anon_sym_COMMA, - ACTIONS(403), 1, + ACTIONS(402), 1, anon_sym_LBRACE, - STATE(120), 1, + STATE(129), 1, aux_sym_interface_ports_repeat1, - [3438] = 3, - ACTIONS(405), 1, + [3460] = 3, + ACTIONS(404), 1, anon_sym_COMMA, ACTIONS(407), 1, anon_sym_RPAREN, - STATE(128), 1, + STATE(135), 1, aux_sym_func_call_repeat1, - [3448] = 3, - ACTIONS(345), 1, + [3470] = 3, + ACTIONS(361), 1, + anon_sym_COMMA, + ACTIONS(378), 1, + anon_sym_LBRACE, + STATE(121), 1, + aux_sym__assign_left_side_repeat2, + [3480] = 3, + ACTIONS(370), 1, anon_sym_COMMA, ACTIONS(409), 1, anon_sym_LBRACE, - STATE(135), 1, + STATE(115), 1, aux_sym_interface_ports_repeat1, - [3458] = 2, - ACTIONS(330), 1, - anon_sym_in, + [3490] = 1, + ACTIONS(186), 2, + ts_builtin_sym_end, + anon_sym_module, + [3495] = 2, ACTIONS(411), 1, - anon_sym_SQUOTE, - [3465] = 1, - ACTIONS(413), 2, - sym_identifier, - anon_sym_LBRACK, - [3470] = 2, - ACTIONS(415), 1, sym_identifier, - ACTIONS(417), 1, + ACTIONS(413), 1, anon_sym_LBRACK, - [3477] = 1, - ACTIONS(419), 2, - ts_builtin_sym_end, - anon_sym_module, - [3482] = 1, - ACTIONS(421), 2, - ts_builtin_sym_end, - anon_sym_module, - [3487] = 2, - ACTIONS(355), 1, + [3502] = 2, + ACTIONS(19), 1, anon_sym_LBRACE, - STATE(142), 1, + STATE(74), 1, sym_block, - [3494] = 1, - ACTIONS(168), 2, + [3509] = 1, + ACTIONS(415), 2, + sym_identifier, + anon_sym_LBRACK, + [3514] = 1, + ACTIONS(194), 2, ts_builtin_sym_end, anon_sym_module, - [3499] = 2, - ACTIONS(417), 1, + [3519] = 2, + ACTIONS(413), 1, anon_sym_LBRACK, - ACTIONS(423), 1, + ACTIONS(417), 1, sym_identifier, - [3506] = 2, - ACTIONS(425), 1, + [3526] = 2, + ACTIONS(349), 1, anon_sym_LBRACE, - STATE(37), 1, + STATE(145), 1, sym_block, - [3513] = 1, - ACTIONS(184), 2, + [3533] = 1, + ACTIONS(419), 2, ts_builtin_sym_end, anon_sym_module, - [3518] = 2, - ACTIONS(417), 1, - anon_sym_LBRACK, - ACTIONS(427), 1, - sym_identifier, - [3525] = 2, - ACTIONS(417), 1, + [3538] = 2, + ACTIONS(413), 1, anon_sym_LBRACK, - ACTIONS(429), 1, + ACTIONS(421), 1, sym_identifier, - [3532] = 2, - ACTIONS(19), 1, + [3545] = 2, + ACTIONS(423), 1, anon_sym_LBRACE, - STATE(43), 1, + STATE(38), 1, sym_block, - [3539] = 2, + [3552] = 1, + ACTIONS(425), 2, + ts_builtin_sym_end, + anon_sym_module, + [3557] = 2, ACTIONS(334), 1, anon_sym_in, - ACTIONS(431), 1, + ACTIONS(427), 1, + anon_sym_SQUOTE, + [3564] = 2, + ACTIONS(330), 1, + anon_sym_in, + ACTIONS(429), 1, anon_sym_SQUOTE, - [3546] = 1, + [3571] = 2, + ACTIONS(413), 1, + anon_sym_LBRACK, + ACTIONS(431), 1, + sym_identifier, + [3578] = 1, ACTIONS(433), 1, sym_identifier, - [3550] = 1, + [3582] = 1, ACTIONS(435), 1, sym_identifier, - [3554] = 1, + [3586] = 1, ACTIONS(437), 1, - sym_identifier, - [3558] = 1, + anon_sym_EQ, + [3590] = 1, ACTIONS(439), 1, - anon_sym_in, - [3562] = 1, - ACTIONS(441), 1, sym_identifier, - [3566] = 1, + [3594] = 1, + ACTIONS(441), 1, + anon_sym_in, + [3598] = 1, ACTIONS(443), 1, sym_identifier, - [3570] = 1, + [3602] = 1, ACTIONS(445), 1, ts_builtin_sym_end, - [3574] = 1, + [3606] = 1, ACTIONS(447), 1, sym_identifier, - [3578] = 1, + [3610] = 1, ACTIONS(449), 1, sym_identifier, - [3582] = 1, + [3614] = 1, ACTIONS(451), 1, - anon_sym_SEMI, - [3586] = 1, + sym_identifier, + [3618] = 1, ACTIONS(453), 1, - anon_sym_EQ, + anon_sym_SEMI, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(9)] = 0, - [SMALL_STATE(10)] = 36, - [SMALL_STATE(11)] = 72, - [SMALL_STATE(12)] = 108, - [SMALL_STATE(13)] = 144, - [SMALL_STATE(14)] = 180, - [SMALL_STATE(15)] = 238, - [SMALL_STATE(16)] = 293, - [SMALL_STATE(17)] = 324, - [SMALL_STATE(18)] = 376, - [SMALL_STATE(19)] = 428, - [SMALL_STATE(20)] = 460, - [SMALL_STATE(21)] = 489, - [SMALL_STATE(22)] = 518, - [SMALL_STATE(23)] = 547, - [SMALL_STATE(24)] = 576, - [SMALL_STATE(25)] = 605, - [SMALL_STATE(26)] = 634, - [SMALL_STATE(27)] = 663, - [SMALL_STATE(28)] = 701, - [SMALL_STATE(29)] = 737, - [SMALL_STATE(30)] = 771, - [SMALL_STATE(31)] = 801, - [SMALL_STATE(32)] = 833, - [SMALL_STATE(33)] = 879, - [SMALL_STATE(34)] = 925, - [SMALL_STATE(35)] = 955, - [SMALL_STATE(36)] = 980, - [SMALL_STATE(37)] = 1019, - [SMALL_STATE(38)] = 1046, - [SMALL_STATE(39)] = 1071, - [SMALL_STATE(40)] = 1110, - [SMALL_STATE(41)] = 1134, - [SMALL_STATE(42)] = 1162, - [SMALL_STATE(43)] = 1186, - [SMALL_STATE(44)] = 1210, - [SMALL_STATE(45)] = 1238, - [SMALL_STATE(46)] = 1282, - [SMALL_STATE(47)] = 1306, - [SMALL_STATE(48)] = 1334, - [SMALL_STATE(49)] = 1370, - [SMALL_STATE(50)] = 1398, - [SMALL_STATE(51)] = 1440, - [SMALL_STATE(52)] = 1476, - [SMALL_STATE(53)] = 1504, - [SMALL_STATE(54)] = 1528, - [SMALL_STATE(55)] = 1561, - [SMALL_STATE(56)] = 1594, - [SMALL_STATE(57)] = 1635, - [SMALL_STATE(58)] = 1668, - [SMALL_STATE(59)] = 1701, - [SMALL_STATE(60)] = 1734, - [SMALL_STATE(61)] = 1767, - [SMALL_STATE(62)] = 1800, - [SMALL_STATE(63)] = 1833, - [SMALL_STATE(64)] = 1866, - [SMALL_STATE(65)] = 1899, - [SMALL_STATE(66)] = 1932, - [SMALL_STATE(67)] = 1965, - [SMALL_STATE(68)] = 2002, - [SMALL_STATE(69)] = 2035, - [SMALL_STATE(70)] = 2072, - [SMALL_STATE(71)] = 2105, - [SMALL_STATE(72)] = 2138, - [SMALL_STATE(73)] = 2171, - [SMALL_STATE(74)] = 2204, - [SMALL_STATE(75)] = 2227, - [SMALL_STATE(76)] = 2260, - [SMALL_STATE(77)] = 2293, - [SMALL_STATE(78)] = 2326, - [SMALL_STATE(79)] = 2359, - [SMALL_STATE(80)] = 2392, - [SMALL_STATE(81)] = 2425, - [SMALL_STATE(82)] = 2458, - [SMALL_STATE(83)] = 2499, - [SMALL_STATE(84)] = 2535, - [SMALL_STATE(85)] = 2570, - [SMALL_STATE(86)] = 2599, - [SMALL_STATE(87)] = 2634, - [SMALL_STATE(88)] = 2669, - [SMALL_STATE(89)] = 2704, - [SMALL_STATE(90)] = 2735, - [SMALL_STATE(91)] = 2758, - [SMALL_STATE(92)] = 2793, - [SMALL_STATE(93)] = 2818, - [SMALL_STATE(94)] = 2853, - [SMALL_STATE(95)] = 2880, - [SMALL_STATE(96)] = 2915, - [SMALL_STATE(97)] = 2950, - [SMALL_STATE(98)] = 2974, - [SMALL_STATE(99)] = 2999, - [SMALL_STATE(100)] = 3021, - [SMALL_STATE(101)] = 3043, - [SMALL_STATE(102)] = 3065, - [SMALL_STATE(103)] = 3084, - [SMALL_STATE(104)] = 3103, - [SMALL_STATE(105)] = 3114, - [SMALL_STATE(106)] = 3125, - [SMALL_STATE(107)] = 3137, - [SMALL_STATE(108)] = 3149, - [SMALL_STATE(109)] = 3160, - [SMALL_STATE(110)] = 3171, - [SMALL_STATE(111)] = 3184, - [SMALL_STATE(112)] = 3195, - [SMALL_STATE(113)] = 3208, - [SMALL_STATE(114)] = 3219, - [SMALL_STATE(115)] = 3230, - [SMALL_STATE(116)] = 3241, - [SMALL_STATE(117)] = 3254, - [SMALL_STATE(118)] = 3265, - [SMALL_STATE(119)] = 3276, - [SMALL_STATE(120)] = 3287, - [SMALL_STATE(121)] = 3298, - [SMALL_STATE(122)] = 3309, - [SMALL_STATE(123)] = 3322, - [SMALL_STATE(124)] = 3333, - [SMALL_STATE(125)] = 3344, - [SMALL_STATE(126)] = 3354, - [SMALL_STATE(127)] = 3360, - [SMALL_STATE(128)] = 3370, - [SMALL_STATE(129)] = 3380, - [SMALL_STATE(130)] = 3390, - [SMALL_STATE(131)] = 3400, - [SMALL_STATE(132)] = 3410, - [SMALL_STATE(133)] = 3416, - [SMALL_STATE(134)] = 3422, - [SMALL_STATE(135)] = 3428, - [SMALL_STATE(136)] = 3438, - [SMALL_STATE(137)] = 3448, - [SMALL_STATE(138)] = 3458, - [SMALL_STATE(139)] = 3465, - [SMALL_STATE(140)] = 3470, - [SMALL_STATE(141)] = 3477, - [SMALL_STATE(142)] = 3482, - [SMALL_STATE(143)] = 3487, - [SMALL_STATE(144)] = 3494, - [SMALL_STATE(145)] = 3499, - [SMALL_STATE(146)] = 3506, - [SMALL_STATE(147)] = 3513, - [SMALL_STATE(148)] = 3518, - [SMALL_STATE(149)] = 3525, - [SMALL_STATE(150)] = 3532, - [SMALL_STATE(151)] = 3539, - [SMALL_STATE(152)] = 3546, - [SMALL_STATE(153)] = 3550, - [SMALL_STATE(154)] = 3554, - [SMALL_STATE(155)] = 3558, - [SMALL_STATE(156)] = 3562, - [SMALL_STATE(157)] = 3566, - [SMALL_STATE(158)] = 3570, - [SMALL_STATE(159)] = 3574, - [SMALL_STATE(160)] = 3578, - [SMALL_STATE(161)] = 3582, - [SMALL_STATE(162)] = 3586, + [SMALL_STATE(10)] = 59, + [SMALL_STATE(11)] = 95, + [SMALL_STATE(12)] = 131, + [SMALL_STATE(13)] = 187, + [SMALL_STATE(14)] = 223, + [SMALL_STATE(15)] = 259, + [SMALL_STATE(16)] = 295, + [SMALL_STATE(17)] = 326, + [SMALL_STATE(18)] = 379, + [SMALL_STATE(19)] = 432, + [SMALL_STATE(20)] = 464, + [SMALL_STATE(21)] = 493, + [SMALL_STATE(22)] = 522, + [SMALL_STATE(23)] = 551, + [SMALL_STATE(24)] = 598, + [SMALL_STATE(25)] = 627, + [SMALL_STATE(26)] = 656, + [SMALL_STATE(27)] = 685, + [SMALL_STATE(28)] = 714, + [SMALL_STATE(29)] = 761, + [SMALL_STATE(30)] = 799, + [SMALL_STATE(31)] = 831, + [SMALL_STATE(32)] = 867, + [SMALL_STATE(33)] = 901, + [SMALL_STATE(34)] = 931, + [SMALL_STATE(35)] = 961, + [SMALL_STATE(36)] = 1000, + [SMALL_STATE(37)] = 1037, + [SMALL_STATE(38)] = 1076, + [SMALL_STATE(39)] = 1103, + [SMALL_STATE(40)] = 1128, + [SMALL_STATE(41)] = 1165, + [SMALL_STATE(42)] = 1190, + [SMALL_STATE(43)] = 1224, + [SMALL_STATE(44)] = 1258, + [SMALL_STATE(45)] = 1286, + [SMALL_STATE(46)] = 1320, + [SMALL_STATE(47)] = 1348, + [SMALL_STATE(48)] = 1382, + [SMALL_STATE(49)] = 1410, + [SMALL_STATE(50)] = 1438, + [SMALL_STATE(51)] = 1472, + [SMALL_STATE(52)] = 1514, + [SMALL_STATE(53)] = 1548, + [SMALL_STATE(54)] = 1582, + [SMALL_STATE(55)] = 1606, + [SMALL_STATE(56)] = 1640, + [SMALL_STATE(57)] = 1674, + [SMALL_STATE(58)] = 1708, + [SMALL_STATE(59)] = 1742, + [SMALL_STATE(60)] = 1776, + [SMALL_STATE(61)] = 1810, + [SMALL_STATE(62)] = 1844, + [SMALL_STATE(63)] = 1878, + [SMALL_STATE(64)] = 1912, + [SMALL_STATE(65)] = 1946, + [SMALL_STATE(66)] = 1970, + [SMALL_STATE(67)] = 2004, + [SMALL_STATE(68)] = 2038, + [SMALL_STATE(69)] = 2072, + [SMALL_STATE(70)] = 2106, + [SMALL_STATE(71)] = 2130, + [SMALL_STATE(72)] = 2158, + [SMALL_STATE(73)] = 2192, + [SMALL_STATE(74)] = 2236, + [SMALL_STATE(75)] = 2260, + [SMALL_STATE(76)] = 2294, + [SMALL_STATE(77)] = 2318, + [SMALL_STATE(78)] = 2352, + [SMALL_STATE(79)] = 2389, + [SMALL_STATE(80)] = 2430, + [SMALL_STATE(81)] = 2467, + [SMALL_STATE(82)] = 2508, + [SMALL_STATE(83)] = 2531, + [SMALL_STATE(84)] = 2567, + [SMALL_STATE(85)] = 2602, + [SMALL_STATE(86)] = 2627, + [SMALL_STATE(87)] = 2662, + [SMALL_STATE(88)] = 2697, + [SMALL_STATE(89)] = 2720, + [SMALL_STATE(90)] = 2747, + [SMALL_STATE(91)] = 2782, + [SMALL_STATE(92)] = 2817, + [SMALL_STATE(93)] = 2852, + [SMALL_STATE(94)] = 2887, + [SMALL_STATE(95)] = 2918, + [SMALL_STATE(96)] = 2947, + [SMALL_STATE(97)] = 2982, + [SMALL_STATE(98)] = 3006, + [SMALL_STATE(99)] = 3031, + [SMALL_STATE(100)] = 3053, + [SMALL_STATE(101)] = 3075, + [SMALL_STATE(102)] = 3097, + [SMALL_STATE(103)] = 3116, + [SMALL_STATE(104)] = 3135, + [SMALL_STATE(105)] = 3146, + [SMALL_STATE(106)] = 3157, + [SMALL_STATE(107)] = 3169, + [SMALL_STATE(108)] = 3181, + [SMALL_STATE(109)] = 3192, + [SMALL_STATE(110)] = 3203, + [SMALL_STATE(111)] = 3214, + [SMALL_STATE(112)] = 3227, + [SMALL_STATE(113)] = 3238, + [SMALL_STATE(114)] = 3249, + [SMALL_STATE(115)] = 3260, + [SMALL_STATE(116)] = 3271, + [SMALL_STATE(117)] = 3284, + [SMALL_STATE(118)] = 3295, + [SMALL_STATE(119)] = 3308, + [SMALL_STATE(120)] = 3321, + [SMALL_STATE(121)] = 3332, + [SMALL_STATE(122)] = 3343, + [SMALL_STATE(123)] = 3354, + [SMALL_STATE(124)] = 3365, + [SMALL_STATE(125)] = 3376, + [SMALL_STATE(126)] = 3386, + [SMALL_STATE(127)] = 3392, + [SMALL_STATE(128)] = 3398, + [SMALL_STATE(129)] = 3404, + [SMALL_STATE(130)] = 3414, + [SMALL_STATE(131)] = 3424, + [SMALL_STATE(132)] = 3430, + [SMALL_STATE(133)] = 3440, + [SMALL_STATE(134)] = 3450, + [SMALL_STATE(135)] = 3460, + [SMALL_STATE(136)] = 3470, + [SMALL_STATE(137)] = 3480, + [SMALL_STATE(138)] = 3490, + [SMALL_STATE(139)] = 3495, + [SMALL_STATE(140)] = 3502, + [SMALL_STATE(141)] = 3509, + [SMALL_STATE(142)] = 3514, + [SMALL_STATE(143)] = 3519, + [SMALL_STATE(144)] = 3526, + [SMALL_STATE(145)] = 3533, + [SMALL_STATE(146)] = 3538, + [SMALL_STATE(147)] = 3545, + [SMALL_STATE(148)] = 3552, + [SMALL_STATE(149)] = 3557, + [SMALL_STATE(150)] = 3564, + [SMALL_STATE(151)] = 3571, + [SMALL_STATE(152)] = 3578, + [SMALL_STATE(153)] = 3582, + [SMALL_STATE(154)] = 3586, + [SMALL_STATE(155)] = 3590, + [SMALL_STATE(156)] = 3594, + [SMALL_STATE(157)] = 3598, + [SMALL_STATE(158)] = 3602, + [SMALL_STATE(159)] = 3606, + [SMALL_STATE(160)] = 3610, + [SMALL_STATE(161)] = 3614, + [SMALL_STATE(162)] = 3618, }; 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}}, REDUCE(sym_source_file, 0), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), - [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), + [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(106), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(102), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [37] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(10), - [40] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(45), - [43] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(154), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [37] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(15), + [40] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(73), + [43] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(152), [46] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(106), - [49] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(57), - [52] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(66), + [49] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(77), + [52] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(72), [55] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(5), [58] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), - [60] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(17), - [63] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(33), - [66] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(14), + [60] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(18), + [63] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(23), + [66] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(9), [69] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(102), - [72] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), - [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), - [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), - [78] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(153), - [81] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), - [83] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1), - [85] = {.entry = {.count = 1, .reusable = false}}, SHIFT(153), - [87] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1), - [89] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2), - [91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2), - [93] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 3), - [95] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 3), - [97] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [99] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18), - [103] = {.entry = {.count = 1, .reusable = false}}, SHIFT(32), - [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [72] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), + [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), + [76] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), + [80] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(153), + [83] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), + [85] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 3), + [87] = {.entry = {.count = 1, .reusable = false}}, SHIFT(153), + [89] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 3), + [91] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [93] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), + [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28), + [97] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2), + [99] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2), + [101] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1), + [103] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1), + [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), [107] = {.entry = {.count = 1, .reusable = false}}, SHIFT(97), - [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), [111] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), [113] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [115] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51), - [117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 13), - [119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 13), - [121] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 4, .production_id = 20), - [123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 4, .production_id = 20), - [125] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 4, .production_id = 19), - [127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 4, .production_id = 19), - [129] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 5, .production_id = 25), - [131] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 5, .production_id = 25), - [133] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 7), - [135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 7), - [137] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 3, .production_id = 12), - [139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 3, .production_id = 12), - [141] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 3), - [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 3), - [145] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), - [147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60), - [149] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61), - [151] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), - [153] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), - [155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [115] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40), + [117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 3, .production_id = 13), + [119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 3, .production_id = 13), + [121] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 4, .production_id = 20), + [123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 4, .production_id = 20), + [125] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 5, .production_id = 27), + [127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 5, .production_id = 27), + [129] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 4, .production_id = 21), + [131] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 4, .production_id = 21), + [133] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 14), + [135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 14), + [137] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 7), + [139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 7), + [141] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 11), + [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 11), + [145] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), + [147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), + [149] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60), + [151] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61), + [153] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), + [155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), [157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), [159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type, 1), [161] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), REDUCE(sym__type, 1), [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__maybe_global_identifier, 1), - [166] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3), - [168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 4, .production_id = 15), - [172] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), - [174] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64), - [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 11), - [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 11), - [180] = {.entry = {.count = 1, .reusable = false}}, SHIFT(115), - [182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), - [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [186] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 5, .production_id = 21), - [188] = {.entry = {.count = 1, .reusable = false}}, SHIFT(159), - [190] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 23), - [192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 23), - [194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5, .production_id = 24), - [196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5, .production_id = 24), - [198] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), - [200] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assign_left_side, 1), - [202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 1), - [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), - [208] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(159), - [211] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assign_left_side, 2), - [213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [217] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), - [219] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), - [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), - [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), - [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [249] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat2, 3), - [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [253] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), - [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [275] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), - [277] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), - [279] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_func_call_repeat1, 2), - [281] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 14), - [283] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), - [285] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), - [287] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), - [289] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), - [291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [293] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80), - [295] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), - [297] = {.entry = {.count = 1, .reusable = false}}, SHIFT(21), - [299] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), - [301] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 3, .production_id = 26), - [303] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), - [305] = {.entry = {.count = 1, .reusable = false}}, SHIFT(139), + [166] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 5, .production_id = 22), + [168] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57), + [170] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), + [172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 4, .production_id = 16), + [178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 12), + [180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 12), + [182] = {.entry = {.count = 1, .reusable = false}}, SHIFT(120), + [184] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), + [186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3), + [194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), + [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [206] = {.entry = {.count = 1, .reusable = false}}, SHIFT(159), + [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [210] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(159), + [213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [217] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12), + [219] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assign_left_side, 2), + [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [245] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), + [247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), + [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [257] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assign_left_side, 1), + [259] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 1), + [261] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5, .production_id = 25), + [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5, .production_id = 25), + [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [267] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 24), + [269] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 24), + [271] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat2, 3), + [273] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), + [275] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), + [277] = {.entry = {.count = 1, .reusable = false}}, SHIFT(21), + [279] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 26), + [281] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), + [283] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69), + [285] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), + [287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [289] = {.entry = {.count = 1, .reusable = false}}, SHIFT(141), + [291] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 3, .production_id = 29), + [293] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), + [295] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24), + [297] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), + [299] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), + [301] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), + [303] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), + [305] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 15), [307] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), [311] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), SHIFT_REPEAT(97), - [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [316] = {.entry = {.count = 1, .reusable = false}}, SHIFT(123), - [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [316] = {.entry = {.count = 1, .reusable = false}}, SHIFT(109), + [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), [320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 1), [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 2), - [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 6), - [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2), + [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2), + [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 6), [328] = {.entry = {.count = 1, .reusable = false}}, SHIFT(107), - [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 9), - [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 5), - [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), + [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 5), + [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 9), + [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), [340] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(160), [343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), - [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 6), - [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), - [359] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(152), - [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 2), - [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 2), - [372] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_interface_ports_repeat1, 2), SHIFT_REPEAT(103), - [375] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_interface_ports_repeat1, 2), - [377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 3), - [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 1), - [381] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_statement, 1), - [383] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), SHIFT_REPEAT(15), - [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), - [388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 6, .production_id = 22), - [390] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2), SHIFT_REPEAT(68), - [393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2), - [395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 5, .production_id = 18), - [397] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 8), - [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 4), - [401] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 3), - [403] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 5, .production_id = 17), - [405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [409] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 10), - [411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [413] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 4, .production_id = 16), - [415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 1), - [421] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 3), - [423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), - [425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), - [429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), + [353] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(155), + [356] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), SHIFT_REPEAT(12), + [359] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), + [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [363] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 3), + [365] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_interface_ports_repeat1, 2), SHIFT_REPEAT(103), + [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_interface_ports_repeat1, 2), + [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 6), + [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 2), + [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 1), + [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_statement, 1), + [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 2), + [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 5, .production_id = 19), + [390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 8), + [392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 3), + [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 6, .production_id = 23), + [400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 10), + [402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 4), + [404] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 28), SHIFT_REPEAT(53), + [407] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 28), + [409] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 5, .production_id = 18), + [411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [415] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 4, .production_id = 17), + [417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), + [419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 3), + [421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), + [423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [425] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 1), + [427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), - [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), [445] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), - [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), [453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), }; From cec29819d80f794e49f78605f61e202e0f00bf43 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Mon, 25 Mar 2024 17:51:26 +0100 Subject: [PATCH 10/49] Separate out latency_specifier subnode --- grammar.js | 28 +- src/grammar.json | 90 +- src/node-types.json | 136 +- src/parser.c | 4200 ++++++++++++++++++++++--------------------- 4 files changed, 2247 insertions(+), 2207 deletions(-) diff --git a/grammar.js b/grammar.js index b29553a..ea1df02 100644 --- a/grammar.js +++ b/grammar.js @@ -54,16 +54,19 @@ module.exports = grammar({ ), array_type: $ => seq( - field('array_element_type', $._type), - '[', - field('array_size', $._expression), - ']' + field('arr', $._type), + field('arr_idx', $.array_bracket_expression) ), _type: $ => choice( $.global_identifier, $.array_type ), + latency_specifier : $ => seq(seq( + '\'', + field('content', $._expression) + )), + declaration: $ => seq( optional(field('declaration_modifiers', choice( 'state', @@ -71,10 +74,7 @@ module.exports = grammar({ ))), field('type', $._type), field('name', $.identifier), - optional(seq( - '\'', - field('latency_spec', $._expression) - )) + optional(field('latency_specifier', $.latency_specifier)) ), unary_op: $ => prec(PREC.unary, seq( @@ -101,9 +101,7 @@ module.exports = grammar({ array_op: $ => seq( field('arr', $._expression), - '[', - field('arr_idx', $._expression), - ']' + field('arr_idx', $.array_bracket_expression) ), func_call: $ => seq( @@ -115,10 +113,16 @@ module.exports = grammar({ parenthesis_expression: $ => seq( '(', - field('right', $._expression), + field('content', $._expression), ')' ), + array_bracket_expression: $ => seq( + '[', + field('content', $._expression), + ']' + ), + _expression: $ => choice( $._maybe_global_identifier, $.array_op, diff --git a/src/grammar.json b/src/grammar.json index 484fd17..c9e62ed 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -233,27 +233,19 @@ "members": [ { "type": "FIELD", - "name": "array_element_type", + "name": "arr", "content": { "type": "SYMBOL", "name": "_type" } }, - { - "type": "STRING", - "value": "[" - }, { "type": "FIELD", - "name": "array_size", + "name": "arr_idx", "content": { "type": "SYMBOL", - "name": "_expression" + "name": "array_bracket_expression" } - }, - { - "type": "STRING", - "value": "]" } ] }, @@ -270,6 +262,28 @@ } ] }, + "latency_specifier": { + "type": "SEQ", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "'" + }, + { + "type": "FIELD", + "name": "content", + "content": { + "type": "SYMBOL", + "name": "_expression" + } + } + ] + } + ] + }, "declaration": { "type": "SEQ", "members": [ @@ -318,21 +332,12 @@ "type": "CHOICE", "members": [ { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "'" - }, - { - "type": "FIELD", - "name": "latency_spec", - "content": { - "type": "SYMBOL", - "name": "_expression" - } - } - ] + "type": "FIELD", + "name": "latency_specifier", + "content": { + "type": "SYMBOL", + "name": "latency_specifier" + } }, { "type": "BLANK" @@ -656,21 +661,13 @@ "name": "_expression" } }, - { - "type": "STRING", - "value": "[" - }, { "type": "FIELD", "name": "arr_idx", "content": { "type": "SYMBOL", - "name": "_expression" + "name": "array_bracket_expression" } - }, - { - "type": "STRING", - "value": "]" } ] }, @@ -745,7 +742,7 @@ }, { "type": "FIELD", - "name": "right", + "name": "content", "content": { "type": "SYMBOL", "name": "_expression" @@ -757,6 +754,27 @@ } ] }, + "array_bracket_expression": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "[" + }, + { + "type": "FIELD", + "name": "content", + "content": { + "type": "SYMBOL", + "name": "_expression" + } + }, + { + "type": "STRING", + "value": "]" + } + ] + }, "_expression": { "type": "CHOICE", "members": [ diff --git a/src/node-types.json b/src/node-types.json index e9d3dff..e1cec13 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -1,9 +1,9 @@ [ { - "type": "array_op", + "type": "array_bracket_expression", "named": true, "fields": { - "arr": { + "content": { "multiple": false, "required": true, "types": [ @@ -40,8 +40,14 @@ "named": true } ] - }, - "arr_idx": { + } + } + }, + { + "type": "array_op", + "named": true, + "fields": { + "arr": { "multiple": false, "required": true, "types": [ @@ -78,6 +84,16 @@ "named": true } ] + }, + "arr_idx": { + "multiple": false, + "required": true, + "types": [ + { + "type": "array_bracket_expression", + "named": true + } + ] } } }, @@ -85,7 +101,7 @@ "type": "array_type", "named": true, "fields": { - "array_element_type": { + "arr": { "multiple": false, "required": true, "types": [ @@ -99,40 +115,12 @@ } ] }, - "array_size": { + "arr_idx": { "multiple": false, "required": true, "types": [ { - "type": "array_op", - "named": true - }, - { - "type": "binary_op", - "named": true - }, - { - "type": "func_call", - "named": true - }, - { - "type": "global_identifier", - "named": true - }, - { - "type": "identifier", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "parenthesis_expression", - "named": true - }, - { - "type": "unary_op", + "type": "array_bracket_expression", "named": true } ] @@ -449,40 +437,12 @@ } ] }, - "latency_spec": { + "latency_specifier": { "multiple": false, "required": false, "types": [ { - "type": "array_op", - "named": true - }, - { - "type": "binary_op", - "named": true - }, - { - "type": "func_call", - "named": true - }, - { - "type": "global_identifier", - "named": true - }, - { - "type": "identifier", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "parenthesis_expression", - "named": true - }, - { - "type": "unary_op", + "type": "latency_specifier", "named": true } ] @@ -783,6 +743,50 @@ } } }, + { + "type": "latency_specifier", + "named": true, + "fields": { + "content": { + "multiple": false, + "required": true, + "types": [ + { + "type": "array_op", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "func_call", + "named": true + }, + { + "type": "global_identifier", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "parenthesis_expression", + "named": true + }, + { + "type": "unary_op", + "named": true + } + ] + } + } + }, { "type": "module", "named": true, @@ -823,7 +827,7 @@ "type": "parenthesis_expression", "named": true, "fields": { - "right": { + "content": { "multiple": false, "required": true, "types": [ diff --git a/src/parser.c b/src/parser.c index 0ebb4a7..51ae950 100644 --- a/src/parser.c +++ b/src/parser.c @@ -8,13 +8,13 @@ #define LANGUAGE_VERSION 14 #define STATE_COUNT 163 #define LARGE_STATE_COUNT 9 -#define SYMBOL_COUNT 70 +#define SYMBOL_COUNT 72 #define ALIAS_COUNT 0 #define TOKEN_COUNT 40 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 25 +#define FIELD_COUNT 24 #define MAX_ALIAS_SEQUENCE_LENGTH 6 -#define PRODUCTION_ID_COUNT 30 +#define PRODUCTION_ID_COUNT 29 enum { anon_sym_COLON = 1, @@ -24,28 +24,28 @@ enum { sym_identifier = 5, sym_number = 6, anon_sym_COLON_COLON = 7, - anon_sym_LBRACK = 8, - anon_sym_RBRACK = 9, - anon_sym_state = 10, - anon_sym_gen = 11, - anon_sym_SQUOTE = 12, - anon_sym_PLUS = 13, - anon_sym_DASH = 14, - anon_sym_STAR = 15, - anon_sym_BANG = 16, - anon_sym_PIPE = 17, - anon_sym_AMP = 18, - anon_sym_CARET = 19, - anon_sym_EQ_EQ = 20, - anon_sym_BANG_EQ = 21, - anon_sym_LT = 22, - anon_sym_LT_EQ = 23, - anon_sym_GT = 24, - anon_sym_GT_EQ = 25, - anon_sym_SLASH = 26, - anon_sym_PERCENT = 27, - anon_sym_LPAREN = 28, - anon_sym_RPAREN = 29, + anon_sym_SQUOTE = 8, + anon_sym_state = 9, + anon_sym_gen = 10, + anon_sym_PLUS = 11, + anon_sym_DASH = 12, + anon_sym_STAR = 13, + anon_sym_BANG = 14, + anon_sym_PIPE = 15, + anon_sym_AMP = 16, + anon_sym_CARET = 17, + anon_sym_EQ_EQ = 18, + anon_sym_BANG_EQ = 19, + anon_sym_LT = 20, + anon_sym_LT_EQ = 21, + anon_sym_GT = 22, + anon_sym_GT_EQ = 23, + anon_sym_SLASH = 24, + anon_sym_PERCENT = 25, + anon_sym_LPAREN = 26, + anon_sym_RPAREN = 27, + anon_sym_LBRACK = 28, + anon_sym_RBRACK = 29, anon_sym_LBRACE = 30, anon_sym_RBRACE = 31, anon_sym_reg = 32, @@ -63,29 +63,31 @@ enum { sym__maybe_global_identifier = 44, sym_array_type = 45, sym__type = 46, - sym_declaration = 47, - sym_unary_op = 48, - sym_binary_op = 49, - sym_array_op = 50, - sym_func_call = 51, - sym_parenthesis_expression = 52, - sym__expression = 53, - sym_range = 54, - sym_block = 55, - sym__assign_left_side = 56, - sym_decl_assign_statement = 57, - sym_decl_statement = 58, - sym_expression_statement = 59, - sym_if_statement = 60, - sym_for_statement = 61, - sym__statement = 62, - aux_sym_source_file_repeat1 = 63, - aux_sym_interface_ports_repeat1 = 64, - aux_sym_global_identifier_repeat1 = 65, - aux_sym_func_call_repeat1 = 66, - aux_sym_block_repeat1 = 67, - aux_sym__assign_left_side_repeat1 = 68, - aux_sym__assign_left_side_repeat2 = 69, + sym_latency_specifier = 47, + sym_declaration = 48, + sym_unary_op = 49, + sym_binary_op = 50, + sym_array_op = 51, + sym_func_call = 52, + sym_parenthesis_expression = 53, + sym_array_bracket_expression = 54, + sym__expression = 55, + sym_range = 56, + sym_block = 57, + sym__assign_left_side = 58, + sym_decl_assign_statement = 59, + sym_decl_statement = 60, + sym_expression_statement = 61, + sym_if_statement = 62, + sym_for_statement = 63, + sym__statement = 64, + aux_sym_source_file_repeat1 = 65, + aux_sym_interface_ports_repeat1 = 66, + aux_sym_global_identifier_repeat1 = 67, + aux_sym_func_call_repeat1 = 68, + aux_sym_block_repeat1 = 69, + aux_sym__assign_left_side_repeat1 = 70, + aux_sym__assign_left_side_repeat2 = 71, }; static const char * const ts_symbol_names[] = { @@ -97,11 +99,9 @@ static const char * const ts_symbol_names[] = { [sym_identifier] = "identifier", [sym_number] = "number", [anon_sym_COLON_COLON] = "::", - [anon_sym_LBRACK] = "[", - [anon_sym_RBRACK] = "]", + [anon_sym_SQUOTE] = "'", [anon_sym_state] = "state", [anon_sym_gen] = "gen", - [anon_sym_SQUOTE] = "'", [anon_sym_PLUS] = "+", [anon_sym_DASH] = "-", [anon_sym_STAR] = "*", @@ -119,6 +119,8 @@ static const char * const ts_symbol_names[] = { [anon_sym_PERCENT] = "%", [anon_sym_LPAREN] = "(", [anon_sym_RPAREN] = ")", + [anon_sym_LBRACK] = "[", + [anon_sym_RBRACK] = "]", [anon_sym_LBRACE] = "{", [anon_sym_RBRACE] = "}", [anon_sym_reg] = "reg", @@ -136,12 +138,14 @@ static const char * const ts_symbol_names[] = { [sym__maybe_global_identifier] = "_maybe_global_identifier", [sym_array_type] = "array_type", [sym__type] = "_type", + [sym_latency_specifier] = "latency_specifier", [sym_declaration] = "declaration", [sym_unary_op] = "unary_op", [sym_binary_op] = "binary_op", [sym_array_op] = "array_op", [sym_func_call] = "func_call", [sym_parenthesis_expression] = "parenthesis_expression", + [sym_array_bracket_expression] = "array_bracket_expression", [sym__expression] = "_expression", [sym_range] = "range", [sym_block] = "block", @@ -170,11 +174,9 @@ static const TSSymbol ts_symbol_map[] = { [sym_identifier] = sym_identifier, [sym_number] = sym_number, [anon_sym_COLON_COLON] = anon_sym_COLON_COLON, - [anon_sym_LBRACK] = anon_sym_LBRACK, - [anon_sym_RBRACK] = anon_sym_RBRACK, + [anon_sym_SQUOTE] = anon_sym_SQUOTE, [anon_sym_state] = anon_sym_state, [anon_sym_gen] = anon_sym_gen, - [anon_sym_SQUOTE] = anon_sym_SQUOTE, [anon_sym_PLUS] = anon_sym_PLUS, [anon_sym_DASH] = anon_sym_DASH, [anon_sym_STAR] = anon_sym_STAR, @@ -192,6 +194,8 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_PERCENT] = anon_sym_PERCENT, [anon_sym_LPAREN] = anon_sym_LPAREN, [anon_sym_RPAREN] = anon_sym_RPAREN, + [anon_sym_LBRACK] = anon_sym_LBRACK, + [anon_sym_RBRACK] = anon_sym_RBRACK, [anon_sym_LBRACE] = anon_sym_LBRACE, [anon_sym_RBRACE] = anon_sym_RBRACE, [anon_sym_reg] = anon_sym_reg, @@ -209,12 +213,14 @@ static const TSSymbol ts_symbol_map[] = { [sym__maybe_global_identifier] = sym__maybe_global_identifier, [sym_array_type] = sym_array_type, [sym__type] = sym__type, + [sym_latency_specifier] = sym_latency_specifier, [sym_declaration] = sym_declaration, [sym_unary_op] = sym_unary_op, [sym_binary_op] = sym_binary_op, [sym_array_op] = sym_array_op, [sym_func_call] = sym_func_call, [sym_parenthesis_expression] = sym_parenthesis_expression, + [sym_array_bracket_expression] = sym_array_bracket_expression, [sym__expression] = sym__expression, [sym_range] = sym_range, [sym_block] = sym_block, @@ -267,11 +273,7 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_LBRACK] = { - .visible = true, - .named = false, - }, - [anon_sym_RBRACK] = { + [anon_sym_SQUOTE] = { .visible = true, .named = false, }, @@ -283,10 +285,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_SQUOTE] = { - .visible = true, - .named = false, - }, [anon_sym_PLUS] = { .visible = true, .named = false, @@ -355,6 +353,14 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_LBRACK] = { + .visible = true, + .named = false, + }, + [anon_sym_RBRACK] = { + .visible = true, + .named = false, + }, [anon_sym_LBRACE] = { .visible = true, .named = false, @@ -423,6 +429,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = true, }, + [sym_latency_specifier] = { + .visible = true, + .named = true, + }, [sym_declaration] = { .visible = true, .named = true, @@ -447,6 +457,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_array_bracket_expression] = { + .visible = true, + .named = true, + }, [sym__expression] = { .visible = false, .named = true, @@ -521,28 +535,27 @@ enum { field_argument = 1, field_arr = 2, field_arr_idx = 3, - field_array_element_type = 4, - field_array_size = 5, - field_assign_to = 6, - field_assign_value = 7, - field_block = 8, - field_condition = 9, - field_declaration_modifiers = 10, - field_else_block = 11, - field_for_decl = 12, - field_for_range = 13, - field_from = 14, - field_inputs = 15, - field_interface_ports = 16, - field_latency_spec = 17, - field_left = 18, - field_name = 19, - field_operator = 20, - field_outputs = 21, - field_right = 22, - field_then_block = 23, - field_to = 24, - field_type = 25, + field_assign_to = 4, + field_assign_value = 5, + field_block = 6, + field_condition = 7, + field_content = 8, + field_declaration_modifiers = 9, + field_else_block = 10, + field_for_decl = 11, + field_for_range = 12, + field_from = 13, + field_inputs = 14, + field_interface_ports = 15, + field_latency_specifier = 16, + field_left = 17, + field_name = 18, + field_operator = 19, + field_outputs = 20, + field_right = 21, + field_then_block = 22, + field_to = 23, + field_type = 24, }; static const char * const ts_field_names[] = { @@ -550,12 +563,11 @@ static const char * const ts_field_names[] = { [field_argument] = "argument", [field_arr] = "arr", [field_arr_idx] = "arr_idx", - [field_array_element_type] = "array_element_type", - [field_array_size] = "array_size", [field_assign_to] = "assign_to", [field_assign_value] = "assign_value", [field_block] = "block", [field_condition] = "condition", + [field_content] = "content", [field_declaration_modifiers] = "declaration_modifiers", [field_else_block] = "else_block", [field_for_decl] = "for_decl", @@ -563,7 +575,7 @@ static const char * const ts_field_names[] = { [field_from] = "from", [field_inputs] = "inputs", [field_interface_ports] = "interface_ports", - [field_latency_spec] = "latency_spec", + [field_latency_specifier] = "latency_specifier", [field_left] = "left", [field_name] = "name", [field_operator] = "operator", @@ -583,27 +595,26 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [6] = {.index = 9, .length = 2}, [7] = {.index = 11, .length = 2}, [8] = {.index = 13, .length = 2}, - [9] = {.index = 15, .length = 3}, - [10] = {.index = 18, .length = 2}, - [11] = {.index = 20, .length = 1}, - [12] = {.index = 21, .length = 2}, - [13] = {.index = 23, .length = 1}, - [14] = {.index = 24, .length = 3}, - [15] = {.index = 27, .length = 2}, + [9] = {.index = 15, .length = 2}, + [10] = {.index = 17, .length = 3}, + [11] = {.index = 20, .length = 3}, + [12] = {.index = 23, .length = 2}, + [13] = {.index = 25, .length = 1}, + [14] = {.index = 26, .length = 2}, + [15] = {.index = 28, .length = 1}, [16] = {.index = 29, .length = 3}, [17] = {.index = 32, .length = 2}, - [18] = {.index = 34, .length = 3}, - [19] = {.index = 37, .length = 3}, - [20] = {.index = 40, .length = 2}, - [21] = {.index = 42, .length = 2}, - [22] = {.index = 44, .length = 4}, - [23] = {.index = 48, .length = 4}, - [24] = {.index = 52, .length = 3}, - [25] = {.index = 55, .length = 3}, - [26] = {.index = 58, .length = 1}, - [27] = {.index = 59, .length = 3}, + [18] = {.index = 34, .length = 4}, + [19] = {.index = 38, .length = 3}, + [20] = {.index = 41, .length = 3}, + [21] = {.index = 44, .length = 2}, + [22] = {.index = 46, .length = 4}, + [23] = {.index = 50, .length = 3}, + [24] = {.index = 53, .length = 3}, + [25] = {.index = 56, .length = 1}, + [26] = {.index = 57, .length = 3}, + [27] = {.index = 60, .length = 2}, [28] = {.index = 62, .length = 2}, - [29] = {.index = 64, .length = 2}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -622,84 +633,81 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_name, 1}, {field_type, 0}, [9] = + {field_arr, 0}, + {field_arr_idx, 1}, + [11] = {field_inputs, 1}, {field_inputs, 2}, - [11] = + [13] = {field_operator, 0}, {field_right, 1}, - [13] = + [15] = {field_outputs, 2}, {field_outputs, 3}, - [15] = + [17] = {field_declaration_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [18] = + [20] = + {field_latency_specifier, 2}, + {field_name, 1}, + {field_type, 0}, + [23] = {field_inputs, 1}, {field_outputs, 3}, - [20] = - {field_right, 1}, - [21] = + [25] = + {field_content, 1}, + [26] = {field_condition, 1}, {field_then_block, 2}, - [23] = + [28] = {field_name, 0}, - [24] = + [29] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [27] = + [32] = {field_assign_to, 0}, {field_assign_value, 2}, - [29] = - {field_latency_spec, 3}, - {field_name, 1}, - {field_type, 0}, - [32] = - {field_array_element_type, 0}, - {field_array_size, 2}, [34] = + {field_declaration_modifiers, 0}, + {field_latency_specifier, 3}, + {field_name, 2}, + {field_type, 1}, + [38] = {field_inputs, 1}, {field_outputs, 3}, {field_outputs, 4}, - [37] = + [41] = {field_inputs, 1}, {field_inputs, 2}, {field_outputs, 4}, - [40] = + [44] = {field_argument, 2}, {field_name, 0}, - [42] = - {field_arr, 0}, - {field_arr_idx, 2}, - [44] = - {field_declaration_modifiers, 0}, - {field_latency_spec, 4}, - {field_name, 2}, - {field_type, 1}, - [48] = + [46] = {field_inputs, 1}, {field_inputs, 2}, {field_outputs, 4}, {field_outputs, 5}, - [52] = + [50] = {field_condition, 1}, {field_else_block, 4}, {field_then_block, 2}, - [55] = + [53] = {field_block, 4}, {field_for_decl, 1}, {field_for_range, 3}, - [58] = + [56] = {field_argument, 1}, - [59] = + [57] = {field_argument, 2}, {field_argument, 3, .inherited = true}, {field_name, 0}, - [62] = + [60] = {field_argument, 0, .inherited = true}, {field_argument, 1, .inherited = true}, - [64] = + [62] = {field_from, 0}, {field_to, 2}, }; @@ -757,58 +765,58 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [41] = 41, [42] = 42, [43] = 43, - [44] = 11, + [44] = 44, [45] = 45, - [46] = 10, - [47] = 47, - [48] = 13, - [49] = 14, - [50] = 47, + [46] = 46, + [47] = 46, + [48] = 48, + [49] = 11, + [50] = 10, [51] = 51, - [52] = 43, + [52] = 52, [53] = 53, - [54] = 41, - [55] = 55, - [56] = 56, + [54] = 54, + [55] = 12, + [56] = 13, [57] = 57, - [58] = 58, + [58] = 45, [59] = 59, [60] = 60, [61] = 61, - [62] = 56, - [63] = 55, + [62] = 62, + [63] = 63, [64] = 64, [65] = 65, - [66] = 61, - [67] = 60, - [68] = 59, - [69] = 58, - [70] = 39, - [71] = 15, + [66] = 66, + [67] = 67, + [68] = 44, + [69] = 69, + [70] = 15, + [71] = 43, [72] = 72, - [73] = 73, - [74] = 74, - [75] = 75, - [76] = 76, - [77] = 42, - [78] = 78, - [79] = 79, + [73] = 72, + [74] = 39, + [75] = 59, + [76] = 63, + [77] = 62, + [78] = 61, + [79] = 60, [80] = 80, - [81] = 81, - [82] = 16, + [81] = 16, + [82] = 82, [83] = 83, - [84] = 84, - [85] = 30, - [86] = 86, + [84] = 32, + [85] = 28, + [86] = 26, [87] = 87, - [88] = 33, - [89] = 32, - [90] = 90, + [88] = 24, + [89] = 31, + [90] = 35, [91] = 91, - [92] = 35, - [93] = 37, - [94] = 29, - [95] = 31, + [92] = 82, + [93] = 93, + [94] = 94, + [95] = 95, [96] = 96, [97] = 97, [98] = 98, @@ -819,62 +827,62 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [103] = 103, [104] = 104, [105] = 105, - [106] = 106, - [107] = 106, - [108] = 10, + [106] = 105, + [107] = 107, + [108] = 108, [109] = 109, - [110] = 110, - [111] = 111, + [110] = 10, + [111] = 11, [112] = 112, [113] = 113, [114] = 114, [115] = 115, [116] = 116, [117] = 117, - [118] = 118, + [118] = 13, [119] = 119, - [120] = 120, + [120] = 12, [121] = 121, - [122] = 11, - [123] = 14, - [124] = 13, - [125] = 125, + [122] = 122, + [123] = 123, + [124] = 124, + [125] = 102, [126] = 126, [127] = 127, - [128] = 16, + [128] = 128, [129] = 129, - [130] = 130, - [131] = 131, + [130] = 127, + [131] = 126, [132] = 132, [133] = 133, [134] = 134, - [135] = 135, + [135] = 101, [136] = 136, - [137] = 137, - [138] = 39, + [137] = 16, + [138] = 138, [139] = 139, [140] = 140, [141] = 141, - [142] = 41, - [143] = 139, + [142] = 142, + [143] = 143, [144] = 144, [145] = 145, - [146] = 146, + [146] = 39, [147] = 147, [148] = 148, - [149] = 105, - [150] = 104, - [151] = 146, + [149] = 149, + [150] = 43, + [151] = 33, [152] = 152, [153] = 153, [154] = 154, [155] = 155, [156] = 156, - [157] = 152, - [158] = 158, - [159] = 153, - [160] = 153, - [161] = 152, + [157] = 155, + [158] = 154, + [159] = 159, + [160] = 155, + [161] = 154, [162] = 162, }; @@ -2426,25 +2434,25 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { switch (state) { case 0: if (eof) ADVANCE(66); - if (lookahead == '!') ADVANCE(107); - if (lookahead == '%') ADVANCE(118); - if (lookahead == '&') ADVANCE(109); - if (lookahead == '\'') ADVANCE(101); - if (lookahead == '(') ADVANCE(119); - if (lookahead == ')') ADVANCE(120); - if (lookahead == '*') ADVANCE(105); - if (lookahead == '+') ADVANCE(102); + if (lookahead == '!') ADVANCE(105); + if (lookahead == '%') ADVANCE(116); + if (lookahead == '&') ADVANCE(107); + if (lookahead == '\'') ADVANCE(95); + if (lookahead == '(') ADVANCE(117); + if (lookahead == ')') ADVANCE(118); + if (lookahead == '*') ADVANCE(103); + if (lookahead == '+') ADVANCE(100); if (lookahead == ',') ADVANCE(69); - if (lookahead == '-') ADVANCE(104); + if (lookahead == '-') ADVANCE(102); if (lookahead == '/') SKIP(63) if (lookahead == ':') ADVANCE(68); if (lookahead == ';') ADVANCE(134); - if (lookahead == '<') ADVANCE(113); + if (lookahead == '<') ADVANCE(111); if (lookahead == '=') ADVANCE(126); - if (lookahead == '>') ADVANCE(115); - if (lookahead == '[') ADVANCE(95); - if (lookahead == ']') ADVANCE(96); - if (lookahead == '^') ADVANCE(110); + if (lookahead == '>') ADVANCE(113); + if (lookahead == '[') ADVANCE(119); + if (lookahead == ']') ADVANCE(120); + if (lookahead == '^') ADVANCE(108); if (lookahead == 'e') ADVANCE(51); if (lookahead == 'f') ADVANCE(55); if (lookahead == 'g') ADVANCE(44); @@ -2453,7 +2461,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == 'r') ADVANCE(45); if (lookahead == 's') ADVANCE(59); if (lookahead == '{') ADVANCE(121); - if (lookahead == '|') ADVANCE(108); + if (lookahead == '|') ADVANCE(106); if (lookahead == '}') ADVANCE(122); if (lookahead == '\t' || lookahead == '\n' || @@ -2490,18 +2498,18 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead != 0) SKIP(7) END_STATE(); case 8: - if (lookahead == '!') ADVANCE(106); - if (lookahead == '&') ADVANCE(109); - if (lookahead == '(') ADVANCE(119); - if (lookahead == ')') ADVANCE(120); - if (lookahead == '*') ADVANCE(105); - if (lookahead == '+') ADVANCE(102); - if (lookahead == '-') ADVANCE(103); + if (lookahead == '!') ADVANCE(104); + if (lookahead == '&') ADVANCE(107); + if (lookahead == '(') ADVANCE(117); + if (lookahead == ')') ADVANCE(118); + if (lookahead == '*') ADVANCE(103); + if (lookahead == '+') ADVANCE(100); + if (lookahead == '-') ADVANCE(101); if (lookahead == '/') SKIP(35) if (lookahead == ':') ADVANCE(39); - if (lookahead == '[') ADVANCE(95); - if (lookahead == '^') ADVANCE(110); - if (lookahead == '|') ADVANCE(108); + if (lookahead == '[') ADVANCE(119); + if (lookahead == '^') ADVANCE(108); + if (lookahead == '|') ADVANCE(106); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || @@ -2510,19 +2518,19 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (sym_identifier_character_set_1(lookahead)) ADVANCE(92); END_STATE(); case 9: - if (lookahead == '!') ADVANCE(106); - if (lookahead == '&') ADVANCE(109); - if (lookahead == '(') ADVANCE(119); - if (lookahead == '*') ADVANCE(105); - if (lookahead == '+') ADVANCE(102); - if (lookahead == '-') ADVANCE(104); + if (lookahead == '!') ADVANCE(104); + if (lookahead == '&') ADVANCE(107); + if (lookahead == '(') ADVANCE(117); + if (lookahead == '*') ADVANCE(103); + if (lookahead == '+') ADVANCE(100); + if (lookahead == '-') ADVANCE(102); if (lookahead == '/') SKIP(34) if (lookahead == ':') ADVANCE(39); - if (lookahead == '^') ADVANCE(110); + if (lookahead == '^') ADVANCE(108); if (lookahead == 'g') ADVANCE(74); if (lookahead == 's') ADVANCE(89); if (lookahead == '{') ADVANCE(121); - if (lookahead == '|') ADVANCE(108); + if (lookahead == '|') ADVANCE(106); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || @@ -2531,22 +2539,22 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (sym_identifier_character_set_1(lookahead)) ADVANCE(92); END_STATE(); case 10: - if (lookahead == '!') ADVANCE(106); - if (lookahead == '&') ADVANCE(109); - if (lookahead == '(') ADVANCE(119); - if (lookahead == '*') ADVANCE(105); - if (lookahead == '+') ADVANCE(102); - if (lookahead == '-') ADVANCE(103); + if (lookahead == '!') ADVANCE(104); + if (lookahead == '&') ADVANCE(107); + if (lookahead == '(') ADVANCE(117); + if (lookahead == '*') ADVANCE(103); + if (lookahead == '+') ADVANCE(100); + if (lookahead == '-') ADVANCE(101); if (lookahead == '/') SKIP(17) if (lookahead == ':') ADVANCE(39); - if (lookahead == '^') ADVANCE(110); + if (lookahead == '^') ADVANCE(108); if (lookahead == 'f') ADVANCE(86); if (lookahead == 'g') ADVANCE(74); if (lookahead == 'i') ADVANCE(78); if (lookahead == 'r') ADVANCE(75); if (lookahead == 's') ADVANCE(89); if (lookahead == '{') ADVANCE(121); - if (lookahead == '|') ADVANCE(108); + if (lookahead == '|') ADVANCE(106); if (lookahead == '}') ADVANCE(122); if (lookahead == '\t' || lookahead == '\n' || @@ -2556,20 +2564,20 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (sym_identifier_character_set_1(lookahead)) ADVANCE(92); END_STATE(); case 11: - if (lookahead == '!') ADVANCE(106); - if (lookahead == '&') ADVANCE(109); - if (lookahead == '(') ADVANCE(119); - if (lookahead == '*') ADVANCE(105); - if (lookahead == '+') ADVANCE(102); - if (lookahead == '-') ADVANCE(103); + if (lookahead == '!') ADVANCE(104); + if (lookahead == '&') ADVANCE(107); + if (lookahead == '(') ADVANCE(117); + if (lookahead == '*') ADVANCE(103); + if (lookahead == '+') ADVANCE(100); + if (lookahead == '-') ADVANCE(101); if (lookahead == '/') SKIP(32) if (lookahead == ':') ADVANCE(39); - if (lookahead == '^') ADVANCE(110); + if (lookahead == '^') ADVANCE(108); if (lookahead == 'g') ADVANCE(74); if (lookahead == 'i') ADVANCE(84); if (lookahead == 'r') ADVANCE(75); if (lookahead == 's') ADVANCE(89); - if (lookahead == '|') ADVANCE(108); + if (lookahead == '|') ADVANCE(106); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || @@ -2578,19 +2586,19 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (sym_identifier_character_set_1(lookahead)) ADVANCE(92); END_STATE(); case 12: - if (lookahead == '!') ADVANCE(106); - if (lookahead == '&') ADVANCE(109); - if (lookahead == '(') ADVANCE(119); - if (lookahead == '*') ADVANCE(105); - if (lookahead == '+') ADVANCE(102); - if (lookahead == '-') ADVANCE(103); + if (lookahead == '!') ADVANCE(104); + if (lookahead == '&') ADVANCE(107); + if (lookahead == '(') ADVANCE(117); + if (lookahead == '*') ADVANCE(103); + if (lookahead == '+') ADVANCE(100); + if (lookahead == '-') ADVANCE(101); if (lookahead == '/') SKIP(33) if (lookahead == ':') ADVANCE(39); - if (lookahead == '^') ADVANCE(110); + if (lookahead == '^') ADVANCE(108); if (lookahead == 'g') ADVANCE(74); if (lookahead == 'r') ADVANCE(75); if (lookahead == 's') ADVANCE(89); - if (lookahead == '|') ADVANCE(108); + if (lookahead == '|') ADVANCE(106); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || @@ -2599,15 +2607,15 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (sym_identifier_character_set_1(lookahead)) ADVANCE(92); END_STATE(); case 13: - if (lookahead == '!') ADVANCE(106); - if (lookahead == '&') ADVANCE(109); - if (lookahead == '(') ADVANCE(119); - if (lookahead == '*') ADVANCE(105); - if (lookahead == '+') ADVANCE(102); - if (lookahead == '-') ADVANCE(103); + if (lookahead == '!') ADVANCE(104); + if (lookahead == '&') ADVANCE(107); + if (lookahead == '(') ADVANCE(117); + if (lookahead == '*') ADVANCE(103); + if (lookahead == '+') ADVANCE(100); + if (lookahead == '-') ADVANCE(101); if (lookahead == '/') SKIP(36) if (lookahead == ':') ADVANCE(39); - if (lookahead == '^') ADVANCE(110); + if (lookahead == '^') ADVANCE(108); if (lookahead == 'e') ADVANCE(83); if (lookahead == 'f') ADVANCE(86); if (lookahead == 'g') ADVANCE(74); @@ -2615,7 +2623,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == 'r') ADVANCE(75); if (lookahead == 's') ADVANCE(89); if (lookahead == '{') ADVANCE(121); - if (lookahead == '|') ADVANCE(108); + if (lookahead == '|') ADVANCE(106); if (lookahead == '}') ADVANCE(122); if (lookahead == '\t' || lookahead == '\n' || @@ -2626,25 +2634,25 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 14: if (lookahead == '!') ADVANCE(40); - if (lookahead == '%') ADVANCE(118); - if (lookahead == '&') ADVANCE(109); - if (lookahead == '(') ADVANCE(119); - if (lookahead == ')') ADVANCE(120); - if (lookahead == '*') ADVANCE(105); - if (lookahead == '+') ADVANCE(102); + if (lookahead == '%') ADVANCE(116); + if (lookahead == '&') ADVANCE(107); + if (lookahead == '(') ADVANCE(117); + if (lookahead == ')') ADVANCE(118); + if (lookahead == '*') ADVANCE(103); + if (lookahead == '+') ADVANCE(100); if (lookahead == ',') ADVANCE(69); - if (lookahead == '-') ADVANCE(104); - if (lookahead == '/') ADVANCE(117); + if (lookahead == '-') ADVANCE(102); + if (lookahead == '/') ADVANCE(115); if (lookahead == ':') ADVANCE(68); if (lookahead == ';') ADVANCE(134); - if (lookahead == '<') ADVANCE(113); + if (lookahead == '<') ADVANCE(111); if (lookahead == '=') ADVANCE(126); - if (lookahead == '>') ADVANCE(115); - if (lookahead == '[') ADVANCE(95); - if (lookahead == ']') ADVANCE(96); - if (lookahead == '^') ADVANCE(110); + if (lookahead == '>') ADVANCE(113); + if (lookahead == '[') ADVANCE(119); + if (lookahead == ']') ADVANCE(120); + if (lookahead == '^') ADVANCE(108); if (lookahead == '{') ADVANCE(121); - if (lookahead == '|') ADVANCE(108); + if (lookahead == '|') ADVANCE(106); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || @@ -2653,26 +2661,26 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 15: if (lookahead == '!') ADVANCE(40); - if (lookahead == '%') ADVANCE(118); - if (lookahead == '&') ADVANCE(109); - if (lookahead == '(') ADVANCE(119); - if (lookahead == ')') ADVANCE(120); - if (lookahead == '*') ADVANCE(105); - if (lookahead == '+') ADVANCE(102); + if (lookahead == '%') ADVANCE(116); + if (lookahead == '&') ADVANCE(107); + if (lookahead == '(') ADVANCE(117); + if (lookahead == ')') ADVANCE(118); + if (lookahead == '*') ADVANCE(103); + if (lookahead == '+') ADVANCE(100); if (lookahead == ',') ADVANCE(69); - if (lookahead == '-') ADVANCE(104); - if (lookahead == '/') ADVANCE(117); + if (lookahead == '-') ADVANCE(102); + if (lookahead == '/') ADVANCE(115); if (lookahead == ':') ADVANCE(67); if (lookahead == ';') ADVANCE(134); - if (lookahead == '<') ADVANCE(113); + if (lookahead == '<') ADVANCE(111); if (lookahead == '=') ADVANCE(126); - if (lookahead == '>') ADVANCE(115); - if (lookahead == '[') ADVANCE(95); - if (lookahead == ']') ADVANCE(96); - if (lookahead == '^') ADVANCE(110); + if (lookahead == '>') ADVANCE(113); + if (lookahead == '[') ADVANCE(119); + if (lookahead == ']') ADVANCE(120); + if (lookahead == '^') ADVANCE(108); if (lookahead == 'i') ADVANCE(53); if (lookahead == '{') ADVANCE(121); - if (lookahead == '|') ADVANCE(108); + if (lookahead == '|') ADVANCE(106); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || @@ -2680,21 +2688,21 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 16: if (lookahead == '!') ADVANCE(40); - if (lookahead == '%') ADVANCE(118); - if (lookahead == '&') ADVANCE(109); - if (lookahead == '(') ADVANCE(119); - if (lookahead == '*') ADVANCE(105); - if (lookahead == '+') ADVANCE(102); - if (lookahead == '-') ADVANCE(103); - if (lookahead == '/') ADVANCE(117); + if (lookahead == '%') ADVANCE(116); + if (lookahead == '&') ADVANCE(107); + if (lookahead == '(') ADVANCE(117); + if (lookahead == '*') ADVANCE(103); + if (lookahead == '+') ADVANCE(100); + if (lookahead == '-') ADVANCE(101); + if (lookahead == '/') ADVANCE(115); if (lookahead == ':') ADVANCE(39); - if (lookahead == '<') ADVANCE(113); + if (lookahead == '<') ADVANCE(111); if (lookahead == '=') ADVANCE(41); - if (lookahead == '>') ADVANCE(115); - if (lookahead == '[') ADVANCE(95); - if (lookahead == '^') ADVANCE(110); + if (lookahead == '>') ADVANCE(113); + if (lookahead == '[') ADVANCE(119); + if (lookahead == '^') ADVANCE(108); if (lookahead == 'i') ADVANCE(53); - if (lookahead == '|') ADVANCE(108); + if (lookahead == '|') ADVANCE(106); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || @@ -2804,10 +2812,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == ':') ADVANCE(94); END_STATE(); case 40: - if (lookahead == '=') ADVANCE(112); + if (lookahead == '=') ADVANCE(110); END_STATE(); case 41: - if (lookahead == '=') ADVANCE(111); + if (lookahead == '=') ADVANCE(109); END_STATE(); case 42: if (lookahead == 'a') ADVANCE(60); @@ -2825,7 +2833,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == 'e') ADVANCE(129); END_STATE(); case 47: - if (lookahead == 'e') ADVANCE(97); + if (lookahead == 'e') ADVANCE(96); END_STATE(); case 48: if (lookahead == 'e') ADVANCE(71); @@ -2847,7 +2855,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == 'n') ADVANCE(133); END_STATE(); case 54: - if (lookahead == 'n') ADVANCE(99); + if (lookahead == 'n') ADVANCE(98); END_STATE(); case 55: if (lookahead == 'o') ADVANCE(57); @@ -2932,7 +2940,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 76: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(98); + if (lookahead == 'e') ADVANCE(97); if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); END_STATE(); case 77: @@ -2978,7 +2986,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 85: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'n') ADVANCE(100); + if (lookahead == 'n') ADVANCE(99); if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); END_STATE(); case 86: @@ -3024,88 +3032,88 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { ACCEPT_TOKEN(anon_sym_COLON_COLON); END_STATE(); case 95: - ACCEPT_TOKEN(anon_sym_LBRACK); + ACCEPT_TOKEN(anon_sym_SQUOTE); END_STATE(); case 96: - ACCEPT_TOKEN(anon_sym_RBRACK); + ACCEPT_TOKEN(anon_sym_state); END_STATE(); case 97: ACCEPT_TOKEN(anon_sym_state); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); END_STATE(); case 98: - ACCEPT_TOKEN(anon_sym_state); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + ACCEPT_TOKEN(anon_sym_gen); END_STATE(); case 99: ACCEPT_TOKEN(anon_sym_gen); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); END_STATE(); case 100: - ACCEPT_TOKEN(anon_sym_gen); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); case 101: - ACCEPT_TOKEN(anon_sym_SQUOTE); + ACCEPT_TOKEN(anon_sym_DASH); END_STATE(); case 102: - ACCEPT_TOKEN(anon_sym_PLUS); + ACCEPT_TOKEN(anon_sym_DASH); + if (lookahead == '>') ADVANCE(70); END_STATE(); case 103: - ACCEPT_TOKEN(anon_sym_DASH); + ACCEPT_TOKEN(anon_sym_STAR); END_STATE(); case 104: - ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '>') ADVANCE(70); + ACCEPT_TOKEN(anon_sym_BANG); END_STATE(); case 105: - ACCEPT_TOKEN(anon_sym_STAR); + ACCEPT_TOKEN(anon_sym_BANG); + if (lookahead == '=') ADVANCE(110); END_STATE(); case 106: - ACCEPT_TOKEN(anon_sym_BANG); + ACCEPT_TOKEN(anon_sym_PIPE); END_STATE(); case 107: - ACCEPT_TOKEN(anon_sym_BANG); - if (lookahead == '=') ADVANCE(112); + ACCEPT_TOKEN(anon_sym_AMP); END_STATE(); case 108: - ACCEPT_TOKEN(anon_sym_PIPE); + ACCEPT_TOKEN(anon_sym_CARET); END_STATE(); case 109: - ACCEPT_TOKEN(anon_sym_AMP); + ACCEPT_TOKEN(anon_sym_EQ_EQ); END_STATE(); case 110: - ACCEPT_TOKEN(anon_sym_CARET); + ACCEPT_TOKEN(anon_sym_BANG_EQ); END_STATE(); case 111: - ACCEPT_TOKEN(anon_sym_EQ_EQ); + ACCEPT_TOKEN(anon_sym_LT); + if (lookahead == '=') ADVANCE(112); END_STATE(); case 112: - ACCEPT_TOKEN(anon_sym_BANG_EQ); + ACCEPT_TOKEN(anon_sym_LT_EQ); END_STATE(); case 113: - ACCEPT_TOKEN(anon_sym_LT); + ACCEPT_TOKEN(anon_sym_GT); if (lookahead == '=') ADVANCE(114); END_STATE(); case 114: - ACCEPT_TOKEN(anon_sym_LT_EQ); + ACCEPT_TOKEN(anon_sym_GT_EQ); END_STATE(); case 115: - ACCEPT_TOKEN(anon_sym_GT); - if (lookahead == '=') ADVANCE(116); + ACCEPT_TOKEN(anon_sym_SLASH); END_STATE(); case 116: - ACCEPT_TOKEN(anon_sym_GT_EQ); + ACCEPT_TOKEN(anon_sym_PERCENT); END_STATE(); case 117: - ACCEPT_TOKEN(anon_sym_SLASH); + ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); case 118: - ACCEPT_TOKEN(anon_sym_PERCENT); + ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); case 119: - ACCEPT_TOKEN(anon_sym_LPAREN); + ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); case 120: - ACCEPT_TOKEN(anon_sym_RPAREN); + ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); case 121: ACCEPT_TOKEN(anon_sym_LBRACE); @@ -3126,7 +3134,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 126: ACCEPT_TOKEN(anon_sym_EQ); - if (lookahead == '=') ADVANCE(111); + if (lookahead == '=') ADVANCE(109); END_STATE(); case 127: ACCEPT_TOKEN(anon_sym_if); @@ -3173,9 +3181,9 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [9] = {.lex_state = 11}, [10] = {.lex_state = 14}, [11] = {.lex_state = 14}, - [12] = {.lex_state = 11}, + [12] = {.lex_state = 14}, [13] = {.lex_state = 14}, - [14] = {.lex_state = 14}, + [14] = {.lex_state = 11}, [15] = {.lex_state = 14}, [16] = {.lex_state = 14}, [17] = {.lex_state = 12}, @@ -3184,40 +3192,40 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [20] = {.lex_state = 15}, [21] = {.lex_state = 15}, [22] = {.lex_state = 15}, - [23] = {.lex_state = 9}, + [23] = {.lex_state = 15}, [24] = {.lex_state = 15}, [25] = {.lex_state = 15}, [26] = {.lex_state = 15}, [27] = {.lex_state = 15}, - [28] = {.lex_state = 9}, + [28] = {.lex_state = 15}, [29] = {.lex_state = 15}, - [30] = {.lex_state = 15}, + [30] = {.lex_state = 9}, [31] = {.lex_state = 15}, [32] = {.lex_state = 15}, [33] = {.lex_state = 15}, - [34] = {.lex_state = 14}, + [34] = {.lex_state = 9}, [35] = {.lex_state = 14}, - [36] = {.lex_state = 8}, - [37] = {.lex_state = 14}, + [36] = {.lex_state = 14}, + [37] = {.lex_state = 8}, [38] = {.lex_state = 13}, [39] = {.lex_state = 13}, [40] = {.lex_state = 8}, - [41] = {.lex_state = 13}, - [42] = {.lex_state = 8}, - [43] = {.lex_state = 8}, - [44] = {.lex_state = 16}, + [41] = {.lex_state = 14}, + [42] = {.lex_state = 14}, + [43] = {.lex_state = 13}, + [44] = {.lex_state = 8}, [45] = {.lex_state = 8}, - [46] = {.lex_state = 16}, + [46] = {.lex_state = 8}, [47] = {.lex_state = 8}, - [48] = {.lex_state = 16}, + [48] = {.lex_state = 8}, [49] = {.lex_state = 16}, - [50] = {.lex_state = 8}, - [51] = {.lex_state = 14}, - [52] = {.lex_state = 8}, - [53] = {.lex_state = 8}, - [54] = {.lex_state = 10}, - [55] = {.lex_state = 8}, - [56] = {.lex_state = 8}, + [50] = {.lex_state = 16}, + [51] = {.lex_state = 8}, + [52] = {.lex_state = 14}, + [53] = {.lex_state = 10}, + [54] = {.lex_state = 14}, + [55] = {.lex_state = 16}, + [56] = {.lex_state = 16}, [57] = {.lex_state = 8}, [58] = {.lex_state = 8}, [59] = {.lex_state = 8}, @@ -3227,103 +3235,103 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [63] = {.lex_state = 8}, [64] = {.lex_state = 8}, [65] = {.lex_state = 10}, - [66] = {.lex_state = 8}, - [67] = {.lex_state = 8}, + [66] = {.lex_state = 10}, + [67] = {.lex_state = 14}, [68] = {.lex_state = 8}, - [69] = {.lex_state = 8}, - [70] = {.lex_state = 10}, - [71] = {.lex_state = 16}, + [69] = {.lex_state = 14}, + [70] = {.lex_state = 16}, + [71] = {.lex_state = 10}, [72] = {.lex_state = 8}, - [73] = {.lex_state = 14}, + [73] = {.lex_state = 8}, [74] = {.lex_state = 10}, [75] = {.lex_state = 8}, - [76] = {.lex_state = 10}, + [76] = {.lex_state = 8}, [77] = {.lex_state = 8}, - [78] = {.lex_state = 14}, - [79] = {.lex_state = 14}, + [78] = {.lex_state = 8}, + [79] = {.lex_state = 8}, [80] = {.lex_state = 14}, - [81] = {.lex_state = 14}, - [82] = {.lex_state = 16}, + [81] = {.lex_state = 16}, + [82] = {.lex_state = 14}, [83] = {.lex_state = 14}, [84] = {.lex_state = 15}, [85] = {.lex_state = 15}, - [86] = {.lex_state = 14}, + [86] = {.lex_state = 15}, [87] = {.lex_state = 14}, [88] = {.lex_state = 15}, [89] = {.lex_state = 15}, - [90] = {.lex_state = 14}, + [90] = {.lex_state = 15}, [91] = {.lex_state = 14}, - [92] = {.lex_state = 15}, + [92] = {.lex_state = 14}, [93] = {.lex_state = 15}, - [94] = {.lex_state = 15}, - [95] = {.lex_state = 15}, - [96] = {.lex_state = 14}, - [97] = {.lex_state = 12}, + [94] = {.lex_state = 12}, + [95] = {.lex_state = 9}, + [96] = {.lex_state = 9}, + [97] = {.lex_state = 9}, [98] = {.lex_state = 9}, [99] = {.lex_state = 9}, [100] = {.lex_state = 9}, - [101] = {.lex_state = 9}, - [102] = {.lex_state = 9}, - [103] = {.lex_state = 9}, + [101] = {.lex_state = 0}, + [102] = {.lex_state = 0}, + [103] = {.lex_state = 0}, [104] = {.lex_state = 0}, - [105] = {.lex_state = 0}, + [105] = {.lex_state = 8}, [106] = {.lex_state = 8}, - [107] = {.lex_state = 8}, - [108] = {.lex_state = 8}, - [109] = {.lex_state = 8}, - [110] = {.lex_state = 0}, - [111] = {.lex_state = 38}, + [107] = {.lex_state = 0}, + [108] = {.lex_state = 0}, + [109] = {.lex_state = 0}, + [110] = {.lex_state = 8}, + [111] = {.lex_state = 8}, [112] = {.lex_state = 0}, [113] = {.lex_state = 0}, [114] = {.lex_state = 0}, [115] = {.lex_state = 0}, - [116] = {.lex_state = 0}, + [116] = {.lex_state = 8}, [117] = {.lex_state = 0}, - [118] = {.lex_state = 0}, + [118] = {.lex_state = 8}, [119] = {.lex_state = 0}, - [120] = {.lex_state = 0}, + [120] = {.lex_state = 8}, [121] = {.lex_state = 0}, - [122] = {.lex_state = 8}, - [123] = {.lex_state = 8}, - [124] = {.lex_state = 8}, + [122] = {.lex_state = 0}, + [123] = {.lex_state = 38}, + [124] = {.lex_state = 0}, [125] = {.lex_state = 0}, - [126] = {.lex_state = 0}, - [127] = {.lex_state = 0}, - [128] = {.lex_state = 8}, + [126] = {.lex_state = 8}, + [127] = {.lex_state = 8}, + [128] = {.lex_state = 0}, [129] = {.lex_state = 0}, - [130] = {.lex_state = 0}, - [131] = {.lex_state = 0}, + [130] = {.lex_state = 8}, + [131] = {.lex_state = 8}, [132] = {.lex_state = 0}, [133] = {.lex_state = 0}, [134] = {.lex_state = 0}, [135] = {.lex_state = 0}, [136] = {.lex_state = 0}, - [137] = {.lex_state = 0}, + [137] = {.lex_state = 8}, [138] = {.lex_state = 0}, - [139] = {.lex_state = 8}, + [139] = {.lex_state = 0}, [140] = {.lex_state = 0}, - [141] = {.lex_state = 8}, + [141] = {.lex_state = 0}, [142] = {.lex_state = 0}, - [143] = {.lex_state = 8}, + [143] = {.lex_state = 0}, [144] = {.lex_state = 0}, [145] = {.lex_state = 0}, - [146] = {.lex_state = 8}, - [147] = {.lex_state = 0}, + [146] = {.lex_state = 0}, + [147] = {.lex_state = 8}, [148] = {.lex_state = 0}, [149] = {.lex_state = 0}, [150] = {.lex_state = 0}, [151] = {.lex_state = 8}, - [152] = {.lex_state = 8}, - [153] = {.lex_state = 8}, - [154] = {.lex_state = 0}, + [152] = {.lex_state = 0}, + [153] = {.lex_state = 0}, + [154] = {.lex_state = 8}, [155] = {.lex_state = 8}, [156] = {.lex_state = 0}, [157] = {.lex_state = 8}, - [158] = {.lex_state = 0}, - [159] = {.lex_state = 8}, + [158] = {.lex_state = 8}, + [159] = {.lex_state = 0}, [160] = {.lex_state = 8}, [161] = {.lex_state = 8}, - [162] = {.lex_state = 0}, + [162] = {.lex_state = 8}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -3335,11 +3343,9 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_module] = ACTIONS(1), [sym_number] = ACTIONS(1), [anon_sym_COLON_COLON] = ACTIONS(1), - [anon_sym_LBRACK] = ACTIONS(1), - [anon_sym_RBRACK] = ACTIONS(1), + [anon_sym_SQUOTE] = ACTIONS(1), [anon_sym_state] = ACTIONS(1), [anon_sym_gen] = ACTIONS(1), - [anon_sym_SQUOTE] = ACTIONS(1), [anon_sym_PLUS] = ACTIONS(1), [anon_sym_DASH] = ACTIONS(1), [anon_sym_STAR] = ACTIONS(1), @@ -3356,6 +3362,8 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_PERCENT] = ACTIONS(1), [anon_sym_LPAREN] = ACTIONS(1), [anon_sym_RPAREN] = ACTIONS(1), + [anon_sym_LBRACK] = ACTIONS(1), + [anon_sym_RBRACK] = ACTIONS(1), [anon_sym_LBRACE] = ACTIONS(1), [anon_sym_RBRACE] = ACTIONS(1), [anon_sym_reg] = ACTIONS(1), @@ -3367,29 +3375,29 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_SEMI] = ACTIONS(1), }, [1] = { - [sym_source_file] = STATE(158), - [sym_module] = STATE(110), - [aux_sym_source_file_repeat1] = STATE(110), + [sym_source_file] = STATE(159), + [sym_module] = STATE(112), + [aux_sym_source_file_repeat1] = STATE(112), [ts_builtin_sym_end] = ACTIONS(3), [anon_sym_module] = ACTIONS(5), }, [2] = { - [sym_global_identifier] = STATE(34), + [sym_global_identifier] = STATE(36), [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(151), - [sym__type] = STATE(151), - [sym_declaration] = STATE(118), - [sym_unary_op] = STATE(73), - [sym_binary_op] = STATE(73), - [sym_array_op] = STATE(73), - [sym_func_call] = STATE(73), - [sym_parenthesis_expression] = STATE(73), - [sym__expression] = STATE(73), + [sym_array_type] = STATE(126), + [sym__type] = STATE(126), + [sym_declaration] = STATE(115), + [sym_unary_op] = STATE(42), + [sym_binary_op] = STATE(42), + [sym_array_op] = STATE(42), + [sym_func_call] = STATE(42), + [sym_parenthesis_expression] = STATE(42), + [sym__expression] = STATE(42), [sym_block] = STATE(6), - [sym__assign_left_side] = STATE(154), - [sym_decl_assign_statement] = STATE(162), - [sym_decl_statement] = STATE(162), - [sym_expression_statement] = STATE(162), + [sym__assign_left_side] = STATE(153), + [sym_decl_assign_statement] = STATE(156), + [sym_decl_statement] = STATE(156), + [sym_expression_statement] = STATE(156), [sym_if_statement] = STATE(6), [sym_for_statement] = STATE(6), [sym__statement] = STATE(6), @@ -3416,22 +3424,22 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_for] = ACTIONS(29), }, [3] = { - [sym_global_identifier] = STATE(34), + [sym_global_identifier] = STATE(36), [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(151), - [sym__type] = STATE(151), - [sym_declaration] = STATE(118), - [sym_unary_op] = STATE(73), - [sym_binary_op] = STATE(73), - [sym_array_op] = STATE(73), - [sym_func_call] = STATE(73), - [sym_parenthesis_expression] = STATE(73), - [sym__expression] = STATE(73), + [sym_array_type] = STATE(126), + [sym__type] = STATE(126), + [sym_declaration] = STATE(115), + [sym_unary_op] = STATE(42), + [sym_binary_op] = STATE(42), + [sym_array_op] = STATE(42), + [sym_func_call] = STATE(42), + [sym_parenthesis_expression] = STATE(42), + [sym__expression] = STATE(42), [sym_block] = STATE(2), - [sym__assign_left_side] = STATE(154), - [sym_decl_assign_statement] = STATE(162), - [sym_decl_statement] = STATE(162), - [sym_expression_statement] = STATE(162), + [sym__assign_left_side] = STATE(153), + [sym_decl_assign_statement] = STATE(156), + [sym_decl_statement] = STATE(156), + [sym_expression_statement] = STATE(156), [sym_if_statement] = STATE(2), [sym_for_statement] = STATE(2), [sym__statement] = STATE(2), @@ -3458,22 +3466,22 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_for] = ACTIONS(29), }, [4] = { - [sym_global_identifier] = STATE(34), + [sym_global_identifier] = STATE(36), [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(151), - [sym__type] = STATE(151), - [sym_declaration] = STATE(118), - [sym_unary_op] = STATE(73), - [sym_binary_op] = STATE(73), - [sym_array_op] = STATE(73), - [sym_func_call] = STATE(73), - [sym_parenthesis_expression] = STATE(73), - [sym__expression] = STATE(73), + [sym_array_type] = STATE(126), + [sym__type] = STATE(126), + [sym_declaration] = STATE(115), + [sym_unary_op] = STATE(42), + [sym_binary_op] = STATE(42), + [sym_array_op] = STATE(42), + [sym_func_call] = STATE(42), + [sym_parenthesis_expression] = STATE(42), + [sym__expression] = STATE(42), [sym_block] = STATE(6), - [sym__assign_left_side] = STATE(154), - [sym_decl_assign_statement] = STATE(162), - [sym_decl_statement] = STATE(162), - [sym_expression_statement] = STATE(162), + [sym__assign_left_side] = STATE(153), + [sym_decl_assign_statement] = STATE(156), + [sym_decl_statement] = STATE(156), + [sym_expression_statement] = STATE(156), [sym_if_statement] = STATE(6), [sym_for_statement] = STATE(6), [sym__statement] = STATE(6), @@ -3500,22 +3508,22 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_for] = ACTIONS(29), }, [5] = { - [sym_global_identifier] = STATE(34), + [sym_global_identifier] = STATE(36), [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(151), - [sym__type] = STATE(151), - [sym_declaration] = STATE(118), - [sym_unary_op] = STATE(73), - [sym_binary_op] = STATE(73), - [sym_array_op] = STATE(73), - [sym_func_call] = STATE(73), - [sym_parenthesis_expression] = STATE(73), - [sym__expression] = STATE(73), + [sym_array_type] = STATE(126), + [sym__type] = STATE(126), + [sym_declaration] = STATE(115), + [sym_unary_op] = STATE(42), + [sym_binary_op] = STATE(42), + [sym_array_op] = STATE(42), + [sym_func_call] = STATE(42), + [sym_parenthesis_expression] = STATE(42), + [sym__expression] = STATE(42), [sym_block] = STATE(4), - [sym__assign_left_side] = STATE(154), - [sym_decl_assign_statement] = STATE(162), - [sym_decl_statement] = STATE(162), - [sym_expression_statement] = STATE(162), + [sym__assign_left_side] = STATE(153), + [sym_decl_assign_statement] = STATE(156), + [sym_decl_statement] = STATE(156), + [sym_expression_statement] = STATE(156), [sym_if_statement] = STATE(4), [sym_for_statement] = STATE(4), [sym__statement] = STATE(4), @@ -3542,22 +3550,22 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_for] = ACTIONS(29), }, [6] = { - [sym_global_identifier] = STATE(34), + [sym_global_identifier] = STATE(36), [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(151), - [sym__type] = STATE(151), - [sym_declaration] = STATE(118), - [sym_unary_op] = STATE(73), - [sym_binary_op] = STATE(73), - [sym_array_op] = STATE(73), - [sym_func_call] = STATE(73), - [sym_parenthesis_expression] = STATE(73), - [sym__expression] = STATE(73), + [sym_array_type] = STATE(126), + [sym__type] = STATE(126), + [sym_declaration] = STATE(115), + [sym_unary_op] = STATE(42), + [sym_binary_op] = STATE(42), + [sym_array_op] = STATE(42), + [sym_func_call] = STATE(42), + [sym_parenthesis_expression] = STATE(42), + [sym__expression] = STATE(42), [sym_block] = STATE(6), - [sym__assign_left_side] = STATE(154), - [sym_decl_assign_statement] = STATE(162), - [sym_decl_statement] = STATE(162), - [sym_expression_statement] = STATE(162), + [sym__assign_left_side] = STATE(153), + [sym_decl_assign_statement] = STATE(156), + [sym_decl_statement] = STATE(156), + [sym_expression_statement] = STATE(156), [sym_if_statement] = STATE(6), [sym_for_statement] = STATE(6), [sym__statement] = STATE(6), @@ -3584,22 +3592,22 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_for] = ACTIONS(69), }, [7] = { - [sym_global_identifier] = STATE(34), + [sym_global_identifier] = STATE(36), [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(151), - [sym__type] = STATE(151), - [sym_declaration] = STATE(118), - [sym_unary_op] = STATE(73), - [sym_binary_op] = STATE(73), - [sym_array_op] = STATE(73), - [sym_func_call] = STATE(73), - [sym_parenthesis_expression] = STATE(73), - [sym__expression] = STATE(73), + [sym_array_type] = STATE(126), + [sym__type] = STATE(126), + [sym_declaration] = STATE(115), + [sym_unary_op] = STATE(42), + [sym_binary_op] = STATE(42), + [sym_array_op] = STATE(42), + [sym_func_call] = STATE(42), + [sym_parenthesis_expression] = STATE(42), + [sym__expression] = STATE(42), [sym_block] = STATE(6), - [sym__assign_left_side] = STATE(154), - [sym_decl_assign_statement] = STATE(162), - [sym_decl_statement] = STATE(162), - [sym_expression_statement] = STATE(162), + [sym__assign_left_side] = STATE(153), + [sym_decl_assign_statement] = STATE(156), + [sym_decl_statement] = STATE(156), + [sym_expression_statement] = STATE(156), [sym_if_statement] = STATE(6), [sym_for_statement] = STATE(6), [sym__statement] = STATE(6), @@ -3626,22 +3634,22 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_for] = ACTIONS(29), }, [8] = { - [sym_global_identifier] = STATE(34), + [sym_global_identifier] = STATE(36), [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(151), - [sym__type] = STATE(151), - [sym_declaration] = STATE(118), - [sym_unary_op] = STATE(73), - [sym_binary_op] = STATE(73), - [sym_array_op] = STATE(73), - [sym_func_call] = STATE(73), - [sym_parenthesis_expression] = STATE(73), - [sym__expression] = STATE(73), + [sym_array_type] = STATE(126), + [sym__type] = STATE(126), + [sym_declaration] = STATE(115), + [sym_unary_op] = STATE(42), + [sym_binary_op] = STATE(42), + [sym_array_op] = STATE(42), + [sym_func_call] = STATE(42), + [sym_parenthesis_expression] = STATE(42), + [sym__expression] = STATE(42), [sym_block] = STATE(7), - [sym__assign_left_side] = STATE(154), - [sym_decl_assign_statement] = STATE(162), - [sym_decl_statement] = STATE(162), - [sym_expression_statement] = STATE(162), + [sym__assign_left_side] = STATE(153), + [sym_decl_assign_statement] = STATE(156), + [sym_decl_statement] = STATE(156), + [sym_expression_statement] = STATE(156), [sym_if_statement] = STATE(7), [sym_for_statement] = STATE(7), [sym__statement] = STATE(7), @@ -3687,19 +3695,19 @@ static const uint16_t ts_small_parse_table[] = { aux_sym__assign_left_side_repeat1, STATE(19), 1, sym__maybe_global_identifier, - STATE(34), 1, + STATE(36), 1, sym_global_identifier, - STATE(136), 1, + STATE(141), 1, sym_declaration, - STATE(147), 1, + STATE(143), 1, sym__assign_left_side, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(151), 2, + STATE(126), 2, sym_array_type, sym__type, - STATE(79), 6, + STATE(54), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -3726,8 +3734,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_DASH_GT, sym_identifier, - anon_sym_LBRACK, - anon_sym_RBRACK, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3743,6 +3749,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, @@ -3758,8 +3766,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_DASH_GT, sym_identifier, - anon_sym_LBRACK, - anon_sym_RBRACK, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3775,65 +3781,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [131] = 14, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(91), 1, - sym_number, - ACTIONS(93), 1, - anon_sym_reg, - ACTIONS(95), 1, - anon_sym_initial, - STATE(17), 1, - aux_sym__assign_left_side_repeat1, - STATE(19), 1, - sym__maybe_global_identifier, - STATE(34), 1, - sym_global_identifier, - STATE(127), 1, - sym_declaration, - ACTIONS(13), 2, - anon_sym_state, - anon_sym_gen, - STATE(151), 2, - sym_array_type, - sym__type, - STATE(80), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [187] = 4, + [131] = 4, ACTIONS(87), 1, anon_sym_COLON_COLON, - ACTIONS(99), 1, + ACTIONS(93), 1, anon_sym_SLASH, STATE(11), 1, aux_sym_global_identifier_repeat1, - ACTIONS(97), 24, + ACTIONS(91), 24, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, sym_identifier, - anon_sym_LBRACK, - anon_sym_RBRACK, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3849,23 +3813,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [223] = 4, + [167] = 4, ACTIONS(87), 1, anon_sym_COLON_COLON, - ACTIONS(99), 1, + ACTIONS(93), 1, anon_sym_SLASH, STATE(10), 1, aux_sym_global_identifier_repeat1, - ACTIONS(97), 24, + ACTIONS(91), 24, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, sym_identifier, - anon_sym_LBRACK, - anon_sym_RBRACK, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3881,23 +3845,65 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, + [203] = 14, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(11), 1, + anon_sym_COLON_COLON, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(95), 1, + sym_number, + ACTIONS(97), 1, + anon_sym_reg, + ACTIONS(99), 1, + anon_sym_initial, + STATE(17), 1, + aux_sym__assign_left_side_repeat1, + STATE(19), 1, + sym__maybe_global_identifier, + STATE(36), 1, + sym_global_identifier, + STATE(136), 1, + sym_declaration, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + STATE(126), 2, + sym_array_type, + sym__type, + STATE(67), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(15), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, [259] = 4, ACTIONS(87), 1, anon_sym_COLON_COLON, ACTIONS(103), 1, anon_sym_SLASH, - STATE(14), 1, + STATE(13), 1, aux_sym_global_identifier_repeat1, ACTIONS(101), 24, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, sym_identifier, - anon_sym_LBRACK, - anon_sym_RBRACK, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3913,6 +3919,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, @@ -3925,8 +3933,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_GT, sym_identifier, anon_sym_COLON_COLON, - anon_sym_LBRACK, - anon_sym_RBRACK, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3942,6 +3948,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, @@ -3958,19 +3966,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_reg, STATE(19), 1, sym__maybe_global_identifier, - STATE(34), 1, + STATE(36), 1, sym_global_identifier, - STATE(97), 1, + STATE(94), 1, aux_sym__assign_left_side_repeat1, - STATE(131), 1, + STATE(140), 1, sym_declaration, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(151), 2, + STATE(126), 2, sym_array_type, sym__type, - STATE(78), 6, + STATE(52), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -3998,19 +4006,19 @@ static const uint16_t ts_small_parse_table[] = { sym_number, STATE(19), 1, sym__maybe_global_identifier, - STATE(34), 1, + STATE(36), 1, sym_global_identifier, - STATE(97), 1, + STATE(94), 1, aux_sym__assign_left_side_repeat1, - STATE(117), 1, + STATE(108), 1, sym_declaration, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(151), 2, + STATE(126), 2, sym_array_type, sym__type, - STATE(51), 6, + STATE(41), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -4034,8 +4042,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, - anon_sym_LBRACK, - anon_sym_RBRACK, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4050,19 +4056,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [464] = 2, + [464] = 3, ACTIONS(119), 1, anon_sym_SLASH, + STATE(25), 1, + sym_array_bracket_expression, ACTIONS(117), 23, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, - anon_sym_LBRACK, - anon_sym_RBRACK, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4077,19 +4085,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [493] = 2, + [496] = 3, ACTIONS(123), 1, anon_sym_SLASH, + STATE(25), 1, + sym_array_bracket_expression, ACTIONS(121), 23, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, - anon_sym_LBRACK, - anon_sym_RBRACK, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4104,19 +4114,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [522] = 2, + [528] = 2, ACTIONS(127), 1, anon_sym_SLASH, ACTIONS(125), 23, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, - anon_sym_LBRACK, - anon_sym_RBRACK, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4131,55 +4141,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_RPAREN, - anon_sym_LBRACE, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [551] = 11, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(109), 1, - sym_number, - STATE(19), 1, - sym__maybe_global_identifier, - STATE(34), 1, - sym_global_identifier, - STATE(117), 1, - sym_declaration, - ACTIONS(13), 2, - anon_sym_state, - anon_sym_gen, - STATE(151), 2, - sym_array_type, - sym__type, - STATE(51), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [598] = 2, + [557] = 2, ACTIONS(131), 1, anon_sym_SLASH, ACTIONS(129), 23, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, - anon_sym_LBRACK, - anon_sym_RBRACK, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4194,19 +4168,49 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [627] = 2, - ACTIONS(135), 1, + [586] = 5, + ACTIONS(137), 1, anon_sym_SLASH, - ACTIONS(133), 23, + STATE(25), 1, + sym_array_bracket_expression, + ACTIONS(133), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(135), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(121), 18, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_SEMI, + [621] = 2, + ACTIONS(141), 1, + anon_sym_SLASH, + ACTIONS(139), 23, + anon_sym_COLON, + anon_sym_COMMA, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4221,19 +4225,51 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [656] = 2, - ACTIONS(139), 1, + [650] = 7, + ACTIONS(137), 1, anon_sym_SLASH, - ACTIONS(137), 23, + ACTIONS(143), 1, + anon_sym_PIPE, + ACTIONS(145), 1, + anon_sym_CARET, + STATE(25), 1, + sym_array_bracket_expression, + ACTIONS(133), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(135), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(121), 16, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, + anon_sym_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_SEMI, + [689] = 2, + ACTIONS(149), 1, + anon_sym_SLASH, + ACTIONS(147), 23, + anon_sym_COLON, + anon_sym_COMMA, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4248,19 +4284,50 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [685] = 2, - ACTIONS(143), 1, + [718] = 6, + ACTIONS(137), 1, anon_sym_SLASH, - ACTIONS(141), 23, + ACTIONS(145), 1, + anon_sym_CARET, + STATE(25), 1, + sym_array_bracket_expression, + ACTIONS(133), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(135), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(121), 17, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_SEMI, + [755] = 2, + ACTIONS(153), 1, + anon_sym_SLASH, + ACTIONS(151), 23, + anon_sym_COLON, + anon_sym_COMMA, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4275,32 +4342,34 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [714] = 11, + [784] = 11, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(105), 1, + ACTIONS(109), 1, sym_number, STATE(19), 1, sym__maybe_global_identifier, - STATE(34), 1, + STATE(36), 1, sym_global_identifier, - STATE(131), 1, + STATE(108), 1, sym_declaration, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(151), 2, + STATE(126), 2, sym_array_type, sym__type, - STATE(78), 6, + STATE(41), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -4315,27 +4384,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [761] = 7, - ACTIONS(149), 1, + [831] = 8, + ACTIONS(137), 1, + anon_sym_SLASH, + ACTIONS(143), 1, anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_AMP, - ACTIONS(153), 1, + ACTIONS(145), 1, anon_sym_CARET, ACTIONS(155), 1, - anon_sym_SLASH, - ACTIONS(145), 2, + anon_sym_AMP, + STATE(25), 1, + sym_array_bracket_expression, + ACTIONS(133), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(147), 2, + ACTIONS(135), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(133), 15, + ACTIONS(121), 15, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, - anon_sym_LBRACK, - anon_sym_RBRACK, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, @@ -4343,24 +4412,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [799] = 4, - ACTIONS(155), 1, + [872] = 4, + ACTIONS(137), 1, anon_sym_SLASH, - ACTIONS(145), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(147), 2, + STATE(25), 1, + sym_array_bracket_expression, + ACTIONS(135), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(133), 18, + ACTIONS(121), 20, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, - anon_sym_LBRACK, - anon_sym_RBRACK, + anon_sym_PLUS, + anon_sym_DASH, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -4371,103 +4441,114 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [831] = 6, - ACTIONS(149), 1, - anon_sym_PIPE, - ACTIONS(153), 1, - anon_sym_CARET, - ACTIONS(155), 1, + [905] = 2, + ACTIONS(159), 1, anon_sym_SLASH, - ACTIONS(145), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(147), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(133), 16, + ACTIONS(157), 23, anon_sym_COLON, anon_sym_COMMA, anon_sym_DASH_GT, - anon_sym_LBRACK, - anon_sym_RBRACK, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, + anon_sym_in, anon_sym_SEMI, - [867] = 5, - ACTIONS(153), 1, + [934] = 11, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(11), 1, + anon_sym_COLON_COLON, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(105), 1, + sym_number, + STATE(19), 1, + sym__maybe_global_identifier, + STATE(36), 1, + sym_global_identifier, + STATE(140), 1, + sym_declaration, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + STATE(126), 2, + sym_array_type, + sym__type, + STATE(52), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(15), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, anon_sym_CARET, - ACTIONS(155), 1, + [981] = 10, + ACTIONS(137), 1, anon_sym_SLASH, - ACTIONS(145), 2, + ACTIONS(143), 1, + anon_sym_PIPE, + ACTIONS(145), 1, + anon_sym_CARET, + ACTIONS(155), 1, + anon_sym_AMP, + ACTIONS(165), 1, + anon_sym_LBRACK, + STATE(25), 1, + sym_array_bracket_expression, + ACTIONS(133), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(147), 2, + ACTIONS(135), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(133), 17, - anon_sym_COLON, + ACTIONS(161), 5, anon_sym_COMMA, anon_sym_DASH_GT, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [901] = 3, - ACTIONS(155), 1, - anon_sym_SLASH, - ACTIONS(147), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(133), 20, - anon_sym_COLON, - anon_sym_COMMA, - anon_sym_DASH_GT, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, + ACTIONS(163), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_SEMI, - [931] = 4, - ACTIONS(159), 1, + [1023] = 4, + ACTIONS(169), 1, sym_identifier, - ACTIONS(161), 1, - anon_sym_LBRACK, - ACTIONS(164), 1, + ACTIONS(171), 1, anon_sym_SLASH, - ACTIONS(157), 18, + ACTIONS(173), 1, + anon_sym_LBRACK, + ACTIONS(167), 18, anon_sym_COMMA, anon_sym_PLUS, anon_sym_DASH, @@ -4486,51 +4567,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [961] = 9, - ACTIONS(149), 1, - anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_AMP, - ACTIONS(153), 1, - anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_SLASH, - ACTIONS(168), 1, - anon_sym_LBRACK, - ACTIONS(145), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(147), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(166), 5, - anon_sym_COMMA, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_SEMI, - ACTIONS(170), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [1000] = 8, + [1053] = 8, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(172), 1, + ACTIONS(176), 1, sym_identifier, - ACTIONS(174), 1, + ACTIONS(178), 1, sym_number, - STATE(140), 1, + STATE(149), 1, sym_range, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(84), 6, + STATE(93), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -4545,40 +4596,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1037] = 9, - ACTIONS(149), 1, - anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_AMP, - ACTIONS(153), 1, - anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_SLASH, - ACTIONS(168), 1, - anon_sym_LBRACK, - ACTIONS(145), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(147), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(176), 5, - anon_sym_COMMA, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_SEMI, - ACTIONS(170), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [1076] = 3, - ACTIONS(182), 1, + [1090] = 3, + ACTIONS(184), 1, anon_sym_else, - ACTIONS(178), 7, + ACTIONS(180), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -4586,7 +4607,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(180), 12, + ACTIONS(182), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -4599,8 +4620,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1103] = 2, - ACTIONS(184), 8, + [1117] = 2, + ACTIONS(186), 8, sym_identifier, anon_sym_state, anon_sym_gen, @@ -4609,7 +4630,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_else, anon_sym_for, - ACTIONS(186), 12, + ACTIONS(188), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -4622,21 +4643,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1128] = 8, + [1142] = 8, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(172), 1, + ACTIONS(176), 1, sym_identifier, - ACTIONS(188), 1, - sym_number, ACTIONS(190), 1, + sym_number, + ACTIONS(192), 1, anon_sym_RPAREN, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(81), 6, + STATE(69), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -4651,8 +4672,75 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1165] = 2, - ACTIONS(192), 8, + [1179] = 12, + ACTIONS(137), 1, + anon_sym_SLASH, + ACTIONS(143), 1, + anon_sym_PIPE, + ACTIONS(145), 1, + anon_sym_CARET, + ACTIONS(155), 1, + anon_sym_AMP, + ACTIONS(165), 1, + anon_sym_LBRACK, + ACTIONS(194), 1, + anon_sym_COMMA, + STATE(25), 1, + sym_array_bracket_expression, + STATE(117), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(133), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(135), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(196), 2, + anon_sym_LBRACE, + anon_sym_EQ, + ACTIONS(163), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [1224] = 13, + ACTIONS(137), 1, + anon_sym_SLASH, + ACTIONS(143), 1, + anon_sym_PIPE, + ACTIONS(145), 1, + anon_sym_CARET, + ACTIONS(155), 1, + anon_sym_AMP, + ACTIONS(165), 1, + anon_sym_LBRACK, + ACTIONS(194), 1, + anon_sym_COMMA, + ACTIONS(198), 1, + anon_sym_EQ, + ACTIONS(200), 1, + anon_sym_SEMI, + STATE(25), 1, + sym_array_bracket_expression, + STATE(109), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(133), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(135), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(163), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [1271] = 2, + ACTIONS(202), 8, sym_identifier, anon_sym_state, anon_sym_gen, @@ -4661,7 +4749,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_else, anon_sym_for, - ACTIONS(194), 12, + ACTIONS(204), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -4674,26 +4762,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1190] = 7, + [1296] = 7, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(196), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(198), 1, + ACTIONS(208), 1, sym_number, - ACTIONS(200), 1, + ACTIONS(210), 1, anon_sym_COLON_COLON, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(26), 6, + STATE(20), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(202), 7, + ACTIONS(212), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4701,26 +4789,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1224] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, + [1330] = 7, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(172), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(204), 1, + ACTIONS(210), 1, + anon_sym_COLON_COLON, + ACTIONS(214), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(37), 6, + STATE(84), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(212), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4728,43 +4816,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1258] = 4, - ACTIONS(89), 1, - anon_sym_SLASH, - ACTIONS(206), 1, - anon_sym_COLON_COLON, - STATE(46), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(85), 16, - anon_sym_LBRACK, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_in, - [1286] = 7, + [1364] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(172), 1, + ACTIONS(176), 1, sym_identifier, - ACTIONS(208), 1, + ACTIONS(216), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(86), 6, + STATE(82), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -4779,43 +4843,46 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1320] = 4, - ACTIONS(83), 1, - anon_sym_SLASH, - ACTIONS(210), 1, + [1398] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - STATE(46), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(78), 16, - anon_sym_LBRACK, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(176), 1, + sym_identifier, + ACTIONS(218), 1, + sym_number, + STATE(19), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(92), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_in, - [1348] = 7, + [1432] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(172), 1, + ACTIONS(176), 1, sym_identifier, - ACTIONS(213), 1, + ACTIONS(220), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(35), 6, + STATE(80), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -4830,15 +4897,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1382] = 4, - ACTIONS(99), 1, + [1466] = 4, + ACTIONS(89), 1, anon_sym_SLASH, - ACTIONS(206), 1, + ACTIONS(222), 1, anon_sym_COLON_COLON, - STATE(44), 1, + STATE(50), 1, aux_sym_global_identifier_repeat1, - ACTIONS(97), 16, - anon_sym_LBRACK, + ACTIONS(85), 16, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4853,16 +4919,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, + anon_sym_LBRACK, anon_sym_in, - [1410] = 4, - ACTIONS(99), 1, + [1494] = 4, + ACTIONS(83), 1, anon_sym_SLASH, - ACTIONS(206), 1, + ACTIONS(224), 1, anon_sym_COLON_COLON, - STATE(46), 1, + STATE(50), 1, aux_sym_global_identifier_repeat1, - ACTIONS(97), 16, - anon_sym_LBRACK, + ACTIONS(78), 16, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4877,27 +4943,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, + anon_sym_LBRACK, anon_sym_in, - [1438] = 7, + [1522] = 7, + ACTIONS(11), 1, + anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(196), 1, + ACTIONS(176), 1, sym_identifier, - ACTIONS(200), 1, - anon_sym_COLON_COLON, - ACTIONS(215), 1, + ACTIONS(227), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(92), 6, + STATE(91), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(202), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4905,93 +4972,38 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1472] = 11, - ACTIONS(149), 1, + [1556] = 10, + ACTIONS(137), 1, + anon_sym_SLASH, + ACTIONS(143), 1, anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_AMP, - ACTIONS(153), 1, + ACTIONS(145), 1, anon_sym_CARET, ACTIONS(155), 1, - anon_sym_SLASH, - ACTIONS(168), 1, + anon_sym_AMP, + ACTIONS(165), 1, anon_sym_LBRACK, - ACTIONS(217), 1, - anon_sym_COMMA, - STATE(114), 1, - aux_sym__assign_left_side_repeat2, - ACTIONS(145), 2, + STATE(25), 1, + sym_array_bracket_expression, + ACTIONS(133), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(147), 2, + ACTIONS(135), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(219), 2, + ACTIONS(229), 3, + anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, - ACTIONS(170), 6, + ACTIONS(163), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1514] = 7, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(196), 1, - sym_identifier, - ACTIONS(200), 1, - anon_sym_COLON_COLON, - ACTIONS(221), 1, - sym_number, - STATE(19), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(93), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(202), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [1548] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(172), 1, - sym_identifier, - ACTIONS(223), 1, - sym_number, - STATE(19), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(83), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [1582] = 2, - ACTIONS(192), 7, + [1596] = 2, + ACTIONS(231), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -4999,7 +5011,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(194), 12, + ACTIONS(233), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -5012,73 +5024,99 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1606] = 7, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(196), 1, - sym_identifier, - ACTIONS(200), 1, - anon_sym_COLON_COLON, - ACTIONS(225), 1, - sym_number, - STATE(19), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(94), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(202), 7, + [1620] = 12, + ACTIONS(137), 1, + anon_sym_SLASH, + ACTIONS(143), 1, + anon_sym_PIPE, + ACTIONS(145), 1, + anon_sym_CARET, + ACTIONS(155), 1, + anon_sym_AMP, + ACTIONS(165), 1, + anon_sym_LBRACK, + ACTIONS(194), 1, + anon_sym_COMMA, + ACTIONS(198), 1, + anon_sym_LBRACE, + STATE(25), 1, + sym_array_bracket_expression, + STATE(109), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(133), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(135), 2, anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, + anon_sym_PERCENT, + ACTIONS(163), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [1664] = 4, + ACTIONS(93), 1, + anon_sym_SLASH, + ACTIONS(222), 1, + anon_sym_COLON_COLON, + STATE(49), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(91), 16, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1640] = 7, - ACTIONS(17), 1, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_LPAREN, - ACTIONS(196), 1, - sym_identifier, - ACTIONS(200), 1, + anon_sym_LBRACK, + anon_sym_in, + [1692] = 4, + ACTIONS(93), 1, + anon_sym_SLASH, + ACTIONS(222), 1, anon_sym_COLON_COLON, - ACTIONS(227), 1, - sym_number, - STATE(19), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(85), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(202), 7, + STATE(50), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(91), 16, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, - anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1674] = 7, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_in, + [1720] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(172), 1, + ACTIONS(176), 1, sym_identifier, - ACTIONS(229), 1, + ACTIONS(235), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(90), 6, + STATE(87), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -5093,19 +5131,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1708] = 7, + [1754] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(172), 1, + ACTIONS(176), 1, sym_identifier, - ACTIONS(231), 1, + ACTIONS(237), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(33), 6, + STATE(32), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -5120,19 +5158,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1742] = 7, + [1788] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(172), 1, + ACTIONS(176), 1, sym_identifier, - ACTIONS(233), 1, + ACTIONS(239), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(25), 6, + STATE(21), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -5147,19 +5185,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1776] = 7, + [1822] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(172), 1, + ACTIONS(176), 1, sym_identifier, - ACTIONS(235), 1, + ACTIONS(241), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(32), 6, + STATE(28), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -5174,19 +5212,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1810] = 7, + [1856] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(172), 1, + ACTIONS(176), 1, sym_identifier, - ACTIONS(237), 1, + ACTIONS(243), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(31), 6, + STATE(26), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -5201,19 +5239,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1844] = 7, + [1890] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(172), 1, + ACTIONS(176), 1, sym_identifier, - ACTIONS(239), 1, + ACTIONS(245), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(30), 6, + STATE(24), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -5228,19 +5266,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1878] = 7, + [1924] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(172), 1, + ACTIONS(176), 1, sym_identifier, - ACTIONS(241), 1, + ACTIONS(247), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(29), 6, + STATE(31), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -5255,19 +5293,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1912] = 7, + [1958] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(172), 1, + ACTIONS(176), 1, sym_identifier, - ACTIONS(243), 1, + ACTIONS(249), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(96), 6, + STATE(83), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -5282,8 +5320,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1946] = 2, - ACTIONS(245), 7, + [1992] = 2, + ACTIONS(251), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -5291,7 +5329,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(247), 12, + ACTIONS(253), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -5304,26 +5342,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1970] = 7, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(196), 1, + [2016] = 2, + ACTIONS(255), 7, sym_identifier, - ACTIONS(200), 1, - anon_sym_COLON_COLON, - ACTIONS(249), 1, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(257), 12, sym_number, - STATE(19), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(95), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(202), 7, + anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5331,26 +5361,134 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2004] = 7, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [2040] = 10, + ACTIONS(137), 1, + anon_sym_SLASH, + ACTIONS(143), 1, + anon_sym_PIPE, + ACTIONS(145), 1, + anon_sym_CARET, + ACTIONS(155), 1, + anon_sym_AMP, + ACTIONS(165), 1, + anon_sym_LBRACK, + STATE(25), 1, + sym_array_bracket_expression, + ACTIONS(133), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(135), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(259), 3, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_EQ, + ACTIONS(163), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [2080] = 7, + ACTIONS(11), 1, + anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(196), 1, + ACTIONS(176), 1, sym_identifier, - ACTIONS(200), 1, - anon_sym_COLON_COLON, - ACTIONS(251), 1, + ACTIONS(208), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(89), 6, + STATE(20), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, + ACTIONS(15), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [2114] = 12, + ACTIONS(137), 1, + anon_sym_SLASH, + ACTIONS(143), 1, + anon_sym_PIPE, + ACTIONS(145), 1, + anon_sym_CARET, + ACTIONS(155), 1, + anon_sym_AMP, + ACTIONS(165), 1, + anon_sym_LBRACK, + ACTIONS(261), 1, + anon_sym_COMMA, + ACTIONS(263), 1, + anon_sym_RPAREN, + STATE(25), 1, + sym_array_bracket_expression, + STATE(139), 1, + aux_sym_func_call_repeat1, + ACTIONS(133), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(135), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(163), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [2158] = 4, + ACTIONS(103), 1, + anon_sym_SLASH, + ACTIONS(222), 1, + anon_sym_COLON_COLON, + STATE(56), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(101), 16, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_in, + [2186] = 2, ACTIONS(202), 7, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(204), 12, + sym_number, + anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5358,26 +5496,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2038] = 7, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [2210] = 7, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(196), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(200), 1, + ACTIONS(210), 1, anon_sym_COLON_COLON, - ACTIONS(233), 1, + ACTIONS(265), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(25), 6, + STATE(90), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(202), 7, + ACTIONS(212), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5385,26 +5526,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2072] = 7, + [2244] = 7, + ACTIONS(11), 1, + anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(196), 1, + ACTIONS(176), 1, sym_identifier, - ACTIONS(200), 1, - anon_sym_COLON_COLON, - ACTIONS(253), 1, + ACTIONS(267), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(88), 6, + STATE(35), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(202), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5412,8 +5553,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2106] = 2, - ACTIONS(184), 7, + [2278] = 2, + ACTIONS(186), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -5421,7 +5562,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(186), 12, + ACTIONS(188), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -5434,50 +5575,53 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [2130] = 4, - ACTIONS(103), 1, - anon_sym_SLASH, + [2302] = 7, + ACTIONS(17), 1, + anon_sym_LPAREN, ACTIONS(206), 1, + sym_identifier, + ACTIONS(210), 1, anon_sym_COLON_COLON, - STATE(49), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(101), 16, - anon_sym_LBRACK, + ACTIONS(239), 1, + sym_number, + STATE(19), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(21), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(212), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_in, - [2158] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, + [2336] = 7, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(172), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(255), 1, + ACTIONS(210), 1, + anon_sym_COLON_COLON, + ACTIONS(269), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(91), 6, + STATE(89), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(212), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5485,80 +5629,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2192] = 12, - ACTIONS(149), 1, - anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_AMP, - ACTIONS(153), 1, - anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_SLASH, - ACTIONS(168), 1, - anon_sym_LBRACK, - ACTIONS(217), 1, - anon_sym_COMMA, - ACTIONS(257), 1, - anon_sym_EQ, - ACTIONS(259), 1, - anon_sym_SEMI, - STATE(121), 1, - aux_sym__assign_left_side_repeat2, - ACTIONS(145), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(147), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(170), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [2236] = 2, - ACTIONS(261), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(263), 12, - sym_number, - anon_sym_COLON_COLON, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [2260] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, + [2370] = 7, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(172), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(265), 1, + ACTIONS(210), 1, + anon_sym_COLON_COLON, + ACTIONS(271), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(87), 6, + STATE(88), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(212), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5566,18 +5656,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2294] = 2, - ACTIONS(267), 7, + [2404] = 7, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(206), 1, sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(269), 12, - sym_number, + ACTIONS(210), 1, anon_sym_COLON_COLON, + ACTIONS(273), 1, + sym_number, + STATE(19), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(86), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(212), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5585,29 +5683,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [2318] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, + [2438] = 7, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(172), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(198), 1, + ACTIONS(210), 1, + anon_sym_COLON_COLON, + ACTIONS(275), 1, sym_number, STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(26), 6, + STATE(85), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(212), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5615,128 +5710,40 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2352] = 9, - ACTIONS(149), 1, - anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_AMP, - ACTIONS(153), 1, - anon_sym_CARET, - ACTIONS(155), 1, + [2472] = 10, + ACTIONS(137), 1, anon_sym_SLASH, - ACTIONS(168), 1, - anon_sym_LBRACK, - ACTIONS(145), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(147), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(271), 3, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_EQ, - ACTIONS(170), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [2389] = 11, - ACTIONS(149), 1, + ACTIONS(143), 1, anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_AMP, - ACTIONS(153), 1, + ACTIONS(145), 1, anon_sym_CARET, ACTIONS(155), 1, - anon_sym_SLASH, - ACTIONS(168), 1, - anon_sym_LBRACK, - ACTIONS(217), 1, - anon_sym_COMMA, - ACTIONS(257), 1, - anon_sym_LBRACE, - STATE(121), 1, - aux_sym__assign_left_side_repeat2, - ACTIONS(145), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(147), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(170), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [2430] = 9, - ACTIONS(149), 1, - anon_sym_PIPE, - ACTIONS(151), 1, anon_sym_AMP, - ACTIONS(153), 1, - anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_SLASH, - ACTIONS(168), 1, + ACTIONS(165), 1, anon_sym_LBRACK, - ACTIONS(145), 2, + STATE(25), 1, + sym_array_bracket_expression, + ACTIONS(133), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(147), 2, + ACTIONS(135), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(273), 3, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_EQ, - ACTIONS(170), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [2467] = 11, - ACTIONS(149), 1, - anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_AMP, - ACTIONS(153), 1, - anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_SLASH, - ACTIONS(168), 1, - anon_sym_LBRACK, - ACTIONS(275), 1, + ACTIONS(277), 2, anon_sym_COMMA, - ACTIONS(277), 1, anon_sym_RPAREN, - STATE(130), 1, - aux_sym_func_call_repeat1, - ACTIONS(145), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(147), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(170), 6, + ACTIONS(163), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2508] = 2, + [2511] = 2, ACTIONS(83), 1, anon_sym_SLASH, ACTIONS(78), 17, anon_sym_COLON_COLON, - anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5751,71 +5758,75 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, + anon_sym_LBRACK, anon_sym_in, - [2531] = 9, - ACTIONS(149), 1, + [2534] = 10, + ACTIONS(137), 1, + anon_sym_SLASH, + ACTIONS(143), 1, anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_AMP, - ACTIONS(153), 1, + ACTIONS(145), 1, anon_sym_CARET, ACTIONS(155), 1, - anon_sym_SLASH, - ACTIONS(168), 1, + anon_sym_AMP, + ACTIONS(165), 1, anon_sym_LBRACK, - ACTIONS(145), 2, + ACTIONS(279), 1, + anon_sym_RBRACK, + STATE(25), 1, + sym_array_bracket_expression, + ACTIONS(133), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(147), 2, + ACTIONS(135), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(279), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - ACTIONS(170), 6, + ACTIONS(163), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2567] = 9, - ACTIONS(149), 1, + [2572] = 10, + ACTIONS(137), 1, + anon_sym_SLASH, + ACTIONS(143), 1, anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_AMP, - ACTIONS(153), 1, + ACTIONS(145), 1, anon_sym_CARET, ACTIONS(155), 1, - anon_sym_SLASH, - ACTIONS(168), 1, + anon_sym_AMP, + ACTIONS(165), 1, anon_sym_LBRACK, ACTIONS(281), 1, - anon_sym_COLON, - ACTIONS(145), 2, + anon_sym_SEMI, + STATE(25), 1, + sym_array_bracket_expression, + ACTIONS(133), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(147), 2, + ACTIONS(135), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(170), 6, + ACTIONS(163), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2602] = 4, - ACTIONS(287), 1, + [2610] = 4, + ACTIONS(285), 1, anon_sym_SLASH, + STATE(25), 1, + sym_array_bracket_expression, ACTIONS(283), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(285), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(133), 11, - anon_sym_LBRACK, + ACTIONS(121), 13, + anon_sym_PLUS, + anon_sym_DASH, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -5825,69 +5836,97 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, + anon_sym_LBRACK, anon_sym_in, - [2627] = 9, - ACTIONS(149), 1, - anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_AMP, - ACTIONS(153), 1, - anon_sym_CARET, - ACTIONS(155), 1, + [2636] = 6, + ACTIONS(285), 1, anon_sym_SLASH, - ACTIONS(168), 1, - anon_sym_LBRACK, ACTIONS(289), 1, - anon_sym_RBRACK, - ACTIONS(145), 2, + anon_sym_CARET, + STATE(25), 1, + sym_array_bracket_expression, + ACTIONS(283), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(287), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(147), 2, + ACTIONS(121), 10, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LBRACK, + anon_sym_in, + [2666] = 7, + ACTIONS(285), 1, + anon_sym_SLASH, + ACTIONS(289), 1, + anon_sym_CARET, + ACTIONS(291), 1, + anon_sym_PIPE, + STATE(25), 1, + sym_array_bracket_expression, + ACTIONS(283), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(170), 6, + ACTIONS(287), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(121), 9, + anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2662] = 9, - ACTIONS(149), 1, + anon_sym_LBRACK, + anon_sym_in, + [2698] = 10, + ACTIONS(137), 1, + anon_sym_SLASH, + ACTIONS(143), 1, anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_AMP, - ACTIONS(153), 1, + ACTIONS(145), 1, anon_sym_CARET, ACTIONS(155), 1, - anon_sym_SLASH, - ACTIONS(168), 1, + anon_sym_AMP, + ACTIONS(165), 1, anon_sym_LBRACK, - ACTIONS(291), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(145), 2, + STATE(25), 1, + sym_array_bracket_expression, + ACTIONS(133), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(147), 2, + ACTIONS(135), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(170), 6, + ACTIONS(163), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2697] = 3, - ACTIONS(287), 1, + [2736] = 5, + ACTIONS(285), 1, anon_sym_SLASH, - ACTIONS(285), 2, + STATE(25), 1, + sym_array_bracket_expression, + ACTIONS(283), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(133), 13, - anon_sym_LBRACK, + ACTIONS(287), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(121), 11, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -5897,216 +5936,156 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, + anon_sym_LBRACK, anon_sym_in, - [2720] = 5, - ACTIONS(287), 1, + [2764] = 8, + ACTIONS(285), 1, anon_sym_SLASH, - ACTIONS(293), 1, + ACTIONS(289), 1, anon_sym_CARET, + ACTIONS(291), 1, + anon_sym_PIPE, + ACTIONS(295), 1, + anon_sym_AMP, + STATE(25), 1, + sym_array_bracket_expression, ACTIONS(283), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(285), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(133), 10, - anon_sym_LBRACK, - anon_sym_PIPE, - anon_sym_AMP, + ACTIONS(287), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(121), 8, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, + anon_sym_LBRACK, anon_sym_in, - [2747] = 9, - ACTIONS(149), 1, - anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_AMP, - ACTIONS(153), 1, - anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_SLASH, - ACTIONS(168), 1, + [2798] = 10, + ACTIONS(161), 1, + anon_sym_in, + ACTIONS(165), 1, anon_sym_LBRACK, + ACTIONS(285), 1, + anon_sym_SLASH, + ACTIONS(289), 1, + anon_sym_CARET, + ACTIONS(291), 1, + anon_sym_PIPE, ACTIONS(295), 1, - anon_sym_RBRACK, - ACTIONS(145), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(147), 2, + anon_sym_AMP, + STATE(25), 1, + sym_array_bracket_expression, + ACTIONS(283), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(170), 6, + ACTIONS(287), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(297), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2782] = 9, - ACTIONS(149), 1, + [2836] = 10, + ACTIONS(137), 1, + anon_sym_SLASH, + ACTIONS(143), 1, anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_AMP, - ACTIONS(153), 1, + ACTIONS(145), 1, anon_sym_CARET, ACTIONS(155), 1, - anon_sym_SLASH, - ACTIONS(168), 1, + anon_sym_AMP, + ACTIONS(165), 1, anon_sym_LBRACK, - ACTIONS(297), 1, + ACTIONS(299), 1, anon_sym_RPAREN, - ACTIONS(145), 2, + STATE(25), 1, + sym_array_bracket_expression, + ACTIONS(133), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(147), 2, + ACTIONS(135), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(170), 6, + ACTIONS(163), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2817] = 9, - ACTIONS(166), 1, - anon_sym_in, - ACTIONS(168), 1, - anon_sym_LBRACK, - ACTIONS(287), 1, + [2874] = 10, + ACTIONS(137), 1, anon_sym_SLASH, - ACTIONS(293), 1, - anon_sym_CARET, - ACTIONS(299), 1, + ACTIONS(143), 1, anon_sym_PIPE, - ACTIONS(301), 1, - anon_sym_AMP, - ACTIONS(283), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(285), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(303), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [2852] = 9, - ACTIONS(168), 1, - anon_sym_LBRACK, - ACTIONS(176), 1, - anon_sym_in, - ACTIONS(287), 1, - anon_sym_SLASH, - ACTIONS(293), 1, + ACTIONS(145), 1, anon_sym_CARET, - ACTIONS(299), 1, - anon_sym_PIPE, - ACTIONS(301), 1, + ACTIONS(155), 1, anon_sym_AMP, - ACTIONS(283), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(285), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(303), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [2887] = 7, - ACTIONS(287), 1, - anon_sym_SLASH, - ACTIONS(293), 1, - anon_sym_CARET, - ACTIONS(299), 1, - anon_sym_PIPE, + ACTIONS(165), 1, + anon_sym_LBRACK, ACTIONS(301), 1, - anon_sym_AMP, - ACTIONS(283), 2, + anon_sym_RBRACK, + STATE(25), 1, + sym_array_bracket_expression, + ACTIONS(133), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(285), 2, + ACTIONS(135), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(133), 8, - anon_sym_LBRACK, + ACTIONS(163), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_in, - [2918] = 6, - ACTIONS(287), 1, + [2912] = 10, + ACTIONS(137), 1, anon_sym_SLASH, - ACTIONS(293), 1, - anon_sym_CARET, - ACTIONS(299), 1, - anon_sym_PIPE, - ACTIONS(283), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(285), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(133), 9, - anon_sym_LBRACK, - anon_sym_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_in, - [2947] = 9, - ACTIONS(149), 1, + ACTIONS(143), 1, anon_sym_PIPE, - ACTIONS(151), 1, - anon_sym_AMP, - ACTIONS(153), 1, + ACTIONS(145), 1, anon_sym_CARET, ACTIONS(155), 1, - anon_sym_SLASH, - ACTIONS(168), 1, + anon_sym_AMP, + ACTIONS(165), 1, anon_sym_LBRACK, - ACTIONS(305), 1, - anon_sym_SEMI, - ACTIONS(145), 2, + ACTIONS(303), 1, + anon_sym_COLON, + STATE(25), 1, + sym_array_bracket_expression, + ACTIONS(133), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(147), 2, + ACTIONS(135), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(170), 6, + ACTIONS(163), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2982] = 4, - ACTIONS(311), 1, + [2950] = 4, + ACTIONS(309), 1, anon_sym_reg, - STATE(97), 1, + STATE(94), 1, aux_sym__assign_left_side_repeat1, - ACTIONS(307), 3, + ACTIONS(305), 3, sym_identifier, anon_sym_state, anon_sym_gen, - ACTIONS(309), 10, + ACTIONS(307), 10, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -6117,457 +6096,493 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [3006] = 7, - ACTIONS(314), 1, + [2974] = 7, + ACTIONS(312), 1, anon_sym_DASH_GT, - ACTIONS(316), 1, + ACTIONS(314), 1, sym_identifier, - ACTIONS(318), 1, + ACTIONS(316), 1, anon_sym_COLON_COLON, - ACTIONS(320), 1, + ACTIONS(318), 1, anon_sym_LBRACE, STATE(119), 1, sym_declaration, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(151), 3, + STATE(126), 3, sym_global_identifier, sym_array_type, sym__type, - [3031] = 6, - ACTIONS(316), 1, + [2999] = 6, + ACTIONS(314), 1, sym_identifier, - ACTIONS(318), 1, + ACTIONS(316), 1, anon_sym_COLON_COLON, - ACTIONS(322), 1, + ACTIONS(320), 1, anon_sym_LBRACE, - STATE(133), 1, + STATE(134), 1, sym_declaration, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(151), 3, + STATE(126), 3, sym_global_identifier, sym_array_type, sym__type, - [3053] = 6, - ACTIONS(316), 1, + [3021] = 6, + ACTIONS(314), 1, sym_identifier, - ACTIONS(318), 1, + ACTIONS(316), 1, anon_sym_COLON_COLON, - ACTIONS(324), 1, + ACTIONS(322), 1, anon_sym_LBRACE, - STATE(134), 1, + STATE(133), 1, sym_declaration, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(151), 3, + STATE(126), 3, sym_global_identifier, sym_array_type, sym__type, - [3075] = 6, - ACTIONS(316), 1, + [3043] = 6, + ACTIONS(314), 1, sym_identifier, - ACTIONS(318), 1, + ACTIONS(316), 1, anon_sym_COLON_COLON, - ACTIONS(326), 1, + ACTIONS(324), 1, anon_sym_LBRACE, - STATE(125), 1, + STATE(129), 1, sym_declaration, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(151), 3, + STATE(126), 3, sym_global_identifier, sym_array_type, sym__type, - [3097] = 5, - ACTIONS(316), 1, + [3065] = 5, + ACTIONS(314), 1, sym_identifier, - ACTIONS(318), 1, + ACTIONS(316), 1, anon_sym_COLON_COLON, - STATE(156), 1, + STATE(124), 1, sym_declaration, - ACTIONS(328), 2, + ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(146), 3, + STATE(126), 3, sym_global_identifier, sym_array_type, sym__type, - [3116] = 5, - ACTIONS(316), 1, + [3084] = 5, + ACTIONS(314), 1, sym_identifier, - ACTIONS(318), 1, + ACTIONS(316), 1, anon_sym_COLON_COLON, - STATE(126), 1, + STATE(152), 1, sym_declaration, - ACTIONS(13), 2, + ACTIONS(326), 2, anon_sym_state, anon_sym_gen, - STATE(151), 3, + STATE(131), 3, sym_global_identifier, sym_array_type, sym__type, - [3135] = 2, - ACTIONS(332), 1, + [3103] = 3, + ACTIONS(330), 1, anon_sym_SQUOTE, - ACTIONS(330), 5, + STATE(103), 1, + sym_latency_specifier, + ACTIONS(328), 5, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3146] = 2, - ACTIONS(336), 1, + [3117] = 3, + ACTIONS(330), 1, anon_sym_SQUOTE, - ACTIONS(334), 5, + STATE(104), 1, + sym_latency_specifier, + ACTIONS(332), 5, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3157] = 3, - ACTIONS(318), 1, + [3131] = 1, + ACTIONS(334), 6, + anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_SEMI, + [3140] = 1, + ACTIONS(336), 6, + anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_SEMI, + [3149] = 3, + ACTIONS(316), 1, anon_sym_COLON_COLON, ACTIONS(338), 1, sym_identifier, - STATE(139), 3, + STATE(130), 3, sym_global_identifier, sym_array_type, sym__type, - [3169] = 3, - ACTIONS(318), 1, + [3161] = 3, + ACTIONS(316), 1, anon_sym_COLON_COLON, ACTIONS(338), 1, sym_identifier, - STATE(143), 3, + STATE(127), 3, sym_global_identifier, sym_array_type, sym__type, - [3181] = 3, + [3173] = 3, + ACTIONS(19), 1, + anon_sym_LBRACE, ACTIONS(340), 1, + anon_sym_if, + STATE(53), 2, + sym_block, + sym_if_statement, + [3184] = 3, + ACTIONS(342), 1, + anon_sym_COMMA, + STATE(117), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(344), 2, + anon_sym_LBRACE, + anon_sym_EQ, + [3195] = 3, + ACTIONS(342), 1, + anon_sym_COMMA, + STATE(114), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(344), 2, + anon_sym_LBRACE, + anon_sym_EQ, + [3206] = 3, + ACTIONS(346), 1, anon_sym_COLON_COLON, - STATE(108), 1, + STATE(110), 1, aux_sym_global_identifier_repeat1, ACTIONS(83), 2, sym_identifier, anon_sym_LBRACK, - [3192] = 3, - ACTIONS(343), 1, + [3217] = 3, + ACTIONS(349), 1, anon_sym_COLON_COLON, - STATE(123), 1, + STATE(110), 1, aux_sym_global_identifier_repeat1, - ACTIONS(103), 2, + ACTIONS(89), 2, sym_identifier, anon_sym_LBRACK, - [3203] = 3, + [3228] = 3, ACTIONS(5), 1, anon_sym_module, - ACTIONS(345), 1, - ts_builtin_sym_end, - STATE(112), 2, - sym_module, - aux_sym_source_file_repeat1, - [3214] = 4, - ACTIONS(347), 1, - anon_sym_COLON, - ACTIONS(349), 1, - anon_sym_LBRACE, - STATE(144), 1, - sym_interface_ports, - STATE(148), 1, - sym_block, - [3227] = 3, ACTIONS(351), 1, ts_builtin_sym_end, - ACTIONS(353), 1, - anon_sym_module, - STATE(112), 2, + STATE(122), 2, sym_module, aux_sym_source_file_repeat1, - [3238] = 3, - ACTIONS(356), 1, - anon_sym_COMMA, - STATE(113), 1, - aux_sym__assign_left_side_repeat2, - ACTIONS(359), 2, - anon_sym_LBRACE, - anon_sym_EQ, - [3249] = 3, - ACTIONS(361), 1, - anon_sym_COMMA, - STATE(113), 1, - aux_sym__assign_left_side_repeat2, - ACTIONS(363), 2, - anon_sym_LBRACE, - anon_sym_EQ, - [3260] = 3, - ACTIONS(365), 1, - anon_sym_COMMA, - STATE(115), 1, - aux_sym_interface_ports_repeat1, - ACTIONS(368), 2, - anon_sym_DASH_GT, - anon_sym_LBRACE, - [3271] = 4, - ACTIONS(370), 1, + [3239] = 4, + ACTIONS(353), 1, anon_sym_COMMA, - ACTIONS(372), 1, + ACTIONS(355), 1, anon_sym_DASH_GT, - ACTIONS(374), 1, + ACTIONS(357), 1, anon_sym_LBRACE, - STATE(115), 1, + STATE(121), 1, aux_sym_interface_ports_repeat1, - [3284] = 3, - ACTIONS(361), 1, + [3252] = 3, + ACTIONS(359), 1, anon_sym_COMMA, STATE(114), 1, aux_sym__assign_left_side_repeat2, - ACTIONS(376), 2, + ACTIONS(362), 2, anon_sym_LBRACE, anon_sym_EQ, - [3295] = 4, - ACTIONS(361), 1, + [3263] = 4, + ACTIONS(342), 1, anon_sym_COMMA, - ACTIONS(378), 1, + ACTIONS(364), 1, anon_sym_EQ, - ACTIONS(380), 1, + ACTIONS(366), 1, anon_sym_SEMI, - STATE(121), 1, - aux_sym__assign_left_side_repeat2, - [3308] = 4, - ACTIONS(370), 1, - anon_sym_COMMA, - ACTIONS(382), 1, - anon_sym_DASH_GT, - ACTIONS(384), 1, - anon_sym_LBRACE, - STATE(116), 1, - aux_sym_interface_ports_repeat1, - [3321] = 3, - ACTIONS(19), 1, - anon_sym_LBRACE, - ACTIONS(386), 1, - anon_sym_if, - STATE(76), 2, - sym_block, - sym_if_statement, - [3332] = 3, - ACTIONS(361), 1, - anon_sym_COMMA, - STATE(113), 1, + STATE(109), 1, aux_sym__assign_left_side_repeat2, - ACTIONS(376), 2, - anon_sym_LBRACE, - anon_sym_EQ, - [3343] = 3, - ACTIONS(343), 1, + [3276] = 3, + ACTIONS(349), 1, anon_sym_COLON_COLON, - STATE(108), 1, + STATE(118), 1, aux_sym_global_identifier_repeat1, - ACTIONS(89), 2, + ACTIONS(103), 2, sym_identifier, anon_sym_LBRACK, - [3354] = 3, - ACTIONS(343), 1, + [3287] = 3, + ACTIONS(342), 1, + anon_sym_COMMA, + STATE(114), 1, + aux_sym__assign_left_side_repeat2, + ACTIONS(368), 2, + anon_sym_LBRACE, + anon_sym_EQ, + [3298] = 3, + ACTIONS(349), 1, anon_sym_COLON_COLON, - STATE(108), 1, + STATE(110), 1, aux_sym_global_identifier_repeat1, - ACTIONS(99), 2, + ACTIONS(93), 2, sym_identifier, anon_sym_LBRACK, - [3365] = 3, - ACTIONS(343), 1, + [3309] = 4, + ACTIONS(353), 1, + anon_sym_COMMA, + ACTIONS(370), 1, + anon_sym_DASH_GT, + ACTIONS(372), 1, + anon_sym_LBRACE, + STATE(113), 1, + aux_sym_interface_ports_repeat1, + [3322] = 3, + ACTIONS(349), 1, anon_sym_COLON_COLON, - STATE(122), 1, + STATE(111), 1, aux_sym_global_identifier_repeat1, - ACTIONS(99), 2, + ACTIONS(93), 2, sym_identifier, anon_sym_LBRACK, - [3376] = 3, - ACTIONS(370), 1, + [3333] = 3, + ACTIONS(374), 1, anon_sym_COMMA, - ACTIONS(388), 1, - anon_sym_LBRACE, - STATE(132), 1, + STATE(121), 1, aux_sym_interface_ports_repeat1, - [3386] = 1, - ACTIONS(368), 3, - anon_sym_COMMA, + ACTIONS(377), 2, anon_sym_DASH_GT, anon_sym_LBRACE, - [3392] = 1, - ACTIONS(359), 3, + [3344] = 3, + ACTIONS(379), 1, + ts_builtin_sym_end, + ACTIONS(381), 1, + anon_sym_module, + STATE(122), 2, + sym_module, + aux_sym_source_file_repeat1, + [3355] = 4, + ACTIONS(384), 1, + anon_sym_COLON, + ACTIONS(386), 1, + anon_sym_LBRACE, + STATE(144), 1, + sym_interface_ports, + STATE(145), 1, + sym_block, + [3368] = 1, + ACTIONS(377), 3, anon_sym_COMMA, + anon_sym_DASH_GT, anon_sym_LBRACE, - anon_sym_EQ, - [3398] = 1, - ACTIONS(83), 3, + [3374] = 3, + ACTIONS(332), 1, + anon_sym_in, + ACTIONS(388), 1, + anon_sym_SQUOTE, + STATE(104), 1, + sym_latency_specifier, + [3384] = 3, + ACTIONS(390), 1, sym_identifier, - anon_sym_COLON_COLON, + ACTIONS(392), 1, anon_sym_LBRACK, + STATE(147), 1, + sym_array_bracket_expression, + [3394] = 3, + ACTIONS(392), 1, + anon_sym_LBRACK, + ACTIONS(394), 1, + sym_identifier, + STATE(147), 1, + sym_array_bracket_expression, [3404] = 3, - ACTIONS(370), 1, + ACTIONS(353), 1, anon_sym_COMMA, - ACTIONS(390), 1, + ACTIONS(396), 1, anon_sym_LBRACE, - STATE(115), 1, + STATE(121), 1, aux_sym_interface_ports_repeat1, [3414] = 3, + ACTIONS(353), 1, + anon_sym_COMMA, + ACTIONS(398), 1, + anon_sym_LBRACE, + STATE(128), 1, + aux_sym_interface_ports_repeat1, + [3424] = 3, + ACTIONS(392), 1, + anon_sym_LBRACK, + ACTIONS(400), 1, + sym_identifier, + STATE(147), 1, + sym_array_bracket_expression, + [3434] = 3, ACTIONS(392), 1, + anon_sym_LBRACK, + ACTIONS(402), 1, + sym_identifier, + STATE(147), 1, + sym_array_bracket_expression, + [3444] = 3, + ACTIONS(404), 1, anon_sym_COMMA, - ACTIONS(394), 1, + ACTIONS(407), 1, anon_sym_RPAREN, - STATE(135), 1, + STATE(132), 1, aux_sym_func_call_repeat1, - [3424] = 1, - ACTIONS(396), 3, + [3454] = 3, + ACTIONS(353), 1, anon_sym_COMMA, + ACTIONS(409), 1, anon_sym_LBRACE, - anon_sym_EQ, - [3430] = 3, - ACTIONS(370), 1, + STATE(142), 1, + aux_sym_interface_ports_repeat1, + [3464] = 3, + ACTIONS(353), 1, anon_sym_COMMA, - ACTIONS(398), 1, + ACTIONS(411), 1, anon_sym_LBRACE, - STATE(115), 1, + STATE(138), 1, aux_sym_interface_ports_repeat1, - [3440] = 3, - ACTIONS(370), 1, + [3474] = 3, + ACTIONS(328), 1, + anon_sym_in, + ACTIONS(388), 1, + anon_sym_SQUOTE, + STATE(103), 1, + sym_latency_specifier, + [3484] = 1, + ACTIONS(362), 3, anon_sym_COMMA, - ACTIONS(400), 1, anon_sym_LBRACE, - STATE(137), 1, - aux_sym_interface_ports_repeat1, - [3450] = 3, - ACTIONS(370), 1, + anon_sym_EQ, + [3490] = 1, + ACTIONS(83), 3, + sym_identifier, + anon_sym_COLON_COLON, + anon_sym_LBRACK, + [3496] = 3, + ACTIONS(353), 1, anon_sym_COMMA, - ACTIONS(402), 1, + ACTIONS(413), 1, anon_sym_LBRACE, - STATE(129), 1, + STATE(121), 1, aux_sym_interface_ports_repeat1, - [3460] = 3, - ACTIONS(404), 1, + [3506] = 3, + ACTIONS(415), 1, anon_sym_COMMA, - ACTIONS(407), 1, + ACTIONS(417), 1, anon_sym_RPAREN, - STATE(135), 1, + STATE(132), 1, aux_sym_func_call_repeat1, - [3470] = 3, - ACTIONS(361), 1, + [3516] = 1, + ACTIONS(419), 3, anon_sym_COMMA, - ACTIONS(378), 1, anon_sym_LBRACE, - STATE(121), 1, + anon_sym_EQ, + [3522] = 3, + ACTIONS(342), 1, + anon_sym_COMMA, + ACTIONS(364), 1, + anon_sym_LBRACE, + STATE(109), 1, aux_sym__assign_left_side_repeat2, - [3480] = 3, - ACTIONS(370), 1, + [3532] = 3, + ACTIONS(353), 1, anon_sym_COMMA, - ACTIONS(409), 1, + ACTIONS(421), 1, anon_sym_LBRACE, - STATE(115), 1, + STATE(121), 1, aux_sym_interface_ports_repeat1, - [3490] = 1, - ACTIONS(186), 2, - ts_builtin_sym_end, - anon_sym_module, - [3495] = 2, - ACTIONS(411), 1, - sym_identifier, - ACTIONS(413), 1, - anon_sym_LBRACK, - [3502] = 2, - ACTIONS(19), 1, + [3542] = 2, + ACTIONS(423), 1, anon_sym_LBRACE, - STATE(74), 1, + STATE(38), 1, sym_block, - [3509] = 1, - ACTIONS(415), 2, - sym_identifier, - anon_sym_LBRACK, - [3514] = 1, - ACTIONS(194), 2, - ts_builtin_sym_end, - anon_sym_module, - [3519] = 2, - ACTIONS(413), 1, - anon_sym_LBRACK, - ACTIONS(417), 1, - sym_identifier, - [3526] = 2, - ACTIONS(349), 1, + [3549] = 2, + ACTIONS(386), 1, anon_sym_LBRACE, - STATE(145), 1, + STATE(148), 1, sym_block, - [3533] = 1, - ACTIONS(419), 2, + [3556] = 1, + ACTIONS(425), 2, ts_builtin_sym_end, anon_sym_module, - [3538] = 2, - ACTIONS(413), 1, - anon_sym_LBRACK, - ACTIONS(421), 1, + [3561] = 1, + ACTIONS(188), 2, + ts_builtin_sym_end, + anon_sym_module, + [3566] = 1, + ACTIONS(427), 2, sym_identifier, - [3545] = 2, - ACTIONS(423), 1, + anon_sym_LBRACK, + [3571] = 1, + ACTIONS(429), 2, + ts_builtin_sym_end, + anon_sym_module, + [3576] = 2, + ACTIONS(19), 1, anon_sym_LBRACE, - STATE(38), 1, + STATE(66), 1, sym_block, - [3552] = 1, - ACTIONS(425), 2, + [3583] = 1, + ACTIONS(204), 2, ts_builtin_sym_end, anon_sym_module, - [3557] = 2, - ACTIONS(334), 1, - anon_sym_in, - ACTIONS(427), 1, - anon_sym_SQUOTE, - [3564] = 2, - ACTIONS(330), 1, - anon_sym_in, - ACTIONS(429), 1, - anon_sym_SQUOTE, - [3571] = 2, - ACTIONS(413), 1, + [3588] = 1, + ACTIONS(159), 2, + sym_identifier, anon_sym_LBRACK, + [3593] = 1, ACTIONS(431), 1, - sym_identifier, - [3578] = 1, + anon_sym_in, + [3597] = 1, ACTIONS(433), 1, - sym_identifier, - [3582] = 1, + anon_sym_EQ, + [3601] = 1, ACTIONS(435), 1, sym_identifier, - [3586] = 1, + [3605] = 1, ACTIONS(437), 1, - anon_sym_EQ, - [3590] = 1, - ACTIONS(439), 1, sym_identifier, - [3594] = 1, + [3609] = 1, + ACTIONS(439), 1, + anon_sym_SEMI, + [3613] = 1, ACTIONS(441), 1, - anon_sym_in, - [3598] = 1, + sym_identifier, + [3617] = 1, ACTIONS(443), 1, sym_identifier, - [3602] = 1, + [3621] = 1, ACTIONS(445), 1, ts_builtin_sym_end, - [3606] = 1, + [3625] = 1, ACTIONS(447), 1, sym_identifier, - [3610] = 1, + [3629] = 1, ACTIONS(449), 1, sym_identifier, - [3614] = 1, + [3633] = 1, ACTIONS(451), 1, sym_identifier, - [3618] = 1, - ACTIONS(453), 1, - anon_sym_SEMI, }; static const uint32_t ts_small_parse_table_map[] = { @@ -6575,377 +6590,376 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(10)] = 59, [SMALL_STATE(11)] = 95, [SMALL_STATE(12)] = 131, - [SMALL_STATE(13)] = 187, - [SMALL_STATE(14)] = 223, + [SMALL_STATE(13)] = 167, + [SMALL_STATE(14)] = 203, [SMALL_STATE(15)] = 259, [SMALL_STATE(16)] = 295, [SMALL_STATE(17)] = 326, [SMALL_STATE(18)] = 379, [SMALL_STATE(19)] = 432, [SMALL_STATE(20)] = 464, - [SMALL_STATE(21)] = 493, - [SMALL_STATE(22)] = 522, - [SMALL_STATE(23)] = 551, - [SMALL_STATE(24)] = 598, - [SMALL_STATE(25)] = 627, - [SMALL_STATE(26)] = 656, - [SMALL_STATE(27)] = 685, - [SMALL_STATE(28)] = 714, - [SMALL_STATE(29)] = 761, - [SMALL_STATE(30)] = 799, + [SMALL_STATE(21)] = 496, + [SMALL_STATE(22)] = 528, + [SMALL_STATE(23)] = 557, + [SMALL_STATE(24)] = 586, + [SMALL_STATE(25)] = 621, + [SMALL_STATE(26)] = 650, + [SMALL_STATE(27)] = 689, + [SMALL_STATE(28)] = 718, + [SMALL_STATE(29)] = 755, + [SMALL_STATE(30)] = 784, [SMALL_STATE(31)] = 831, - [SMALL_STATE(32)] = 867, - [SMALL_STATE(33)] = 901, - [SMALL_STATE(34)] = 931, - [SMALL_STATE(35)] = 961, - [SMALL_STATE(36)] = 1000, - [SMALL_STATE(37)] = 1037, - [SMALL_STATE(38)] = 1076, - [SMALL_STATE(39)] = 1103, - [SMALL_STATE(40)] = 1128, - [SMALL_STATE(41)] = 1165, - [SMALL_STATE(42)] = 1190, - [SMALL_STATE(43)] = 1224, - [SMALL_STATE(44)] = 1258, - [SMALL_STATE(45)] = 1286, - [SMALL_STATE(46)] = 1320, - [SMALL_STATE(47)] = 1348, - [SMALL_STATE(48)] = 1382, - [SMALL_STATE(49)] = 1410, - [SMALL_STATE(50)] = 1438, - [SMALL_STATE(51)] = 1472, - [SMALL_STATE(52)] = 1514, - [SMALL_STATE(53)] = 1548, - [SMALL_STATE(54)] = 1582, - [SMALL_STATE(55)] = 1606, - [SMALL_STATE(56)] = 1640, - [SMALL_STATE(57)] = 1674, - [SMALL_STATE(58)] = 1708, - [SMALL_STATE(59)] = 1742, - [SMALL_STATE(60)] = 1776, - [SMALL_STATE(61)] = 1810, - [SMALL_STATE(62)] = 1844, - [SMALL_STATE(63)] = 1878, - [SMALL_STATE(64)] = 1912, - [SMALL_STATE(65)] = 1946, - [SMALL_STATE(66)] = 1970, - [SMALL_STATE(67)] = 2004, - [SMALL_STATE(68)] = 2038, - [SMALL_STATE(69)] = 2072, - [SMALL_STATE(70)] = 2106, - [SMALL_STATE(71)] = 2130, - [SMALL_STATE(72)] = 2158, - [SMALL_STATE(73)] = 2192, - [SMALL_STATE(74)] = 2236, - [SMALL_STATE(75)] = 2260, - [SMALL_STATE(76)] = 2294, - [SMALL_STATE(77)] = 2318, - [SMALL_STATE(78)] = 2352, - [SMALL_STATE(79)] = 2389, - [SMALL_STATE(80)] = 2430, - [SMALL_STATE(81)] = 2467, - [SMALL_STATE(82)] = 2508, - [SMALL_STATE(83)] = 2531, - [SMALL_STATE(84)] = 2567, - [SMALL_STATE(85)] = 2602, - [SMALL_STATE(86)] = 2627, - [SMALL_STATE(87)] = 2662, - [SMALL_STATE(88)] = 2697, - [SMALL_STATE(89)] = 2720, - [SMALL_STATE(90)] = 2747, - [SMALL_STATE(91)] = 2782, - [SMALL_STATE(92)] = 2817, - [SMALL_STATE(93)] = 2852, - [SMALL_STATE(94)] = 2887, - [SMALL_STATE(95)] = 2918, - [SMALL_STATE(96)] = 2947, - [SMALL_STATE(97)] = 2982, - [SMALL_STATE(98)] = 3006, - [SMALL_STATE(99)] = 3031, - [SMALL_STATE(100)] = 3053, - [SMALL_STATE(101)] = 3075, - [SMALL_STATE(102)] = 3097, - [SMALL_STATE(103)] = 3116, - [SMALL_STATE(104)] = 3135, - [SMALL_STATE(105)] = 3146, - [SMALL_STATE(106)] = 3157, - [SMALL_STATE(107)] = 3169, - [SMALL_STATE(108)] = 3181, - [SMALL_STATE(109)] = 3192, - [SMALL_STATE(110)] = 3203, - [SMALL_STATE(111)] = 3214, - [SMALL_STATE(112)] = 3227, - [SMALL_STATE(113)] = 3238, - [SMALL_STATE(114)] = 3249, - [SMALL_STATE(115)] = 3260, - [SMALL_STATE(116)] = 3271, - [SMALL_STATE(117)] = 3284, - [SMALL_STATE(118)] = 3295, - [SMALL_STATE(119)] = 3308, - [SMALL_STATE(120)] = 3321, - [SMALL_STATE(121)] = 3332, - [SMALL_STATE(122)] = 3343, - [SMALL_STATE(123)] = 3354, - [SMALL_STATE(124)] = 3365, - [SMALL_STATE(125)] = 3376, - [SMALL_STATE(126)] = 3386, - [SMALL_STATE(127)] = 3392, - [SMALL_STATE(128)] = 3398, - [SMALL_STATE(129)] = 3404, - [SMALL_STATE(130)] = 3414, - [SMALL_STATE(131)] = 3424, - [SMALL_STATE(132)] = 3430, - [SMALL_STATE(133)] = 3440, - [SMALL_STATE(134)] = 3450, - [SMALL_STATE(135)] = 3460, - [SMALL_STATE(136)] = 3470, - [SMALL_STATE(137)] = 3480, - [SMALL_STATE(138)] = 3490, - [SMALL_STATE(139)] = 3495, - [SMALL_STATE(140)] = 3502, - [SMALL_STATE(141)] = 3509, - [SMALL_STATE(142)] = 3514, - [SMALL_STATE(143)] = 3519, - [SMALL_STATE(144)] = 3526, - [SMALL_STATE(145)] = 3533, - [SMALL_STATE(146)] = 3538, - [SMALL_STATE(147)] = 3545, - [SMALL_STATE(148)] = 3552, - [SMALL_STATE(149)] = 3557, - [SMALL_STATE(150)] = 3564, - [SMALL_STATE(151)] = 3571, - [SMALL_STATE(152)] = 3578, - [SMALL_STATE(153)] = 3582, - [SMALL_STATE(154)] = 3586, - [SMALL_STATE(155)] = 3590, - [SMALL_STATE(156)] = 3594, - [SMALL_STATE(157)] = 3598, - [SMALL_STATE(158)] = 3602, - [SMALL_STATE(159)] = 3606, - [SMALL_STATE(160)] = 3610, - [SMALL_STATE(161)] = 3614, - [SMALL_STATE(162)] = 3618, + [SMALL_STATE(32)] = 872, + [SMALL_STATE(33)] = 905, + [SMALL_STATE(34)] = 934, + [SMALL_STATE(35)] = 981, + [SMALL_STATE(36)] = 1023, + [SMALL_STATE(37)] = 1053, + [SMALL_STATE(38)] = 1090, + [SMALL_STATE(39)] = 1117, + [SMALL_STATE(40)] = 1142, + [SMALL_STATE(41)] = 1179, + [SMALL_STATE(42)] = 1224, + [SMALL_STATE(43)] = 1271, + [SMALL_STATE(44)] = 1296, + [SMALL_STATE(45)] = 1330, + [SMALL_STATE(46)] = 1364, + [SMALL_STATE(47)] = 1398, + [SMALL_STATE(48)] = 1432, + [SMALL_STATE(49)] = 1466, + [SMALL_STATE(50)] = 1494, + [SMALL_STATE(51)] = 1522, + [SMALL_STATE(52)] = 1556, + [SMALL_STATE(53)] = 1596, + [SMALL_STATE(54)] = 1620, + [SMALL_STATE(55)] = 1664, + [SMALL_STATE(56)] = 1692, + [SMALL_STATE(57)] = 1720, + [SMALL_STATE(58)] = 1754, + [SMALL_STATE(59)] = 1788, + [SMALL_STATE(60)] = 1822, + [SMALL_STATE(61)] = 1856, + [SMALL_STATE(62)] = 1890, + [SMALL_STATE(63)] = 1924, + [SMALL_STATE(64)] = 1958, + [SMALL_STATE(65)] = 1992, + [SMALL_STATE(66)] = 2016, + [SMALL_STATE(67)] = 2040, + [SMALL_STATE(68)] = 2080, + [SMALL_STATE(69)] = 2114, + [SMALL_STATE(70)] = 2158, + [SMALL_STATE(71)] = 2186, + [SMALL_STATE(72)] = 2210, + [SMALL_STATE(73)] = 2244, + [SMALL_STATE(74)] = 2278, + [SMALL_STATE(75)] = 2302, + [SMALL_STATE(76)] = 2336, + [SMALL_STATE(77)] = 2370, + [SMALL_STATE(78)] = 2404, + [SMALL_STATE(79)] = 2438, + [SMALL_STATE(80)] = 2472, + [SMALL_STATE(81)] = 2511, + [SMALL_STATE(82)] = 2534, + [SMALL_STATE(83)] = 2572, + [SMALL_STATE(84)] = 2610, + [SMALL_STATE(85)] = 2636, + [SMALL_STATE(86)] = 2666, + [SMALL_STATE(87)] = 2698, + [SMALL_STATE(88)] = 2736, + [SMALL_STATE(89)] = 2764, + [SMALL_STATE(90)] = 2798, + [SMALL_STATE(91)] = 2836, + [SMALL_STATE(92)] = 2874, + [SMALL_STATE(93)] = 2912, + [SMALL_STATE(94)] = 2950, + [SMALL_STATE(95)] = 2974, + [SMALL_STATE(96)] = 2999, + [SMALL_STATE(97)] = 3021, + [SMALL_STATE(98)] = 3043, + [SMALL_STATE(99)] = 3065, + [SMALL_STATE(100)] = 3084, + [SMALL_STATE(101)] = 3103, + [SMALL_STATE(102)] = 3117, + [SMALL_STATE(103)] = 3131, + [SMALL_STATE(104)] = 3140, + [SMALL_STATE(105)] = 3149, + [SMALL_STATE(106)] = 3161, + [SMALL_STATE(107)] = 3173, + [SMALL_STATE(108)] = 3184, + [SMALL_STATE(109)] = 3195, + [SMALL_STATE(110)] = 3206, + [SMALL_STATE(111)] = 3217, + [SMALL_STATE(112)] = 3228, + [SMALL_STATE(113)] = 3239, + [SMALL_STATE(114)] = 3252, + [SMALL_STATE(115)] = 3263, + [SMALL_STATE(116)] = 3276, + [SMALL_STATE(117)] = 3287, + [SMALL_STATE(118)] = 3298, + [SMALL_STATE(119)] = 3309, + [SMALL_STATE(120)] = 3322, + [SMALL_STATE(121)] = 3333, + [SMALL_STATE(122)] = 3344, + [SMALL_STATE(123)] = 3355, + [SMALL_STATE(124)] = 3368, + [SMALL_STATE(125)] = 3374, + [SMALL_STATE(126)] = 3384, + [SMALL_STATE(127)] = 3394, + [SMALL_STATE(128)] = 3404, + [SMALL_STATE(129)] = 3414, + [SMALL_STATE(130)] = 3424, + [SMALL_STATE(131)] = 3434, + [SMALL_STATE(132)] = 3444, + [SMALL_STATE(133)] = 3454, + [SMALL_STATE(134)] = 3464, + [SMALL_STATE(135)] = 3474, + [SMALL_STATE(136)] = 3484, + [SMALL_STATE(137)] = 3490, + [SMALL_STATE(138)] = 3496, + [SMALL_STATE(139)] = 3506, + [SMALL_STATE(140)] = 3516, + [SMALL_STATE(141)] = 3522, + [SMALL_STATE(142)] = 3532, + [SMALL_STATE(143)] = 3542, + [SMALL_STATE(144)] = 3549, + [SMALL_STATE(145)] = 3556, + [SMALL_STATE(146)] = 3561, + [SMALL_STATE(147)] = 3566, + [SMALL_STATE(148)] = 3571, + [SMALL_STATE(149)] = 3576, + [SMALL_STATE(150)] = 3583, + [SMALL_STATE(151)] = 3588, + [SMALL_STATE(152)] = 3593, + [SMALL_STATE(153)] = 3597, + [SMALL_STATE(154)] = 3601, + [SMALL_STATE(155)] = 3605, + [SMALL_STATE(156)] = 3609, + [SMALL_STATE(157)] = 3613, + [SMALL_STATE(158)] = 3617, + [SMALL_STATE(159)] = 3621, + [SMALL_STATE(160)] = 3625, + [SMALL_STATE(161)] = 3629, + [SMALL_STATE(162)] = 3633, }; 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}}, REDUCE(sym_source_file, 0), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(106), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(30), [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(102), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), [37] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(15), - [40] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(73), - [43] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(152), + [40] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(42), + [43] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(154), [46] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(106), - [49] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(77), - [52] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(72), + [49] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(68), + [52] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(51), [55] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(5), [58] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), [60] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(18), - [63] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(23), + [63] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(30), [66] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(9), - [69] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(102), - [72] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), - [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), - [76] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [69] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(100), + [72] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), + [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), + [76] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), - [80] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(153), + [80] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(155), [83] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), [85] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 3), - [87] = {.entry = {.count = 1, .reusable = false}}, SHIFT(153), + [87] = {.entry = {.count = 1, .reusable = false}}, SHIFT(155), [89] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 3), - [91] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [93] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), - [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28), - [97] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2), - [99] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2), + [91] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2), + [93] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2), + [95] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [97] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), + [99] = {.entry = {.count = 1, .reusable = false}}, SHIFT(34), [101] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1), [103] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1), - [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [107] = {.entry = {.count = 1, .reusable = false}}, SHIFT(97), - [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [107] = {.entry = {.count = 1, .reusable = false}}, SHIFT(94), + [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), [111] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), [113] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), [115] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40), - [117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 3, .production_id = 13), - [119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 3, .production_id = 13), - [121] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 4, .production_id = 20), - [123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 4, .production_id = 20), - [125] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 5, .production_id = 27), - [127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 5, .production_id = 27), - [129] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 4, .production_id = 21), - [131] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 4, .production_id = 21), - [133] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 14), - [135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 14), - [137] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 7), - [139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 7), - [141] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 11), - [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 11), - [145] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), - [147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), - [149] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60), - [151] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61), - [153] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), - [155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), - [159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type, 1), - [161] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), REDUCE(sym__type, 1), - [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__maybe_global_identifier, 1), - [166] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 5, .production_id = 22), - [168] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57), - [170] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), - [172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), - [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 4, .production_id = 16), - [178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 12), - [180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 12), - [182] = {.entry = {.count = 1, .reusable = false}}, SHIFT(120), - [184] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), - [186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3), - [194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), - [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [206] = {.entry = {.count = 1, .reusable = false}}, SHIFT(159), - [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [210] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(159), - [213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [217] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12), - [219] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assign_left_side, 2), - [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [245] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), - [247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), - [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), - [257] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assign_left_side, 1), - [259] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 1), - [261] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5, .production_id = 25), - [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5, .production_id = 25), - [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [267] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 24), - [269] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 24), - [271] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat2, 3), - [273] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), - [275] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), - [277] = {.entry = {.count = 1, .reusable = false}}, SHIFT(21), - [279] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 26), - [281] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), - [283] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69), - [285] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), - [287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [289] = {.entry = {.count = 1, .reusable = false}}, SHIFT(141), - [291] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 3, .production_id = 29), - [293] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), - [295] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24), - [297] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), - [299] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), - [301] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), - [303] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), - [305] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 15), - [307] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), - [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), - [311] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), SHIFT_REPEAT(97), - [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [316] = {.entry = {.count = 1, .reusable = false}}, SHIFT(109), - [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), - [320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 1), - [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 2), - [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2), - [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 6), - [328] = {.entry = {.count = 1, .reusable = false}}, SHIFT(107), - [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 5), - [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 9), - [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [340] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(160), - [343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), - [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), - [353] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(155), - [356] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), SHIFT_REPEAT(12), - [359] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), - [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [363] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 3), - [365] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_interface_ports_repeat1, 2), SHIFT_REPEAT(103), - [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_interface_ports_repeat1, 2), - [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 6), - [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 2), - [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 1), - [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_statement, 1), - [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 2), - [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 5, .production_id = 19), - [390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 8), - [392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 3), - [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 6, .production_id = 23), - [400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 10), - [402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 4), - [404] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 28), SHIFT_REPEAT(53), - [407] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 28), - [409] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 5, .production_id = 18), - [411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [415] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 4, .production_id = 17), - [417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), - [419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 3), - [421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), + [117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 8), + [119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 8), + [121] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 16), + [123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 16), + [125] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 3, .production_id = 15), + [127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 3, .production_id = 15), + [129] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 13), + [131] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 13), + [133] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), + [135] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), + [137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [139] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 6), + [141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 6), + [143] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60), + [145] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), + [147] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 4, .production_id = 21), + [149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 4, .production_id = 21), + [151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 5, .production_id = 26), + [153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 5, .production_id = 26), + [155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61), + [157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 13), + [159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 13), + [161] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 13), + [163] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), + [165] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), + [167] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), + [169] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type, 1), + [171] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__maybe_global_identifier, 1), + [173] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), REDUCE(sym__type, 1), + [176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 14), + [182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 14), + [184] = {.entry = {.count = 1, .reusable = false}}, SHIFT(107), + [186] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3), + [188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [194] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), + [196] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assign_left_side, 2), + [198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assign_left_side, 1), + [200] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 1), + [202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), + [204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), + [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [222] = {.entry = {.count = 1, .reusable = false}}, SHIFT(160), + [224] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(160), + [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [229] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat2, 3), + [231] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 23), + [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 23), + [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [251] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), + [253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), + [255] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5, .production_id = 24), + [257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5, .production_id = 24), + [259] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), + [261] = {.entry = {.count = 1, .reusable = false}}, SHIFT(48), + [263] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), + [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [277] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 25), + [279] = {.entry = {.count = 1, .reusable = false}}, SHIFT(151), + [281] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 17), + [283] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), + [285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [287] = {.entry = {.count = 1, .reusable = false}}, SHIFT(45), + [289] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), + [291] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), + [293] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 3, .production_id = 28), + [295] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), + [297] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), + [299] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), + [301] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), + [303] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57), + [305] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), + [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), + [309] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), SHIFT_REPEAT(94), + [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [314] = {.entry = {.count = 1, .reusable = false}}, SHIFT(116), + [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), + [318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 1), + [320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2), + [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 7), + [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 2), + [326] = {.entry = {.count = 1, .reusable = false}}, SHIFT(105), + [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 10), + [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 5), + [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 18), + [336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 11), + [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), + [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 2), + [346] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(157), + [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), + [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 7), + [359] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), SHIFT_REPEAT(14), + [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), + [364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 1), + [366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_statement, 1), + [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 3), + [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 2), + [374] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_interface_ports_repeat1, 2), SHIFT_REPEAT(99), + [377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_interface_ports_repeat1, 2), + [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), + [381] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(162), + [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 5, .production_id = 19), + [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 12), + [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), + [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), + [404] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 27), SHIFT_REPEAT(48), + [407] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 27), + [409] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 5, .production_id = 20), + [411] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 4), + [413] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 9), + [415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 3), + [421] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 6, .production_id = 22), [423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), [425] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 1), - [427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), - [441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 6), + [429] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 3), + [431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), + [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), [445] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), - [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), + [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), }; #ifdef __cplusplus From 673de814d0acbe4b76929380318e6fef379a34f7 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Thu, 28 Mar 2024 16:07:37 +0100 Subject: [PATCH 11/49] Made assign_left_side a named kind, and use it in interface too --- grammar.js | 22 +- src/grammar.json | 225 +- src/node-types.json | 210 +- src/parser.c | 4817 +++++++++++++++++++++---------------------- 4 files changed, 2501 insertions(+), 2773 deletions(-) diff --git a/grammar.js b/grammar.js index ea1df02..41d5634 100644 --- a/grammar.js +++ b/grammar.js @@ -26,10 +26,10 @@ module.exports = grammar({ interface_ports : $ => seq( ':', - field('inputs', sepSeq($.declaration, ',')), + field('inputs', $.assign_left_side), optional(seq( '->', - field('outputs', sepSeq($.declaration, ',')) + field('outputs', $.assign_left_side) )) ), module: $ => seq( @@ -145,7 +145,7 @@ module.exports = grammar({ '}' ), - _assign_left_side: $ => sepSeq1(seq( + assign_left_side: $ => sepSeq1(field('assign_to', seq( choice( repeat('reg'), 'initial' @@ -154,18 +154,16 @@ module.exports = grammar({ $._expression, $.declaration ) - ), ','), + )), ','), decl_assign_statement: $ => seq( - field('assign_to', $._assign_left_side), + field('assign_left', $.assign_left_side), '=', - field('assign_value', $._expression), + field('assign_value', $._expression) ), - decl_statement: $ => $.declaration, - expression_statement: $ => $._expression, if_statement: $ => seq( 'if', - field('condition', $._assign_left_side), + field('condition', $._expression), field('then_block', $.block), optional(seq( 'else', @@ -185,8 +183,10 @@ module.exports = grammar({ _statement: $ => choice( $.block, seq($.decl_assign_statement, ';'), - seq($.decl_statement, ';'), - seq($.expression_statement, ';'), + + // Decls only should only allow a single declaration, and cannot contain expressions, + // but we allow some tolerance in the grammar here, so we can generate better errors after. + seq($.assign_left_side, ';'), $.if_statement, $.for_statement ), diff --git a/src/grammar.json b/src/grammar.json index c9e62ed..b069cde 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -19,37 +19,8 @@ "type": "FIELD", "name": "inputs", "content": { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "declaration" - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "SYMBOL", - "name": "declaration" - } - ] - } - } - ] - }, - { - "type": "BLANK" - } - ] + "type": "SYMBOL", + "name": "assign_left_side" } }, { @@ -66,37 +37,8 @@ "type": "FIELD", "name": "outputs", "content": { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "declaration" - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "SYMBOL", - "name": "declaration" - } - ] - } - } - ] - }, - { - "type": "BLANK" - } - ] + "type": "SYMBOL", + "name": "assign_left_side" } } ] @@ -853,42 +795,46 @@ } ] }, - "_assign_left_side": { + "assign_left_side": { "type": "SEQ", "members": [ { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "REPEAT", - "content": { + "type": "FIELD", + "name": "assign_to", + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "REPEAT", + "content": { + "type": "STRING", + "value": "reg" + } + }, + { "type": "STRING", - "value": "reg" + "value": "initial" } - }, - { - "type": "STRING", - "value": "initial" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_expression" - }, - { - "type": "SYMBOL", - "name": "declaration" - } - ] - } - ] + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "SYMBOL", + "name": "declaration" + } + ] + } + ] + } }, { "type": "REPEAT", @@ -900,38 +846,42 @@ "value": "," }, { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "REPEAT", - "content": { + "type": "FIELD", + "name": "assign_to", + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "REPEAT", + "content": { + "type": "STRING", + "value": "reg" + } + }, + { "type": "STRING", - "value": "reg" + "value": "initial" } - }, - { - "type": "STRING", - "value": "initial" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_expression" - }, - { - "type": "SYMBOL", - "name": "declaration" - } - ] - } - ] + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "SYMBOL", + "name": "declaration" + } + ] + } + ] + } } ] } @@ -943,10 +893,10 @@ "members": [ { "type": "FIELD", - "name": "assign_to", + "name": "assign_left", "content": { "type": "SYMBOL", - "name": "_assign_left_side" + "name": "assign_left_side" } }, { @@ -963,14 +913,6 @@ } ] }, - "decl_statement": { - "type": "SYMBOL", - "name": "declaration" - }, - "expression_statement": { - "type": "SYMBOL", - "name": "_expression" - }, "if_statement": { "type": "SEQ", "members": [ @@ -983,7 +925,7 @@ "name": "condition", "content": { "type": "SYMBOL", - "name": "_assign_left_side" + "name": "_expression" } }, { @@ -1092,20 +1034,7 @@ "members": [ { "type": "SYMBOL", - "name": "decl_statement" - }, - { - "type": "STRING", - "value": ";" - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "expression_statement" + "name": "assign_left_side" }, { "type": "STRING", diff --git a/src/node-types.json b/src/node-types.json index e1cec13..94372bb 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -127,6 +127,62 @@ } } }, + { + "type": "assign_left_side", + "named": true, + "fields": { + "assign_to": { + "multiple": true, + "required": true, + "types": [ + { + "type": "array_op", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "declaration", + "named": true + }, + { + "type": "func_call", + "named": true + }, + { + "type": "global_identifier", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "initial", + "named": false + }, + { + "type": "number", + "named": true + }, + { + "type": "parenthesis_expression", + "named": true + }, + { + "type": "reg", + "named": false + }, + { + "type": "unary_op", + "named": true + } + ] + } + } + }, { "type": "binary_op", "named": true, @@ -280,19 +336,15 @@ "required": false, "types": [ { - "type": "block", + "type": "assign_left_side", "named": true }, { - "type": "decl_assign_statement", - "named": true - }, - { - "type": "decl_statement", + "type": "block", "named": true }, { - "type": "expression_statement", + "type": "decl_assign_statement", "named": true }, { @@ -310,56 +362,12 @@ "type": "decl_assign_statement", "named": true, "fields": { - "assign_to": { - "multiple": true, + "assign_left": { + "multiple": false, "required": true, "types": [ { - "type": ",", - "named": false - }, - { - "type": "array_op", - "named": true - }, - { - "type": "binary_op", - "named": true - }, - { - "type": "declaration", - "named": true - }, - { - "type": "func_call", - "named": true - }, - { - "type": "global_identifier", - "named": true - }, - { - "type": "identifier", - "named": true - }, - { - "type": "initial", - "named": false - }, - { - "type": "number", - "named": true - }, - { - "type": "parenthesis_expression", - "named": true - }, - { - "type": "reg", - "named": false - }, - { - "type": "unary_op", + "type": "assign_left_side", "named": true } ] @@ -404,21 +412,6 @@ } } }, - { - "type": "decl_statement", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "declaration", - "named": true - } - ] - } - }, { "type": "declaration", "named": true, @@ -473,49 +466,6 @@ } } }, - { - "type": "expression_statement", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "array_op", - "named": true - }, - { - "type": "binary_op", - "named": true - }, - { - "type": "func_call", - "named": true - }, - { - "type": "global_identifier", - "named": true - }, - { - "type": "identifier", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "parenthesis_expression", - "named": true - }, - { - "type": "unary_op", - "named": true - } - ] - } - }, { "type": "for_statement", "named": true, @@ -630,13 +580,9 @@ "named": true, "fields": { "condition": { - "multiple": true, + "multiple": false, "required": true, "types": [ - { - "type": ",", - "named": false - }, { "type": "array_op", "named": true @@ -645,10 +591,6 @@ "type": "binary_op", "named": true }, - { - "type": "declaration", - "named": true - }, { "type": "func_call", "named": true @@ -661,10 +603,6 @@ "type": "identifier", "named": true }, - { - "type": "initial", - "named": false - }, { "type": "number", "named": true @@ -673,10 +611,6 @@ "type": "parenthesis_expression", "named": true }, - { - "type": "reg", - "named": false - }, { "type": "unary_op", "named": true @@ -714,29 +648,21 @@ "named": true, "fields": { "inputs": { - "multiple": true, - "required": false, + "multiple": false, + "required": true, "types": [ { - "type": ",", - "named": false - }, - { - "type": "declaration", + "type": "assign_left_side", "named": true } ] }, "outputs": { - "multiple": true, + "multiple": false, "required": false, "types": [ { - "type": ",", - "named": false - }, - { - "type": "declaration", + "type": "assign_left_side", "named": true } ] diff --git a/src/parser.c b/src/parser.c index 51ae950..29900f3 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,43 +6,43 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 163 +#define STATE_COUNT 152 #define LARGE_STATE_COUNT 9 -#define SYMBOL_COUNT 72 +#define SYMBOL_COUNT 69 #define ALIAS_COUNT 0 #define TOKEN_COUNT 40 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 24 -#define MAX_ALIAS_SEQUENCE_LENGTH 6 -#define PRODUCTION_ID_COUNT 29 +#define FIELD_COUNT 25 +#define MAX_ALIAS_SEQUENCE_LENGTH 5 +#define PRODUCTION_ID_COUNT 30 enum { anon_sym_COLON = 1, - anon_sym_COMMA = 2, - anon_sym_DASH_GT = 3, - anon_sym_module = 4, - sym_identifier = 5, - sym_number = 6, - anon_sym_COLON_COLON = 7, - anon_sym_SQUOTE = 8, - anon_sym_state = 9, - anon_sym_gen = 10, - anon_sym_PLUS = 11, - anon_sym_DASH = 12, - anon_sym_STAR = 13, - anon_sym_BANG = 14, - anon_sym_PIPE = 15, - anon_sym_AMP = 16, - anon_sym_CARET = 17, - anon_sym_EQ_EQ = 18, - anon_sym_BANG_EQ = 19, - anon_sym_LT = 20, - anon_sym_LT_EQ = 21, - anon_sym_GT = 22, - anon_sym_GT_EQ = 23, - anon_sym_SLASH = 24, - anon_sym_PERCENT = 25, - anon_sym_LPAREN = 26, + anon_sym_DASH_GT = 2, + anon_sym_module = 3, + sym_identifier = 4, + sym_number = 5, + anon_sym_COLON_COLON = 6, + anon_sym_SQUOTE = 7, + anon_sym_state = 8, + anon_sym_gen = 9, + anon_sym_PLUS = 10, + anon_sym_DASH = 11, + anon_sym_STAR = 12, + anon_sym_BANG = 13, + anon_sym_PIPE = 14, + anon_sym_AMP = 15, + anon_sym_CARET = 16, + anon_sym_EQ_EQ = 17, + anon_sym_BANG_EQ = 18, + anon_sym_LT = 19, + anon_sym_LT_EQ = 20, + anon_sym_GT = 21, + anon_sym_GT_EQ = 22, + anon_sym_SLASH = 23, + anon_sym_PERCENT = 24, + anon_sym_LPAREN = 25, + anon_sym_COMMA = 26, anon_sym_RPAREN = 27, anon_sym_LBRACK = 28, anon_sym_RBRACK = 29, @@ -74,26 +74,22 @@ enum { sym__expression = 55, sym_range = 56, sym_block = 57, - sym__assign_left_side = 58, + sym_assign_left_side = 58, sym_decl_assign_statement = 59, - sym_decl_statement = 60, - sym_expression_statement = 61, - sym_if_statement = 62, - sym_for_statement = 63, - sym__statement = 64, - aux_sym_source_file_repeat1 = 65, - aux_sym_interface_ports_repeat1 = 66, - aux_sym_global_identifier_repeat1 = 67, - aux_sym_func_call_repeat1 = 68, - aux_sym_block_repeat1 = 69, - aux_sym__assign_left_side_repeat1 = 70, - aux_sym__assign_left_side_repeat2 = 71, + sym_if_statement = 60, + sym_for_statement = 61, + sym__statement = 62, + aux_sym_source_file_repeat1 = 63, + aux_sym_global_identifier_repeat1 = 64, + aux_sym_func_call_repeat1 = 65, + aux_sym_block_repeat1 = 66, + aux_sym_assign_left_side_repeat1 = 67, + aux_sym_assign_left_side_repeat2 = 68, }; static const char * const ts_symbol_names[] = { [ts_builtin_sym_end] = "end", [anon_sym_COLON] = ":", - [anon_sym_COMMA] = ",", [anon_sym_DASH_GT] = "->", [anon_sym_module] = "module", [sym_identifier] = "identifier", @@ -118,6 +114,7 @@ static const char * const ts_symbol_names[] = { [anon_sym_SLASH] = "/", [anon_sym_PERCENT] = "%", [anon_sym_LPAREN] = "(", + [anon_sym_COMMA] = ",", [anon_sym_RPAREN] = ")", [anon_sym_LBRACK] = "[", [anon_sym_RBRACK] = "]", @@ -149,26 +146,22 @@ static const char * const ts_symbol_names[] = { [sym__expression] = "_expression", [sym_range] = "range", [sym_block] = "block", - [sym__assign_left_side] = "_assign_left_side", + [sym_assign_left_side] = "assign_left_side", [sym_decl_assign_statement] = "decl_assign_statement", - [sym_decl_statement] = "decl_statement", - [sym_expression_statement] = "expression_statement", [sym_if_statement] = "if_statement", [sym_for_statement] = "for_statement", [sym__statement] = "_statement", [aux_sym_source_file_repeat1] = "source_file_repeat1", - [aux_sym_interface_ports_repeat1] = "interface_ports_repeat1", [aux_sym_global_identifier_repeat1] = "global_identifier_repeat1", [aux_sym_func_call_repeat1] = "func_call_repeat1", [aux_sym_block_repeat1] = "block_repeat1", - [aux_sym__assign_left_side_repeat1] = "_assign_left_side_repeat1", - [aux_sym__assign_left_side_repeat2] = "_assign_left_side_repeat2", + [aux_sym_assign_left_side_repeat1] = "assign_left_side_repeat1", + [aux_sym_assign_left_side_repeat2] = "assign_left_side_repeat2", }; static const TSSymbol ts_symbol_map[] = { [ts_builtin_sym_end] = ts_builtin_sym_end, [anon_sym_COLON] = anon_sym_COLON, - [anon_sym_COMMA] = anon_sym_COMMA, [anon_sym_DASH_GT] = anon_sym_DASH_GT, [anon_sym_module] = anon_sym_module, [sym_identifier] = sym_identifier, @@ -193,6 +186,7 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_SLASH] = anon_sym_SLASH, [anon_sym_PERCENT] = anon_sym_PERCENT, [anon_sym_LPAREN] = anon_sym_LPAREN, + [anon_sym_COMMA] = anon_sym_COMMA, [anon_sym_RPAREN] = anon_sym_RPAREN, [anon_sym_LBRACK] = anon_sym_LBRACK, [anon_sym_RBRACK] = anon_sym_RBRACK, @@ -224,20 +218,17 @@ static const TSSymbol ts_symbol_map[] = { [sym__expression] = sym__expression, [sym_range] = sym_range, [sym_block] = sym_block, - [sym__assign_left_side] = sym__assign_left_side, + [sym_assign_left_side] = sym_assign_left_side, [sym_decl_assign_statement] = sym_decl_assign_statement, - [sym_decl_statement] = sym_decl_statement, - [sym_expression_statement] = sym_expression_statement, [sym_if_statement] = sym_if_statement, [sym_for_statement] = sym_for_statement, [sym__statement] = sym__statement, [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1, - [aux_sym_interface_ports_repeat1] = aux_sym_interface_ports_repeat1, [aux_sym_global_identifier_repeat1] = aux_sym_global_identifier_repeat1, [aux_sym_func_call_repeat1] = aux_sym_func_call_repeat1, [aux_sym_block_repeat1] = aux_sym_block_repeat1, - [aux_sym__assign_left_side_repeat1] = aux_sym__assign_left_side_repeat1, - [aux_sym__assign_left_side_repeat2] = aux_sym__assign_left_side_repeat2, + [aux_sym_assign_left_side_repeat1] = aux_sym_assign_left_side_repeat1, + [aux_sym_assign_left_side_repeat2] = aux_sym_assign_left_side_repeat2, }; static const TSSymbolMetadata ts_symbol_metadata[] = { @@ -249,10 +240,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_COMMA] = { - .visible = true, - .named = false, - }, [anon_sym_DASH_GT] = { .visible = true, .named = false, @@ -349,6 +336,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_COMMA] = { + .visible = true, + .named = false, + }, [anon_sym_RPAREN] = { .visible = true, .named = false, @@ -473,19 +464,11 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym__assign_left_side] = { - .visible = false, - .named = true, - }, - [sym_decl_assign_statement] = { - .visible = true, - .named = true, - }, - [sym_decl_statement] = { + [sym_assign_left_side] = { .visible = true, .named = true, }, - [sym_expression_statement] = { + [sym_decl_assign_statement] = { .visible = true, .named = true, }, @@ -505,10 +488,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, - [aux_sym_interface_ports_repeat1] = { - .visible = false, - .named = false, - }, [aux_sym_global_identifier_repeat1] = { .visible = false, .named = false, @@ -521,11 +500,11 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, - [aux_sym__assign_left_side_repeat1] = { + [aux_sym_assign_left_side_repeat1] = { .visible = false, .named = false, }, - [aux_sym__assign_left_side_repeat2] = { + [aux_sym_assign_left_side_repeat2] = { .visible = false, .named = false, }, @@ -535,27 +514,28 @@ enum { field_argument = 1, field_arr = 2, field_arr_idx = 3, - field_assign_to = 4, - field_assign_value = 5, - field_block = 6, - field_condition = 7, - field_content = 8, - field_declaration_modifiers = 9, - field_else_block = 10, - field_for_decl = 11, - field_for_range = 12, - field_from = 13, - field_inputs = 14, - field_interface_ports = 15, - field_latency_specifier = 16, - field_left = 17, - field_name = 18, - field_operator = 19, - field_outputs = 20, - field_right = 21, - field_then_block = 22, - field_to = 23, - field_type = 24, + field_assign_left = 4, + field_assign_to = 5, + field_assign_value = 6, + field_block = 7, + field_condition = 8, + field_content = 9, + field_declaration_modifiers = 10, + field_else_block = 11, + field_for_decl = 12, + field_for_range = 13, + field_from = 14, + field_inputs = 15, + field_interface_ports = 16, + field_latency_specifier = 17, + field_left = 18, + field_name = 19, + field_operator = 20, + field_outputs = 21, + field_right = 22, + field_then_block = 23, + field_to = 24, + field_type = 25, }; static const char * const ts_field_names[] = { @@ -563,6 +543,7 @@ static const char * const ts_field_names[] = { [field_argument] = "argument", [field_arr] = "arr", [field_arr_idx] = "arr_idx", + [field_assign_left] = "assign_left", [field_assign_to] = "assign_to", [field_assign_value] = "assign_value", [field_block] = "block", @@ -589,32 +570,33 @@ static const char * const ts_field_names[] = { static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [1] = {.index = 0, .length = 2}, [2] = {.index = 2, .length = 1}, - [3] = {.index = 3, .length = 3}, - [4] = {.index = 6, .length = 1}, + [3] = {.index = 3, .length = 1}, + [4] = {.index = 4, .length = 3}, [5] = {.index = 7, .length = 2}, [6] = {.index = 9, .length = 2}, [7] = {.index = 11, .length = 2}, [8] = {.index = 13, .length = 2}, [9] = {.index = 15, .length = 2}, [10] = {.index = 17, .length = 3}, - [11] = {.index = 20, .length = 3}, - [12] = {.index = 23, .length = 2}, - [13] = {.index = 25, .length = 1}, - [14] = {.index = 26, .length = 2}, + [11] = {.index = 20, .length = 1}, + [12] = {.index = 21, .length = 3}, + [13] = {.index = 24, .length = 1}, + [14] = {.index = 25, .length = 3}, [15] = {.index = 28, .length = 1}, - [16] = {.index = 29, .length = 3}, - [17] = {.index = 32, .length = 2}, - [18] = {.index = 34, .length = 4}, - [19] = {.index = 38, .length = 3}, - [20] = {.index = 41, .length = 3}, - [21] = {.index = 44, .length = 2}, - [22] = {.index = 46, .length = 4}, - [23] = {.index = 50, .length = 3}, - [24] = {.index = 53, .length = 3}, - [25] = {.index = 56, .length = 1}, - [26] = {.index = 57, .length = 3}, - [27] = {.index = 60, .length = 2}, - [28] = {.index = 62, .length = 2}, + [16] = {.index = 29, .length = 2}, + [17] = {.index = 31, .length = 3}, + [18] = {.index = 34, .length = 2}, + [19] = {.index = 36, .length = 2}, + [20] = {.index = 38, .length = 2}, + [21] = {.index = 40, .length = 4}, + [22] = {.index = 44, .length = 2}, + [23] = {.index = 46, .length = 2}, + [24] = {.index = 48, .length = 1}, + [25] = {.index = 49, .length = 3}, + [26] = {.index = 52, .length = 2}, + [27] = {.index = 54, .length = 3}, + [28] = {.index = 57, .length = 3}, + [29] = {.index = 60, .length = 2}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -622,92 +604,91 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_block, 2}, {field_name, 1}, [2] = - {field_inputs, 1}, + {field_assign_to, 0}, [3] = + {field_inputs, 1}, + [4] = {field_block, 3}, {field_interface_ports, 2}, {field_name, 1}, - [6] = - {field_outputs, 2}, [7] = + {field_operator, 0}, + {field_right, 1}, + [9] = + {field_assign_to, 0}, + {field_assign_to, 1}, + [11] = {field_name, 1}, {field_type, 0}, - [9] = + [13] = {field_arr, 0}, {field_arr_idx, 1}, - [11] = - {field_inputs, 1}, - {field_inputs, 2}, - [13] = - {field_operator, 0}, - {field_right, 1}, [15] = - {field_outputs, 2}, - {field_outputs, 3}, + {field_assign_to, 0}, + {field_assign_to, 1, .inherited = true}, [17] = {field_declaration_modifiers, 0}, {field_name, 2}, {field_type, 1}, [20] = + {field_content, 1}, + [21] = + {field_assign_to, 0}, + {field_assign_to, 1}, + {field_assign_to, 2, .inherited = true}, + [24] = + {field_name, 0}, + [25] = {field_latency_specifier, 2}, {field_name, 1}, {field_type, 0}, - [23] = - {field_inputs, 1}, - {field_outputs, 3}, - [25] = - {field_content, 1}, - [26] = - {field_condition, 1}, - {field_then_block, 2}, [28] = - {field_name, 0}, + {field_assign_to, 1}, [29] = + {field_assign_to, 0, .inherited = true}, + {field_assign_to, 1, .inherited = true}, + [31] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [32] = - {field_assign_to, 0}, - {field_assign_value, 2}, [34] = + {field_inputs, 1}, + {field_outputs, 3}, + [36] = + {field_condition, 1}, + {field_then_block, 2}, + [38] = + {field_assign_left, 0}, + {field_assign_value, 2}, + [40] = {field_declaration_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [38] = - {field_inputs, 1}, - {field_outputs, 3}, - {field_outputs, 4}, - [41] = - {field_inputs, 1}, - {field_inputs, 2}, - {field_outputs, 4}, [44] = {field_argument, 2}, {field_name, 0}, [46] = - {field_inputs, 1}, - {field_inputs, 2}, - {field_outputs, 4}, - {field_outputs, 5}, - [50] = + {field_assign_to, 1}, + {field_assign_to, 2}, + [48] = + {field_argument, 1}, + [49] = + {field_argument, 2}, + {field_argument, 3, .inherited = true}, + {field_name, 0}, + [52] = + {field_argument, 0, .inherited = true}, + {field_argument, 1, .inherited = true}, + [54] = {field_condition, 1}, {field_else_block, 4}, {field_then_block, 2}, - [53] = + [57] = {field_block, 4}, {field_for_decl, 1}, {field_for_range, 3}, - [56] = - {field_argument, 1}, - [57] = - {field_argument, 2}, - {field_argument, 3, .inherited = true}, - {field_name, 0}, [60] = - {field_argument, 0, .inherited = true}, - {field_argument, 1, .inherited = true}, - [62] = {field_from, 0}, {field_to, 2}, }; @@ -727,9 +708,9 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [3] = 3, [4] = 2, [5] = 3, - [6] = 6, - [7] = 2, - [8] = 3, + [6] = 3, + [7] = 7, + [8] = 2, [9] = 9, [10] = 10, [11] = 11, @@ -768,54 +749,54 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [44] = 44, [45] = 45, [46] = 46, - [47] = 46, - [48] = 48, - [49] = 11, - [50] = 10, - [51] = 51, - [52] = 52, + [47] = 47, + [48] = 44, + [49] = 49, + [50] = 13, + [51] = 49, + [52] = 14, [53] = 53, [54] = 54, - [55] = 12, - [56] = 13, + [55] = 55, + [56] = 47, [57] = 57, - [58] = 45, + [58] = 58, [59] = 59, - [60] = 60, - [61] = 61, + [60] = 11, + [61] = 16, [62] = 62, [63] = 63, [64] = 64, [65] = 65, [66] = 66, - [67] = 67, - [68] = 44, - [69] = 69, - [70] = 15, - [71] = 43, - [72] = 72, - [73] = 72, - [74] = 39, - [75] = 59, - [76] = 63, - [77] = 62, - [78] = 61, - [79] = 60, - [80] = 80, - [81] = 16, + [67] = 59, + [68] = 58, + [69] = 57, + [70] = 70, + [71] = 63, + [72] = 55, + [73] = 54, + [74] = 46, + [75] = 75, + [76] = 15, + [77] = 77, + [78] = 78, + [79] = 79, + [80] = 75, + [81] = 81, [82] = 82, - [83] = 83, - [84] = 32, - [85] = 28, - [86] = 26, + [83] = 18, + [84] = 26, + [85] = 85, + [86] = 86, [87] = 87, - [88] = 24, - [89] = 31, - [90] = 35, - [91] = 91, - [92] = 82, - [93] = 93, - [94] = 94, + [88] = 40, + [89] = 25, + [90] = 90, + [91] = 27, + [92] = 28, + [93] = 30, + [94] = 86, [95] = 95, [96] = 96, [97] = 97, @@ -827,63 +808,52 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [103] = 103, [104] = 104, [105] = 105, - [106] = 105, + [106] = 106, [107] = 107, [108] = 108, [109] = 109, - [110] = 10, - [111] = 11, - [112] = 112, - [113] = 113, - [114] = 114, + [110] = 110, + [111] = 111, + [112] = 110, + [113] = 16, + [114] = 11, [115] = 115, [116] = 116, [117] = 117, - [118] = 13, + [118] = 118, [119] = 119, - [120] = 12, - [121] = 121, + [120] = 14, + [121] = 13, [122] = 122, [123] = 123, - [124] = 124, - [125] = 102, + [124] = 123, + [125] = 122, [126] = 126, [127] = 127, - [128] = 128, - [129] = 129, - [130] = 127, - [131] = 126, + [128] = 99, + [129] = 98, + [130] = 18, + [131] = 131, [132] = 132, [133] = 133, [134] = 134, - [135] = 101, - [136] = 136, - [137] = 16, + [135] = 135, + [136] = 44, + [137] = 137, [138] = 138, - [139] = 139, - [140] = 140, + [139] = 23, + [140] = 46, [141] = 141, [142] = 142, [143] = 143, [144] = 144, - [145] = 145, - [146] = 39, - [147] = 147, + [145] = 143, + [146] = 144, + [147] = 144, [148] = 148, - [149] = 149, - [150] = 43, - [151] = 33, - [152] = 152, - [153] = 153, - [154] = 154, - [155] = 155, - [156] = 156, - [157] = 155, - [158] = 154, - [159] = 159, - [160] = 155, - [161] = 154, - [162] = 162, + [149] = 143, + [150] = 150, + [151] = 151, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -2434,25 +2404,25 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { switch (state) { case 0: if (eof) ADVANCE(66); - if (lookahead == '!') ADVANCE(105); - if (lookahead == '%') ADVANCE(116); - if (lookahead == '&') ADVANCE(107); - if (lookahead == '\'') ADVANCE(95); - if (lookahead == '(') ADVANCE(117); + if (lookahead == '!') ADVANCE(104); + if (lookahead == '%') ADVANCE(115); + if (lookahead == '&') ADVANCE(106); + if (lookahead == '\'') ADVANCE(94); + if (lookahead == '(') ADVANCE(116); if (lookahead == ')') ADVANCE(118); - if (lookahead == '*') ADVANCE(103); - if (lookahead == '+') ADVANCE(100); - if (lookahead == ',') ADVANCE(69); - if (lookahead == '-') ADVANCE(102); + if (lookahead == '*') ADVANCE(102); + if (lookahead == '+') ADVANCE(99); + if (lookahead == ',') ADVANCE(117); + if (lookahead == '-') ADVANCE(101); if (lookahead == '/') SKIP(63) if (lookahead == ':') ADVANCE(68); if (lookahead == ';') ADVANCE(134); - if (lookahead == '<') ADVANCE(111); + if (lookahead == '<') ADVANCE(110); if (lookahead == '=') ADVANCE(126); - if (lookahead == '>') ADVANCE(113); + if (lookahead == '>') ADVANCE(112); if (lookahead == '[') ADVANCE(119); if (lookahead == ']') ADVANCE(120); - if (lookahead == '^') ADVANCE(108); + if (lookahead == '^') ADVANCE(107); if (lookahead == 'e') ADVANCE(51); if (lookahead == 'f') ADVANCE(55); if (lookahead == 'g') ADVANCE(44); @@ -2461,28 +2431,28 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == 'r') ADVANCE(45); if (lookahead == 's') ADVANCE(59); if (lookahead == '{') ADVANCE(121); - if (lookahead == '|') ADVANCE(106); + if (lookahead == '|') ADVANCE(105); if (lookahead == '}') ADVANCE(122); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(0) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(93); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(92); END_STATE(); case 1: - if (lookahead == '\n') SKIP(10) + if (lookahead == '\n') SKIP(9) if (lookahead != 0) SKIP(1) END_STATE(); case 2: - if (lookahead == '\n') SKIP(11) + if (lookahead == '\n') SKIP(10) if (lookahead != 0) SKIP(2) END_STATE(); case 3: - if (lookahead == '\n') SKIP(12) + if (lookahead == '\n') SKIP(11) if (lookahead != 0) SKIP(3) END_STATE(); case 4: - if (lookahead == '\n') SKIP(9) + if (lookahead == '\n') SKIP(12) if (lookahead != 0) SKIP(4) END_STATE(); case 5: @@ -2498,189 +2468,188 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead != 0) SKIP(7) END_STATE(); case 8: - if (lookahead == '!') ADVANCE(104); - if (lookahead == '&') ADVANCE(107); - if (lookahead == '(') ADVANCE(117); + if (lookahead == '!') ADVANCE(103); + if (lookahead == '&') ADVANCE(106); + if (lookahead == '(') ADVANCE(116); if (lookahead == ')') ADVANCE(118); - if (lookahead == '*') ADVANCE(103); - if (lookahead == '+') ADVANCE(100); - if (lookahead == '-') ADVANCE(101); + if (lookahead == '*') ADVANCE(102); + if (lookahead == '+') ADVANCE(99); + if (lookahead == '-') ADVANCE(100); if (lookahead == '/') SKIP(35) if (lookahead == ':') ADVANCE(39); if (lookahead == '[') ADVANCE(119); - if (lookahead == '^') ADVANCE(108); - if (lookahead == '|') ADVANCE(106); + if (lookahead == '^') ADVANCE(107); + if (lookahead == '|') ADVANCE(105); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(8) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(93); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(92); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(92); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(91); END_STATE(); case 9: - if (lookahead == '!') ADVANCE(104); - if (lookahead == '&') ADVANCE(107); - if (lookahead == '(') ADVANCE(117); - if (lookahead == '*') ADVANCE(103); - if (lookahead == '+') ADVANCE(100); - if (lookahead == '-') ADVANCE(102); - if (lookahead == '/') SKIP(34) + if (lookahead == '!') ADVANCE(103); + if (lookahead == '&') ADVANCE(106); + if (lookahead == '(') ADVANCE(116); + if (lookahead == '*') ADVANCE(102); + if (lookahead == '+') ADVANCE(99); + if (lookahead == '-') ADVANCE(100); + if (lookahead == '/') SKIP(17) if (lookahead == ':') ADVANCE(39); - if (lookahead == '^') ADVANCE(108); - if (lookahead == 'g') ADVANCE(74); - if (lookahead == 's') ADVANCE(89); + if (lookahead == '^') ADVANCE(107); + if (lookahead == 'f') ADVANCE(85); + if (lookahead == 'g') ADVANCE(73); + if (lookahead == 'i') ADVANCE(77); + if (lookahead == 'r') ADVANCE(74); + if (lookahead == 's') ADVANCE(88); if (lookahead == '{') ADVANCE(121); - if (lookahead == '|') ADVANCE(106); + if (lookahead == '|') ADVANCE(105); + if (lookahead == '}') ADVANCE(122); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(9) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(93); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(92); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(92); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(91); END_STATE(); case 10: - if (lookahead == '!') ADVANCE(104); - if (lookahead == '&') ADVANCE(107); - if (lookahead == '(') ADVANCE(117); - if (lookahead == '*') ADVANCE(103); - if (lookahead == '+') ADVANCE(100); - if (lookahead == '-') ADVANCE(101); - if (lookahead == '/') SKIP(17) + if (lookahead == '!') ADVANCE(103); + if (lookahead == '&') ADVANCE(106); + if (lookahead == '(') ADVANCE(116); + if (lookahead == '*') ADVANCE(102); + if (lookahead == '+') ADVANCE(99); + if (lookahead == '-') ADVANCE(100); + if (lookahead == '/') SKIP(32) if (lookahead == ':') ADVANCE(39); - if (lookahead == '^') ADVANCE(108); - if (lookahead == 'f') ADVANCE(86); - if (lookahead == 'g') ADVANCE(74); - if (lookahead == 'i') ADVANCE(78); - if (lookahead == 'r') ADVANCE(75); - if (lookahead == 's') ADVANCE(89); - if (lookahead == '{') ADVANCE(121); - if (lookahead == '|') ADVANCE(106); - if (lookahead == '}') ADVANCE(122); + if (lookahead == '^') ADVANCE(107); + if (lookahead == 'g') ADVANCE(73); + if (lookahead == 'i') ADVANCE(83); + if (lookahead == 'r') ADVANCE(74); + if (lookahead == 's') ADVANCE(88); + if (lookahead == '|') ADVANCE(105); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(10) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(93); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(92); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(92); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(91); END_STATE(); case 11: - if (lookahead == '!') ADVANCE(104); - if (lookahead == '&') ADVANCE(107); - if (lookahead == '(') ADVANCE(117); - if (lookahead == '*') ADVANCE(103); - if (lookahead == '+') ADVANCE(100); - if (lookahead == '-') ADVANCE(101); - if (lookahead == '/') SKIP(32) + if (lookahead == '!') ADVANCE(103); + if (lookahead == '&') ADVANCE(106); + if (lookahead == '(') ADVANCE(116); + if (lookahead == '*') ADVANCE(102); + if (lookahead == '+') ADVANCE(99); + if (lookahead == '-') ADVANCE(100); + if (lookahead == '/') SKIP(33) if (lookahead == ':') ADVANCE(39); - if (lookahead == '^') ADVANCE(108); - if (lookahead == 'g') ADVANCE(74); - if (lookahead == 'i') ADVANCE(84); - if (lookahead == 'r') ADVANCE(75); - if (lookahead == 's') ADVANCE(89); - if (lookahead == '|') ADVANCE(106); + if (lookahead == '^') ADVANCE(107); + if (lookahead == 'g') ADVANCE(73); + if (lookahead == 'r') ADVANCE(74); + if (lookahead == 's') ADVANCE(88); + if (lookahead == '|') ADVANCE(105); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(11) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(93); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(92); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(92); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(91); END_STATE(); case 12: - if (lookahead == '!') ADVANCE(104); - if (lookahead == '&') ADVANCE(107); - if (lookahead == '(') ADVANCE(117); - if (lookahead == '*') ADVANCE(103); - if (lookahead == '+') ADVANCE(100); - if (lookahead == '-') ADVANCE(101); - if (lookahead == '/') SKIP(33) + if (lookahead == '!') ADVANCE(103); + if (lookahead == '&') ADVANCE(106); + if (lookahead == '(') ADVANCE(116); + if (lookahead == '*') ADVANCE(102); + if (lookahead == '+') ADVANCE(99); + if (lookahead == '-') ADVANCE(100); + if (lookahead == '/') SKIP(34) if (lookahead == ':') ADVANCE(39); - if (lookahead == '^') ADVANCE(108); - if (lookahead == 'g') ADVANCE(74); - if (lookahead == 'r') ADVANCE(75); - if (lookahead == 's') ADVANCE(89); - if (lookahead == '|') ADVANCE(106); + if (lookahead == '^') ADVANCE(107); + if (lookahead == 'g') ADVANCE(73); + if (lookahead == 's') ADVANCE(88); + if (lookahead == '|') ADVANCE(105); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(12) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(93); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(92); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(92); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(91); END_STATE(); case 13: - if (lookahead == '!') ADVANCE(104); - if (lookahead == '&') ADVANCE(107); - if (lookahead == '(') ADVANCE(117); - if (lookahead == '*') ADVANCE(103); - if (lookahead == '+') ADVANCE(100); - if (lookahead == '-') ADVANCE(101); + if (lookahead == '!') ADVANCE(103); + if (lookahead == '&') ADVANCE(106); + if (lookahead == '(') ADVANCE(116); + if (lookahead == '*') ADVANCE(102); + if (lookahead == '+') ADVANCE(99); + if (lookahead == '-') ADVANCE(100); if (lookahead == '/') SKIP(36) if (lookahead == ':') ADVANCE(39); - if (lookahead == '^') ADVANCE(108); - if (lookahead == 'e') ADVANCE(83); - if (lookahead == 'f') ADVANCE(86); - if (lookahead == 'g') ADVANCE(74); - if (lookahead == 'i') ADVANCE(78); - if (lookahead == 'r') ADVANCE(75); - if (lookahead == 's') ADVANCE(89); + if (lookahead == '^') ADVANCE(107); + if (lookahead == 'e') ADVANCE(82); + if (lookahead == 'f') ADVANCE(85); + if (lookahead == 'g') ADVANCE(73); + if (lookahead == 'i') ADVANCE(77); + if (lookahead == 'r') ADVANCE(74); + if (lookahead == 's') ADVANCE(88); if (lookahead == '{') ADVANCE(121); - if (lookahead == '|') ADVANCE(106); + if (lookahead == '|') ADVANCE(105); if (lookahead == '}') ADVANCE(122); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(13) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(93); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(92); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(92); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(91); END_STATE(); case 14: if (lookahead == '!') ADVANCE(40); - if (lookahead == '%') ADVANCE(116); - if (lookahead == '&') ADVANCE(107); - if (lookahead == '(') ADVANCE(117); + if (lookahead == '%') ADVANCE(115); + if (lookahead == '&') ADVANCE(106); + if (lookahead == '(') ADVANCE(116); if (lookahead == ')') ADVANCE(118); - if (lookahead == '*') ADVANCE(103); - if (lookahead == '+') ADVANCE(100); - if (lookahead == ',') ADVANCE(69); - if (lookahead == '-') ADVANCE(102); - if (lookahead == '/') ADVANCE(115); + if (lookahead == '*') ADVANCE(102); + if (lookahead == '+') ADVANCE(99); + if (lookahead == ',') ADVANCE(117); + if (lookahead == '-') ADVANCE(101); + if (lookahead == '/') ADVANCE(114); if (lookahead == ':') ADVANCE(68); if (lookahead == ';') ADVANCE(134); - if (lookahead == '<') ADVANCE(111); + if (lookahead == '<') ADVANCE(110); if (lookahead == '=') ADVANCE(126); - if (lookahead == '>') ADVANCE(113); + if (lookahead == '>') ADVANCE(112); if (lookahead == '[') ADVANCE(119); if (lookahead == ']') ADVANCE(120); - if (lookahead == '^') ADVANCE(108); + if (lookahead == '^') ADVANCE(107); if (lookahead == '{') ADVANCE(121); - if (lookahead == '|') ADVANCE(106); + if (lookahead == '|') ADVANCE(105); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(14) - if (sym_identifier_character_set_1(lookahead)) ADVANCE(92); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(91); END_STATE(); case 15: if (lookahead == '!') ADVANCE(40); - if (lookahead == '%') ADVANCE(116); - if (lookahead == '&') ADVANCE(107); - if (lookahead == '(') ADVANCE(117); + if (lookahead == '%') ADVANCE(115); + if (lookahead == '&') ADVANCE(106); + if (lookahead == '(') ADVANCE(116); if (lookahead == ')') ADVANCE(118); - if (lookahead == '*') ADVANCE(103); - if (lookahead == '+') ADVANCE(100); - if (lookahead == ',') ADVANCE(69); - if (lookahead == '-') ADVANCE(102); - if (lookahead == '/') ADVANCE(115); + if (lookahead == '*') ADVANCE(102); + if (lookahead == '+') ADVANCE(99); + if (lookahead == ',') ADVANCE(117); + if (lookahead == '-') ADVANCE(101); + if (lookahead == '/') ADVANCE(114); if (lookahead == ':') ADVANCE(67); if (lookahead == ';') ADVANCE(134); - if (lookahead == '<') ADVANCE(111); + if (lookahead == '<') ADVANCE(110); if (lookahead == '=') ADVANCE(126); - if (lookahead == '>') ADVANCE(113); + if (lookahead == '>') ADVANCE(112); if (lookahead == '[') ADVANCE(119); if (lookahead == ']') ADVANCE(120); - if (lookahead == '^') ADVANCE(108); + if (lookahead == '^') ADVANCE(107); if (lookahead == 'i') ADVANCE(53); if (lookahead == '{') ADVANCE(121); - if (lookahead == '|') ADVANCE(106); + if (lookahead == '|') ADVANCE(105); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || @@ -2688,21 +2657,21 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 16: if (lookahead == '!') ADVANCE(40); - if (lookahead == '%') ADVANCE(116); - if (lookahead == '&') ADVANCE(107); - if (lookahead == '(') ADVANCE(117); - if (lookahead == '*') ADVANCE(103); - if (lookahead == '+') ADVANCE(100); - if (lookahead == '-') ADVANCE(101); - if (lookahead == '/') ADVANCE(115); + if (lookahead == '%') ADVANCE(115); + if (lookahead == '&') ADVANCE(106); + if (lookahead == '(') ADVANCE(116); + if (lookahead == '*') ADVANCE(102); + if (lookahead == '+') ADVANCE(99); + if (lookahead == '-') ADVANCE(100); + if (lookahead == '/') ADVANCE(114); if (lookahead == ':') ADVANCE(39); - if (lookahead == '<') ADVANCE(111); + if (lookahead == '<') ADVANCE(110); if (lookahead == '=') ADVANCE(41); - if (lookahead == '>') ADVANCE(113); + if (lookahead == '>') ADVANCE(112); if (lookahead == '[') ADVANCE(119); - if (lookahead == '^') ADVANCE(108); + if (lookahead == '^') ADVANCE(107); if (lookahead == 'i') ADVANCE(53); - if (lookahead == '|') ADVANCE(106); + if (lookahead == '|') ADVANCE(105); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || @@ -2714,7 +2683,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 18: if (lookahead == '*') SKIP(18) - if (lookahead == '/') SKIP(10) + if (lookahead == '/') SKIP(9) if (lookahead != 0) SKIP(19) END_STATE(); case 19: @@ -2723,7 +2692,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 20: if (lookahead == '*') SKIP(20) - if (lookahead == '/') SKIP(11) + if (lookahead == '/') SKIP(10) if (lookahead != 0) SKIP(21) END_STATE(); case 21: @@ -2732,7 +2701,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 22: if (lookahead == '*') SKIP(22) - if (lookahead == '/') SKIP(12) + if (lookahead == '/') SKIP(11) if (lookahead != 0) SKIP(23) END_STATE(); case 23: @@ -2741,7 +2710,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 24: if (lookahead == '*') SKIP(24) - if (lookahead == '/') SKIP(9) + if (lookahead == '/') SKIP(12) if (lookahead != 0) SKIP(25) END_STATE(); case 25: @@ -2809,13 +2778,13 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead == ' ') SKIP(38) END_STATE(); case 39: - if (lookahead == ':') ADVANCE(94); + if (lookahead == ':') ADVANCE(93); END_STATE(); case 40: - if (lookahead == '=') ADVANCE(110); + if (lookahead == '=') ADVANCE(109); END_STATE(); case 41: - if (lookahead == '=') ADVANCE(109); + if (lookahead == '=') ADVANCE(108); END_STATE(); case 42: if (lookahead == 'a') ADVANCE(60); @@ -2833,10 +2802,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == 'e') ADVANCE(129); END_STATE(); case 47: - if (lookahead == 'e') ADVANCE(96); + if (lookahead == 'e') ADVANCE(95); END_STATE(); case 48: - if (lookahead == 'e') ADVANCE(71); + if (lookahead == 'e') ADVANCE(70); END_STATE(); case 49: if (lookahead == 'f') ADVANCE(127); @@ -2855,7 +2824,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == 'n') ADVANCE(133); END_STATE(); case 54: - if (lookahead == 'n') ADVANCE(98); + if (lookahead == 'n') ADVANCE(97); END_STATE(); case 55: if (lookahead == 'o') ADVANCE(57); @@ -2907,204 +2876,204 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 68: ACCEPT_TOKEN(anon_sym_COLON); - if (lookahead == ':') ADVANCE(94); + if (lookahead == ':') ADVANCE(93); END_STATE(); case 69: - ACCEPT_TOKEN(anon_sym_COMMA); + ACCEPT_TOKEN(anon_sym_DASH_GT); END_STATE(); case 70: - ACCEPT_TOKEN(anon_sym_DASH_GT); + ACCEPT_TOKEN(anon_sym_module); END_STATE(); case 71: - ACCEPT_TOKEN(anon_sym_module); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(81); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(91); END_STATE(); case 72: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'a') ADVANCE(82); - if (sym_identifier_character_set_2(lookahead)) ADVANCE(92); + if (lookahead == 'a') ADVANCE(90); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(91); END_STATE(); case 73: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'a') ADVANCE(91); - if (sym_identifier_character_set_2(lookahead)) ADVANCE(92); + if (lookahead == 'e') ADVANCE(84); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); case 74: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(85); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + if (lookahead == 'e') ADVANCE(78); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); case 75: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(79); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + if (lookahead == 'e') ADVANCE(96); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); case 76: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(97); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + if (lookahead == 'e') ADVANCE(130); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); case 77: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(130); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + if (lookahead == 'f') ADVANCE(128); + if (lookahead == 'n') ADVANCE(79); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); case 78: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'f') ADVANCE(128); - if (lookahead == 'n') ADVANCE(80); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + if (lookahead == 'g') ADVANCE(124); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); case 79: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'g') ADVANCE(124); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + if (lookahead == 'i') ADVANCE(89); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); case 80: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'i') ADVANCE(90); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + if (lookahead == 'i') ADVANCE(71); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); case 81: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'i') ADVANCE(72); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + if (lookahead == 'l') ADVANCE(125); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); case 82: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'l') ADVANCE(125); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + if (lookahead == 'l') ADVANCE(87); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); case 83: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'l') ADVANCE(88); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + if (lookahead == 'n') ADVANCE(79); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); case 84: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'n') ADVANCE(80); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + if (lookahead == 'n') ADVANCE(98); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); case 85: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'n') ADVANCE(99); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + if (lookahead == 'o') ADVANCE(86); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); case 86: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'o') ADVANCE(87); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + if (lookahead == 'r') ADVANCE(132); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); case 87: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'r') ADVANCE(132); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + if (lookahead == 's') ADVANCE(76); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); case 88: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 's') ADVANCE(77); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + if (lookahead == 't') ADVANCE(72); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); case 89: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 't') ADVANCE(73); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + if (lookahead == 't') ADVANCE(80); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); case 90: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 't') ADVANCE(81); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + if (lookahead == 't') ADVANCE(75); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); case 91: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 't') ADVANCE(76); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); case 92: - ACCEPT_TOKEN(sym_identifier); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); - END_STATE(); - case 93: ACCEPT_TOKEN(sym_number); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(93); + lookahead == '_') ADVANCE(92); END_STATE(); - case 94: + case 93: ACCEPT_TOKEN(anon_sym_COLON_COLON); END_STATE(); - case 95: + case 94: ACCEPT_TOKEN(anon_sym_SQUOTE); END_STATE(); + case 95: + ACCEPT_TOKEN(anon_sym_state); + END_STATE(); case 96: ACCEPT_TOKEN(anon_sym_state); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); case 97: - ACCEPT_TOKEN(anon_sym_state); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + ACCEPT_TOKEN(anon_sym_gen); END_STATE(); case 98: ACCEPT_TOKEN(anon_sym_gen); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); case 99: - ACCEPT_TOKEN(anon_sym_gen); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); case 100: - ACCEPT_TOKEN(anon_sym_PLUS); + ACCEPT_TOKEN(anon_sym_DASH); END_STATE(); case 101: ACCEPT_TOKEN(anon_sym_DASH); + if (lookahead == '>') ADVANCE(69); END_STATE(); case 102: - ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '>') ADVANCE(70); + ACCEPT_TOKEN(anon_sym_STAR); END_STATE(); case 103: - ACCEPT_TOKEN(anon_sym_STAR); + ACCEPT_TOKEN(anon_sym_BANG); END_STATE(); case 104: ACCEPT_TOKEN(anon_sym_BANG); + if (lookahead == '=') ADVANCE(109); END_STATE(); case 105: - ACCEPT_TOKEN(anon_sym_BANG); - if (lookahead == '=') ADVANCE(110); + ACCEPT_TOKEN(anon_sym_PIPE); END_STATE(); case 106: - ACCEPT_TOKEN(anon_sym_PIPE); + ACCEPT_TOKEN(anon_sym_AMP); END_STATE(); case 107: - ACCEPT_TOKEN(anon_sym_AMP); + ACCEPT_TOKEN(anon_sym_CARET); END_STATE(); case 108: - ACCEPT_TOKEN(anon_sym_CARET); + ACCEPT_TOKEN(anon_sym_EQ_EQ); END_STATE(); case 109: - ACCEPT_TOKEN(anon_sym_EQ_EQ); + ACCEPT_TOKEN(anon_sym_BANG_EQ); END_STATE(); case 110: - ACCEPT_TOKEN(anon_sym_BANG_EQ); + ACCEPT_TOKEN(anon_sym_LT); + if (lookahead == '=') ADVANCE(111); END_STATE(); case 111: - ACCEPT_TOKEN(anon_sym_LT); - if (lookahead == '=') ADVANCE(112); + ACCEPT_TOKEN(anon_sym_LT_EQ); END_STATE(); case 112: - ACCEPT_TOKEN(anon_sym_LT_EQ); + ACCEPT_TOKEN(anon_sym_GT); + if (lookahead == '=') ADVANCE(113); END_STATE(); case 113: - ACCEPT_TOKEN(anon_sym_GT); - if (lookahead == '=') ADVANCE(114); + ACCEPT_TOKEN(anon_sym_GT_EQ); END_STATE(); case 114: - ACCEPT_TOKEN(anon_sym_GT_EQ); + ACCEPT_TOKEN(anon_sym_SLASH); END_STATE(); case 115: - ACCEPT_TOKEN(anon_sym_SLASH); + ACCEPT_TOKEN(anon_sym_PERCENT); END_STATE(); case 116: - ACCEPT_TOKEN(anon_sym_PERCENT); + ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); case 117: - ACCEPT_TOKEN(anon_sym_LPAREN); + ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); case 118: ACCEPT_TOKEN(anon_sym_RPAREN); @@ -3126,36 +3095,36 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 124: ACCEPT_TOKEN(anon_sym_reg); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); case 125: ACCEPT_TOKEN(anon_sym_initial); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); case 126: ACCEPT_TOKEN(anon_sym_EQ); - if (lookahead == '=') ADVANCE(109); + if (lookahead == '=') ADVANCE(108); END_STATE(); case 127: ACCEPT_TOKEN(anon_sym_if); END_STATE(); case 128: ACCEPT_TOKEN(anon_sym_if); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); case 129: ACCEPT_TOKEN(anon_sym_else); END_STATE(); case 130: ACCEPT_TOKEN(anon_sym_else); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); case 131: ACCEPT_TOKEN(anon_sym_for); END_STATE(); case 132: ACCEPT_TOKEN(anon_sym_for); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(92); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); case 133: ACCEPT_TOKEN(anon_sym_in); @@ -3171,174 +3140,162 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { static const TSLexMode ts_lex_modes[STATE_COUNT] = { [0] = {.lex_state = 0}, [1] = {.lex_state = 0}, - [2] = {.lex_state = 10}, - [3] = {.lex_state = 10}, - [4] = {.lex_state = 10}, - [5] = {.lex_state = 10}, - [6] = {.lex_state = 10}, - [7] = {.lex_state = 10}, - [8] = {.lex_state = 10}, - [9] = {.lex_state = 11}, - [10] = {.lex_state = 14}, + [2] = {.lex_state = 9}, + [3] = {.lex_state = 9}, + [4] = {.lex_state = 9}, + [5] = {.lex_state = 9}, + [6] = {.lex_state = 9}, + [7] = {.lex_state = 9}, + [8] = {.lex_state = 9}, + [9] = {.lex_state = 10}, + [10] = {.lex_state = 10}, [11] = {.lex_state = 14}, - [12] = {.lex_state = 14}, + [12] = {.lex_state = 10}, [13] = {.lex_state = 14}, - [14] = {.lex_state = 11}, + [14] = {.lex_state = 14}, [15] = {.lex_state = 14}, [16] = {.lex_state = 14}, - [17] = {.lex_state = 12}, - [18] = {.lex_state = 12}, - [19] = {.lex_state = 15}, + [17] = {.lex_state = 11}, + [18] = {.lex_state = 14}, + [19] = {.lex_state = 11}, [20] = {.lex_state = 15}, [21] = {.lex_state = 15}, [22] = {.lex_state = 15}, [23] = {.lex_state = 15}, - [24] = {.lex_state = 15}, + [24] = {.lex_state = 12}, [25] = {.lex_state = 15}, [26] = {.lex_state = 15}, [27] = {.lex_state = 15}, [28] = {.lex_state = 15}, [29] = {.lex_state = 15}, - [30] = {.lex_state = 9}, + [30] = {.lex_state = 15}, [31] = {.lex_state = 15}, [32] = {.lex_state = 15}, [33] = {.lex_state = 15}, - [34] = {.lex_state = 9}, - [35] = {.lex_state = 14}, + [34] = {.lex_state = 15}, + [35] = {.lex_state = 12}, [36] = {.lex_state = 14}, - [37] = {.lex_state = 8}, - [38] = {.lex_state = 13}, - [39] = {.lex_state = 13}, - [40] = {.lex_state = 8}, + [37] = {.lex_state = 14}, + [38] = {.lex_state = 14}, + [39] = {.lex_state = 14}, + [40] = {.lex_state = 14}, [41] = {.lex_state = 14}, - [42] = {.lex_state = 14}, - [43] = {.lex_state = 13}, - [44] = {.lex_state = 8}, - [45] = {.lex_state = 8}, - [46] = {.lex_state = 8}, + [42] = {.lex_state = 8}, + [43] = {.lex_state = 8}, + [44] = {.lex_state = 13}, + [45] = {.lex_state = 13}, + [46] = {.lex_state = 13}, [47] = {.lex_state = 8}, - [48] = {.lex_state = 8}, - [49] = {.lex_state = 16}, + [48] = {.lex_state = 9}, + [49] = {.lex_state = 8}, [50] = {.lex_state = 16}, [51] = {.lex_state = 8}, - [52] = {.lex_state = 14}, - [53] = {.lex_state = 10}, - [54] = {.lex_state = 14}, - [55] = {.lex_state = 16}, - [56] = {.lex_state = 16}, + [52] = {.lex_state = 16}, + [53] = {.lex_state = 8}, + [54] = {.lex_state = 8}, + [55] = {.lex_state = 8}, + [56] = {.lex_state = 8}, [57] = {.lex_state = 8}, [58] = {.lex_state = 8}, [59] = {.lex_state = 8}, - [60] = {.lex_state = 8}, - [61] = {.lex_state = 8}, + [60] = {.lex_state = 16}, + [61] = {.lex_state = 16}, [62] = {.lex_state = 8}, [63] = {.lex_state = 8}, [64] = {.lex_state = 8}, - [65] = {.lex_state = 10}, - [66] = {.lex_state = 10}, - [67] = {.lex_state = 14}, + [65] = {.lex_state = 9}, + [66] = {.lex_state = 8}, + [67] = {.lex_state = 8}, [68] = {.lex_state = 8}, - [69] = {.lex_state = 14}, - [70] = {.lex_state = 16}, - [71] = {.lex_state = 10}, + [69] = {.lex_state = 8}, + [70] = {.lex_state = 14}, + [71] = {.lex_state = 8}, [72] = {.lex_state = 8}, [73] = {.lex_state = 8}, - [74] = {.lex_state = 10}, + [74] = {.lex_state = 9}, [75] = {.lex_state = 8}, - [76] = {.lex_state = 8}, - [77] = {.lex_state = 8}, + [76] = {.lex_state = 16}, + [77] = {.lex_state = 9}, [78] = {.lex_state = 8}, - [79] = {.lex_state = 8}, - [80] = {.lex_state = 14}, - [81] = {.lex_state = 16}, + [79] = {.lex_state = 9}, + [80] = {.lex_state = 8}, + [81] = {.lex_state = 14}, [82] = {.lex_state = 14}, - [83] = {.lex_state = 14}, + [83] = {.lex_state = 16}, [84] = {.lex_state = 15}, - [85] = {.lex_state = 15}, - [86] = {.lex_state = 15}, + [85] = {.lex_state = 14}, + [86] = {.lex_state = 14}, [87] = {.lex_state = 14}, [88] = {.lex_state = 15}, [89] = {.lex_state = 15}, - [90] = {.lex_state = 15}, - [91] = {.lex_state = 14}, - [92] = {.lex_state = 14}, + [90] = {.lex_state = 14}, + [91] = {.lex_state = 15}, + [92] = {.lex_state = 15}, [93] = {.lex_state = 15}, - [94] = {.lex_state = 12}, - [95] = {.lex_state = 9}, - [96] = {.lex_state = 9}, - [97] = {.lex_state = 9}, - [98] = {.lex_state = 9}, - [99] = {.lex_state = 9}, - [100] = {.lex_state = 9}, + [94] = {.lex_state = 14}, + [95] = {.lex_state = 15}, + [96] = {.lex_state = 11}, + [97] = {.lex_state = 12}, + [98] = {.lex_state = 0}, + [99] = {.lex_state = 0}, + [100] = {.lex_state = 0}, [101] = {.lex_state = 0}, [102] = {.lex_state = 0}, [103] = {.lex_state = 0}, [104] = {.lex_state = 0}, - [105] = {.lex_state = 8}, - [106] = {.lex_state = 8}, + [105] = {.lex_state = 0}, + [106] = {.lex_state = 0}, [107] = {.lex_state = 0}, [108] = {.lex_state = 0}, [109] = {.lex_state = 0}, [110] = {.lex_state = 8}, - [111] = {.lex_state = 8}, - [112] = {.lex_state = 0}, - [113] = {.lex_state = 0}, - [114] = {.lex_state = 0}, - [115] = {.lex_state = 0}, - [116] = {.lex_state = 8}, - [117] = {.lex_state = 0}, - [118] = {.lex_state = 8}, + [111] = {.lex_state = 0}, + [112] = {.lex_state = 8}, + [113] = {.lex_state = 8}, + [114] = {.lex_state = 8}, + [115] = {.lex_state = 8}, + [116] = {.lex_state = 0}, + [117] = {.lex_state = 38}, + [118] = {.lex_state = 0}, [119] = {.lex_state = 0}, [120] = {.lex_state = 8}, - [121] = {.lex_state = 0}, - [122] = {.lex_state = 0}, - [123] = {.lex_state = 38}, - [124] = {.lex_state = 0}, - [125] = {.lex_state = 0}, - [126] = {.lex_state = 8}, - [127] = {.lex_state = 8}, + [121] = {.lex_state = 8}, + [122] = {.lex_state = 8}, + [123] = {.lex_state = 8}, + [124] = {.lex_state = 8}, + [125] = {.lex_state = 8}, + [126] = {.lex_state = 0}, + [127] = {.lex_state = 0}, [128] = {.lex_state = 0}, [129] = {.lex_state = 0}, [130] = {.lex_state = 8}, - [131] = {.lex_state = 8}, + [131] = {.lex_state = 0}, [132] = {.lex_state = 0}, [133] = {.lex_state = 0}, - [134] = {.lex_state = 0}, + [134] = {.lex_state = 8}, [135] = {.lex_state = 0}, [136] = {.lex_state = 0}, - [137] = {.lex_state = 8}, + [137] = {.lex_state = 0}, [138] = {.lex_state = 0}, - [139] = {.lex_state = 0}, + [139] = {.lex_state = 8}, [140] = {.lex_state = 0}, [141] = {.lex_state = 0}, - [142] = {.lex_state = 0}, - [143] = {.lex_state = 0}, - [144] = {.lex_state = 0}, - [145] = {.lex_state = 0}, - [146] = {.lex_state = 0}, + [142] = {.lex_state = 8}, + [143] = {.lex_state = 8}, + [144] = {.lex_state = 8}, + [145] = {.lex_state = 8}, + [146] = {.lex_state = 8}, [147] = {.lex_state = 8}, [148] = {.lex_state = 0}, - [149] = {.lex_state = 0}, + [149] = {.lex_state = 8}, [150] = {.lex_state = 0}, - [151] = {.lex_state = 8}, - [152] = {.lex_state = 0}, - [153] = {.lex_state = 0}, - [154] = {.lex_state = 8}, - [155] = {.lex_state = 8}, - [156] = {.lex_state = 0}, - [157] = {.lex_state = 8}, - [158] = {.lex_state = 8}, - [159] = {.lex_state = 0}, - [160] = {.lex_state = 8}, - [161] = {.lex_state = 8}, - [162] = {.lex_state = 8}, + [151] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [0] = { [ts_builtin_sym_end] = ACTIONS(1), [anon_sym_COLON] = ACTIONS(1), - [anon_sym_COMMA] = ACTIONS(1), [anon_sym_DASH_GT] = ACTIONS(1), [anon_sym_module] = ACTIONS(1), [sym_number] = ACTIONS(1), @@ -3361,6 +3318,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_GT_EQ] = ACTIONS(1), [anon_sym_PERCENT] = ACTIONS(1), [anon_sym_LPAREN] = ACTIONS(1), + [anon_sym_COMMA] = ACTIONS(1), [anon_sym_RPAREN] = ACTIONS(1), [anon_sym_LBRACK] = ACTIONS(1), [anon_sym_RBRACK] = ACTIONS(1), @@ -3375,34 +3333,32 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_SEMI] = ACTIONS(1), }, [1] = { - [sym_source_file] = STATE(159), - [sym_module] = STATE(112), - [aux_sym_source_file_repeat1] = STATE(112), + [sym_source_file] = STATE(148), + [sym_module] = STATE(118), + [aux_sym_source_file_repeat1] = STATE(118), [ts_builtin_sym_end] = ACTIONS(3), [anon_sym_module] = ACTIONS(5), }, [2] = { - [sym_global_identifier] = STATE(36), - [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(126), - [sym__type] = STATE(126), - [sym_declaration] = STATE(115), - [sym_unary_op] = STATE(42), - [sym_binary_op] = STATE(42), - [sym_array_op] = STATE(42), - [sym_func_call] = STATE(42), - [sym_parenthesis_expression] = STATE(42), - [sym__expression] = STATE(42), - [sym_block] = STATE(6), - [sym__assign_left_side] = STATE(153), - [sym_decl_assign_statement] = STATE(156), - [sym_decl_statement] = STATE(156), - [sym_expression_statement] = STATE(156), - [sym_if_statement] = STATE(6), - [sym_for_statement] = STATE(6), - [sym__statement] = STATE(6), - [aux_sym_block_repeat1] = STATE(6), - [aux_sym__assign_left_side_repeat1] = STATE(18), + [sym_global_identifier] = STATE(38), + [sym__maybe_global_identifier] = STATE(22), + [sym_array_type] = STATE(122), + [sym__type] = STATE(122), + [sym_declaration] = STATE(106), + [sym_unary_op] = STATE(37), + [sym_binary_op] = STATE(37), + [sym_array_op] = STATE(37), + [sym_func_call] = STATE(37), + [sym_parenthesis_expression] = STATE(37), + [sym__expression] = STATE(37), + [sym_block] = STATE(7), + [sym_assign_left_side] = STATE(133), + [sym_decl_assign_statement] = STATE(151), + [sym_if_statement] = STATE(7), + [sym_for_statement] = STATE(7), + [sym__statement] = STATE(7), + [aux_sym_block_repeat1] = STATE(7), + [aux_sym_assign_left_side_repeat1] = STATE(17), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), [anon_sym_COLON_COLON] = ACTIONS(11), @@ -3424,27 +3380,25 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_for] = ACTIONS(29), }, [3] = { - [sym_global_identifier] = STATE(36), - [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(126), - [sym__type] = STATE(126), - [sym_declaration] = STATE(115), - [sym_unary_op] = STATE(42), - [sym_binary_op] = STATE(42), - [sym_array_op] = STATE(42), - [sym_func_call] = STATE(42), - [sym_parenthesis_expression] = STATE(42), - [sym__expression] = STATE(42), + [sym_global_identifier] = STATE(38), + [sym__maybe_global_identifier] = STATE(22), + [sym_array_type] = STATE(122), + [sym__type] = STATE(122), + [sym_declaration] = STATE(106), + [sym_unary_op] = STATE(37), + [sym_binary_op] = STATE(37), + [sym_array_op] = STATE(37), + [sym_func_call] = STATE(37), + [sym_parenthesis_expression] = STATE(37), + [sym__expression] = STATE(37), [sym_block] = STATE(2), - [sym__assign_left_side] = STATE(153), - [sym_decl_assign_statement] = STATE(156), - [sym_decl_statement] = STATE(156), - [sym_expression_statement] = STATE(156), + [sym_assign_left_side] = STATE(133), + [sym_decl_assign_statement] = STATE(151), [sym_if_statement] = STATE(2), [sym_for_statement] = STATE(2), [sym__statement] = STATE(2), [aux_sym_block_repeat1] = STATE(2), - [aux_sym__assign_left_side_repeat1] = STATE(18), + [aux_sym_assign_left_side_repeat1] = STATE(17), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), [anon_sym_COLON_COLON] = ACTIONS(11), @@ -3466,27 +3420,25 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_for] = ACTIONS(29), }, [4] = { - [sym_global_identifier] = STATE(36), - [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(126), - [sym__type] = STATE(126), - [sym_declaration] = STATE(115), - [sym_unary_op] = STATE(42), - [sym_binary_op] = STATE(42), - [sym_array_op] = STATE(42), - [sym_func_call] = STATE(42), - [sym_parenthesis_expression] = STATE(42), - [sym__expression] = STATE(42), - [sym_block] = STATE(6), - [sym__assign_left_side] = STATE(153), - [sym_decl_assign_statement] = STATE(156), - [sym_decl_statement] = STATE(156), - [sym_expression_statement] = STATE(156), - [sym_if_statement] = STATE(6), - [sym_for_statement] = STATE(6), - [sym__statement] = STATE(6), - [aux_sym_block_repeat1] = STATE(6), - [aux_sym__assign_left_side_repeat1] = STATE(18), + [sym_global_identifier] = STATE(38), + [sym__maybe_global_identifier] = STATE(22), + [sym_array_type] = STATE(122), + [sym__type] = STATE(122), + [sym_declaration] = STATE(106), + [sym_unary_op] = STATE(37), + [sym_binary_op] = STATE(37), + [sym_array_op] = STATE(37), + [sym_func_call] = STATE(37), + [sym_parenthesis_expression] = STATE(37), + [sym__expression] = STATE(37), + [sym_block] = STATE(7), + [sym_assign_left_side] = STATE(133), + [sym_decl_assign_statement] = STATE(151), + [sym_if_statement] = STATE(7), + [sym_for_statement] = STATE(7), + [sym__statement] = STATE(7), + [aux_sym_block_repeat1] = STATE(7), + [aux_sym_assign_left_side_repeat1] = STATE(17), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), [anon_sym_COLON_COLON] = ACTIONS(11), @@ -3508,27 +3460,25 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_for] = ACTIONS(29), }, [5] = { - [sym_global_identifier] = STATE(36), - [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(126), - [sym__type] = STATE(126), - [sym_declaration] = STATE(115), - [sym_unary_op] = STATE(42), - [sym_binary_op] = STATE(42), - [sym_array_op] = STATE(42), - [sym_func_call] = STATE(42), - [sym_parenthesis_expression] = STATE(42), - [sym__expression] = STATE(42), + [sym_global_identifier] = STATE(38), + [sym__maybe_global_identifier] = STATE(22), + [sym_array_type] = STATE(122), + [sym__type] = STATE(122), + [sym_declaration] = STATE(106), + [sym_unary_op] = STATE(37), + [sym_binary_op] = STATE(37), + [sym_array_op] = STATE(37), + [sym_func_call] = STATE(37), + [sym_parenthesis_expression] = STATE(37), + [sym__expression] = STATE(37), [sym_block] = STATE(4), - [sym__assign_left_side] = STATE(153), - [sym_decl_assign_statement] = STATE(156), - [sym_decl_statement] = STATE(156), - [sym_expression_statement] = STATE(156), + [sym_assign_left_side] = STATE(133), + [sym_decl_assign_statement] = STATE(151), [sym_if_statement] = STATE(4), [sym_for_statement] = STATE(4), [sym__statement] = STATE(4), [aux_sym_block_repeat1] = STATE(4), - [aux_sym__assign_left_side_repeat1] = STATE(18), + [aux_sym_assign_left_side_repeat1] = STATE(17), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), [anon_sym_COLON_COLON] = ACTIONS(11), @@ -3550,69 +3500,25 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_for] = ACTIONS(29), }, [6] = { - [sym_global_identifier] = STATE(36), - [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(126), - [sym__type] = STATE(126), - [sym_declaration] = STATE(115), - [sym_unary_op] = STATE(42), - [sym_binary_op] = STATE(42), - [sym_array_op] = STATE(42), - [sym_func_call] = STATE(42), - [sym_parenthesis_expression] = STATE(42), - [sym__expression] = STATE(42), - [sym_block] = STATE(6), - [sym__assign_left_side] = STATE(153), - [sym_decl_assign_statement] = STATE(156), - [sym_decl_statement] = STATE(156), - [sym_expression_statement] = STATE(156), - [sym_if_statement] = STATE(6), - [sym_for_statement] = STATE(6), - [sym__statement] = STATE(6), - [aux_sym_block_repeat1] = STATE(6), - [aux_sym__assign_left_side_repeat1] = STATE(18), - [sym_identifier] = ACTIONS(37), - [sym_number] = ACTIONS(40), - [anon_sym_COLON_COLON] = ACTIONS(43), - [anon_sym_state] = ACTIONS(46), - [anon_sym_gen] = ACTIONS(46), - [anon_sym_PLUS] = ACTIONS(49), - [anon_sym_DASH] = ACTIONS(49), - [anon_sym_STAR] = ACTIONS(49), - [anon_sym_BANG] = ACTIONS(49), - [anon_sym_PIPE] = ACTIONS(49), - [anon_sym_AMP] = ACTIONS(49), - [anon_sym_CARET] = ACTIONS(49), - [anon_sym_LPAREN] = ACTIONS(52), - [anon_sym_LBRACE] = ACTIONS(55), - [anon_sym_RBRACE] = ACTIONS(58), - [anon_sym_reg] = ACTIONS(60), - [anon_sym_initial] = ACTIONS(63), - [anon_sym_if] = ACTIONS(66), - [anon_sym_for] = ACTIONS(69), - }, - [7] = { - [sym_global_identifier] = STATE(36), - [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(126), - [sym__type] = STATE(126), - [sym_declaration] = STATE(115), - [sym_unary_op] = STATE(42), - [sym_binary_op] = STATE(42), - [sym_array_op] = STATE(42), - [sym_func_call] = STATE(42), - [sym_parenthesis_expression] = STATE(42), - [sym__expression] = STATE(42), - [sym_block] = STATE(6), - [sym__assign_left_side] = STATE(153), - [sym_decl_assign_statement] = STATE(156), - [sym_decl_statement] = STATE(156), - [sym_expression_statement] = STATE(156), - [sym_if_statement] = STATE(6), - [sym_for_statement] = STATE(6), - [sym__statement] = STATE(6), - [aux_sym_block_repeat1] = STATE(6), - [aux_sym__assign_left_side_repeat1] = STATE(18), + [sym_global_identifier] = STATE(38), + [sym__maybe_global_identifier] = STATE(22), + [sym_array_type] = STATE(122), + [sym__type] = STATE(122), + [sym_declaration] = STATE(106), + [sym_unary_op] = STATE(37), + [sym_binary_op] = STATE(37), + [sym_array_op] = STATE(37), + [sym_func_call] = STATE(37), + [sym_parenthesis_expression] = STATE(37), + [sym__expression] = STATE(37), + [sym_block] = STATE(8), + [sym_assign_left_side] = STATE(133), + [sym_decl_assign_statement] = STATE(151), + [sym_if_statement] = STATE(8), + [sym_for_statement] = STATE(8), + [sym__statement] = STATE(8), + [aux_sym_block_repeat1] = STATE(8), + [aux_sym_assign_left_side_repeat1] = STATE(17), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), [anon_sym_COLON_COLON] = ACTIONS(11), @@ -3627,34 +3533,72 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_CARET] = ACTIONS(15), [anon_sym_LPAREN] = ACTIONS(17), [anon_sym_LBRACE] = ACTIONS(19), - [anon_sym_RBRACE] = ACTIONS(72), + [anon_sym_RBRACE] = ACTIONS(37), [anon_sym_reg] = ACTIONS(23), [anon_sym_initial] = ACTIONS(25), [anon_sym_if] = ACTIONS(27), [anon_sym_for] = ACTIONS(29), }, + [7] = { + [sym_global_identifier] = STATE(38), + [sym__maybe_global_identifier] = STATE(22), + [sym_array_type] = STATE(122), + [sym__type] = STATE(122), + [sym_declaration] = STATE(106), + [sym_unary_op] = STATE(37), + [sym_binary_op] = STATE(37), + [sym_array_op] = STATE(37), + [sym_func_call] = STATE(37), + [sym_parenthesis_expression] = STATE(37), + [sym__expression] = STATE(37), + [sym_block] = STATE(7), + [sym_assign_left_side] = STATE(133), + [sym_decl_assign_statement] = STATE(151), + [sym_if_statement] = STATE(7), + [sym_for_statement] = STATE(7), + [sym__statement] = STATE(7), + [aux_sym_block_repeat1] = STATE(7), + [aux_sym_assign_left_side_repeat1] = STATE(17), + [sym_identifier] = ACTIONS(39), + [sym_number] = ACTIONS(42), + [anon_sym_COLON_COLON] = ACTIONS(45), + [anon_sym_state] = ACTIONS(48), + [anon_sym_gen] = ACTIONS(48), + [anon_sym_PLUS] = ACTIONS(51), + [anon_sym_DASH] = ACTIONS(51), + [anon_sym_STAR] = ACTIONS(51), + [anon_sym_BANG] = ACTIONS(51), + [anon_sym_PIPE] = ACTIONS(51), + [anon_sym_AMP] = ACTIONS(51), + [anon_sym_CARET] = ACTIONS(51), + [anon_sym_LPAREN] = ACTIONS(54), + [anon_sym_LBRACE] = ACTIONS(57), + [anon_sym_RBRACE] = ACTIONS(60), + [anon_sym_reg] = ACTIONS(62), + [anon_sym_initial] = ACTIONS(65), + [anon_sym_if] = ACTIONS(68), + [anon_sym_for] = ACTIONS(71), + }, [8] = { - [sym_global_identifier] = STATE(36), - [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(126), - [sym__type] = STATE(126), - [sym_declaration] = STATE(115), - [sym_unary_op] = STATE(42), - [sym_binary_op] = STATE(42), - [sym_array_op] = STATE(42), - [sym_func_call] = STATE(42), - [sym_parenthesis_expression] = STATE(42), - [sym__expression] = STATE(42), + [sym_global_identifier] = STATE(38), + [sym__maybe_global_identifier] = STATE(22), + [sym_array_type] = STATE(122), + [sym__type] = STATE(122), + [sym_declaration] = STATE(106), + [sym_unary_op] = STATE(37), + [sym_binary_op] = STATE(37), + [sym_array_op] = STATE(37), + [sym_func_call] = STATE(37), + [sym_parenthesis_expression] = STATE(37), + [sym__expression] = STATE(37), [sym_block] = STATE(7), - [sym__assign_left_side] = STATE(153), - [sym_decl_assign_statement] = STATE(156), - [sym_decl_statement] = STATE(156), - [sym_expression_statement] = STATE(156), + [sym_assign_left_side] = STATE(133), + [sym_decl_assign_statement] = STATE(151), [sym_if_statement] = STATE(7), [sym_for_statement] = STATE(7), [sym__statement] = STATE(7), [aux_sym_block_repeat1] = STATE(7), - [aux_sym__assign_left_side_repeat1] = STATE(18), + [aux_sym_assign_left_side_repeat1] = STATE(17), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), [anon_sym_COLON_COLON] = ACTIONS(11), @@ -3681,6 +3625,8 @@ static const uint16_t ts_small_parse_table[] = { [0] = 15, ACTIONS(7), 1, sym_identifier, + ACTIONS(9), 1, + sym_number, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, @@ -3689,25 +3635,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_reg, ACTIONS(25), 1, anon_sym_initial, - ACTIONS(76), 1, - sym_number, - STATE(18), 1, - aux_sym__assign_left_side_repeat1, - STATE(19), 1, + STATE(17), 1, + aux_sym_assign_left_side_repeat1, + STATE(22), 1, sym__maybe_global_identifier, - STATE(36), 1, + STATE(38), 1, sym_global_identifier, - STATE(141), 1, + STATE(106), 1, sym_declaration, - STATE(143), 1, - sym__assign_left_side, + STATE(150), 1, + sym_assign_left_side, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(126), 2, + STATE(122), 2, sym_array_type, sym__type, - STATE(54), 6, + STATE(37), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -3722,48 +3666,59 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [59] = 4, - ACTIONS(80), 1, - anon_sym_COLON_COLON, - ACTIONS(83), 1, - anon_sym_SLASH, - STATE(10), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(78), 24, - anon_sym_COLON, - anon_sym_COMMA, - anon_sym_DASH_GT, + [59] = 15, + ACTIONS(7), 1, sym_identifier, + ACTIONS(9), 1, + sym_number, + ACTIONS(11), 1, + anon_sym_COLON_COLON, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(23), 1, + anon_sym_reg, + ACTIONS(25), 1, + anon_sym_initial, + STATE(17), 1, + aux_sym_assign_left_side_repeat1, + STATE(22), 1, + sym__maybe_global_identifier, + STATE(38), 1, + sym_global_identifier, + STATE(106), 1, + sym_declaration, + STATE(137), 1, + sym_assign_left_side, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + STATE(122), 2, + sym_array_type, + sym__type, + STATE(37), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_SEMI, - [95] = 4, - ACTIONS(87), 1, + [118] = 4, + ACTIONS(78), 1, anon_sym_COLON_COLON, - ACTIONS(89), 1, + ACTIONS(80), 1, anon_sym_SLASH, - STATE(10), 1, + STATE(13), 1, aux_sym_global_identifier_repeat1, - ACTIONS(85), 24, + ACTIONS(76), 24, anon_sym_COLON, - anon_sym_COMMA, anon_sym_DASH_GT, sym_identifier, anon_sym_PLUS, @@ -3780,22 +3735,64 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, + anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [131] = 4, - ACTIONS(87), 1, + [154] = 14, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(11), 1, + anon_sym_COLON_COLON, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(82), 1, + sym_number, + ACTIONS(84), 1, + anon_sym_reg, + ACTIONS(86), 1, + anon_sym_initial, + STATE(19), 1, + aux_sym_assign_left_side_repeat1, + STATE(22), 1, + sym__maybe_global_identifier, + STATE(38), 1, + sym_global_identifier, + STATE(109), 1, + sym_declaration, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + STATE(122), 2, + sym_array_type, + sym__type, + STATE(39), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(15), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [210] = 4, + ACTIONS(78), 1, anon_sym_COLON_COLON, - ACTIONS(93), 1, + ACTIONS(90), 1, anon_sym_SLASH, - STATE(11), 1, + STATE(14), 1, aux_sym_global_identifier_repeat1, - ACTIONS(91), 24, + ACTIONS(88), 24, anon_sym_COLON, - anon_sym_COMMA, anon_sym_DASH_GT, sym_identifier, anon_sym_PLUS, @@ -3812,22 +3809,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, + anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [167] = 4, - ACTIONS(87), 1, + [246] = 4, + ACTIONS(94), 1, anon_sym_COLON_COLON, - ACTIONS(93), 1, + ACTIONS(97), 1, anon_sym_SLASH, - STATE(10), 1, + STATE(14), 1, aux_sym_global_identifier_repeat1, - ACTIONS(91), 24, + ACTIONS(92), 24, anon_sym_COLON, - anon_sym_COMMA, anon_sym_DASH_GT, sym_identifier, anon_sym_PLUS, @@ -3844,64 +3841,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, + anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [203] = 14, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(95), 1, - sym_number, - ACTIONS(97), 1, - anon_sym_reg, - ACTIONS(99), 1, - anon_sym_initial, - STATE(17), 1, - aux_sym__assign_left_side_repeat1, - STATE(19), 1, - sym__maybe_global_identifier, - STATE(36), 1, - sym_global_identifier, - STATE(136), 1, - sym_declaration, - ACTIONS(13), 2, - anon_sym_state, - anon_sym_gen, - STATE(126), 2, - sym_array_type, - sym__type, - STATE(67), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [259] = 4, - ACTIONS(87), 1, + [282] = 4, + ACTIONS(78), 1, anon_sym_COLON_COLON, - ACTIONS(103), 1, + ACTIONS(101), 1, anon_sym_SLASH, - STATE(13), 1, + STATE(16), 1, aux_sym_global_identifier_repeat1, - ACTIONS(101), 24, + ACTIONS(99), 24, anon_sym_COLON, - anon_sym_COMMA, anon_sym_DASH_GT, sym_identifier, anon_sym_PLUS, @@ -3918,21 +3873,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, + anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [295] = 2, - ACTIONS(83), 1, + [318] = 4, + ACTIONS(78), 1, + anon_sym_COLON_COLON, + ACTIONS(80), 1, anon_sym_SLASH, - ACTIONS(78), 25, + STATE(14), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(76), 24, anon_sym_COLON, - anon_sym_COMMA, anon_sym_DASH_GT, sym_identifier, - anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3947,38 +3905,39 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, + anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [326] = 13, + [354] = 13, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(105), 1, + ACTIONS(103), 1, sym_number, - ACTIONS(107), 1, + ACTIONS(105), 1, anon_sym_reg, - STATE(19), 1, + STATE(22), 1, sym__maybe_global_identifier, - STATE(36), 1, + STATE(38), 1, sym_global_identifier, - STATE(94), 1, - aux_sym__assign_left_side_repeat1, - STATE(140), 1, + STATE(96), 1, + aux_sym_assign_left_side_repeat1, + STATE(103), 1, sym_declaration, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(126), 2, + STATE(122), 2, sym_array_type, sym__type, - STATE(52), 6, + STATE(36), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -3993,29 +3952,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [379] = 13, + [407] = 2, + ACTIONS(97), 1, + anon_sym_SLASH, + ACTIONS(92), 25, + anon_sym_COLON, + anon_sym_DASH_GT, + sym_identifier, + anon_sym_COLON_COLON, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_SEMI, + [438] = 13, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(107), 1, + ACTIONS(105), 1, anon_sym_reg, - ACTIONS(109), 1, + ACTIONS(107), 1, sym_number, - STATE(19), 1, + STATE(22), 1, sym__maybe_global_identifier, - STATE(36), 1, + STATE(38), 1, sym_global_identifier, - STATE(94), 1, - aux_sym__assign_left_side_repeat1, - STATE(108), 1, + STATE(96), 1, + aux_sym_assign_left_side_repeat1, + STATE(111), 1, sym_declaration, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(126), 2, + STATE(122), 2, sym_array_type, sym__type, STATE(41), 6, @@ -4033,14 +4021,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [432] = 3, - ACTIONS(113), 1, + [491] = 3, + ACTIONS(111), 1, anon_sym_SLASH, - ACTIONS(115), 1, - anon_sym_LPAREN, - ACTIONS(111), 23, + STATE(33), 1, + sym_array_bracket_expression, + ACTIONS(109), 23, anon_sym_COLON, - anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_DASH, @@ -4055,6 +4042,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -4062,14 +4050,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [464] = 3, - ACTIONS(119), 1, + [523] = 3, + ACTIONS(115), 1, anon_sym_SLASH, - STATE(25), 1, + STATE(33), 1, sym_array_bracket_expression, - ACTIONS(117), 23, + ACTIONS(113), 23, anon_sym_COLON, - anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_DASH, @@ -4084,6 +4071,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -4091,14 +4079,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [496] = 3, - ACTIONS(123), 1, + [555] = 3, + ACTIONS(119), 1, anon_sym_SLASH, - STATE(25), 1, - sym_array_bracket_expression, - ACTIONS(121), 23, + ACTIONS(121), 1, + anon_sym_LPAREN, + ACTIONS(117), 23, anon_sym_COLON, - anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_DASH, @@ -4113,6 +4100,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -4120,12 +4108,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [528] = 2, - ACTIONS(127), 1, + [587] = 2, + ACTIONS(125), 1, anon_sym_SLASH, - ACTIONS(125), 23, + ACTIONS(123), 23, anon_sym_COLON, - anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_DASH, @@ -4140,6 +4127,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -4147,47 +4135,88 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [557] = 2, - ACTIONS(131), 1, - anon_sym_SLASH, - ACTIONS(129), 23, - anon_sym_COLON, - anon_sym_COMMA, - anon_sym_DASH_GT, + [616] = 11, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(11), 1, + anon_sym_COLON_COLON, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(107), 1, + sym_number, + STATE(22), 1, + sym__maybe_global_identifier, + STATE(38), 1, + sym_global_identifier, + STATE(111), 1, + sym_declaration, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + STATE(122), 2, + sym_array_type, + sym__type, + STATE(41), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [663] = 8, + ACTIONS(131), 1, anon_sym_PIPE, + ACTIONS(133), 1, anon_sym_AMP, + ACTIONS(135), 1, anon_sym_CARET, + ACTIONS(137), 1, + anon_sym_SLASH, + STATE(33), 1, + sym_array_bracket_expression, + ACTIONS(127), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(129), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(113), 15, + anon_sym_COLON, + anon_sym_DASH_GT, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_PERCENT, + anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, - anon_sym_in, anon_sym_SEMI, - [586] = 5, + [704] = 5, ACTIONS(137), 1, anon_sym_SLASH, - STATE(25), 1, + STATE(33), 1, sym_array_bracket_expression, - ACTIONS(133), 2, + ACTIONS(127), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(135), 2, + ACTIONS(129), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(121), 18, + ACTIONS(113), 18, anon_sym_COLON, - anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PIPE, anon_sym_AMP, @@ -4198,58 +4227,62 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, + anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [621] = 2, - ACTIONS(141), 1, + [739] = 7, + ACTIONS(131), 1, + anon_sym_PIPE, + ACTIONS(135), 1, + anon_sym_CARET, + ACTIONS(137), 1, anon_sym_SLASH, - ACTIONS(139), 23, - anon_sym_COLON, - anon_sym_COMMA, - anon_sym_DASH_GT, + STATE(33), 1, + sym_array_bracket_expression, + ACTIONS(127), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(129), 2, anon_sym_STAR, - anon_sym_PIPE, + anon_sym_PERCENT, + ACTIONS(113), 16, + anon_sym_COLON, + anon_sym_DASH_GT, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_PERCENT, + anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, - anon_sym_in, anon_sym_SEMI, - [650] = 7, + [778] = 6, + ACTIONS(135), 1, + anon_sym_CARET, ACTIONS(137), 1, anon_sym_SLASH, - ACTIONS(143), 1, - anon_sym_PIPE, - ACTIONS(145), 1, - anon_sym_CARET, - STATE(25), 1, + STATE(33), 1, sym_array_bracket_expression, - ACTIONS(133), 2, + ACTIONS(127), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(135), 2, + ACTIONS(129), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(121), 16, + ACTIONS(113), 17, anon_sym_COLON, - anon_sym_COMMA, anon_sym_DASH_GT, + anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, @@ -4257,18 +4290,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, + anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [689] = 2, - ACTIONS(149), 1, + [815] = 2, + ACTIONS(141), 1, anon_sym_SLASH, - ACTIONS(147), 23, + ACTIONS(139), 23, anon_sym_COLON, - anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_DASH, @@ -4283,6 +4316,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -4290,43 +4324,40 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [718] = 6, + [844] = 4, ACTIONS(137), 1, anon_sym_SLASH, - ACTIONS(145), 1, - anon_sym_CARET, - STATE(25), 1, + STATE(33), 1, sym_array_bracket_expression, - ACTIONS(133), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(135), 2, + ACTIONS(129), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(121), 17, + ACTIONS(113), 20, anon_sym_COLON, - anon_sym_COMMA, anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_DASH, anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, + anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [755] = 2, - ACTIONS(153), 1, + [877] = 2, + ACTIONS(145), 1, anon_sym_SLASH, - ACTIONS(151), 23, + ACTIONS(143), 23, anon_sym_COLON, - anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_DASH, @@ -4341,6 +4372,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -4348,89 +4380,42 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [784] = 11, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(109), 1, - sym_number, - STATE(19), 1, - sym__maybe_global_identifier, - STATE(36), 1, - sym_global_identifier, - STATE(108), 1, - sym_declaration, - ACTIONS(13), 2, - anon_sym_state, - anon_sym_gen, - STATE(126), 2, - sym_array_type, - sym__type, - STATE(41), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, + [906] = 2, + ACTIONS(149), 1, + anon_sym_SLASH, + ACTIONS(147), 23, + anon_sym_COLON, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, - anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [831] = 8, - ACTIONS(137), 1, - anon_sym_SLASH, - ACTIONS(143), 1, - anon_sym_PIPE, - ACTIONS(145), 1, - anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_AMP, - STATE(25), 1, - sym_array_bracket_expression, - ACTIONS(133), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(135), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(121), 15, - anon_sym_COLON, - anon_sym_COMMA, - anon_sym_DASH_GT, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, + anon_sym_in, anon_sym_SEMI, - [872] = 4, - ACTIONS(137), 1, + [935] = 2, + ACTIONS(153), 1, anon_sym_SLASH, - STATE(25), 1, - sym_array_bracket_expression, - ACTIONS(135), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(121), 20, + ACTIONS(151), 23, anon_sym_COLON, - anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_DASH, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -4440,18 +4425,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, + anon_sym_in, anon_sym_SEMI, - [905] = 2, - ACTIONS(159), 1, + [964] = 2, + ACTIONS(157), 1, anon_sym_SLASH, - ACTIONS(157), 23, + ACTIONS(155), 23, anon_sym_COLON, - anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_DASH, @@ -4466,6 +4453,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -4473,28 +4461,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [934] = 11, + [993] = 11, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(105), 1, + ACTIONS(103), 1, sym_number, - STATE(19), 1, + STATE(22), 1, sym__maybe_global_identifier, - STATE(36), 1, + STATE(38), 1, sym_global_identifier, - STATE(140), 1, + STATE(103), 1, sym_declaration, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(126), 2, + STATE(122), 2, sym_array_type, sym__type, - STATE(52), 6, + STATE(36), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -4509,47 +4497,85 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [981] = 10, + [1040] = 12, + ACTIONS(131), 1, + anon_sym_PIPE, + ACTIONS(133), 1, + anon_sym_AMP, + ACTIONS(135), 1, + anon_sym_CARET, ACTIONS(137), 1, anon_sym_SLASH, - ACTIONS(143), 1, + ACTIONS(163), 1, + anon_sym_COMMA, + ACTIONS(165), 1, + anon_sym_LBRACK, + STATE(33), 1, + sym_array_bracket_expression, + STATE(104), 1, + aux_sym_assign_left_side_repeat2, + ACTIONS(127), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(129), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(159), 4, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_SEMI, + ACTIONS(161), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [1087] = 12, + ACTIONS(131), 1, anon_sym_PIPE, - ACTIONS(145), 1, - anon_sym_CARET, - ACTIONS(155), 1, + ACTIONS(133), 1, anon_sym_AMP, + ACTIONS(135), 1, + anon_sym_CARET, + ACTIONS(137), 1, + anon_sym_SLASH, + ACTIONS(163), 1, + anon_sym_COMMA, ACTIONS(165), 1, anon_sym_LBRACK, - STATE(25), 1, + STATE(33), 1, sym_array_bracket_expression, - ACTIONS(133), 2, + STATE(100), 1, + aux_sym_assign_left_side_repeat2, + ACTIONS(127), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(135), 2, + ACTIONS(129), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(161), 5, - anon_sym_COMMA, + ACTIONS(167), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - ACTIONS(163), 6, + ACTIONS(161), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1023] = 4, - ACTIONS(169), 1, - sym_identifier, + [1134] = 4, ACTIONS(171), 1, - anon_sym_SLASH, + sym_identifier, ACTIONS(173), 1, + anon_sym_SLASH, + ACTIONS(175), 1, anon_sym_LBRACK, - ACTIONS(167), 18, - anon_sym_COMMA, + ACTIONS(169), 19, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4564,24 +4590,121 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_SEMI, + [1165] = 10, + ACTIONS(131), 1, + anon_sym_PIPE, + ACTIONS(133), 1, + anon_sym_AMP, + ACTIONS(135), 1, + anon_sym_CARET, + ACTIONS(137), 1, + anon_sym_SLASH, + ACTIONS(165), 1, + anon_sym_LBRACK, + STATE(33), 1, + sym_array_bracket_expression, + ACTIONS(127), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(129), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(178), 5, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_SEMI, + ACTIONS(161), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [1207] = 10, + ACTIONS(131), 1, + anon_sym_PIPE, + ACTIONS(133), 1, + anon_sym_AMP, + ACTIONS(135), 1, + anon_sym_CARET, + ACTIONS(137), 1, + anon_sym_SLASH, + ACTIONS(165), 1, + anon_sym_LBRACK, + STATE(33), 1, + sym_array_bracket_expression, + ACTIONS(127), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(129), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(180), 5, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_SEMI, + ACTIONS(161), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [1249] = 10, + ACTIONS(131), 1, + anon_sym_PIPE, + ACTIONS(133), 1, + anon_sym_AMP, + ACTIONS(135), 1, + anon_sym_CARET, + ACTIONS(137), 1, + anon_sym_SLASH, + ACTIONS(165), 1, + anon_sym_LBRACK, + STATE(33), 1, + sym_array_bracket_expression, + ACTIONS(127), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(129), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(182), 5, + anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [1053] = 8, + ACTIONS(161), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [1291] = 8, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(176), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(178), 1, + ACTIONS(186), 1, sym_number, - STATE(149), 1, - sym_range, - STATE(19), 2, + ACTIONS(188), 1, + anon_sym_RPAREN, + STATE(22), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(93), 6, + STATE(70), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -4596,10 +4719,62 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1090] = 3, + [1328] = 8, + ACTIONS(11), 1, + anon_sym_COLON_COLON, + ACTIONS(17), 1, + anon_sym_LPAREN, ACTIONS(184), 1, + sym_identifier, + ACTIONS(190), 1, + sym_number, + STATE(138), 1, + sym_range, + STATE(22), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(95), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(15), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [1365] = 2, + ACTIONS(192), 8, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_else, + anon_sym_for, + ACTIONS(194), 12, + sym_number, + anon_sym_COLON_COLON, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1390] = 3, + ACTIONS(200), 1, anon_sym_else, - ACTIONS(180), 7, + ACTIONS(196), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -4607,7 +4782,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(182), 12, + ACTIONS(198), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -4620,8 +4795,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1117] = 2, - ACTIONS(186), 8, + [1417] = 2, + ACTIONS(202), 8, sym_identifier, anon_sym_state, anon_sym_gen, @@ -4630,7 +4805,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_else, anon_sym_for, - ACTIONS(188), 12, + ACTIONS(204), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -4643,28 +4818,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1142] = 8, - ACTIONS(11), 1, - anon_sym_COLON_COLON, + [1442] = 7, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(176), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(190), 1, + ACTIONS(208), 1, sym_number, - ACTIONS(192), 1, - anon_sym_RPAREN, - STATE(19), 2, + ACTIONS(210), 1, + anon_sym_COLON_COLON, + STATE(22), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(69), 6, + STATE(92), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(212), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4672,84 +4845,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1179] = 12, - ACTIONS(137), 1, - anon_sym_SLASH, - ACTIONS(143), 1, - anon_sym_PIPE, - ACTIONS(145), 1, - anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_AMP, - ACTIONS(165), 1, - anon_sym_LBRACK, - ACTIONS(194), 1, - anon_sym_COMMA, - STATE(25), 1, - sym_array_bracket_expression, - STATE(117), 1, - aux_sym__assign_left_side_repeat2, - ACTIONS(133), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(135), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(196), 2, - anon_sym_LBRACE, - anon_sym_EQ, - ACTIONS(163), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [1224] = 13, - ACTIONS(137), 1, - anon_sym_SLASH, - ACTIONS(143), 1, - anon_sym_PIPE, - ACTIONS(145), 1, - anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_AMP, - ACTIONS(165), 1, - anon_sym_LBRACK, - ACTIONS(194), 1, - anon_sym_COMMA, - ACTIONS(198), 1, - anon_sym_EQ, - ACTIONS(200), 1, - anon_sym_SEMI, - STATE(25), 1, - sym_array_bracket_expression, - STATE(109), 1, - aux_sym__assign_left_side_repeat2, - ACTIONS(133), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(135), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(163), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [1271] = 2, - ACTIONS(202), 8, + [1476] = 2, + ACTIONS(192), 7, sym_identifier, anon_sym_state, anon_sym_gen, anon_sym_reg, anon_sym_initial, anon_sym_if, - anon_sym_else, anon_sym_for, - ACTIONS(204), 12, + ACTIONS(194), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -4762,26 +4867,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1296] = 7, + [1500] = 7, + ACTIONS(11), 1, + anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(208), 1, + ACTIONS(214), 1, sym_number, - ACTIONS(210), 1, - anon_sym_COLON_COLON, - STATE(19), 2, + STATE(22), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(20), 6, + STATE(86), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(212), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4789,26 +4894,50 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1330] = 7, + [1534] = 4, + ACTIONS(90), 1, + anon_sym_SLASH, + ACTIONS(216), 1, + anon_sym_COLON_COLON, + STATE(52), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(88), 16, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_in, + [1562] = 7, + ACTIONS(11), 1, + anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(210), 1, - anon_sym_COLON_COLON, - ACTIONS(214), 1, + ACTIONS(218), 1, sym_number, - STATE(19), 2, + STATE(22), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(84), 6, + STATE(94), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(212), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4816,19 +4945,43 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1364] = 7, + [1596] = 4, + ACTIONS(97), 1, + anon_sym_SLASH, + ACTIONS(220), 1, + anon_sym_COLON_COLON, + STATE(52), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(92), 16, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_in, + [1624] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(176), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(216), 1, + ACTIONS(223), 1, sym_number, - STATE(19), 2, + STATE(22), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(82), 6, + STATE(81), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -4843,19 +4996,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1398] = 7, + [1658] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(176), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(218), 1, + ACTIONS(225), 1, sym_number, - STATE(19), 2, + STATE(22), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(92), 6, + STATE(30), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -4870,19 +5023,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1432] = 7, + [1692] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(176), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(220), 1, + ACTIONS(227), 1, sym_number, - STATE(19), 2, + STATE(22), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(80), 6, + STATE(21), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -4897,67 +5050,73 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1466] = 4, - ACTIONS(89), 1, - anon_sym_SLASH, - ACTIONS(222), 1, + [1726] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - STATE(50), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(85), 16, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(184), 1, + sym_identifier, + ACTIONS(229), 1, + sym_number, + STATE(22), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(28), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_LBRACK, - anon_sym_in, - [1494] = 4, - ACTIONS(83), 1, - anon_sym_SLASH, - ACTIONS(224), 1, + [1760] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - STATE(50), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(78), 16, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(184), 1, + sym_identifier, + ACTIONS(231), 1, + sym_number, + STATE(22), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(27), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_LBRACK, - anon_sym_in, - [1522] = 7, + [1794] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(176), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(227), 1, + ACTIONS(233), 1, sym_number, - STATE(19), 2, + STATE(22), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(91), 6, + STATE(26), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -4972,48 +5131,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1556] = 10, - ACTIONS(137), 1, - anon_sym_SLASH, - ACTIONS(143), 1, - anon_sym_PIPE, - ACTIONS(145), 1, - anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_AMP, - ACTIONS(165), 1, - anon_sym_LBRACK, - STATE(25), 1, - sym_array_bracket_expression, - ACTIONS(133), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(135), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(229), 3, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_EQ, - ACTIONS(163), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [1596] = 2, - ACTIONS(231), 7, + [1828] = 7, + ACTIONS(11), 1, + anon_sym_COLON_COLON, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(184), 1, sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(233), 12, + ACTIONS(235), 1, sym_number, - anon_sym_COLON_COLON, + STATE(22), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(25), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5021,49 +5158,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1620] = 12, - ACTIONS(137), 1, - anon_sym_SLASH, - ACTIONS(143), 1, - anon_sym_PIPE, - ACTIONS(145), 1, - anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_AMP, - ACTIONS(165), 1, - anon_sym_LBRACK, - ACTIONS(194), 1, - anon_sym_COMMA, - ACTIONS(198), 1, - anon_sym_LBRACE, - STATE(25), 1, - sym_array_bracket_expression, - STATE(109), 1, - aux_sym__assign_left_side_repeat2, - ACTIONS(133), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(135), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(163), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [1664] = 4, - ACTIONS(93), 1, + [1862] = 4, + ACTIONS(80), 1, anon_sym_SLASH, - ACTIONS(222), 1, + ACTIONS(216), 1, anon_sym_COLON_COLON, - STATE(49), 1, + STATE(50), 1, aux_sym_global_identifier_repeat1, - ACTIONS(91), 16, + ACTIONS(76), 16, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5080,14 +5182,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACK, anon_sym_in, - [1692] = 4, - ACTIONS(93), 1, + [1890] = 4, + ACTIONS(80), 1, anon_sym_SLASH, - ACTIONS(222), 1, + ACTIONS(216), 1, anon_sym_COLON_COLON, - STATE(50), 1, + STATE(52), 1, aux_sym_global_identifier_repeat1, - ACTIONS(91), 16, + ACTIONS(76), 16, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5104,19 +5206,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACK, anon_sym_in, - [1720] = 7, + [1918] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(176), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(235), 1, + ACTIONS(237), 1, sym_number, - STATE(19), 2, + STATE(22), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(87), 6, + STATE(90), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -5131,26 +5233,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1754] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, + [1952] = 7, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(176), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(237), 1, + ACTIONS(210), 1, + anon_sym_COLON_COLON, + ACTIONS(239), 1, sym_number, - STATE(19), 2, + STATE(22), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(32), 6, + STATE(88), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(212), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5158,19 +5260,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1788] = 7, + [1986] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(176), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(239), 1, + ACTIONS(241), 1, sym_number, - STATE(19), 2, + STATE(22), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(21), 6, + STATE(87), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -5185,19 +5287,41 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1822] = 7, + [2020] = 2, + ACTIONS(243), 7, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(245), 12, + sym_number, + anon_sym_COLON_COLON, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [2044] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(176), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(241), 1, + ACTIONS(247), 1, sym_number, - STATE(19), 2, + STATE(22), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(28), 6, + STATE(82), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -5212,26 +5336,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1856] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, + [2078] = 7, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(176), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(243), 1, + ACTIONS(210), 1, + anon_sym_COLON_COLON, + ACTIONS(249), 1, sym_number, - STATE(19), 2, + STATE(22), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(26), 6, + STATE(89), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(212), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5239,26 +5363,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1890] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, + [2112] = 7, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(176), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(245), 1, + ACTIONS(210), 1, + anon_sym_COLON_COLON, + ACTIONS(251), 1, sym_number, - STATE(19), 2, + STATE(22), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(24), 6, + STATE(84), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(212), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5266,26 +5390,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1924] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, + [2146] = 7, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(176), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(247), 1, + ACTIONS(210), 1, + anon_sym_COLON_COLON, + ACTIONS(253), 1, sym_number, - STATE(19), 2, + STATE(22), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(31), 6, + STATE(91), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(212), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5293,19 +5417,51 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1958] = 7, + [2180] = 12, + ACTIONS(131), 1, + anon_sym_PIPE, + ACTIONS(133), 1, + anon_sym_AMP, + ACTIONS(135), 1, + anon_sym_CARET, + ACTIONS(137), 1, + anon_sym_SLASH, + ACTIONS(165), 1, + anon_sym_LBRACK, + ACTIONS(255), 1, + anon_sym_COMMA, + ACTIONS(257), 1, + anon_sym_RPAREN, + STATE(33), 1, + sym_array_bracket_expression, + STATE(127), 1, + aux_sym_func_call_repeat1, + ACTIONS(127), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(129), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(161), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [2224] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(176), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(249), 1, + ACTIONS(259), 1, sym_number, - STATE(19), 2, + STATE(22), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(83), 6, + STATE(40), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -5320,18 +5476,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1992] = 2, - ACTIONS(251), 7, + [2258] = 7, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(206), 1, sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(253), 12, - sym_number, + ACTIONS(210), 1, anon_sym_COLON_COLON, + ACTIONS(227), 1, + sym_number, + STATE(22), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(21), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(212), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5339,11 +5503,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, + [2292] = 7, + ACTIONS(17), 1, anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [2016] = 2, - ACTIONS(255), 7, + ACTIONS(206), 1, + sym_identifier, + ACTIONS(210), 1, + anon_sym_COLON_COLON, + ACTIONS(261), 1, + sym_number, + STATE(22), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(93), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(212), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [2326] = 2, + ACTIONS(202), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -5351,7 +5539,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(257), 12, + ACTIONS(204), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -5364,46 +5552,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [2040] = 10, - ACTIONS(137), 1, - anon_sym_SLASH, - ACTIONS(143), 1, - anon_sym_PIPE, - ACTIONS(145), 1, - anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_AMP, - ACTIONS(165), 1, - anon_sym_LBRACK, - STATE(25), 1, - sym_array_bracket_expression, - ACTIONS(133), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(135), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(259), 3, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_EQ, - ACTIONS(163), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [2080] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, + [2350] = 7, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(176), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(208), 1, + ACTIONS(210), 1, + anon_sym_COLON_COLON, + ACTIONS(263), 1, sym_number, - STATE(19), 2, + STATE(22), 2, sym_global_identifier, sym__maybe_global_identifier, STATE(20), 6, @@ -5413,7 +5571,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(212), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5421,46 +5579,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2114] = 12, - ACTIONS(137), 1, - anon_sym_SLASH, - ACTIONS(143), 1, - anon_sym_PIPE, - ACTIONS(145), 1, - anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_AMP, - ACTIONS(165), 1, - anon_sym_LBRACK, - ACTIONS(261), 1, - anon_sym_COMMA, - ACTIONS(263), 1, - anon_sym_RPAREN, - STATE(25), 1, - sym_array_bracket_expression, - STATE(139), 1, - aux_sym_func_call_repeat1, - ACTIONS(133), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(135), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(163), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [2158] = 4, - ACTIONS(103), 1, + [2384] = 4, + ACTIONS(101), 1, anon_sym_SLASH, - ACTIONS(222), 1, + ACTIONS(216), 1, anon_sym_COLON_COLON, - STATE(56), 1, + STATE(61), 1, aux_sym_global_identifier_repeat1, - ACTIONS(101), 16, + ACTIONS(99), 16, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5477,8 +5603,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACK, anon_sym_in, - [2186] = 2, - ACTIONS(202), 7, + [2412] = 2, + ACTIONS(265), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -5486,7 +5612,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(204), 12, + ACTIONS(267), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -5499,46 +5625,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [2210] = 7, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(206), 1, - sym_identifier, - ACTIONS(210), 1, - anon_sym_COLON_COLON, - ACTIONS(265), 1, - sym_number, - STATE(19), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(90), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(212), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [2244] = 7, + [2436] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(176), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(267), 1, + ACTIONS(269), 1, sym_number, - STATE(19), 2, + STATE(22), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(35), 6, + STATE(85), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -5553,8 +5652,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2278] = 2, - ACTIONS(186), 7, + [2470] = 2, + ACTIONS(271), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -5562,7 +5661,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(188), 12, + ACTIONS(273), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -5575,26 +5674,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [2302] = 7, + [2494] = 7, + ACTIONS(11), 1, + anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(210), 1, - anon_sym_COLON_COLON, - ACTIONS(239), 1, + ACTIONS(263), 1, sym_number, - STATE(19), 2, + STATE(22), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(21), 6, + STATE(20), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(212), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5602,147 +5701,69 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2336] = 7, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(206), 1, - sym_identifier, - ACTIONS(210), 1, - anon_sym_COLON_COLON, - ACTIONS(269), 1, - sym_number, - STATE(19), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(89), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(212), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [2370] = 7, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(206), 1, - sym_identifier, - ACTIONS(210), 1, - anon_sym_COLON_COLON, - ACTIONS(271), 1, - sym_number, - STATE(19), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(88), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(212), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [2404] = 7, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(206), 1, - sym_identifier, - ACTIONS(210), 1, - anon_sym_COLON_COLON, - ACTIONS(273), 1, - sym_number, - STATE(19), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(86), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(212), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, + [2528] = 10, + ACTIONS(131), 1, anon_sym_PIPE, + ACTIONS(133), 1, anon_sym_AMP, + ACTIONS(135), 1, anon_sym_CARET, - [2438] = 7, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(206), 1, - sym_identifier, - ACTIONS(210), 1, - anon_sym_COLON_COLON, - ACTIONS(275), 1, - sym_number, - STATE(19), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(85), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(212), 7, + ACTIONS(137), 1, + anon_sym_SLASH, + ACTIONS(165), 1, + anon_sym_LBRACK, + STATE(33), 1, + sym_array_bracket_expression, + ACTIONS(127), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(129), 2, anon_sym_STAR, - anon_sym_BANG, + anon_sym_PERCENT, + ACTIONS(275), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + ACTIONS(161), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [2567] = 11, + ACTIONS(131), 1, anon_sym_PIPE, + ACTIONS(133), 1, anon_sym_AMP, + ACTIONS(135), 1, anon_sym_CARET, - [2472] = 10, ACTIONS(137), 1, anon_sym_SLASH, - ACTIONS(143), 1, - anon_sym_PIPE, - ACTIONS(145), 1, - anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_AMP, ACTIONS(165), 1, anon_sym_LBRACK, - STATE(25), 1, + ACTIONS(277), 1, + anon_sym_LBRACE, + STATE(33), 1, sym_array_bracket_expression, - ACTIONS(133), 2, + STATE(45), 1, + sym_block, + ACTIONS(127), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(135), 2, + ACTIONS(129), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(277), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - ACTIONS(163), 6, + ACTIONS(161), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2511] = 2, - ACTIONS(83), 1, + [2608] = 2, + ACTIONS(97), 1, anon_sym_SLASH, - ACTIONS(78), 17, + ACTIONS(92), 17, anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, @@ -5760,125 +5781,159 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACK, anon_sym_in, - [2534] = 10, - ACTIONS(137), 1, + [2631] = 5, + ACTIONS(283), 1, anon_sym_SLASH, - ACTIONS(143), 1, + STATE(33), 1, + sym_array_bracket_expression, + ACTIONS(279), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(281), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(113), 11, anon_sym_PIPE, - ACTIONS(145), 1, + anon_sym_AMP, anon_sym_CARET, - ACTIONS(155), 1, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_LBRACK, + anon_sym_in, + [2659] = 10, + ACTIONS(131), 1, + anon_sym_PIPE, + ACTIONS(133), 1, anon_sym_AMP, + ACTIONS(135), 1, + anon_sym_CARET, + ACTIONS(137), 1, + anon_sym_SLASH, ACTIONS(165), 1, anon_sym_LBRACK, - ACTIONS(279), 1, - anon_sym_RBRACK, - STATE(25), 1, + ACTIONS(285), 1, + anon_sym_LBRACE, + STATE(33), 1, sym_array_bracket_expression, - ACTIONS(133), 2, + ACTIONS(127), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(135), 2, + ACTIONS(129), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(163), 6, + ACTIONS(161), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2572] = 10, - ACTIONS(137), 1, - anon_sym_SLASH, - ACTIONS(143), 1, + [2697] = 10, + ACTIONS(131), 1, anon_sym_PIPE, - ACTIONS(145), 1, - anon_sym_CARET, - ACTIONS(155), 1, + ACTIONS(133), 1, anon_sym_AMP, + ACTIONS(135), 1, + anon_sym_CARET, + ACTIONS(137), 1, + anon_sym_SLASH, ACTIONS(165), 1, anon_sym_LBRACK, - ACTIONS(281), 1, - anon_sym_SEMI, - STATE(25), 1, + ACTIONS(287), 1, + anon_sym_RBRACK, + STATE(33), 1, sym_array_bracket_expression, - ACTIONS(133), 2, + ACTIONS(127), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(135), 2, + ACTIONS(129), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(163), 6, + ACTIONS(161), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2610] = 4, - ACTIONS(285), 1, + [2735] = 10, + ACTIONS(131), 1, + anon_sym_PIPE, + ACTIONS(133), 1, + anon_sym_AMP, + ACTIONS(135), 1, + anon_sym_CARET, + ACTIONS(137), 1, anon_sym_SLASH, - STATE(25), 1, + ACTIONS(165), 1, + anon_sym_LBRACK, + ACTIONS(289), 1, + anon_sym_SEMI, + STATE(33), 1, sym_array_bracket_expression, - ACTIONS(283), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(121), 13, + ACTIONS(127), 2, anon_sym_PLUS, anon_sym_DASH, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, + ACTIONS(129), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(161), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, + [2773] = 10, + ACTIONS(165), 1, anon_sym_LBRACK, + ACTIONS(180), 1, anon_sym_in, - [2636] = 6, - ACTIONS(285), 1, + ACTIONS(283), 1, anon_sym_SLASH, - ACTIONS(289), 1, + ACTIONS(291), 1, + anon_sym_PIPE, + ACTIONS(293), 1, + anon_sym_AMP, + ACTIONS(295), 1, anon_sym_CARET, - STATE(25), 1, + STATE(33), 1, sym_array_bracket_expression, - ACTIONS(283), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(287), 2, + ACTIONS(279), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(121), 10, - anon_sym_PIPE, - anon_sym_AMP, + ACTIONS(281), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(297), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_LBRACK, - anon_sym_in, - [2666] = 7, - ACTIONS(285), 1, + [2811] = 8, + ACTIONS(283), 1, anon_sym_SLASH, - ACTIONS(289), 1, - anon_sym_CARET, ACTIONS(291), 1, anon_sym_PIPE, - STATE(25), 1, + ACTIONS(293), 1, + anon_sym_AMP, + ACTIONS(295), 1, + anon_sym_CARET, + STATE(33), 1, sym_array_bracket_expression, - ACTIONS(283), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(287), 2, + ACTIONS(279), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(121), 9, - anon_sym_AMP, + ACTIONS(281), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(113), 8, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, @@ -5887,49 +5942,51 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LBRACK, anon_sym_in, - [2698] = 10, - ACTIONS(137), 1, - anon_sym_SLASH, - ACTIONS(143), 1, + [2845] = 10, + ACTIONS(131), 1, anon_sym_PIPE, - ACTIONS(145), 1, - anon_sym_CARET, - ACTIONS(155), 1, + ACTIONS(133), 1, anon_sym_AMP, + ACTIONS(135), 1, + anon_sym_CARET, + ACTIONS(137), 1, + anon_sym_SLASH, ACTIONS(165), 1, anon_sym_LBRACK, - ACTIONS(293), 1, - anon_sym_LBRACE, - STATE(25), 1, + ACTIONS(299), 1, + anon_sym_RPAREN, + STATE(33), 1, sym_array_bracket_expression, - ACTIONS(133), 2, + ACTIONS(127), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(135), 2, + ACTIONS(129), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(163), 6, + ACTIONS(161), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2736] = 5, - ACTIONS(285), 1, + [2883] = 7, + ACTIONS(283), 1, anon_sym_SLASH, - STATE(25), 1, + ACTIONS(291), 1, + anon_sym_PIPE, + ACTIONS(295), 1, + anon_sym_CARET, + STATE(33), 1, sym_array_bracket_expression, - ACTIONS(283), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(287), 2, + ACTIONS(279), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(121), 11, - anon_sym_PIPE, + ACTIONS(281), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(113), 9, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, @@ -5938,24 +5995,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LBRACK, anon_sym_in, - [2764] = 8, - ACTIONS(285), 1, + [2915] = 6, + ACTIONS(283), 1, anon_sym_SLASH, - ACTIONS(289), 1, - anon_sym_CARET, - ACTIONS(291), 1, - anon_sym_PIPE, ACTIONS(295), 1, - anon_sym_AMP, - STATE(25), 1, + anon_sym_CARET, + STATE(33), 1, sym_array_bracket_expression, - ACTIONS(283), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(287), 2, + ACTIONS(279), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(121), 8, + ACTIONS(281), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(113), 10, + anon_sym_PIPE, + anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, @@ -5964,123 +6019,89 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LBRACK, anon_sym_in, - [2798] = 10, - ACTIONS(161), 1, - anon_sym_in, - ACTIONS(165), 1, - anon_sym_LBRACK, - ACTIONS(285), 1, + [2945] = 4, + ACTIONS(283), 1, anon_sym_SLASH, - ACTIONS(289), 1, - anon_sym_CARET, - ACTIONS(291), 1, - anon_sym_PIPE, - ACTIONS(295), 1, - anon_sym_AMP, - STATE(25), 1, + STATE(33), 1, sym_array_bracket_expression, - ACTIONS(283), 2, + ACTIONS(281), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(287), 2, + ACTIONS(113), 13, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(297), 6, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2836] = 10, - ACTIONS(137), 1, - anon_sym_SLASH, - ACTIONS(143), 1, + anon_sym_LBRACK, + anon_sym_in, + [2971] = 10, + ACTIONS(131), 1, anon_sym_PIPE, - ACTIONS(145), 1, - anon_sym_CARET, - ACTIONS(155), 1, + ACTIONS(133), 1, anon_sym_AMP, + ACTIONS(135), 1, + anon_sym_CARET, + ACTIONS(137), 1, + anon_sym_SLASH, ACTIONS(165), 1, anon_sym_LBRACK, - ACTIONS(299), 1, - anon_sym_RPAREN, - STATE(25), 1, + ACTIONS(301), 1, + anon_sym_RBRACK, + STATE(33), 1, sym_array_bracket_expression, - ACTIONS(133), 2, + ACTIONS(127), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(135), 2, + ACTIONS(129), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(163), 6, + ACTIONS(161), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2874] = 10, - ACTIONS(137), 1, - anon_sym_SLASH, - ACTIONS(143), 1, + [3009] = 10, + ACTIONS(131), 1, anon_sym_PIPE, - ACTIONS(145), 1, - anon_sym_CARET, - ACTIONS(155), 1, + ACTIONS(133), 1, anon_sym_AMP, + ACTIONS(135), 1, + anon_sym_CARET, + ACTIONS(137), 1, + anon_sym_SLASH, ACTIONS(165), 1, anon_sym_LBRACK, - ACTIONS(301), 1, - anon_sym_RBRACK, - STATE(25), 1, + ACTIONS(303), 1, + anon_sym_COLON, + STATE(33), 1, sym_array_bracket_expression, - ACTIONS(133), 2, + ACTIONS(127), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(135), 2, + ACTIONS(129), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(163), 6, + ACTIONS(161), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2912] = 10, - ACTIONS(137), 1, - anon_sym_SLASH, - ACTIONS(143), 1, - anon_sym_PIPE, - ACTIONS(145), 1, - anon_sym_CARET, - ACTIONS(155), 1, - anon_sym_AMP, - ACTIONS(165), 1, - anon_sym_LBRACK, - ACTIONS(303), 1, - anon_sym_COLON, - STATE(25), 1, - sym_array_bracket_expression, - ACTIONS(133), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(135), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(163), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [2950] = 4, + [3047] = 4, ACTIONS(309), 1, anon_sym_reg, - STATE(94), 1, - aux_sym__assign_left_side_repeat1, + STATE(96), 1, + aux_sym_assign_left_side_repeat1, ACTIONS(305), 3, sym_identifier, anon_sym_state, @@ -6096,870 +6117,722 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2974] = 7, + [3071] = 5, ACTIONS(312), 1, - anon_sym_DASH_GT, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(316), 1, - anon_sym_COLON_COLON, - ACTIONS(318), 1, - anon_sym_LBRACE, - STATE(119), 1, - sym_declaration, - ACTIONS(13), 2, - anon_sym_state, - anon_sym_gen, - STATE(126), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [2999] = 6, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(316), 1, - anon_sym_COLON_COLON, - ACTIONS(320), 1, - anon_sym_LBRACE, - STATE(134), 1, - sym_declaration, - ACTIONS(13), 2, - anon_sym_state, - anon_sym_gen, - STATE(126), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [3021] = 6, - ACTIONS(314), 1, sym_identifier, - ACTIONS(316), 1, - anon_sym_COLON_COLON, - ACTIONS(322), 1, - anon_sym_LBRACE, - STATE(133), 1, - sym_declaration, - ACTIONS(13), 2, - anon_sym_state, - anon_sym_gen, - STATE(126), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [3043] = 6, ACTIONS(314), 1, - sym_identifier, - ACTIONS(316), 1, anon_sym_COLON_COLON, - ACTIONS(324), 1, - anon_sym_LBRACE, - STATE(129), 1, - sym_declaration, - ACTIONS(13), 2, - anon_sym_state, - anon_sym_gen, - STATE(126), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [3065] = 5, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(316), 1, - anon_sym_COLON_COLON, - STATE(124), 1, - sym_declaration, - ACTIONS(13), 2, - anon_sym_state, - anon_sym_gen, - STATE(126), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [3084] = 5, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(316), 1, - anon_sym_COLON_COLON, - STATE(152), 1, + STATE(141), 1, sym_declaration, - ACTIONS(326), 2, + ACTIONS(316), 2, anon_sym_state, anon_sym_gen, - STATE(131), 3, + STATE(125), 3, sym_global_identifier, sym_array_type, sym__type, - [3103] = 3, - ACTIONS(330), 1, + [3090] = 3, + ACTIONS(320), 1, anon_sym_SQUOTE, - STATE(103), 1, + STATE(105), 1, sym_latency_specifier, - ACTIONS(328), 5, - anon_sym_COMMA, + ACTIONS(318), 5, anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3117] = 3, - ACTIONS(330), 1, + [3104] = 3, + ACTIONS(320), 1, anon_sym_SQUOTE, - STATE(104), 1, + STATE(101), 1, sym_latency_specifier, - ACTIONS(332), 5, + ACTIONS(322), 5, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_SEMI, + [3118] = 3, + ACTIONS(326), 1, anon_sym_COMMA, + STATE(108), 1, + aux_sym_assign_left_side_repeat2, + ACTIONS(324), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, [3131] = 1, - ACTIONS(334), 6, - anon_sym_COMMA, + ACTIONS(328), 6, anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [3140] = 1, - ACTIONS(336), 6, + [3140] = 3, + ACTIONS(326), 1, anon_sym_COMMA, + STATE(108), 1, + aux_sym_assign_left_side_repeat2, + ACTIONS(330), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, - anon_sym_in, anon_sym_SEMI, - [3149] = 3, - ACTIONS(316), 1, - anon_sym_COLON_COLON, - ACTIONS(338), 1, - sym_identifier, - STATE(130), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [3161] = 3, - ACTIONS(316), 1, - anon_sym_COLON_COLON, - ACTIONS(338), 1, - sym_identifier, - STATE(127), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [3173] = 3, - ACTIONS(19), 1, + [3153] = 3, + ACTIONS(326), 1, + anon_sym_COMMA, + STATE(102), 1, + aux_sym_assign_left_side_repeat2, + ACTIONS(332), 4, + anon_sym_DASH_GT, anon_sym_LBRACE, - ACTIONS(340), 1, - anon_sym_if, - STATE(53), 2, - sym_block, - sym_if_statement, - [3184] = 3, - ACTIONS(342), 1, + anon_sym_EQ, + anon_sym_SEMI, + [3166] = 3, + ACTIONS(326), 1, anon_sym_COMMA, - STATE(117), 1, - aux_sym__assign_left_side_repeat2, - ACTIONS(344), 2, + STATE(108), 1, + aux_sym_assign_left_side_repeat2, + ACTIONS(330), 4, + anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, - [3195] = 3, - ACTIONS(342), 1, + anon_sym_SEMI, + [3179] = 1, + ACTIONS(334), 6, + anon_sym_DASH_GT, anon_sym_COMMA, - STATE(114), 1, - aux_sym__assign_left_side_repeat2, - ACTIONS(344), 2, anon_sym_LBRACE, anon_sym_EQ, - [3206] = 3, - ACTIONS(346), 1, - anon_sym_COLON_COLON, - STATE(110), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(83), 2, - sym_identifier, - anon_sym_LBRACK, - [3217] = 3, - ACTIONS(349), 1, - anon_sym_COLON_COLON, - STATE(110), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(89), 2, - sym_identifier, - anon_sym_LBRACK, - [3228] = 3, - ACTIONS(5), 1, - anon_sym_module, - ACTIONS(351), 1, - ts_builtin_sym_end, - STATE(122), 2, - sym_module, - aux_sym_source_file_repeat1, - [3239] = 4, - ACTIONS(353), 1, + anon_sym_in, + anon_sym_SEMI, + [3188] = 3, + ACTIONS(326), 1, anon_sym_COMMA, - ACTIONS(355), 1, + STATE(107), 1, + aux_sym_assign_left_side_repeat2, + ACTIONS(336), 4, anon_sym_DASH_GT, - ACTIONS(357), 1, anon_sym_LBRACE, - STATE(121), 1, - aux_sym_interface_ports_repeat1, - [3252] = 3, - ACTIONS(359), 1, + anon_sym_EQ, + anon_sym_SEMI, + [3201] = 3, + ACTIONS(326), 1, anon_sym_COMMA, - STATE(114), 1, - aux_sym__assign_left_side_repeat2, - ACTIONS(362), 2, + STATE(108), 1, + aux_sym_assign_left_side_repeat2, + ACTIONS(324), 4, + anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, - [3263] = 4, - ACTIONS(342), 1, + anon_sym_SEMI, + [3214] = 3, + ACTIONS(340), 1, anon_sym_COMMA, - ACTIONS(364), 1, + STATE(108), 1, + aux_sym_assign_left_side_repeat2, + ACTIONS(338), 4, + anon_sym_DASH_GT, + anon_sym_LBRACE, anon_sym_EQ, - ACTIONS(366), 1, anon_sym_SEMI, - STATE(109), 1, - aux_sym__assign_left_side_repeat2, - [3276] = 3, - ACTIONS(349), 1, + [3227] = 1, + ACTIONS(343), 5, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_SEMI, + [3235] = 3, + ACTIONS(314), 1, anon_sym_COLON_COLON, - STATE(118), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(103), 2, + ACTIONS(345), 1, sym_identifier, - anon_sym_LBRACK, - [3287] = 3, - ACTIONS(342), 1, + STATE(124), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [3247] = 1, + ACTIONS(347), 5, + anon_sym_DASH_GT, anon_sym_COMMA, - STATE(114), 1, - aux_sym__assign_left_side_repeat2, - ACTIONS(368), 2, anon_sym_LBRACE, anon_sym_EQ, - [3298] = 3, + anon_sym_SEMI, + [3255] = 3, + ACTIONS(314), 1, + anon_sym_COLON_COLON, + ACTIONS(345), 1, + sym_identifier, + STATE(123), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [3267] = 3, ACTIONS(349), 1, anon_sym_COLON_COLON, - STATE(110), 1, + STATE(120), 1, aux_sym_global_identifier_repeat1, - ACTIONS(93), 2, + ACTIONS(80), 2, sym_identifier, anon_sym_LBRACK, - [3309] = 4, - ACTIONS(353), 1, - anon_sym_COMMA, - ACTIONS(370), 1, - anon_sym_DASH_GT, - ACTIONS(372), 1, - anon_sym_LBRACE, - STATE(113), 1, - aux_sym_interface_ports_repeat1, - [3322] = 3, + [3278] = 3, ACTIONS(349), 1, anon_sym_COLON_COLON, - STATE(111), 1, + STATE(121), 1, aux_sym_global_identifier_repeat1, - ACTIONS(93), 2, + ACTIONS(80), 2, sym_identifier, anon_sym_LBRACK, - [3333] = 3, - ACTIONS(374), 1, - anon_sym_COMMA, - STATE(121), 1, - aux_sym_interface_ports_repeat1, - ACTIONS(377), 2, - anon_sym_DASH_GT, - anon_sym_LBRACE, - [3344] = 3, - ACTIONS(379), 1, + [3289] = 3, + ACTIONS(349), 1, + anon_sym_COLON_COLON, + STATE(113), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(101), 2, + sym_identifier, + anon_sym_LBRACK, + [3300] = 3, + ACTIONS(351), 1, ts_builtin_sym_end, - ACTIONS(381), 1, + ACTIONS(353), 1, anon_sym_module, - STATE(122), 2, + STATE(116), 2, sym_module, aux_sym_source_file_repeat1, - [3355] = 4, - ACTIONS(384), 1, + [3311] = 4, + ACTIONS(356), 1, anon_sym_COLON, - ACTIONS(386), 1, + ACTIONS(358), 1, anon_sym_LBRACE, - STATE(144), 1, - sym_interface_ports, - STATE(145), 1, + STATE(131), 1, sym_block, - [3368] = 1, - ACTIONS(377), 3, - anon_sym_COMMA, - anon_sym_DASH_GT, + STATE(132), 1, + sym_interface_ports, + [3324] = 3, + ACTIONS(5), 1, + anon_sym_module, + ACTIONS(360), 1, + ts_builtin_sym_end, + STATE(116), 2, + sym_module, + aux_sym_source_file_repeat1, + [3335] = 3, + ACTIONS(19), 1, anon_sym_LBRACE, - [3374] = 3, - ACTIONS(332), 1, - anon_sym_in, - ACTIONS(388), 1, - anon_sym_SQUOTE, - STATE(104), 1, - sym_latency_specifier, - [3384] = 3, - ACTIONS(390), 1, + ACTIONS(362), 1, + anon_sym_if, + STATE(79), 2, + sym_block, + sym_if_statement, + [3346] = 3, + ACTIONS(364), 1, + anon_sym_COLON_COLON, + STATE(120), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(97), 2, sym_identifier, - ACTIONS(392), 1, anon_sym_LBRACK, - STATE(147), 1, + [3357] = 3, + ACTIONS(349), 1, + anon_sym_COLON_COLON, + STATE(120), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(90), 2, + sym_identifier, + anon_sym_LBRACK, + [3368] = 3, + ACTIONS(367), 1, + sym_identifier, + ACTIONS(369), 1, + anon_sym_LBRACK, + STATE(134), 1, sym_array_bracket_expression, - [3394] = 3, - ACTIONS(392), 1, + [3378] = 3, + ACTIONS(369), 1, anon_sym_LBRACK, - ACTIONS(394), 1, + ACTIONS(371), 1, sym_identifier, - STATE(147), 1, + STATE(134), 1, sym_array_bracket_expression, - [3404] = 3, - ACTIONS(353), 1, - anon_sym_COMMA, - ACTIONS(396), 1, - anon_sym_LBRACE, - STATE(121), 1, - aux_sym_interface_ports_repeat1, - [3414] = 3, - ACTIONS(353), 1, - anon_sym_COMMA, - ACTIONS(398), 1, - anon_sym_LBRACE, - STATE(128), 1, - aux_sym_interface_ports_repeat1, - [3424] = 3, - ACTIONS(392), 1, + [3388] = 3, + ACTIONS(369), 1, anon_sym_LBRACK, - ACTIONS(400), 1, + ACTIONS(373), 1, sym_identifier, - STATE(147), 1, + STATE(134), 1, sym_array_bracket_expression, - [3434] = 3, - ACTIONS(392), 1, + [3398] = 3, + ACTIONS(369), 1, anon_sym_LBRACK, - ACTIONS(402), 1, + ACTIONS(375), 1, sym_identifier, - STATE(147), 1, + STATE(134), 1, sym_array_bracket_expression, - [3444] = 3, - ACTIONS(404), 1, + [3408] = 3, + ACTIONS(377), 1, anon_sym_COMMA, - ACTIONS(407), 1, + ACTIONS(380), 1, anon_sym_RPAREN, - STATE(132), 1, + STATE(126), 1, aux_sym_func_call_repeat1, - [3454] = 3, - ACTIONS(353), 1, - anon_sym_COMMA, - ACTIONS(409), 1, - anon_sym_LBRACE, - STATE(142), 1, - aux_sym_interface_ports_repeat1, - [3464] = 3, - ACTIONS(353), 1, + [3418] = 3, + ACTIONS(382), 1, anon_sym_COMMA, - ACTIONS(411), 1, - anon_sym_LBRACE, - STATE(138), 1, - aux_sym_interface_ports_repeat1, - [3474] = 3, - ACTIONS(328), 1, + ACTIONS(384), 1, + anon_sym_RPAREN, + STATE(126), 1, + aux_sym_func_call_repeat1, + [3428] = 3, + ACTIONS(322), 1, anon_sym_in, - ACTIONS(388), 1, + ACTIONS(386), 1, anon_sym_SQUOTE, - STATE(103), 1, + STATE(101), 1, sym_latency_specifier, - [3484] = 1, - ACTIONS(362), 3, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_EQ, - [3490] = 1, - ACTIONS(83), 3, + [3438] = 3, + ACTIONS(318), 1, + anon_sym_in, + ACTIONS(386), 1, + anon_sym_SQUOTE, + STATE(105), 1, + sym_latency_specifier, + [3448] = 1, + ACTIONS(97), 3, sym_identifier, anon_sym_COLON_COLON, anon_sym_LBRACK, - [3496] = 3, - ACTIONS(353), 1, - anon_sym_COMMA, - ACTIONS(413), 1, - anon_sym_LBRACE, - STATE(121), 1, - aux_sym_interface_ports_repeat1, - [3506] = 3, - ACTIONS(415), 1, - anon_sym_COMMA, - ACTIONS(417), 1, - anon_sym_RPAREN, - STATE(132), 1, - aux_sym_func_call_repeat1, - [3516] = 1, - ACTIONS(419), 3, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_EQ, - [3522] = 3, - ACTIONS(342), 1, - anon_sym_COMMA, - ACTIONS(364), 1, - anon_sym_LBRACE, - STATE(109), 1, - aux_sym__assign_left_side_repeat2, - [3532] = 3, - ACTIONS(353), 1, - anon_sym_COMMA, - ACTIONS(421), 1, - anon_sym_LBRACE, - STATE(121), 1, - aux_sym_interface_ports_repeat1, - [3542] = 2, - ACTIONS(423), 1, - anon_sym_LBRACE, - STATE(38), 1, - sym_block, - [3549] = 2, - ACTIONS(386), 1, - anon_sym_LBRACE, - STATE(148), 1, - sym_block, - [3556] = 1, - ACTIONS(425), 2, + [3454] = 1, + ACTIONS(388), 2, ts_builtin_sym_end, anon_sym_module, - [3561] = 1, - ACTIONS(188), 2, - ts_builtin_sym_end, - anon_sym_module, - [3566] = 1, - ACTIONS(427), 2, + [3459] = 2, + ACTIONS(358), 1, + anon_sym_LBRACE, + STATE(135), 1, + sym_block, + [3466] = 2, + ACTIONS(390), 1, + anon_sym_EQ, + ACTIONS(392), 1, + anon_sym_SEMI, + [3473] = 1, + ACTIONS(394), 2, sym_identifier, anon_sym_LBRACK, - [3571] = 1, - ACTIONS(429), 2, + [3478] = 1, + ACTIONS(396), 2, + ts_builtin_sym_end, + anon_sym_module, + [3483] = 1, + ACTIONS(194), 2, ts_builtin_sym_end, anon_sym_module, - [3576] = 2, + [3488] = 2, + ACTIONS(398), 1, + anon_sym_DASH_GT, + ACTIONS(400), 1, + anon_sym_LBRACE, + [3495] = 2, ACTIONS(19), 1, anon_sym_LBRACE, - STATE(66), 1, + STATE(77), 1, sym_block, - [3583] = 1, + [3502] = 1, + ACTIONS(125), 2, + sym_identifier, + anon_sym_LBRACK, + [3507] = 1, ACTIONS(204), 2, ts_builtin_sym_end, anon_sym_module, - [3588] = 1, - ACTIONS(159), 2, - sym_identifier, - anon_sym_LBRACK, - [3593] = 1, - ACTIONS(431), 1, + [3512] = 1, + ACTIONS(402), 1, anon_sym_in, - [3597] = 1, - ACTIONS(433), 1, - anon_sym_EQ, - [3601] = 1, - ACTIONS(435), 1, + [3516] = 1, + ACTIONS(404), 1, sym_identifier, - [3605] = 1, - ACTIONS(437), 1, + [3520] = 1, + ACTIONS(406), 1, sym_identifier, - [3609] = 1, - ACTIONS(439), 1, - anon_sym_SEMI, - [3613] = 1, - ACTIONS(441), 1, + [3524] = 1, + ACTIONS(408), 1, sym_identifier, - [3617] = 1, - ACTIONS(443), 1, + [3528] = 1, + ACTIONS(410), 1, sym_identifier, - [3621] = 1, - ACTIONS(445), 1, - ts_builtin_sym_end, - [3625] = 1, - ACTIONS(447), 1, + [3532] = 1, + ACTIONS(412), 1, sym_identifier, - [3629] = 1, - ACTIONS(449), 1, + [3536] = 1, + ACTIONS(414), 1, sym_identifier, - [3633] = 1, - ACTIONS(451), 1, + [3540] = 1, + ACTIONS(416), 1, + ts_builtin_sym_end, + [3544] = 1, + ACTIONS(418), 1, sym_identifier, + [3548] = 1, + ACTIONS(420), 1, + anon_sym_LBRACE, + [3552] = 1, + ACTIONS(392), 1, + anon_sym_SEMI, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(9)] = 0, [SMALL_STATE(10)] = 59, - [SMALL_STATE(11)] = 95, - [SMALL_STATE(12)] = 131, - [SMALL_STATE(13)] = 167, - [SMALL_STATE(14)] = 203, - [SMALL_STATE(15)] = 259, - [SMALL_STATE(16)] = 295, - [SMALL_STATE(17)] = 326, - [SMALL_STATE(18)] = 379, - [SMALL_STATE(19)] = 432, - [SMALL_STATE(20)] = 464, - [SMALL_STATE(21)] = 496, - [SMALL_STATE(22)] = 528, - [SMALL_STATE(23)] = 557, - [SMALL_STATE(24)] = 586, - [SMALL_STATE(25)] = 621, - [SMALL_STATE(26)] = 650, - [SMALL_STATE(27)] = 689, - [SMALL_STATE(28)] = 718, - [SMALL_STATE(29)] = 755, - [SMALL_STATE(30)] = 784, - [SMALL_STATE(31)] = 831, - [SMALL_STATE(32)] = 872, - [SMALL_STATE(33)] = 905, - [SMALL_STATE(34)] = 934, - [SMALL_STATE(35)] = 981, - [SMALL_STATE(36)] = 1023, - [SMALL_STATE(37)] = 1053, - [SMALL_STATE(38)] = 1090, - [SMALL_STATE(39)] = 1117, - [SMALL_STATE(40)] = 1142, - [SMALL_STATE(41)] = 1179, - [SMALL_STATE(42)] = 1224, - [SMALL_STATE(43)] = 1271, - [SMALL_STATE(44)] = 1296, - [SMALL_STATE(45)] = 1330, - [SMALL_STATE(46)] = 1364, - [SMALL_STATE(47)] = 1398, - [SMALL_STATE(48)] = 1432, - [SMALL_STATE(49)] = 1466, - [SMALL_STATE(50)] = 1494, - [SMALL_STATE(51)] = 1522, - [SMALL_STATE(52)] = 1556, - [SMALL_STATE(53)] = 1596, - [SMALL_STATE(54)] = 1620, - [SMALL_STATE(55)] = 1664, - [SMALL_STATE(56)] = 1692, - [SMALL_STATE(57)] = 1720, - [SMALL_STATE(58)] = 1754, - [SMALL_STATE(59)] = 1788, - [SMALL_STATE(60)] = 1822, - [SMALL_STATE(61)] = 1856, - [SMALL_STATE(62)] = 1890, - [SMALL_STATE(63)] = 1924, - [SMALL_STATE(64)] = 1958, - [SMALL_STATE(65)] = 1992, - [SMALL_STATE(66)] = 2016, - [SMALL_STATE(67)] = 2040, - [SMALL_STATE(68)] = 2080, - [SMALL_STATE(69)] = 2114, - [SMALL_STATE(70)] = 2158, - [SMALL_STATE(71)] = 2186, - [SMALL_STATE(72)] = 2210, - [SMALL_STATE(73)] = 2244, - [SMALL_STATE(74)] = 2278, - [SMALL_STATE(75)] = 2302, - [SMALL_STATE(76)] = 2336, - [SMALL_STATE(77)] = 2370, - [SMALL_STATE(78)] = 2404, - [SMALL_STATE(79)] = 2438, - [SMALL_STATE(80)] = 2472, - [SMALL_STATE(81)] = 2511, - [SMALL_STATE(82)] = 2534, - [SMALL_STATE(83)] = 2572, - [SMALL_STATE(84)] = 2610, - [SMALL_STATE(85)] = 2636, - [SMALL_STATE(86)] = 2666, - [SMALL_STATE(87)] = 2698, - [SMALL_STATE(88)] = 2736, - [SMALL_STATE(89)] = 2764, - [SMALL_STATE(90)] = 2798, - [SMALL_STATE(91)] = 2836, - [SMALL_STATE(92)] = 2874, - [SMALL_STATE(93)] = 2912, - [SMALL_STATE(94)] = 2950, - [SMALL_STATE(95)] = 2974, - [SMALL_STATE(96)] = 2999, - [SMALL_STATE(97)] = 3021, - [SMALL_STATE(98)] = 3043, - [SMALL_STATE(99)] = 3065, - [SMALL_STATE(100)] = 3084, - [SMALL_STATE(101)] = 3103, - [SMALL_STATE(102)] = 3117, - [SMALL_STATE(103)] = 3131, - [SMALL_STATE(104)] = 3140, - [SMALL_STATE(105)] = 3149, - [SMALL_STATE(106)] = 3161, - [SMALL_STATE(107)] = 3173, - [SMALL_STATE(108)] = 3184, - [SMALL_STATE(109)] = 3195, - [SMALL_STATE(110)] = 3206, - [SMALL_STATE(111)] = 3217, - [SMALL_STATE(112)] = 3228, - [SMALL_STATE(113)] = 3239, - [SMALL_STATE(114)] = 3252, - [SMALL_STATE(115)] = 3263, - [SMALL_STATE(116)] = 3276, - [SMALL_STATE(117)] = 3287, - [SMALL_STATE(118)] = 3298, - [SMALL_STATE(119)] = 3309, - [SMALL_STATE(120)] = 3322, - [SMALL_STATE(121)] = 3333, - [SMALL_STATE(122)] = 3344, - [SMALL_STATE(123)] = 3355, - [SMALL_STATE(124)] = 3368, - [SMALL_STATE(125)] = 3374, - [SMALL_STATE(126)] = 3384, - [SMALL_STATE(127)] = 3394, - [SMALL_STATE(128)] = 3404, - [SMALL_STATE(129)] = 3414, - [SMALL_STATE(130)] = 3424, - [SMALL_STATE(131)] = 3434, - [SMALL_STATE(132)] = 3444, - [SMALL_STATE(133)] = 3454, - [SMALL_STATE(134)] = 3464, - [SMALL_STATE(135)] = 3474, - [SMALL_STATE(136)] = 3484, - [SMALL_STATE(137)] = 3490, - [SMALL_STATE(138)] = 3496, - [SMALL_STATE(139)] = 3506, - [SMALL_STATE(140)] = 3516, - [SMALL_STATE(141)] = 3522, - [SMALL_STATE(142)] = 3532, - [SMALL_STATE(143)] = 3542, - [SMALL_STATE(144)] = 3549, - [SMALL_STATE(145)] = 3556, - [SMALL_STATE(146)] = 3561, - [SMALL_STATE(147)] = 3566, - [SMALL_STATE(148)] = 3571, - [SMALL_STATE(149)] = 3576, - [SMALL_STATE(150)] = 3583, - [SMALL_STATE(151)] = 3588, - [SMALL_STATE(152)] = 3593, - [SMALL_STATE(153)] = 3597, - [SMALL_STATE(154)] = 3601, - [SMALL_STATE(155)] = 3605, - [SMALL_STATE(156)] = 3609, - [SMALL_STATE(157)] = 3613, - [SMALL_STATE(158)] = 3617, - [SMALL_STATE(159)] = 3621, - [SMALL_STATE(160)] = 3625, - [SMALL_STATE(161)] = 3629, - [SMALL_STATE(162)] = 3633, + [SMALL_STATE(11)] = 118, + [SMALL_STATE(12)] = 154, + [SMALL_STATE(13)] = 210, + [SMALL_STATE(14)] = 246, + [SMALL_STATE(15)] = 282, + [SMALL_STATE(16)] = 318, + [SMALL_STATE(17)] = 354, + [SMALL_STATE(18)] = 407, + [SMALL_STATE(19)] = 438, + [SMALL_STATE(20)] = 491, + [SMALL_STATE(21)] = 523, + [SMALL_STATE(22)] = 555, + [SMALL_STATE(23)] = 587, + [SMALL_STATE(24)] = 616, + [SMALL_STATE(25)] = 663, + [SMALL_STATE(26)] = 704, + [SMALL_STATE(27)] = 739, + [SMALL_STATE(28)] = 778, + [SMALL_STATE(29)] = 815, + [SMALL_STATE(30)] = 844, + [SMALL_STATE(31)] = 877, + [SMALL_STATE(32)] = 906, + [SMALL_STATE(33)] = 935, + [SMALL_STATE(34)] = 964, + [SMALL_STATE(35)] = 993, + [SMALL_STATE(36)] = 1040, + [SMALL_STATE(37)] = 1087, + [SMALL_STATE(38)] = 1134, + [SMALL_STATE(39)] = 1165, + [SMALL_STATE(40)] = 1207, + [SMALL_STATE(41)] = 1249, + [SMALL_STATE(42)] = 1291, + [SMALL_STATE(43)] = 1328, + [SMALL_STATE(44)] = 1365, + [SMALL_STATE(45)] = 1390, + [SMALL_STATE(46)] = 1417, + [SMALL_STATE(47)] = 1442, + [SMALL_STATE(48)] = 1476, + [SMALL_STATE(49)] = 1500, + [SMALL_STATE(50)] = 1534, + [SMALL_STATE(51)] = 1562, + [SMALL_STATE(52)] = 1596, + [SMALL_STATE(53)] = 1624, + [SMALL_STATE(54)] = 1658, + [SMALL_STATE(55)] = 1692, + [SMALL_STATE(56)] = 1726, + [SMALL_STATE(57)] = 1760, + [SMALL_STATE(58)] = 1794, + [SMALL_STATE(59)] = 1828, + [SMALL_STATE(60)] = 1862, + [SMALL_STATE(61)] = 1890, + [SMALL_STATE(62)] = 1918, + [SMALL_STATE(63)] = 1952, + [SMALL_STATE(64)] = 1986, + [SMALL_STATE(65)] = 2020, + [SMALL_STATE(66)] = 2044, + [SMALL_STATE(67)] = 2078, + [SMALL_STATE(68)] = 2112, + [SMALL_STATE(69)] = 2146, + [SMALL_STATE(70)] = 2180, + [SMALL_STATE(71)] = 2224, + [SMALL_STATE(72)] = 2258, + [SMALL_STATE(73)] = 2292, + [SMALL_STATE(74)] = 2326, + [SMALL_STATE(75)] = 2350, + [SMALL_STATE(76)] = 2384, + [SMALL_STATE(77)] = 2412, + [SMALL_STATE(78)] = 2436, + [SMALL_STATE(79)] = 2470, + [SMALL_STATE(80)] = 2494, + [SMALL_STATE(81)] = 2528, + [SMALL_STATE(82)] = 2567, + [SMALL_STATE(83)] = 2608, + [SMALL_STATE(84)] = 2631, + [SMALL_STATE(85)] = 2659, + [SMALL_STATE(86)] = 2697, + [SMALL_STATE(87)] = 2735, + [SMALL_STATE(88)] = 2773, + [SMALL_STATE(89)] = 2811, + [SMALL_STATE(90)] = 2845, + [SMALL_STATE(91)] = 2883, + [SMALL_STATE(92)] = 2915, + [SMALL_STATE(93)] = 2945, + [SMALL_STATE(94)] = 2971, + [SMALL_STATE(95)] = 3009, + [SMALL_STATE(96)] = 3047, + [SMALL_STATE(97)] = 3071, + [SMALL_STATE(98)] = 3090, + [SMALL_STATE(99)] = 3104, + [SMALL_STATE(100)] = 3118, + [SMALL_STATE(101)] = 3131, + [SMALL_STATE(102)] = 3140, + [SMALL_STATE(103)] = 3153, + [SMALL_STATE(104)] = 3166, + [SMALL_STATE(105)] = 3179, + [SMALL_STATE(106)] = 3188, + [SMALL_STATE(107)] = 3201, + [SMALL_STATE(108)] = 3214, + [SMALL_STATE(109)] = 3227, + [SMALL_STATE(110)] = 3235, + [SMALL_STATE(111)] = 3247, + [SMALL_STATE(112)] = 3255, + [SMALL_STATE(113)] = 3267, + [SMALL_STATE(114)] = 3278, + [SMALL_STATE(115)] = 3289, + [SMALL_STATE(116)] = 3300, + [SMALL_STATE(117)] = 3311, + [SMALL_STATE(118)] = 3324, + [SMALL_STATE(119)] = 3335, + [SMALL_STATE(120)] = 3346, + [SMALL_STATE(121)] = 3357, + [SMALL_STATE(122)] = 3368, + [SMALL_STATE(123)] = 3378, + [SMALL_STATE(124)] = 3388, + [SMALL_STATE(125)] = 3398, + [SMALL_STATE(126)] = 3408, + [SMALL_STATE(127)] = 3418, + [SMALL_STATE(128)] = 3428, + [SMALL_STATE(129)] = 3438, + [SMALL_STATE(130)] = 3448, + [SMALL_STATE(131)] = 3454, + [SMALL_STATE(132)] = 3459, + [SMALL_STATE(133)] = 3466, + [SMALL_STATE(134)] = 3473, + [SMALL_STATE(135)] = 3478, + [SMALL_STATE(136)] = 3483, + [SMALL_STATE(137)] = 3488, + [SMALL_STATE(138)] = 3495, + [SMALL_STATE(139)] = 3502, + [SMALL_STATE(140)] = 3507, + [SMALL_STATE(141)] = 3512, + [SMALL_STATE(142)] = 3516, + [SMALL_STATE(143)] = 3520, + [SMALL_STATE(144)] = 3524, + [SMALL_STATE(145)] = 3528, + [SMALL_STATE(146)] = 3532, + [SMALL_STATE(147)] = 3536, + [SMALL_STATE(148)] = 3540, + [SMALL_STATE(149)] = 3544, + [SMALL_STATE(150)] = 3548, + [SMALL_STATE(151)] = 3552, }; 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}}, REDUCE(sym_source_file, 0), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(106), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(112), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(30), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [37] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(15), - [40] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(42), - [43] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(154), - [46] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(106), - [49] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(68), - [52] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(51), - [55] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(5), - [58] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), - [60] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(18), - [63] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(30), - [66] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(9), - [69] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(100), - [72] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), - [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), - [76] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), - [80] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(155), - [83] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), - [85] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 3), - [87] = {.entry = {.count = 1, .reusable = false}}, SHIFT(155), - [89] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 3), - [91] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2), - [93] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2), - [95] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [97] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), - [99] = {.entry = {.count = 1, .reusable = false}}, SHIFT(34), - [101] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1), - [103] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1), - [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [107] = {.entry = {.count = 1, .reusable = false}}, SHIFT(94), - [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [111] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [113] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [115] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40), - [117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 8), - [119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 8), - [121] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 16), - [123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 16), - [125] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 3, .production_id = 15), - [127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 3, .production_id = 15), - [129] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 13), - [131] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 13), - [133] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), - [135] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), - [137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [139] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 6), - [141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 6), - [143] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60), - [145] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), - [147] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 4, .production_id = 21), - [149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 4, .production_id = 21), - [151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 5, .production_id = 26), - [153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 5, .production_id = 26), - [155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61), - [157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 13), - [159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 13), - [161] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 13), - [163] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), - [165] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), - [167] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), - [169] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type, 1), - [171] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__maybe_global_identifier, 1), - [173] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), REDUCE(sym__type, 1), - [176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 14), - [182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 14), - [184] = {.entry = {.count = 1, .reusable = false}}, SHIFT(107), - [186] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3), - [188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [194] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), - [196] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assign_left_side, 2), - [198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assign_left_side, 1), - [200] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 1), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(35), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(97), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), + [39] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(15), + [42] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(37), + [45] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(146), + [48] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(112), + [51] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(80), + [54] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(62), + [57] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(5), + [60] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), + [62] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(17), + [65] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(35), + [68] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(66), + [71] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(97), + [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), + [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2), + [78] = {.entry = {.count = 1, .reusable = false}}, SHIFT(143), + [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2), + [82] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [84] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19), + [86] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24), + [88] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 3), + [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 3), + [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), + [94] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(143), + [97] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), + [99] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1), + [101] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1), + [103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [105] = {.entry = {.count = 1, .reusable = false}}, SHIFT(96), + [107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [109] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 5), + [111] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 5), + [113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 17), + [115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 17), + [117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [121] = {.entry = {.count = 1, .reusable = false}}, SHIFT(42), + [123] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 11), + [125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 11), + [127] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), + [129] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), + [131] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), + [133] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57), + [135] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), + [137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [139] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 11), + [141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 11), + [143] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 5, .production_id = 25), + [145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 5, .production_id = 25), + [147] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 4, .production_id = 22), + [149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 4, .production_id = 22), + [151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 8), + [153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 8), + [155] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 3, .production_id = 13), + [157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 3, .production_id = 13), + [159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_left_side, 2, .production_id = 6), + [161] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), + [163] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12), + [165] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49), + [167] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_left_side, 1, .production_id = 2), + [169] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), + [171] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type, 1), + [173] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__maybe_global_identifier, 1), + [175] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), REDUCE(sym__type, 1), + [178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_assign_left_side_repeat2, 2, .production_id = 15), + [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 11), + [182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_assign_left_side_repeat2, 3, .production_id = 23), + [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3), + [194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [196] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 19), + [198] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 19), + [200] = {.entry = {.count = 1, .reusable = false}}, SHIFT(119), [202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), [204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), - [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), - [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [222] = {.entry = {.count = 1, .reusable = false}}, SHIFT(160), - [224] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(160), - [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), - [229] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat2, 3), - [231] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 23), - [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 23), - [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [251] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), - [253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), - [255] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5, .production_id = 24), - [257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5, .production_id = 24), - [259] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), - [261] = {.entry = {.count = 1, .reusable = false}}, SHIFT(48), - [263] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), - [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [277] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 25), - [279] = {.entry = {.count = 1, .reusable = false}}, SHIFT(151), - [281] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 17), - [283] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), - [285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [287] = {.entry = {.count = 1, .reusable = false}}, SHIFT(45), - [289] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), - [291] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), - [293] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 3, .production_id = 28), - [295] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), - [297] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), - [299] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), - [301] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), - [303] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57), - [305] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), - [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), - [309] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__assign_left_side_repeat1, 2), SHIFT_REPEAT(94), - [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [314] = {.entry = {.count = 1, .reusable = false}}, SHIFT(116), - [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), - [318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 1), - [320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2), - [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 7), - [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 2), - [326] = {.entry = {.count = 1, .reusable = false}}, SHIFT(105), - [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 10), - [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 5), - [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 18), - [336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 11), - [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), - [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 2), - [346] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(157), - [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), - [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), - [357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 7), - [359] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), SHIFT_REPEAT(14), - [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 2), - [364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 1), - [366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_statement, 1), - [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assign_left_side, 3), - [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 2), - [374] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_interface_ports_repeat1, 2), SHIFT_REPEAT(99), - [377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_interface_ports_repeat1, 2), - [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), - [381] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(162), - [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), - [392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 5, .production_id = 19), - [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 12), - [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), - [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), - [404] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 27), SHIFT_REPEAT(48), - [407] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 27), - [409] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 5, .production_id = 20), - [411] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 4), - [413] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 9), - [415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assign_left_side_repeat2, 3), - [421] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 6, .production_id = 22), - [423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [425] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 1), - [427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 6), - [429] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 3), - [431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), - [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [445] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), - [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), + [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), + [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [216] = {.entry = {.count = 1, .reusable = false}}, SHIFT(149), + [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [220] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(149), + [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [243] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), + [245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), + [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [255] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), + [257] = {.entry = {.count = 1, .reusable = false}}, SHIFT(32), + [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [265] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5, .production_id = 28), + [267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5, .production_id = 28), + [269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [271] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 27), + [273] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 27), + [275] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 24), + [277] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3), + [279] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), + [281] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72), + [283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [285] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 3, .production_id = 29), + [287] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), + [289] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 20), + [291] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), + [293] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69), + [295] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), + [297] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), + [299] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29), + [301] = {.entry = {.count = 1, .reusable = false}}, SHIFT(139), + [303] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), + [305] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_assign_left_side_repeat1, 2), + [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2), + [309] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_assign_left_side_repeat1, 2), SHIFT_REPEAT(96), + [312] = {.entry = {.count = 1, .reusable = false}}, SHIFT(115), + [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), + [316] = {.entry = {.count = 1, .reusable = false}}, SHIFT(110), + [318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 7), + [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 10), + [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 9), + [326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 21), + [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 3, .production_id = 12), + [332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 6), + [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 14), + [336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 2), + [338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat2, 2, .production_id = 16), + [340] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat2, 2, .production_id = 16), SHIFT_REPEAT(12), + [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat2, 2, .production_id = 15), + [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat2, 3, .production_id = 23), + [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), + [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), + [353] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(142), + [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [364] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(145), + [367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), + [377] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 26), SHIFT_REPEAT(53), + [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 26), + [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 1), + [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 8), + [396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 4), + [398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 3), + [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [416] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 18), }; #ifdef __cplusplus From 951f5dfc8a198b359debf228da8aaba9d2576a65 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Mon, 1 Apr 2024 01:42:28 +0200 Subject: [PATCH 12/49] Add block_statement field --- grammar.js | 2 +- src/grammar.json | 8 +- src/node-types.json | 57 +- src/parser.c | 2853 ++++++++++++++++++++++--------------------- 4 files changed, 1484 insertions(+), 1436 deletions(-) diff --git a/grammar.js b/grammar.js index 41d5634..e6b0e99 100644 --- a/grammar.js +++ b/grammar.js @@ -141,7 +141,7 @@ module.exports = grammar({ block: $ => seq( '{', - repeat($._statement), + repeat(field('block_statement', $._statement)), '}' ), diff --git a/src/grammar.json b/src/grammar.json index b069cde..394bfe3 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -785,8 +785,12 @@ { "type": "REPEAT", "content": { - "type": "SYMBOL", - "name": "_statement" + "type": "FIELD", + "name": "block_statement", + "content": { + "type": "SYMBOL", + "name": "_statement" + } } }, { diff --git a/src/node-types.json b/src/node-types.json index 94372bb..d0a6eb9 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -330,32 +330,37 @@ { "type": "block", "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "assign_left_side", - "named": true - }, - { - "type": "block", - "named": true - }, - { - "type": "decl_assign_statement", - "named": true - }, - { - "type": "for_statement", - "named": true - }, - { - "type": "if_statement", - "named": true - } - ] + "fields": { + "block_statement": { + "multiple": true, + "required": false, + "types": [ + { + "type": ";", + "named": false + }, + { + "type": "assign_left_side", + "named": true + }, + { + "type": "block", + "named": true + }, + { + "type": "decl_assign_statement", + "named": true + }, + { + "type": "for_statement", + "named": true + }, + { + "type": "if_statement", + "named": true + } + ] + } } }, { diff --git a/src/parser.c b/src/parser.c index 29900f3..ac8a93b 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,15 +6,15 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 152 +#define STATE_COUNT 153 #define LARGE_STATE_COUNT 9 #define SYMBOL_COUNT 69 #define ALIAS_COUNT 0 #define TOKEN_COUNT 40 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 25 +#define FIELD_COUNT 26 #define MAX_ALIAS_SEQUENCE_LENGTH 5 -#define PRODUCTION_ID_COUNT 30 +#define PRODUCTION_ID_COUNT 33 enum { anon_sym_COLON = 1, @@ -518,24 +518,25 @@ enum { field_assign_to = 5, field_assign_value = 6, field_block = 7, - field_condition = 8, - field_content = 9, - field_declaration_modifiers = 10, - field_else_block = 11, - field_for_decl = 12, - field_for_range = 13, - field_from = 14, - field_inputs = 15, - field_interface_ports = 16, - field_latency_specifier = 17, - field_left = 18, - field_name = 19, - field_operator = 20, - field_outputs = 21, - field_right = 22, - field_then_block = 23, - field_to = 24, - field_type = 25, + field_block_statement = 8, + field_condition = 9, + field_content = 10, + field_declaration_modifiers = 11, + field_else_block = 12, + field_for_decl = 13, + field_for_range = 14, + field_from = 15, + field_inputs = 16, + field_interface_ports = 17, + field_latency_specifier = 18, + field_left = 19, + field_name = 20, + field_operator = 21, + field_outputs = 22, + field_right = 23, + field_then_block = 24, + field_to = 25, + field_type = 26, }; static const char * const ts_field_names[] = { @@ -547,6 +548,7 @@ static const char * const ts_field_names[] = { [field_assign_to] = "assign_to", [field_assign_value] = "assign_value", [field_block] = "block", + [field_block_statement] = "block_statement", [field_condition] = "condition", [field_content] = "content", [field_declaration_modifiers] = "declaration_modifiers", @@ -571,32 +573,35 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [1] = {.index = 0, .length = 2}, [2] = {.index = 2, .length = 1}, [3] = {.index = 3, .length = 1}, - [4] = {.index = 4, .length = 3}, - [5] = {.index = 7, .length = 2}, - [6] = {.index = 9, .length = 2}, - [7] = {.index = 11, .length = 2}, - [8] = {.index = 13, .length = 2}, - [9] = {.index = 15, .length = 2}, - [10] = {.index = 17, .length = 3}, - [11] = {.index = 20, .length = 1}, - [12] = {.index = 21, .length = 3}, - [13] = {.index = 24, .length = 1}, - [14] = {.index = 25, .length = 3}, - [15] = {.index = 28, .length = 1}, - [16] = {.index = 29, .length = 2}, - [17] = {.index = 31, .length = 3}, - [18] = {.index = 34, .length = 2}, - [19] = {.index = 36, .length = 2}, - [20] = {.index = 38, .length = 2}, - [21] = {.index = 40, .length = 4}, - [22] = {.index = 44, .length = 2}, - [23] = {.index = 46, .length = 2}, - [24] = {.index = 48, .length = 1}, - [25] = {.index = 49, .length = 3}, - [26] = {.index = 52, .length = 2}, - [27] = {.index = 54, .length = 3}, - [28] = {.index = 57, .length = 3}, - [29] = {.index = 60, .length = 2}, + [4] = {.index = 4, .length = 1}, + [5] = {.index = 5, .length = 3}, + [6] = {.index = 8, .length = 2}, + [7] = {.index = 10, .length = 2}, + [8] = {.index = 12, .length = 2}, + [9] = {.index = 14, .length = 2}, + [10] = {.index = 16, .length = 2}, + [11] = {.index = 18, .length = 1}, + [12] = {.index = 19, .length = 2}, + [13] = {.index = 21, .length = 3}, + [14] = {.index = 24, .length = 1}, + [15] = {.index = 25, .length = 3}, + [16] = {.index = 28, .length = 1}, + [17] = {.index = 29, .length = 3}, + [18] = {.index = 32, .length = 1}, + [19] = {.index = 33, .length = 2}, + [20] = {.index = 35, .length = 3}, + [21] = {.index = 38, .length = 2}, + [22] = {.index = 40, .length = 2}, + [23] = {.index = 42, .length = 2}, + [24] = {.index = 44, .length = 4}, + [25] = {.index = 48, .length = 2}, + [26] = {.index = 50, .length = 2}, + [27] = {.index = 52, .length = 1}, + [28] = {.index = 53, .length = 3}, + [29] = {.index = 56, .length = 2}, + [30] = {.index = 58, .length = 3}, + [31] = {.index = 61, .length = 3}, + [32] = {.index = 64, .length = 2}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -608,87 +613,94 @@ static const TSFieldMapEntry ts_field_map_entries[] = { [3] = {field_inputs, 1}, [4] = + {field_block_statement, 0}, + [5] = {field_block, 3}, {field_interface_ports, 2}, {field_name, 1}, - [7] = + [8] = {field_operator, 0}, {field_right, 1}, - [9] = + [10] = {field_assign_to, 0}, {field_assign_to, 1}, - [11] = + [12] = {field_name, 1}, {field_type, 0}, - [13] = + [14] = {field_arr, 0}, {field_arr_idx, 1}, - [15] = + [16] = {field_assign_to, 0}, {field_assign_to, 1, .inherited = true}, - [17] = + [18] = + {field_block_statement, 1, .inherited = true}, + [19] = + {field_block_statement, 0, .inherited = true}, + {field_block_statement, 1, .inherited = true}, + [21] = {field_declaration_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [20] = + [24] = {field_content, 1}, - [21] = + [25] = {field_assign_to, 0}, {field_assign_to, 1}, {field_assign_to, 2, .inherited = true}, - [24] = + [28] = {field_name, 0}, - [25] = + [29] = {field_latency_specifier, 2}, {field_name, 1}, {field_type, 0}, - [28] = + [32] = {field_assign_to, 1}, - [29] = + [33] = {field_assign_to, 0, .inherited = true}, {field_assign_to, 1, .inherited = true}, - [31] = + [35] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [34] = + [38] = {field_inputs, 1}, {field_outputs, 3}, - [36] = + [40] = {field_condition, 1}, {field_then_block, 2}, - [38] = + [42] = {field_assign_left, 0}, {field_assign_value, 2}, - [40] = + [44] = {field_declaration_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [44] = + [48] = {field_argument, 2}, {field_name, 0}, - [46] = + [50] = {field_assign_to, 1}, {field_assign_to, 2}, - [48] = + [52] = {field_argument, 1}, - [49] = + [53] = {field_argument, 2}, {field_argument, 3, .inherited = true}, {field_name, 0}, - [52] = + [56] = {field_argument, 0, .inherited = true}, {field_argument, 1, .inherited = true}, - [54] = + [58] = {field_condition, 1}, {field_else_block, 4}, {field_then_block, 2}, - [57] = + [61] = {field_block, 4}, {field_for_decl, 1}, {field_for_range, 3}, - [60] = + [64] = {field_from, 0}, {field_to, 2}, }; @@ -708,8 +720,8 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [3] = 3, [4] = 2, [5] = 3, - [6] = 3, - [7] = 7, + [6] = 6, + [7] = 3, [8] = 2, [9] = 9, [10] = 10, @@ -750,33 +762,33 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [45] = 45, [46] = 46, [47] = 47, - [48] = 44, + [48] = 48, [49] = 49, - [50] = 13, - [51] = 49, - [52] = 14, + [50] = 12, + [51] = 13, + [52] = 49, [53] = 53, - [54] = 54, + [54] = 14, [55] = 55, [56] = 47, [57] = 57, [58] = 58, [59] = 59, - [60] = 11, - [61] = 16, + [60] = 60, + [61] = 11, [62] = 62, [63] = 63, - [64] = 64, + [64] = 46, [65] = 65, [66] = 66, - [67] = 59, - [68] = 58, - [69] = 57, - [70] = 70, - [71] = 63, - [72] = 55, - [73] = 54, - [74] = 46, + [67] = 60, + [68] = 59, + [69] = 58, + [70] = 57, + [71] = 71, + [72] = 62, + [73] = 55, + [74] = 44, [75] = 75, [76] = 15, [77] = 77, @@ -785,18 +797,18 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [80] = 75, [81] = 81, [82] = 82, - [83] = 18, - [84] = 26, - [85] = 85, + [83] = 83, + [84] = 18, + [85] = 23, [86] = 86, [87] = 87, - [88] = 40, - [89] = 25, - [90] = 90, - [91] = 27, - [92] = 28, - [93] = 30, - [94] = 86, + [88] = 88, + [89] = 40, + [90] = 24, + [91] = 25, + [92] = 27, + [93] = 29, + [94] = 87, [95] = 95, [96] = 96, [97] = 97, @@ -814,46 +826,47 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [109] = 109, [110] = 110, [111] = 111, - [112] = 110, - [113] = 16, - [114] = 11, - [115] = 115, - [116] = 116, + [112] = 111, + [113] = 113, + [114] = 114, + [115] = 11, + [116] = 14, [117] = 117, [118] = 118, [119] = 119, - [120] = 14, + [120] = 120, [121] = 13, - [122] = 122, + [122] = 12, [123] = 123, - [124] = 123, - [125] = 122, + [124] = 99, + [125] = 125, [126] = 126, - [127] = 127, - [128] = 99, - [129] = 98, + [127] = 126, + [128] = 128, + [129] = 123, [130] = 18, - [131] = 131, + [131] = 100, [132] = 132, [133] = 133, [134] = 134, [135] = 135, - [136] = 44, - [137] = 137, - [138] = 138, - [139] = 23, - [140] = 46, - [141] = 141, + [136] = 136, + [137] = 46, + [138] = 44, + [139] = 139, + [140] = 140, + [141] = 31, [142] = 142, [143] = 143, [144] = 144, - [145] = 143, - [146] = 144, - [147] = 144, - [148] = 148, - [149] = 143, - [150] = 150, - [151] = 151, + [145] = 145, + [146] = 145, + [147] = 147, + [148] = 144, + [149] = 149, + [150] = 145, + [151] = 144, + [152] = 152, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -3150,11 +3163,11 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [9] = {.lex_state = 10}, [10] = {.lex_state = 10}, [11] = {.lex_state = 14}, - [12] = {.lex_state = 10}, + [12] = {.lex_state = 14}, [13] = {.lex_state = 14}, [14] = {.lex_state = 14}, [15] = {.lex_state = 14}, - [16] = {.lex_state = 14}, + [16] = {.lex_state = 10}, [17] = {.lex_state = 11}, [18] = {.lex_state = 14}, [19] = {.lex_state = 11}, @@ -3162,7 +3175,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [21] = {.lex_state = 15}, [22] = {.lex_state = 15}, [23] = {.lex_state = 15}, - [24] = {.lex_state = 12}, + [24] = {.lex_state = 15}, [25] = {.lex_state = 15}, [26] = {.lex_state = 15}, [27] = {.lex_state = 15}, @@ -3171,9 +3184,9 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [30] = {.lex_state = 15}, [31] = {.lex_state = 15}, [32] = {.lex_state = 15}, - [33] = {.lex_state = 15}, - [34] = {.lex_state = 15}, - [35] = {.lex_state = 12}, + [33] = {.lex_state = 12}, + [34] = {.lex_state = 12}, + [35] = {.lex_state = 15}, [36] = {.lex_state = 14}, [37] = {.lex_state = 14}, [38] = {.lex_state = 14}, @@ -3189,27 +3202,27 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [48] = {.lex_state = 9}, [49] = {.lex_state = 8}, [50] = {.lex_state = 16}, - [51] = {.lex_state = 8}, - [52] = {.lex_state = 16}, + [51] = {.lex_state = 16}, + [52] = {.lex_state = 8}, [53] = {.lex_state = 8}, - [54] = {.lex_state = 8}, + [54] = {.lex_state = 16}, [55] = {.lex_state = 8}, [56] = {.lex_state = 8}, [57] = {.lex_state = 8}, [58] = {.lex_state = 8}, [59] = {.lex_state = 8}, - [60] = {.lex_state = 16}, + [60] = {.lex_state = 8}, [61] = {.lex_state = 16}, [62] = {.lex_state = 8}, [63] = {.lex_state = 8}, - [64] = {.lex_state = 8}, - [65] = {.lex_state = 9}, + [64] = {.lex_state = 9}, + [65] = {.lex_state = 8}, [66] = {.lex_state = 8}, [67] = {.lex_state = 8}, [68] = {.lex_state = 8}, [69] = {.lex_state = 8}, - [70] = {.lex_state = 14}, - [71] = {.lex_state = 8}, + [70] = {.lex_state = 8}, + [71] = {.lex_state = 14}, [72] = {.lex_state = 8}, [73] = {.lex_state = 8}, [74] = {.lex_state = 9}, @@ -3219,24 +3232,24 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [78] = {.lex_state = 8}, [79] = {.lex_state = 9}, [80] = {.lex_state = 8}, - [81] = {.lex_state = 14}, + [81] = {.lex_state = 9}, [82] = {.lex_state = 14}, - [83] = {.lex_state = 16}, - [84] = {.lex_state = 15}, - [85] = {.lex_state = 14}, + [83] = {.lex_state = 14}, + [84] = {.lex_state = 16}, + [85] = {.lex_state = 15}, [86] = {.lex_state = 14}, [87] = {.lex_state = 14}, - [88] = {.lex_state = 15}, + [88] = {.lex_state = 14}, [89] = {.lex_state = 15}, - [90] = {.lex_state = 14}, + [90] = {.lex_state = 15}, [91] = {.lex_state = 15}, [92] = {.lex_state = 15}, [93] = {.lex_state = 15}, [94] = {.lex_state = 14}, [95] = {.lex_state = 15}, - [96] = {.lex_state = 11}, - [97] = {.lex_state = 12}, - [98] = {.lex_state = 0}, + [96] = {.lex_state = 14}, + [97] = {.lex_state = 11}, + [98] = {.lex_state = 12}, [99] = {.lex_state = 0}, [100] = {.lex_state = 0}, [101] = {.lex_state = 0}, @@ -3248,48 +3261,49 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [107] = {.lex_state = 0}, [108] = {.lex_state = 0}, [109] = {.lex_state = 0}, - [110] = {.lex_state = 8}, - [111] = {.lex_state = 0}, + [110] = {.lex_state = 0}, + [111] = {.lex_state = 8}, [112] = {.lex_state = 8}, - [113] = {.lex_state = 8}, + [113] = {.lex_state = 0}, [114] = {.lex_state = 8}, [115] = {.lex_state = 8}, - [116] = {.lex_state = 0}, - [117] = {.lex_state = 38}, - [118] = {.lex_state = 0}, + [116] = {.lex_state = 8}, + [117] = {.lex_state = 0}, + [118] = {.lex_state = 38}, [119] = {.lex_state = 0}, - [120] = {.lex_state = 8}, + [120] = {.lex_state = 0}, [121] = {.lex_state = 8}, [122] = {.lex_state = 8}, [123] = {.lex_state = 8}, - [124] = {.lex_state = 8}, - [125] = {.lex_state = 8}, - [126] = {.lex_state = 0}, - [127] = {.lex_state = 0}, + [124] = {.lex_state = 0}, + [125] = {.lex_state = 0}, + [126] = {.lex_state = 8}, + [127] = {.lex_state = 8}, [128] = {.lex_state = 0}, - [129] = {.lex_state = 0}, + [129] = {.lex_state = 8}, [130] = {.lex_state = 8}, [131] = {.lex_state = 0}, [132] = {.lex_state = 0}, [133] = {.lex_state = 0}, - [134] = {.lex_state = 8}, - [135] = {.lex_state = 0}, + [134] = {.lex_state = 0}, + [135] = {.lex_state = 8}, [136] = {.lex_state = 0}, [137] = {.lex_state = 0}, [138] = {.lex_state = 0}, - [139] = {.lex_state = 8}, + [139] = {.lex_state = 0}, [140] = {.lex_state = 0}, - [141] = {.lex_state = 0}, - [142] = {.lex_state = 8}, + [141] = {.lex_state = 8}, + [142] = {.lex_state = 0}, [143] = {.lex_state = 8}, [144] = {.lex_state = 8}, [145] = {.lex_state = 8}, [146] = {.lex_state = 8}, - [147] = {.lex_state = 8}, - [148] = {.lex_state = 0}, - [149] = {.lex_state = 8}, - [150] = {.lex_state = 0}, - [151] = {.lex_state = 0}, + [147] = {.lex_state = 0}, + [148] = {.lex_state = 8}, + [149] = {.lex_state = 0}, + [150] = {.lex_state = 8}, + [151] = {.lex_state = 8}, + [152] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -3333,31 +3347,31 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_SEMI] = ACTIONS(1), }, [1] = { - [sym_source_file] = STATE(148), - [sym_module] = STATE(118), - [aux_sym_source_file_repeat1] = STATE(118), + [sym_source_file] = STATE(149), + [sym_module] = STATE(120), + [aux_sym_source_file_repeat1] = STATE(120), [ts_builtin_sym_end] = ACTIONS(3), [anon_sym_module] = ACTIONS(5), }, [2] = { - [sym_global_identifier] = STATE(38), - [sym__maybe_global_identifier] = STATE(22), - [sym_array_type] = STATE(122), - [sym__type] = STATE(122), - [sym_declaration] = STATE(106), - [sym_unary_op] = STATE(37), - [sym_binary_op] = STATE(37), - [sym_array_op] = STATE(37), - [sym_func_call] = STATE(37), - [sym_parenthesis_expression] = STATE(37), - [sym__expression] = STATE(37), - [sym_block] = STATE(7), - [sym_assign_left_side] = STATE(133), - [sym_decl_assign_statement] = STATE(151), - [sym_if_statement] = STATE(7), - [sym_for_statement] = STATE(7), - [sym__statement] = STATE(7), - [aux_sym_block_repeat1] = STATE(7), + [sym_global_identifier] = STATE(37), + [sym__maybe_global_identifier] = STATE(21), + [sym_array_type] = STATE(123), + [sym__type] = STATE(123), + [sym_declaration] = STATE(103), + [sym_unary_op] = STATE(36), + [sym_binary_op] = STATE(36), + [sym_array_op] = STATE(36), + [sym_func_call] = STATE(36), + [sym_parenthesis_expression] = STATE(36), + [sym__expression] = STATE(36), + [sym_block] = STATE(81), + [sym_assign_left_side] = STATE(134), + [sym_decl_assign_statement] = STATE(152), + [sym_if_statement] = STATE(81), + [sym_for_statement] = STATE(81), + [sym__statement] = STATE(81), + [aux_sym_block_repeat1] = STATE(6), [aux_sym_assign_left_side_repeat1] = STATE(17), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), @@ -3380,23 +3394,23 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_for] = ACTIONS(29), }, [3] = { - [sym_global_identifier] = STATE(38), - [sym__maybe_global_identifier] = STATE(22), - [sym_array_type] = STATE(122), - [sym__type] = STATE(122), - [sym_declaration] = STATE(106), - [sym_unary_op] = STATE(37), - [sym_binary_op] = STATE(37), - [sym_array_op] = STATE(37), - [sym_func_call] = STATE(37), - [sym_parenthesis_expression] = STATE(37), - [sym__expression] = STATE(37), - [sym_block] = STATE(2), - [sym_assign_left_side] = STATE(133), - [sym_decl_assign_statement] = STATE(151), - [sym_if_statement] = STATE(2), - [sym_for_statement] = STATE(2), - [sym__statement] = STATE(2), + [sym_global_identifier] = STATE(37), + [sym__maybe_global_identifier] = STATE(21), + [sym_array_type] = STATE(123), + [sym__type] = STATE(123), + [sym_declaration] = STATE(103), + [sym_unary_op] = STATE(36), + [sym_binary_op] = STATE(36), + [sym_array_op] = STATE(36), + [sym_func_call] = STATE(36), + [sym_parenthesis_expression] = STATE(36), + [sym__expression] = STATE(36), + [sym_block] = STATE(81), + [sym_assign_left_side] = STATE(134), + [sym_decl_assign_statement] = STATE(152), + [sym_if_statement] = STATE(81), + [sym_for_statement] = STATE(81), + [sym__statement] = STATE(81), [aux_sym_block_repeat1] = STATE(2), [aux_sym_assign_left_side_repeat1] = STATE(17), [sym_identifier] = ACTIONS(7), @@ -3420,24 +3434,24 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_for] = ACTIONS(29), }, [4] = { - [sym_global_identifier] = STATE(38), - [sym__maybe_global_identifier] = STATE(22), - [sym_array_type] = STATE(122), - [sym__type] = STATE(122), - [sym_declaration] = STATE(106), - [sym_unary_op] = STATE(37), - [sym_binary_op] = STATE(37), - [sym_array_op] = STATE(37), - [sym_func_call] = STATE(37), - [sym_parenthesis_expression] = STATE(37), - [sym__expression] = STATE(37), - [sym_block] = STATE(7), - [sym_assign_left_side] = STATE(133), - [sym_decl_assign_statement] = STATE(151), - [sym_if_statement] = STATE(7), - [sym_for_statement] = STATE(7), - [sym__statement] = STATE(7), - [aux_sym_block_repeat1] = STATE(7), + [sym_global_identifier] = STATE(37), + [sym__maybe_global_identifier] = STATE(21), + [sym_array_type] = STATE(123), + [sym__type] = STATE(123), + [sym_declaration] = STATE(103), + [sym_unary_op] = STATE(36), + [sym_binary_op] = STATE(36), + [sym_array_op] = STATE(36), + [sym_func_call] = STATE(36), + [sym_parenthesis_expression] = STATE(36), + [sym__expression] = STATE(36), + [sym_block] = STATE(81), + [sym_assign_left_side] = STATE(134), + [sym_decl_assign_statement] = STATE(152), + [sym_if_statement] = STATE(81), + [sym_for_statement] = STATE(81), + [sym__statement] = STATE(81), + [aux_sym_block_repeat1] = STATE(6), [aux_sym_assign_left_side_repeat1] = STATE(17), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), @@ -3460,23 +3474,23 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_for] = ACTIONS(29), }, [5] = { - [sym_global_identifier] = STATE(38), - [sym__maybe_global_identifier] = STATE(22), - [sym_array_type] = STATE(122), - [sym__type] = STATE(122), - [sym_declaration] = STATE(106), - [sym_unary_op] = STATE(37), - [sym_binary_op] = STATE(37), - [sym_array_op] = STATE(37), - [sym_func_call] = STATE(37), - [sym_parenthesis_expression] = STATE(37), - [sym__expression] = STATE(37), - [sym_block] = STATE(4), - [sym_assign_left_side] = STATE(133), - [sym_decl_assign_statement] = STATE(151), - [sym_if_statement] = STATE(4), - [sym_for_statement] = STATE(4), - [sym__statement] = STATE(4), + [sym_global_identifier] = STATE(37), + [sym__maybe_global_identifier] = STATE(21), + [sym_array_type] = STATE(123), + [sym__type] = STATE(123), + [sym_declaration] = STATE(103), + [sym_unary_op] = STATE(36), + [sym_binary_op] = STATE(36), + [sym_array_op] = STATE(36), + [sym_func_call] = STATE(36), + [sym_parenthesis_expression] = STATE(36), + [sym__expression] = STATE(36), + [sym_block] = STATE(81), + [sym_assign_left_side] = STATE(134), + [sym_decl_assign_statement] = STATE(152), + [sym_if_statement] = STATE(81), + [sym_for_statement] = STATE(81), + [sym__statement] = STATE(81), [aux_sym_block_repeat1] = STATE(4), [aux_sym_assign_left_side_repeat1] = STATE(17), [sym_identifier] = ACTIONS(7), @@ -3500,23 +3514,63 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_for] = ACTIONS(29), }, [6] = { - [sym_global_identifier] = STATE(38), - [sym__maybe_global_identifier] = STATE(22), - [sym_array_type] = STATE(122), - [sym__type] = STATE(122), - [sym_declaration] = STATE(106), - [sym_unary_op] = STATE(37), - [sym_binary_op] = STATE(37), - [sym_array_op] = STATE(37), - [sym_func_call] = STATE(37), - [sym_parenthesis_expression] = STATE(37), - [sym__expression] = STATE(37), - [sym_block] = STATE(8), - [sym_assign_left_side] = STATE(133), - [sym_decl_assign_statement] = STATE(151), - [sym_if_statement] = STATE(8), - [sym_for_statement] = STATE(8), - [sym__statement] = STATE(8), + [sym_global_identifier] = STATE(37), + [sym__maybe_global_identifier] = STATE(21), + [sym_array_type] = STATE(123), + [sym__type] = STATE(123), + [sym_declaration] = STATE(103), + [sym_unary_op] = STATE(36), + [sym_binary_op] = STATE(36), + [sym_array_op] = STATE(36), + [sym_func_call] = STATE(36), + [sym_parenthesis_expression] = STATE(36), + [sym__expression] = STATE(36), + [sym_block] = STATE(81), + [sym_assign_left_side] = STATE(134), + [sym_decl_assign_statement] = STATE(152), + [sym_if_statement] = STATE(81), + [sym_for_statement] = STATE(81), + [sym__statement] = STATE(81), + [aux_sym_block_repeat1] = STATE(6), + [aux_sym_assign_left_side_repeat1] = STATE(17), + [sym_identifier] = ACTIONS(37), + [sym_number] = ACTIONS(40), + [anon_sym_COLON_COLON] = ACTIONS(43), + [anon_sym_state] = ACTIONS(46), + [anon_sym_gen] = ACTIONS(46), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_STAR] = ACTIONS(49), + [anon_sym_BANG] = ACTIONS(49), + [anon_sym_PIPE] = ACTIONS(49), + [anon_sym_AMP] = ACTIONS(49), + [anon_sym_CARET] = ACTIONS(49), + [anon_sym_LPAREN] = ACTIONS(52), + [anon_sym_LBRACE] = ACTIONS(55), + [anon_sym_RBRACE] = ACTIONS(58), + [anon_sym_reg] = ACTIONS(60), + [anon_sym_initial] = ACTIONS(63), + [anon_sym_if] = ACTIONS(66), + [anon_sym_for] = ACTIONS(69), + }, + [7] = { + [sym_global_identifier] = STATE(37), + [sym__maybe_global_identifier] = STATE(21), + [sym_array_type] = STATE(123), + [sym__type] = STATE(123), + [sym_declaration] = STATE(103), + [sym_unary_op] = STATE(36), + [sym_binary_op] = STATE(36), + [sym_array_op] = STATE(36), + [sym_func_call] = STATE(36), + [sym_parenthesis_expression] = STATE(36), + [sym__expression] = STATE(36), + [sym_block] = STATE(81), + [sym_assign_left_side] = STATE(134), + [sym_decl_assign_statement] = STATE(152), + [sym_if_statement] = STATE(81), + [sym_for_statement] = STATE(81), + [sym__statement] = STATE(81), [aux_sym_block_repeat1] = STATE(8), [aux_sym_assign_left_side_repeat1] = STATE(17), [sym_identifier] = ACTIONS(7), @@ -3533,71 +3587,31 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_CARET] = ACTIONS(15), [anon_sym_LPAREN] = ACTIONS(17), [anon_sym_LBRACE] = ACTIONS(19), - [anon_sym_RBRACE] = ACTIONS(37), + [anon_sym_RBRACE] = ACTIONS(72), [anon_sym_reg] = ACTIONS(23), [anon_sym_initial] = ACTIONS(25), [anon_sym_if] = ACTIONS(27), [anon_sym_for] = ACTIONS(29), }, - [7] = { - [sym_global_identifier] = STATE(38), - [sym__maybe_global_identifier] = STATE(22), - [sym_array_type] = STATE(122), - [sym__type] = STATE(122), - [sym_declaration] = STATE(106), - [sym_unary_op] = STATE(37), - [sym_binary_op] = STATE(37), - [sym_array_op] = STATE(37), - [sym_func_call] = STATE(37), - [sym_parenthesis_expression] = STATE(37), - [sym__expression] = STATE(37), - [sym_block] = STATE(7), - [sym_assign_left_side] = STATE(133), - [sym_decl_assign_statement] = STATE(151), - [sym_if_statement] = STATE(7), - [sym_for_statement] = STATE(7), - [sym__statement] = STATE(7), - [aux_sym_block_repeat1] = STATE(7), - [aux_sym_assign_left_side_repeat1] = STATE(17), - [sym_identifier] = ACTIONS(39), - [sym_number] = ACTIONS(42), - [anon_sym_COLON_COLON] = ACTIONS(45), - [anon_sym_state] = ACTIONS(48), - [anon_sym_gen] = ACTIONS(48), - [anon_sym_PLUS] = ACTIONS(51), - [anon_sym_DASH] = ACTIONS(51), - [anon_sym_STAR] = ACTIONS(51), - [anon_sym_BANG] = ACTIONS(51), - [anon_sym_PIPE] = ACTIONS(51), - [anon_sym_AMP] = ACTIONS(51), - [anon_sym_CARET] = ACTIONS(51), - [anon_sym_LPAREN] = ACTIONS(54), - [anon_sym_LBRACE] = ACTIONS(57), - [anon_sym_RBRACE] = ACTIONS(60), - [anon_sym_reg] = ACTIONS(62), - [anon_sym_initial] = ACTIONS(65), - [anon_sym_if] = ACTIONS(68), - [anon_sym_for] = ACTIONS(71), - }, [8] = { - [sym_global_identifier] = STATE(38), - [sym__maybe_global_identifier] = STATE(22), - [sym_array_type] = STATE(122), - [sym__type] = STATE(122), - [sym_declaration] = STATE(106), - [sym_unary_op] = STATE(37), - [sym_binary_op] = STATE(37), - [sym_array_op] = STATE(37), - [sym_func_call] = STATE(37), - [sym_parenthesis_expression] = STATE(37), - [sym__expression] = STATE(37), - [sym_block] = STATE(7), - [sym_assign_left_side] = STATE(133), - [sym_decl_assign_statement] = STATE(151), - [sym_if_statement] = STATE(7), - [sym_for_statement] = STATE(7), - [sym__statement] = STATE(7), - [aux_sym_block_repeat1] = STATE(7), + [sym_global_identifier] = STATE(37), + [sym__maybe_global_identifier] = STATE(21), + [sym_array_type] = STATE(123), + [sym__type] = STATE(123), + [sym_declaration] = STATE(103), + [sym_unary_op] = STATE(36), + [sym_binary_op] = STATE(36), + [sym_array_op] = STATE(36), + [sym_func_call] = STATE(36), + [sym_parenthesis_expression] = STATE(36), + [sym__expression] = STATE(36), + [sym_block] = STATE(81), + [sym_assign_left_side] = STATE(134), + [sym_decl_assign_statement] = STATE(152), + [sym_if_statement] = STATE(81), + [sym_for_statement] = STATE(81), + [sym__statement] = STATE(81), + [aux_sym_block_repeat1] = STATE(6), [aux_sym_assign_left_side_repeat1] = STATE(17), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), @@ -3637,21 +3651,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, STATE(17), 1, aux_sym_assign_left_side_repeat1, - STATE(22), 1, + STATE(21), 1, sym__maybe_global_identifier, - STATE(38), 1, + STATE(37), 1, sym_global_identifier, - STATE(106), 1, + STATE(103), 1, sym_declaration, - STATE(150), 1, + STATE(136), 1, sym_assign_left_side, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(122), 2, + STATE(123), 2, sym_array_type, sym__type, - STATE(37), 6, + STATE(36), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -3681,21 +3695,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, STATE(17), 1, aux_sym_assign_left_side_repeat1, - STATE(22), 1, + STATE(21), 1, sym__maybe_global_identifier, - STATE(38), 1, + STATE(37), 1, sym_global_identifier, - STATE(106), 1, + STATE(103), 1, sym_declaration, - STATE(137), 1, + STATE(142), 1, sym_assign_left_side, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(122), 2, + STATE(123), 2, sym_array_type, sym__type, - STATE(37), 6, + STATE(36), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -3742,56 +3756,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [154] = 14, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(82), 1, - sym_number, - ACTIONS(84), 1, - anon_sym_reg, - ACTIONS(86), 1, - anon_sym_initial, - STATE(19), 1, - aux_sym_assign_left_side_repeat1, - STATE(22), 1, - sym__maybe_global_identifier, - STATE(38), 1, - sym_global_identifier, - STATE(109), 1, - sym_declaration, - ACTIONS(13), 2, - anon_sym_state, - anon_sym_gen, - STATE(122), 2, - sym_array_type, - sym__type, - STATE(39), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [210] = 4, + [154] = 4, ACTIONS(78), 1, anon_sym_COLON_COLON, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_SLASH, - STATE(14), 1, + STATE(13), 1, aux_sym_global_identifier_repeat1, - ACTIONS(88), 24, + ACTIONS(82), 24, anon_sym_COLON, anon_sym_DASH_GT, sym_identifier, @@ -3816,14 +3788,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [246] = 4, - ACTIONS(94), 1, + [190] = 4, + ACTIONS(88), 1, anon_sym_COLON_COLON, - ACTIONS(97), 1, + ACTIONS(91), 1, anon_sym_SLASH, - STATE(14), 1, + STATE(13), 1, aux_sym_global_identifier_repeat1, - ACTIONS(92), 24, + ACTIONS(86), 24, anon_sym_COLON, anon_sym_DASH_GT, sym_identifier, @@ -3848,14 +3820,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [282] = 4, + [226] = 4, ACTIONS(78), 1, anon_sym_COLON_COLON, - ACTIONS(101), 1, + ACTIONS(80), 1, anon_sym_SLASH, - STATE(16), 1, + STATE(12), 1, aux_sym_global_identifier_repeat1, - ACTIONS(99), 24, + ACTIONS(76), 24, anon_sym_COLON, anon_sym_DASH_GT, sym_identifier, @@ -3880,14 +3852,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [318] = 4, + [262] = 4, ACTIONS(78), 1, anon_sym_COLON_COLON, - ACTIONS(80), 1, + ACTIONS(95), 1, anon_sym_SLASH, - STATE(14), 1, + STATE(11), 1, aux_sym_global_identifier_repeat1, - ACTIONS(76), 24, + ACTIONS(93), 24, anon_sym_COLON, anon_sym_DASH_GT, sym_identifier, @@ -3912,6 +3884,48 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, + [298] = 14, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(11), 1, + anon_sym_COLON_COLON, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(97), 1, + sym_number, + ACTIONS(99), 1, + anon_sym_reg, + ACTIONS(101), 1, + anon_sym_initial, + STATE(19), 1, + aux_sym_assign_left_side_repeat1, + STATE(21), 1, + sym__maybe_global_identifier, + STATE(37), 1, + sym_global_identifier, + STATE(110), 1, + sym_declaration, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + STATE(123), 2, + sym_array_type, + sym__type, + STATE(39), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(15), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, [354] = 13, ACTIONS(7), 1, sym_identifier, @@ -3923,21 +3937,21 @@ static const uint16_t ts_small_parse_table[] = { sym_number, ACTIONS(105), 1, anon_sym_reg, - STATE(22), 1, + STATE(21), 1, sym__maybe_global_identifier, - STATE(38), 1, + STATE(37), 1, sym_global_identifier, - STATE(96), 1, + STATE(97), 1, aux_sym_assign_left_side_repeat1, - STATE(103), 1, + STATE(104), 1, sym_declaration, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(122), 2, + STATE(123), 2, sym_array_type, sym__type, - STATE(36), 6, + STATE(38), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -3953,9 +3967,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, [407] = 2, - ACTIONS(97), 1, + ACTIONS(91), 1, anon_sym_SLASH, - ACTIONS(92), 25, + ACTIONS(86), 25, anon_sym_COLON, anon_sym_DASH_GT, sym_identifier, @@ -3992,18 +4006,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_reg, ACTIONS(107), 1, sym_number, - STATE(22), 1, + STATE(21), 1, sym__maybe_global_identifier, - STATE(38), 1, + STATE(37), 1, sym_global_identifier, - STATE(96), 1, + STATE(97), 1, aux_sym_assign_left_side_repeat1, - STATE(111), 1, + STATE(113), 1, sym_declaration, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(122), 2, + STATE(123), 2, sym_array_type, sym__type, STATE(41), 6, @@ -4024,7 +4038,7 @@ static const uint16_t ts_small_parse_table[] = { [491] = 3, ACTIONS(111), 1, anon_sym_SLASH, - STATE(33), 1, + STATE(26), 1, sym_array_bracket_expression, ACTIONS(109), 23, anon_sym_COLON, @@ -4053,8 +4067,8 @@ static const uint16_t ts_small_parse_table[] = { [523] = 3, ACTIONS(115), 1, anon_sym_SLASH, - STATE(33), 1, - sym_array_bracket_expression, + ACTIONS(117), 1, + anon_sym_LPAREN, ACTIONS(113), 23, anon_sym_COLON, anon_sym_DASH_GT, @@ -4080,11 +4094,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_SEMI, [555] = 3, - ACTIONS(119), 1, - anon_sym_SLASH, ACTIONS(121), 1, - anon_sym_LPAREN, - ACTIONS(117), 23, + anon_sym_SLASH, + STATE(26), 1, + sym_array_bracket_expression, + ACTIONS(119), 23, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4108,87 +4122,56 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [587] = 2, - ACTIONS(125), 1, + [587] = 7, + ACTIONS(127), 1, + anon_sym_PIPE, + ACTIONS(129), 1, + anon_sym_CARET, + ACTIONS(131), 1, anon_sym_SLASH, - ACTIONS(123), 23, - anon_sym_COLON, - anon_sym_DASH_GT, + STATE(26), 1, + sym_array_bracket_expression, + ACTIONS(123), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(125), 2, anon_sym_STAR, - anon_sym_PIPE, + anon_sym_PERCENT, + ACTIONS(119), 16, + anon_sym_COLON, + anon_sym_DASH_GT, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_PERCENT, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, - anon_sym_in, anon_sym_SEMI, - [616] = 11, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(107), 1, - sym_number, - STATE(22), 1, - sym__maybe_global_identifier, - STATE(38), 1, - sym_global_identifier, - STATE(111), 1, - sym_declaration, - ACTIONS(13), 2, - anon_sym_state, - anon_sym_gen, - STATE(122), 2, - sym_array_type, - sym__type, - STATE(41), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, + [626] = 8, + ACTIONS(127), 1, anon_sym_PIPE, - anon_sym_AMP, + ACTIONS(129), 1, anon_sym_CARET, - [663] = 8, ACTIONS(131), 1, - anon_sym_PIPE, + anon_sym_SLASH, ACTIONS(133), 1, anon_sym_AMP, - ACTIONS(135), 1, - anon_sym_CARET, - ACTIONS(137), 1, - anon_sym_SLASH, - STATE(33), 1, + STATE(26), 1, sym_array_bracket_expression, - ACTIONS(127), 2, + ACTIONS(123), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(129), 2, + ACTIONS(125), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(113), 15, + ACTIONS(119), 15, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_EQ_EQ, @@ -4204,18 +4187,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [704] = 5, - ACTIONS(137), 1, + [667] = 5, + ACTIONS(131), 1, anon_sym_SLASH, - STATE(33), 1, + STATE(26), 1, sym_array_bracket_expression, - ACTIONS(127), 2, + ACTIONS(123), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(129), 2, + ACTIONS(125), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(113), 18, + ACTIONS(119), 18, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_PIPE, @@ -4234,52 +4217,47 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [739] = 7, - ACTIONS(131), 1, - anon_sym_PIPE, - ACTIONS(135), 1, - anon_sym_CARET, + [702] = 2, ACTIONS(137), 1, anon_sym_SLASH, - STATE(33), 1, - sym_array_bracket_expression, - ACTIONS(127), 2, + ACTIONS(135), 23, + anon_sym_COLON, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(129), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(113), 16, - anon_sym_COLON, - anon_sym_DASH_GT, + anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, + anon_sym_in, anon_sym_SEMI, - [778] = 6, - ACTIONS(135), 1, + [731] = 6, + ACTIONS(129), 1, anon_sym_CARET, - ACTIONS(137), 1, + ACTIONS(131), 1, anon_sym_SLASH, - STATE(33), 1, + STATE(26), 1, sym_array_bracket_expression, - ACTIONS(127), 2, + ACTIONS(123), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(129), 2, + ACTIONS(125), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(113), 17, + ACTIONS(119), 17, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_PIPE, @@ -4297,7 +4275,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [815] = 2, + [768] = 2, ACTIONS(141), 1, anon_sym_SLASH, ACTIONS(139), 23, @@ -4324,15 +4302,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [844] = 4, - ACTIONS(137), 1, + [797] = 4, + ACTIONS(131), 1, anon_sym_SLASH, - STATE(33), 1, + STATE(26), 1, sym_array_bracket_expression, - ACTIONS(129), 2, + ACTIONS(125), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(113), 20, + ACTIONS(119), 20, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4353,7 +4331,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [877] = 2, + [830] = 2, ACTIONS(145), 1, anon_sym_SLASH, ACTIONS(143), 23, @@ -4380,7 +4358,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [906] = 2, + [859] = 2, ACTIONS(149), 1, anon_sym_SLASH, ACTIONS(147), 23, @@ -4407,7 +4385,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [935] = 2, + [888] = 2, ACTIONS(153), 1, anon_sym_SLASH, ACTIONS(151), 23, @@ -4434,34 +4412,43 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [964] = 2, - ACTIONS(157), 1, - anon_sym_SLASH, - ACTIONS(155), 23, - anon_sym_COLON, - anon_sym_DASH_GT, + [917] = 11, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(11), 1, + anon_sym_COLON_COLON, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(107), 1, + sym_number, + STATE(21), 1, + sym__maybe_global_identifier, + STATE(37), 1, + sym_global_identifier, + STATE(113), 1, + sym_declaration, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + STATE(123), 2, + sym_array_type, + sym__type, + STATE(41), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_SEMI, - [993] = 11, + [964] = 11, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, @@ -4470,19 +4457,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(103), 1, sym_number, - STATE(22), 1, + STATE(21), 1, sym__maybe_global_identifier, - STATE(38), 1, + STATE(37), 1, sym_global_identifier, - STATE(103), 1, + STATE(104), 1, sym_declaration, ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(122), 2, + STATE(123), 2, sym_array_type, sym__type, - STATE(36), 6, + STATE(38), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -4497,65 +4484,57 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1040] = 12, - ACTIONS(131), 1, + [1011] = 2, + ACTIONS(157), 1, + anon_sym_SLASH, + ACTIONS(155), 23, + anon_sym_COLON, + anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, anon_sym_PIPE, - ACTIONS(133), 1, anon_sym_AMP, - ACTIONS(135), 1, anon_sym_CARET, - ACTIONS(137), 1, - anon_sym_SLASH, - ACTIONS(163), 1, - anon_sym_COMMA, - ACTIONS(165), 1, - anon_sym_LBRACK, - STATE(33), 1, - sym_array_bracket_expression, - STATE(104), 1, - aux_sym_assign_left_side_repeat2, - ACTIONS(127), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(129), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(159), 4, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_SEMI, - ACTIONS(161), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1087] = 12, - ACTIONS(131), 1, + anon_sym_PERCENT, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_SEMI, + [1040] = 12, + ACTIONS(127), 1, anon_sym_PIPE, - ACTIONS(133), 1, - anon_sym_AMP, - ACTIONS(135), 1, + ACTIONS(129), 1, anon_sym_CARET, - ACTIONS(137), 1, + ACTIONS(131), 1, anon_sym_SLASH, + ACTIONS(133), 1, + anon_sym_AMP, ACTIONS(163), 1, anon_sym_COMMA, ACTIONS(165), 1, anon_sym_LBRACK, - STATE(33), 1, + STATE(26), 1, sym_array_bracket_expression, - STATE(100), 1, + STATE(109), 1, aux_sym_assign_left_side_repeat2, - ACTIONS(127), 2, + ACTIONS(123), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(129), 2, + ACTIONS(125), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(167), 4, + ACTIONS(159), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, @@ -4567,14 +4546,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1134] = 4, - ACTIONS(171), 1, + [1087] = 4, + ACTIONS(169), 1, sym_identifier, - ACTIONS(173), 1, + ACTIONS(171), 1, anon_sym_SLASH, - ACTIONS(175), 1, + ACTIONS(173), 1, anon_sym_LBRACK, - ACTIONS(169), 19, + ACTIONS(167), 19, anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_DASH, @@ -4594,23 +4573,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [1165] = 10, - ACTIONS(131), 1, + [1118] = 12, + ACTIONS(127), 1, anon_sym_PIPE, + ACTIONS(129), 1, + anon_sym_CARET, + ACTIONS(131), 1, + anon_sym_SLASH, ACTIONS(133), 1, anon_sym_AMP, - ACTIONS(135), 1, + ACTIONS(163), 1, + anon_sym_COMMA, + ACTIONS(165), 1, + anon_sym_LBRACK, + STATE(26), 1, + sym_array_bracket_expression, + STATE(106), 1, + aux_sym_assign_left_side_repeat2, + ACTIONS(123), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(125), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(176), 4, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_SEMI, + ACTIONS(161), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [1165] = 10, + ACTIONS(127), 1, + anon_sym_PIPE, + ACTIONS(129), 1, anon_sym_CARET, - ACTIONS(137), 1, + ACTIONS(131), 1, anon_sym_SLASH, + ACTIONS(133), 1, + anon_sym_AMP, ACTIONS(165), 1, anon_sym_LBRACK, - STATE(33), 1, + STATE(26), 1, sym_array_bracket_expression, - ACTIONS(127), 2, + ACTIONS(123), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(129), 2, + ACTIONS(125), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(178), 5, @@ -4627,22 +4641,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, [1207] = 10, - ACTIONS(131), 1, + ACTIONS(127), 1, anon_sym_PIPE, - ACTIONS(133), 1, - anon_sym_AMP, - ACTIONS(135), 1, + ACTIONS(129), 1, anon_sym_CARET, - ACTIONS(137), 1, + ACTIONS(131), 1, anon_sym_SLASH, + ACTIONS(133), 1, + anon_sym_AMP, ACTIONS(165), 1, anon_sym_LBRACK, - STATE(33), 1, + STATE(26), 1, sym_array_bracket_expression, - ACTIONS(127), 2, + ACTIONS(123), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(129), 2, + ACTIONS(125), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(180), 5, @@ -4659,22 +4673,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, [1249] = 10, - ACTIONS(131), 1, + ACTIONS(127), 1, anon_sym_PIPE, - ACTIONS(133), 1, - anon_sym_AMP, - ACTIONS(135), 1, + ACTIONS(129), 1, anon_sym_CARET, - ACTIONS(137), 1, + ACTIONS(131), 1, anon_sym_SLASH, + ACTIONS(133), 1, + anon_sym_AMP, ACTIONS(165), 1, anon_sym_LBRACK, - STATE(33), 1, + STATE(26), 1, sym_array_bracket_expression, - ACTIONS(127), 2, + ACTIONS(123), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(129), 2, + ACTIONS(125), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(182), 5, @@ -4699,12 +4713,12 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(186), 1, sym_number, - ACTIONS(188), 1, - anon_sym_RPAREN, - STATE(22), 2, + STATE(140), 1, + sym_range, + STATE(21), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(70), 6, + STATE(95), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -4726,14 +4740,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(184), 1, sym_identifier, - ACTIONS(190), 1, + ACTIONS(188), 1, sym_number, - STATE(138), 1, - sym_range, - STATE(22), 2, + ACTIONS(190), 1, + anon_sym_RPAREN, + STATE(21), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(95), 6, + STATE(71), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -4827,10 +4841,10 @@ static const uint16_t ts_small_parse_table[] = { sym_number, ACTIONS(210), 1, anon_sym_COLON_COLON, - STATE(22), 2, + STATE(21), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(92), 6, + STATE(22), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -4846,7 +4860,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, [1476] = 2, - ACTIONS(192), 7, + ACTIONS(214), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -4854,7 +4868,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(194), 12, + ACTIONS(216), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -4874,12 +4888,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(184), 1, sym_identifier, - ACTIONS(214), 1, + ACTIONS(218), 1, sym_number, - STATE(22), 2, + STATE(21), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(86), 6, + STATE(87), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -4895,13 +4909,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, [1534] = 4, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_SLASH, - ACTIONS(216), 1, + ACTIONS(220), 1, anon_sym_COLON_COLON, - STATE(52), 1, + STATE(51), 1, aux_sym_global_identifier_repeat1, - ACTIONS(88), 16, + ACTIONS(82), 16, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4918,41 +4932,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACK, anon_sym_in, - [1562] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(184), 1, - sym_identifier, - ACTIONS(218), 1, - sym_number, - STATE(22), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(94), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [1596] = 4, - ACTIONS(97), 1, + [1562] = 4, + ACTIONS(91), 1, anon_sym_SLASH, - ACTIONS(220), 1, + ACTIONS(222), 1, anon_sym_COLON_COLON, - STATE(52), 1, + STATE(51), 1, aux_sym_global_identifier_repeat1, - ACTIONS(92), 16, + ACTIONS(86), 16, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4969,19 +4956,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACK, anon_sym_in, - [1624] = 7, + [1590] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, ACTIONS(184), 1, sym_identifier, - ACTIONS(223), 1, + ACTIONS(225), 1, sym_number, - STATE(22), 2, + STATE(21), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(81), 6, + STATE(94), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -4996,19 +4983,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1658] = 7, + [1624] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, ACTIONS(184), 1, sym_identifier, - ACTIONS(225), 1, + ACTIONS(227), 1, sym_number, - STATE(22), 2, + STATE(21), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(30), 6, + STATE(82), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -5023,19 +5010,43 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1692] = 7, + [1658] = 4, + ACTIONS(80), 1, + anon_sym_SLASH, + ACTIONS(220), 1, + anon_sym_COLON_COLON, + STATE(50), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(76), 16, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_in, + [1686] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, ACTIONS(184), 1, sym_identifier, - ACTIONS(227), 1, + ACTIONS(229), 1, sym_number, - STATE(22), 2, + STATE(21), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(21), 6, + STATE(29), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -5050,19 +5061,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1726] = 7, + [1720] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, ACTIONS(184), 1, sym_identifier, - ACTIONS(229), 1, + ACTIONS(208), 1, sym_number, - STATE(22), 2, + STATE(21), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(28), 6, + STATE(22), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -5077,7 +5088,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1760] = 7, + [1754] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, @@ -5086,7 +5097,7 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(231), 1, sym_number, - STATE(22), 2, + STATE(21), 2, sym_global_identifier, sym__maybe_global_identifier, STATE(27), 6, @@ -5104,7 +5115,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1794] = 7, + [1788] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, @@ -5113,10 +5124,10 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(233), 1, sym_number, - STATE(22), 2, + STATE(21), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(26), 6, + STATE(23), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -5131,7 +5142,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1828] = 7, + [1822] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, @@ -5140,7 +5151,7 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(235), 1, sym_number, - STATE(22), 2, + STATE(21), 2, sym_global_identifier, sym__maybe_global_identifier, STATE(25), 6, @@ -5158,36 +5169,39 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1862] = 4, - ACTIONS(80), 1, - anon_sym_SLASH, - ACTIONS(216), 1, + [1856] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - STATE(50), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(76), 16, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(184), 1, + sym_identifier, + ACTIONS(237), 1, + sym_number, + STATE(21), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(24), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_LBRACK, - anon_sym_in, [1890] = 4, ACTIONS(80), 1, anon_sym_SLASH, - ACTIONS(216), 1, + ACTIONS(220), 1, anon_sym_COLON_COLON, - STATE(52), 1, + STATE(51), 1, aux_sym_global_identifier_repeat1, ACTIONS(76), 16, anon_sym_PLUS, @@ -5207,33 +5221,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_in, [1918] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(184), 1, - sym_identifier, - ACTIONS(237), 1, - sym_number, - STATE(22), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(90), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [1952] = 7, ACTIONS(17), 1, anon_sym_LPAREN, ACTIONS(206), 1, @@ -5242,10 +5229,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(239), 1, sym_number, - STATE(22), 2, + STATE(21), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(88), 6, + STATE(89), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -5260,7 +5247,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1986] = 7, + [1952] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, @@ -5269,10 +5256,10 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(241), 1, sym_number, - STATE(22), 2, + STATE(21), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(87), 6, + STATE(86), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -5287,8 +5274,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2020] = 2, - ACTIONS(243), 7, + [1986] = 2, + ACTIONS(202), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -5296,7 +5283,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(245), 12, + ACTIONS(204), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -5309,19 +5296,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [2044] = 7, + [2010] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, ACTIONS(184), 1, sym_identifier, - ACTIONS(247), 1, + ACTIONS(243), 1, sym_number, - STATE(22), 2, + STATE(21), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(82), 6, + STATE(88), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -5336,26 +5323,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2078] = 7, + [2044] = 7, + ACTIONS(11), 1, + anon_sym_COLON_COLON, ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(210), 1, - anon_sym_COLON_COLON, - ACTIONS(249), 1, + ACTIONS(245), 1, sym_number, - STATE(22), 2, + STATE(21), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(89), 6, + STATE(83), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(212), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5363,19 +5350,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2112] = 7, + [2078] = 7, ACTIONS(17), 1, anon_sym_LPAREN, ACTIONS(206), 1, sym_identifier, ACTIONS(210), 1, anon_sym_COLON_COLON, - ACTIONS(251), 1, + ACTIONS(247), 1, sym_number, - STATE(22), 2, + STATE(21), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(84), 6, + STATE(90), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -5390,16 +5377,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2146] = 7, + [2112] = 7, ACTIONS(17), 1, anon_sym_LPAREN, ACTIONS(206), 1, sym_identifier, ACTIONS(210), 1, anon_sym_COLON_COLON, - ACTIONS(253), 1, + ACTIONS(249), 1, sym_number, - STATE(22), 2, + STATE(21), 2, sym_global_identifier, sym__maybe_global_identifier, STATE(91), 6, @@ -5417,29 +5404,83 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2180] = 12, - ACTIONS(131), 1, + [2146] = 7, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(206), 1, + sym_identifier, + ACTIONS(210), 1, + anon_sym_COLON_COLON, + ACTIONS(251), 1, + sym_number, + STATE(21), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(85), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(212), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, - ACTIONS(133), 1, anon_sym_AMP, - ACTIONS(135), 1, anon_sym_CARET, - ACTIONS(137), 1, + [2180] = 7, + ACTIONS(17), 1, + anon_sym_LPAREN, + ACTIONS(206), 1, + sym_identifier, + ACTIONS(210), 1, + anon_sym_COLON_COLON, + ACTIONS(253), 1, + sym_number, + STATE(21), 2, + sym_global_identifier, + sym__maybe_global_identifier, + STATE(92), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(212), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [2214] = 12, + ACTIONS(127), 1, + anon_sym_PIPE, + ACTIONS(129), 1, + anon_sym_CARET, + ACTIONS(131), 1, anon_sym_SLASH, + ACTIONS(133), 1, + anon_sym_AMP, ACTIONS(165), 1, anon_sym_LBRACK, ACTIONS(255), 1, anon_sym_COMMA, ACTIONS(257), 1, anon_sym_RPAREN, - STATE(33), 1, + STATE(26), 1, sym_array_bracket_expression, - STATE(127), 1, + STATE(128), 1, aux_sym_func_call_repeat1, - ACTIONS(127), 2, + ACTIONS(123), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(129), 2, + ACTIONS(125), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(161), 6, @@ -5449,7 +5490,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2224] = 7, + [2258] = 7, ACTIONS(11), 1, anon_sym_COLON_COLON, ACTIONS(17), 1, @@ -5458,7 +5499,7 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(259), 1, sym_number, - STATE(22), 2, + STATE(21), 2, sym_global_identifier, sym__maybe_global_identifier, STATE(40), 6, @@ -5476,33 +5517,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2258] = 7, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(206), 1, - sym_identifier, - ACTIONS(210), 1, - anon_sym_COLON_COLON, - ACTIONS(227), 1, - sym_number, - STATE(22), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(21), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(212), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, [2292] = 7, ACTIONS(17), 1, anon_sym_LPAREN, @@ -5512,7 +5526,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(261), 1, sym_number, - STATE(22), 2, + STATE(21), 2, sym_global_identifier, sym__maybe_global_identifier, STATE(93), 6, @@ -5531,7 +5545,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, [2326] = 2, - ACTIONS(202), 7, + ACTIONS(192), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -5539,7 +5553,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(204), 12, + ACTIONS(194), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -5561,7 +5575,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(263), 1, sym_number, - STATE(22), 2, + STATE(21), 2, sym_global_identifier, sym__maybe_global_identifier, STATE(20), 6, @@ -5580,13 +5594,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, [2384] = 4, - ACTIONS(101), 1, + ACTIONS(95), 1, anon_sym_SLASH, - ACTIONS(216), 1, + ACTIONS(220), 1, anon_sym_COLON_COLON, STATE(61), 1, aux_sym_global_identifier_repeat1, - ACTIONS(99), 16, + ACTIONS(93), 16, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5634,10 +5648,10 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(269), 1, sym_number, - STATE(22), 2, + STATE(21), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(85), 6, + STATE(96), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -5683,7 +5697,7 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(263), 1, sym_number, - STATE(22), 2, + STATE(21), 2, sym_global_identifier, sym__maybe_global_identifier, STATE(20), 6, @@ -5701,26 +5715,48 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2528] = 10, - ACTIONS(131), 1, + [2528] = 2, + ACTIONS(275), 7, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(277), 12, + sym_number, + anon_sym_COLON_COLON, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, - ACTIONS(133), 1, anon_sym_AMP, - ACTIONS(135), 1, anon_sym_CARET, - ACTIONS(137), 1, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [2552] = 10, + ACTIONS(127), 1, + anon_sym_PIPE, + ACTIONS(129), 1, + anon_sym_CARET, + ACTIONS(131), 1, anon_sym_SLASH, + ACTIONS(133), 1, + anon_sym_AMP, ACTIONS(165), 1, anon_sym_LBRACK, - STATE(33), 1, + STATE(26), 1, sym_array_bracket_expression, - ACTIONS(127), 2, + ACTIONS(123), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(129), 2, + ACTIONS(125), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(275), 2, + ACTIONS(279), 2, anon_sym_COMMA, anon_sym_RPAREN, ACTIONS(161), 6, @@ -5730,27 +5766,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2567] = 11, - ACTIONS(131), 1, + [2591] = 11, + ACTIONS(127), 1, anon_sym_PIPE, - ACTIONS(133), 1, - anon_sym_AMP, - ACTIONS(135), 1, + ACTIONS(129), 1, anon_sym_CARET, - ACTIONS(137), 1, + ACTIONS(131), 1, anon_sym_SLASH, + ACTIONS(133), 1, + anon_sym_AMP, ACTIONS(165), 1, anon_sym_LBRACK, - ACTIONS(277), 1, + ACTIONS(281), 1, anon_sym_LBRACE, - STATE(33), 1, + STATE(26), 1, sym_array_bracket_expression, STATE(45), 1, sym_block, - ACTIONS(127), 2, + ACTIONS(123), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(129), 2, + ACTIONS(125), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(161), 6, @@ -5760,10 +5796,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2608] = 2, - ACTIONS(97), 1, + [2632] = 2, + ACTIONS(91), 1, anon_sym_SLASH, - ACTIONS(92), 17, + ACTIONS(86), 17, anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, @@ -5781,21 +5817,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACK, anon_sym_in, - [2631] = 5, - ACTIONS(283), 1, + [2655] = 7, + ACTIONS(287), 1, + anon_sym_PIPE, + ACTIONS(289), 1, + anon_sym_CARET, + ACTIONS(291), 1, anon_sym_SLASH, - STATE(33), 1, + STATE(26), 1, sym_array_bracket_expression, - ACTIONS(279), 2, + ACTIONS(283), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(281), 2, + ACTIONS(285), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(113), 11, - anon_sym_PIPE, + ACTIONS(119), 9, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, @@ -5804,25 +5842,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LBRACK, anon_sym_in, - [2659] = 10, - ACTIONS(131), 1, + [2687] = 10, + ACTIONS(127), 1, anon_sym_PIPE, - ACTIONS(133), 1, - anon_sym_AMP, - ACTIONS(135), 1, + ACTIONS(129), 1, anon_sym_CARET, - ACTIONS(137), 1, + ACTIONS(131), 1, anon_sym_SLASH, + ACTIONS(133), 1, + anon_sym_AMP, ACTIONS(165), 1, anon_sym_LBRACK, - ACTIONS(285), 1, - anon_sym_LBRACE, - STATE(33), 1, + ACTIONS(293), 1, + anon_sym_RPAREN, + STATE(26), 1, sym_array_bracket_expression, - ACTIONS(127), 2, + ACTIONS(123), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(129), 2, + ACTIONS(125), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(161), 6, @@ -5832,25 +5870,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2697] = 10, - ACTIONS(131), 1, + [2725] = 10, + ACTIONS(127), 1, anon_sym_PIPE, - ACTIONS(133), 1, - anon_sym_AMP, - ACTIONS(135), 1, + ACTIONS(129), 1, anon_sym_CARET, - ACTIONS(137), 1, + ACTIONS(131), 1, anon_sym_SLASH, + ACTIONS(133), 1, + anon_sym_AMP, ACTIONS(165), 1, anon_sym_LBRACK, - ACTIONS(287), 1, + ACTIONS(295), 1, anon_sym_RBRACK, - STATE(33), 1, + STATE(26), 1, sym_array_bracket_expression, - ACTIONS(127), 2, + ACTIONS(123), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(129), 2, + ACTIONS(125), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(161), 6, @@ -5860,25 +5898,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2735] = 10, - ACTIONS(131), 1, + [2763] = 10, + ACTIONS(127), 1, anon_sym_PIPE, - ACTIONS(133), 1, - anon_sym_AMP, - ACTIONS(135), 1, + ACTIONS(129), 1, anon_sym_CARET, - ACTIONS(137), 1, + ACTIONS(131), 1, anon_sym_SLASH, + ACTIONS(133), 1, + anon_sym_AMP, ACTIONS(165), 1, anon_sym_LBRACK, - ACTIONS(289), 1, + ACTIONS(297), 1, anon_sym_SEMI, - STATE(33), 1, + STATE(26), 1, sym_array_bracket_expression, - ACTIONS(127), 2, + ACTIONS(123), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(129), 2, + ACTIONS(125), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(161), 6, @@ -5888,105 +5926,75 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2773] = 10, + [2801] = 10, ACTIONS(165), 1, anon_sym_LBRACK, ACTIONS(180), 1, anon_sym_in, - ACTIONS(283), 1, - anon_sym_SLASH, - ACTIONS(291), 1, + ACTIONS(287), 1, anon_sym_PIPE, - ACTIONS(293), 1, - anon_sym_AMP, - ACTIONS(295), 1, + ACTIONS(289), 1, anon_sym_CARET, - STATE(33), 1, - sym_array_bracket_expression, - ACTIONS(279), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(281), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(297), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [2811] = 8, - ACTIONS(283), 1, - anon_sym_SLASH, ACTIONS(291), 1, - anon_sym_PIPE, - ACTIONS(293), 1, + anon_sym_SLASH, + ACTIONS(299), 1, anon_sym_AMP, - ACTIONS(295), 1, - anon_sym_CARET, - STATE(33), 1, + STATE(26), 1, sym_array_bracket_expression, - ACTIONS(279), 2, + ACTIONS(283), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(281), 2, + ACTIONS(285), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(113), 8, + ACTIONS(301), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_LBRACK, - anon_sym_in, - [2845] = 10, - ACTIONS(131), 1, + [2839] = 8, + ACTIONS(287), 1, anon_sym_PIPE, - ACTIONS(133), 1, - anon_sym_AMP, - ACTIONS(135), 1, + ACTIONS(289), 1, anon_sym_CARET, - ACTIONS(137), 1, + ACTIONS(291), 1, anon_sym_SLASH, - ACTIONS(165), 1, - anon_sym_LBRACK, ACTIONS(299), 1, - anon_sym_RPAREN, - STATE(33), 1, + anon_sym_AMP, + STATE(26), 1, sym_array_bracket_expression, - ACTIONS(127), 2, + ACTIONS(283), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(129), 2, + ACTIONS(285), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(161), 6, + ACTIONS(119), 8, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2883] = 7, - ACTIONS(283), 1, - anon_sym_SLASH, + anon_sym_LBRACK, + anon_sym_in, + [2873] = 5, ACTIONS(291), 1, - anon_sym_PIPE, - ACTIONS(295), 1, - anon_sym_CARET, - STATE(33), 1, + anon_sym_SLASH, + STATE(26), 1, sym_array_bracket_expression, - ACTIONS(279), 2, + ACTIONS(283), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(281), 2, + ACTIONS(285), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(113), 9, + ACTIONS(119), 11, + anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, @@ -5995,20 +6003,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LBRACK, anon_sym_in, - [2915] = 6, - ACTIONS(283), 1, - anon_sym_SLASH, - ACTIONS(295), 1, + [2901] = 6, + ACTIONS(289), 1, anon_sym_CARET, - STATE(33), 1, + ACTIONS(291), 1, + anon_sym_SLASH, + STATE(26), 1, sym_array_bracket_expression, - ACTIONS(279), 2, + ACTIONS(283), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(281), 2, + ACTIONS(285), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(113), 10, + ACTIONS(119), 10, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_EQ, @@ -6019,15 +6027,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LBRACK, anon_sym_in, - [2945] = 4, - ACTIONS(283), 1, + [2931] = 4, + ACTIONS(291), 1, anon_sym_SLASH, - STATE(33), 1, + STATE(26), 1, sym_array_bracket_expression, - ACTIONS(281), 2, + ACTIONS(285), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(113), 13, + ACTIONS(119), 13, anon_sym_PLUS, anon_sym_DASH, anon_sym_PIPE, @@ -6041,25 +6049,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LBRACK, anon_sym_in, - [2971] = 10, - ACTIONS(131), 1, + [2957] = 10, + ACTIONS(127), 1, anon_sym_PIPE, - ACTIONS(133), 1, - anon_sym_AMP, - ACTIONS(135), 1, + ACTIONS(129), 1, anon_sym_CARET, - ACTIONS(137), 1, + ACTIONS(131), 1, anon_sym_SLASH, + ACTIONS(133), 1, + anon_sym_AMP, ACTIONS(165), 1, anon_sym_LBRACK, - ACTIONS(301), 1, + ACTIONS(303), 1, anon_sym_RBRACK, - STATE(33), 1, + STATE(26), 1, sym_array_bracket_expression, - ACTIONS(127), 2, + ACTIONS(123), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(129), 2, + ACTIONS(125), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(161), 6, @@ -6069,25 +6077,53 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [3009] = 10, - ACTIONS(131), 1, + [2995] = 10, + ACTIONS(127), 1, anon_sym_PIPE, + ACTIONS(129), 1, + anon_sym_CARET, + ACTIONS(131), 1, + anon_sym_SLASH, ACTIONS(133), 1, anon_sym_AMP, - ACTIONS(135), 1, + ACTIONS(165), 1, + anon_sym_LBRACK, + ACTIONS(305), 1, + anon_sym_COLON, + STATE(26), 1, + sym_array_bracket_expression, + ACTIONS(123), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(125), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(161), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [3033] = 10, + ACTIONS(127), 1, + anon_sym_PIPE, + ACTIONS(129), 1, anon_sym_CARET, - ACTIONS(137), 1, + ACTIONS(131), 1, anon_sym_SLASH, + ACTIONS(133), 1, + anon_sym_AMP, ACTIONS(165), 1, anon_sym_LBRACK, - ACTIONS(303), 1, - anon_sym_COLON, - STATE(33), 1, + ACTIONS(307), 1, + anon_sym_LBRACE, + STATE(26), 1, sym_array_bracket_expression, - ACTIONS(127), 2, + ACTIONS(123), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(129), 2, + ACTIONS(125), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(161), 6, @@ -6097,16 +6133,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [3047] = 4, - ACTIONS(309), 1, + [3071] = 4, + ACTIONS(313), 1, anon_sym_reg, - STATE(96), 1, + STATE(97), 1, aux_sym_assign_left_side_repeat1, - ACTIONS(305), 3, + ACTIONS(309), 3, sym_identifier, anon_sym_state, anon_sym_gen, - ACTIONS(307), 10, + ACTIONS(311), 10, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -6117,370 +6153,370 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [3071] = 5, - ACTIONS(312), 1, + [3095] = 5, + ACTIONS(316), 1, sym_identifier, - ACTIONS(314), 1, + ACTIONS(318), 1, anon_sym_COLON_COLON, - STATE(141), 1, + STATE(147), 1, sym_declaration, - ACTIONS(316), 2, + ACTIONS(320), 2, anon_sym_state, anon_sym_gen, - STATE(125), 3, + STATE(129), 3, sym_global_identifier, sym_array_type, sym__type, - [3090] = 3, - ACTIONS(320), 1, + [3114] = 3, + ACTIONS(324), 1, anon_sym_SQUOTE, - STATE(105), 1, + STATE(108), 1, sym_latency_specifier, - ACTIONS(318), 5, + ACTIONS(322), 5, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3104] = 3, - ACTIONS(320), 1, + [3128] = 3, + ACTIONS(324), 1, anon_sym_SQUOTE, - STATE(101), 1, + STATE(105), 1, sym_latency_specifier, - ACTIONS(322), 5, + ACTIONS(326), 5, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3118] = 3, - ACTIONS(326), 1, + [3142] = 3, + ACTIONS(330), 1, anon_sym_COMMA, - STATE(108), 1, + STATE(107), 1, aux_sym_assign_left_side_repeat2, - ACTIONS(324), 4, + ACTIONS(328), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3131] = 1, - ACTIONS(328), 6, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_SEMI, - [3140] = 3, - ACTIONS(326), 1, + [3155] = 3, + ACTIONS(330), 1, anon_sym_COMMA, - STATE(108), 1, + STATE(107), 1, aux_sym_assign_left_side_repeat2, - ACTIONS(330), 4, + ACTIONS(332), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3153] = 3, - ACTIONS(326), 1, + [3168] = 3, + ACTIONS(330), 1, anon_sym_COMMA, - STATE(102), 1, + STATE(101), 1, aux_sym_assign_left_side_repeat2, - ACTIONS(332), 4, + ACTIONS(334), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3166] = 3, - ACTIONS(326), 1, + [3181] = 3, + ACTIONS(330), 1, anon_sym_COMMA, - STATE(108), 1, + STATE(102), 1, aux_sym_assign_left_side_repeat2, - ACTIONS(330), 4, + ACTIONS(336), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3179] = 1, - ACTIONS(334), 6, + [3194] = 1, + ACTIONS(338), 6, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [3188] = 3, - ACTIONS(326), 1, + [3203] = 3, + ACTIONS(330), 1, anon_sym_COMMA, STATE(107), 1, aux_sym_assign_left_side_repeat2, - ACTIONS(336), 4, + ACTIONS(332), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3201] = 3, - ACTIONS(326), 1, + [3216] = 3, + ACTIONS(342), 1, anon_sym_COMMA, - STATE(108), 1, + STATE(107), 1, aux_sym_assign_left_side_repeat2, - ACTIONS(324), 4, + ACTIONS(340), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3214] = 3, - ACTIONS(340), 1, + [3229] = 1, + ACTIONS(345), 6, + anon_sym_DASH_GT, anon_sym_COMMA, - STATE(108), 1, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_SEMI, + [3238] = 3, + ACTIONS(330), 1, + anon_sym_COMMA, + STATE(107), 1, aux_sym_assign_left_side_repeat2, - ACTIONS(338), 4, + ACTIONS(328), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3227] = 1, - ACTIONS(343), 5, + [3251] = 1, + ACTIONS(347), 5, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3235] = 3, - ACTIONS(314), 1, + [3259] = 3, + ACTIONS(318), 1, + anon_sym_COLON_COLON, + ACTIONS(349), 1, + sym_identifier, + STATE(127), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [3271] = 3, + ACTIONS(318), 1, anon_sym_COLON_COLON, - ACTIONS(345), 1, + ACTIONS(349), 1, sym_identifier, - STATE(124), 3, + STATE(126), 3, sym_global_identifier, sym_array_type, sym__type, - [3247] = 1, - ACTIONS(347), 5, + [3283] = 1, + ACTIONS(351), 5, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3255] = 3, - ACTIONS(314), 1, - anon_sym_COLON_COLON, - ACTIONS(345), 1, - sym_identifier, - STATE(123), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [3267] = 3, - ACTIONS(349), 1, + [3291] = 3, + ACTIONS(353), 1, anon_sym_COLON_COLON, - STATE(120), 1, + STATE(115), 1, aux_sym_global_identifier_repeat1, - ACTIONS(80), 2, + ACTIONS(95), 2, sym_identifier, anon_sym_LBRACK, - [3278] = 3, - ACTIONS(349), 1, + [3302] = 3, + ACTIONS(353), 1, anon_sym_COLON_COLON, STATE(121), 1, aux_sym_global_identifier_repeat1, ACTIONS(80), 2, sym_identifier, anon_sym_LBRACK, - [3289] = 3, - ACTIONS(349), 1, + [3313] = 3, + ACTIONS(353), 1, anon_sym_COLON_COLON, - STATE(113), 1, + STATE(122), 1, aux_sym_global_identifier_repeat1, - ACTIONS(101), 2, + ACTIONS(80), 2, sym_identifier, anon_sym_LBRACK, - [3300] = 3, - ACTIONS(351), 1, + [3324] = 3, + ACTIONS(355), 1, ts_builtin_sym_end, - ACTIONS(353), 1, + ACTIONS(357), 1, anon_sym_module, - STATE(116), 2, + STATE(117), 2, sym_module, aux_sym_source_file_repeat1, - [3311] = 4, - ACTIONS(356), 1, + [3335] = 4, + ACTIONS(360), 1, anon_sym_COLON, - ACTIONS(358), 1, + ACTIONS(362), 1, anon_sym_LBRACE, - STATE(131), 1, - sym_block, - STATE(132), 1, + STATE(133), 1, sym_interface_ports, - [3324] = 3, - ACTIONS(5), 1, - anon_sym_module, - ACTIONS(360), 1, - ts_builtin_sym_end, - STATE(116), 2, - sym_module, - aux_sym_source_file_repeat1, - [3335] = 3, + STATE(139), 1, + sym_block, + [3348] = 3, ACTIONS(19), 1, anon_sym_LBRACE, - ACTIONS(362), 1, + ACTIONS(364), 1, anon_sym_if, STATE(79), 2, sym_block, sym_if_statement, - [3346] = 3, - ACTIONS(364), 1, + [3359] = 3, + ACTIONS(5), 1, + anon_sym_module, + ACTIONS(366), 1, + ts_builtin_sym_end, + STATE(117), 2, + sym_module, + aux_sym_source_file_repeat1, + [3370] = 3, + ACTIONS(368), 1, anon_sym_COLON_COLON, - STATE(120), 1, + STATE(121), 1, aux_sym_global_identifier_repeat1, - ACTIONS(97), 2, + ACTIONS(91), 2, sym_identifier, anon_sym_LBRACK, - [3357] = 3, - ACTIONS(349), 1, + [3381] = 3, + ACTIONS(353), 1, anon_sym_COLON_COLON, - STATE(120), 1, + STATE(121), 1, aux_sym_global_identifier_repeat1, - ACTIONS(90), 2, - sym_identifier, - anon_sym_LBRACK, - [3368] = 3, - ACTIONS(367), 1, + ACTIONS(84), 2, sym_identifier, - ACTIONS(369), 1, - anon_sym_LBRACK, - STATE(134), 1, - sym_array_bracket_expression, - [3378] = 3, - ACTIONS(369), 1, anon_sym_LBRACK, + [3392] = 3, ACTIONS(371), 1, sym_identifier, - STATE(134), 1, - sym_array_bracket_expression, - [3388] = 3, - ACTIONS(369), 1, - anon_sym_LBRACK, ACTIONS(373), 1, - sym_identifier, - STATE(134), 1, - sym_array_bracket_expression, - [3398] = 3, - ACTIONS(369), 1, anon_sym_LBRACK, - ACTIONS(375), 1, - sym_identifier, - STATE(134), 1, + STATE(135), 1, sym_array_bracket_expression, - [3408] = 3, + [3402] = 3, + ACTIONS(322), 1, + anon_sym_in, + ACTIONS(375), 1, + anon_sym_SQUOTE, + STATE(108), 1, + sym_latency_specifier, + [3412] = 3, ACTIONS(377), 1, anon_sym_COMMA, ACTIONS(380), 1, anon_sym_RPAREN, - STATE(126), 1, + STATE(125), 1, aux_sym_func_call_repeat1, - [3418] = 3, + [3422] = 3, + ACTIONS(373), 1, + anon_sym_LBRACK, ACTIONS(382), 1, - anon_sym_COMMA, + sym_identifier, + STATE(135), 1, + sym_array_bracket_expression, + [3432] = 3, + ACTIONS(373), 1, + anon_sym_LBRACK, ACTIONS(384), 1, + sym_identifier, + STATE(135), 1, + sym_array_bracket_expression, + [3442] = 3, + ACTIONS(386), 1, + anon_sym_COMMA, + ACTIONS(388), 1, anon_sym_RPAREN, - STATE(126), 1, + STATE(125), 1, aux_sym_func_call_repeat1, - [3428] = 3, - ACTIONS(322), 1, - anon_sym_in, - ACTIONS(386), 1, - anon_sym_SQUOTE, - STATE(101), 1, - sym_latency_specifier, - [3438] = 3, - ACTIONS(318), 1, + [3452] = 3, + ACTIONS(373), 1, + anon_sym_LBRACK, + ACTIONS(390), 1, + sym_identifier, + STATE(135), 1, + sym_array_bracket_expression, + [3462] = 1, + ACTIONS(91), 3, + sym_identifier, + anon_sym_COLON_COLON, + anon_sym_LBRACK, + [3468] = 3, + ACTIONS(326), 1, anon_sym_in, - ACTIONS(386), 1, + ACTIONS(375), 1, anon_sym_SQUOTE, STATE(105), 1, sym_latency_specifier, - [3448] = 1, - ACTIONS(97), 3, - sym_identifier, - anon_sym_COLON_COLON, - anon_sym_LBRACK, - [3454] = 1, - ACTIONS(388), 2, + [3478] = 1, + ACTIONS(392), 2, ts_builtin_sym_end, anon_sym_module, - [3459] = 2, - ACTIONS(358), 1, + [3483] = 2, + ACTIONS(362), 1, anon_sym_LBRACE, - STATE(135), 1, + STATE(132), 1, sym_block, - [3466] = 2, - ACTIONS(390), 1, + [3490] = 2, + ACTIONS(394), 1, anon_sym_EQ, - ACTIONS(392), 1, + ACTIONS(396), 1, anon_sym_SEMI, - [3473] = 1, - ACTIONS(394), 2, + [3497] = 1, + ACTIONS(398), 2, sym_identifier, anon_sym_LBRACK, - [3478] = 1, - ACTIONS(396), 2, + [3502] = 2, + ACTIONS(400), 1, + anon_sym_DASH_GT, + ACTIONS(402), 1, + anon_sym_LBRACE, + [3509] = 1, + ACTIONS(204), 2, ts_builtin_sym_end, anon_sym_module, - [3483] = 1, + [3514] = 1, ACTIONS(194), 2, ts_builtin_sym_end, anon_sym_module, - [3488] = 2, - ACTIONS(398), 1, - anon_sym_DASH_GT, - ACTIONS(400), 1, - anon_sym_LBRACE, - [3495] = 2, + [3519] = 1, + ACTIONS(404), 2, + ts_builtin_sym_end, + anon_sym_module, + [3524] = 2, ACTIONS(19), 1, anon_sym_LBRACE, STATE(77), 1, sym_block, - [3502] = 1, - ACTIONS(125), 2, + [3531] = 1, + ACTIONS(149), 2, sym_identifier, anon_sym_LBRACK, - [3507] = 1, - ACTIONS(204), 2, - ts_builtin_sym_end, - anon_sym_module, - [3512] = 1, - ACTIONS(402), 1, - anon_sym_in, - [3516] = 1, - ACTIONS(404), 1, - sym_identifier, - [3520] = 1, + [3536] = 1, ACTIONS(406), 1, - sym_identifier, - [3524] = 1, + anon_sym_LBRACE, + [3540] = 1, ACTIONS(408), 1, sym_identifier, - [3528] = 1, + [3544] = 1, ACTIONS(410), 1, sym_identifier, - [3532] = 1, + [3548] = 1, ACTIONS(412), 1, sym_identifier, - [3536] = 1, + [3552] = 1, ACTIONS(414), 1, sym_identifier, - [3540] = 1, + [3556] = 1, ACTIONS(416), 1, - ts_builtin_sym_end, - [3544] = 1, + anon_sym_in, + [3560] = 1, ACTIONS(418), 1, sym_identifier, - [3548] = 1, + [3564] = 1, ACTIONS(420), 1, - anon_sym_LBRACE, - [3552] = 1, - ACTIONS(392), 1, + ts_builtin_sym_end, + [3568] = 1, + ACTIONS(422), 1, + sym_identifier, + [3572] = 1, + ACTIONS(424), 1, + sym_identifier, + [3576] = 1, + ACTIONS(396), 1, anon_sym_SEMI, }; @@ -6489,10 +6525,10 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(10)] = 59, [SMALL_STATE(11)] = 118, [SMALL_STATE(12)] = 154, - [SMALL_STATE(13)] = 210, - [SMALL_STATE(14)] = 246, - [SMALL_STATE(15)] = 282, - [SMALL_STATE(16)] = 318, + [SMALL_STATE(13)] = 190, + [SMALL_STATE(14)] = 226, + [SMALL_STATE(15)] = 262, + [SMALL_STATE(16)] = 298, [SMALL_STATE(17)] = 354, [SMALL_STATE(18)] = 407, [SMALL_STATE(19)] = 438, @@ -6500,21 +6536,21 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(21)] = 523, [SMALL_STATE(22)] = 555, [SMALL_STATE(23)] = 587, - [SMALL_STATE(24)] = 616, - [SMALL_STATE(25)] = 663, - [SMALL_STATE(26)] = 704, - [SMALL_STATE(27)] = 739, - [SMALL_STATE(28)] = 778, - [SMALL_STATE(29)] = 815, - [SMALL_STATE(30)] = 844, - [SMALL_STATE(31)] = 877, - [SMALL_STATE(32)] = 906, - [SMALL_STATE(33)] = 935, + [SMALL_STATE(24)] = 626, + [SMALL_STATE(25)] = 667, + [SMALL_STATE(26)] = 702, + [SMALL_STATE(27)] = 731, + [SMALL_STATE(28)] = 768, + [SMALL_STATE(29)] = 797, + [SMALL_STATE(30)] = 830, + [SMALL_STATE(31)] = 859, + [SMALL_STATE(32)] = 888, + [SMALL_STATE(33)] = 917, [SMALL_STATE(34)] = 964, - [SMALL_STATE(35)] = 993, + [SMALL_STATE(35)] = 1011, [SMALL_STATE(36)] = 1040, [SMALL_STATE(37)] = 1087, - [SMALL_STATE(38)] = 1134, + [SMALL_STATE(38)] = 1118, [SMALL_STATE(39)] = 1165, [SMALL_STATE(40)] = 1207, [SMALL_STATE(41)] = 1249, @@ -6528,26 +6564,26 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(49)] = 1500, [SMALL_STATE(50)] = 1534, [SMALL_STATE(51)] = 1562, - [SMALL_STATE(52)] = 1596, + [SMALL_STATE(52)] = 1590, [SMALL_STATE(53)] = 1624, [SMALL_STATE(54)] = 1658, - [SMALL_STATE(55)] = 1692, - [SMALL_STATE(56)] = 1726, - [SMALL_STATE(57)] = 1760, - [SMALL_STATE(58)] = 1794, - [SMALL_STATE(59)] = 1828, - [SMALL_STATE(60)] = 1862, + [SMALL_STATE(55)] = 1686, + [SMALL_STATE(56)] = 1720, + [SMALL_STATE(57)] = 1754, + [SMALL_STATE(58)] = 1788, + [SMALL_STATE(59)] = 1822, + [SMALL_STATE(60)] = 1856, [SMALL_STATE(61)] = 1890, [SMALL_STATE(62)] = 1918, [SMALL_STATE(63)] = 1952, [SMALL_STATE(64)] = 1986, - [SMALL_STATE(65)] = 2020, + [SMALL_STATE(65)] = 2010, [SMALL_STATE(66)] = 2044, [SMALL_STATE(67)] = 2078, [SMALL_STATE(68)] = 2112, [SMALL_STATE(69)] = 2146, [SMALL_STATE(70)] = 2180, - [SMALL_STATE(71)] = 2224, + [SMALL_STATE(71)] = 2214, [SMALL_STATE(72)] = 2258, [SMALL_STATE(73)] = 2292, [SMALL_STATE(74)] = 2326, @@ -6558,281 +6594,284 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(79)] = 2470, [SMALL_STATE(80)] = 2494, [SMALL_STATE(81)] = 2528, - [SMALL_STATE(82)] = 2567, - [SMALL_STATE(83)] = 2608, - [SMALL_STATE(84)] = 2631, - [SMALL_STATE(85)] = 2659, - [SMALL_STATE(86)] = 2697, - [SMALL_STATE(87)] = 2735, - [SMALL_STATE(88)] = 2773, - [SMALL_STATE(89)] = 2811, - [SMALL_STATE(90)] = 2845, - [SMALL_STATE(91)] = 2883, - [SMALL_STATE(92)] = 2915, - [SMALL_STATE(93)] = 2945, - [SMALL_STATE(94)] = 2971, - [SMALL_STATE(95)] = 3009, - [SMALL_STATE(96)] = 3047, + [SMALL_STATE(82)] = 2552, + [SMALL_STATE(83)] = 2591, + [SMALL_STATE(84)] = 2632, + [SMALL_STATE(85)] = 2655, + [SMALL_STATE(86)] = 2687, + [SMALL_STATE(87)] = 2725, + [SMALL_STATE(88)] = 2763, + [SMALL_STATE(89)] = 2801, + [SMALL_STATE(90)] = 2839, + [SMALL_STATE(91)] = 2873, + [SMALL_STATE(92)] = 2901, + [SMALL_STATE(93)] = 2931, + [SMALL_STATE(94)] = 2957, + [SMALL_STATE(95)] = 2995, + [SMALL_STATE(96)] = 3033, [SMALL_STATE(97)] = 3071, - [SMALL_STATE(98)] = 3090, - [SMALL_STATE(99)] = 3104, - [SMALL_STATE(100)] = 3118, - [SMALL_STATE(101)] = 3131, - [SMALL_STATE(102)] = 3140, - [SMALL_STATE(103)] = 3153, - [SMALL_STATE(104)] = 3166, - [SMALL_STATE(105)] = 3179, - [SMALL_STATE(106)] = 3188, - [SMALL_STATE(107)] = 3201, - [SMALL_STATE(108)] = 3214, - [SMALL_STATE(109)] = 3227, - [SMALL_STATE(110)] = 3235, - [SMALL_STATE(111)] = 3247, - [SMALL_STATE(112)] = 3255, - [SMALL_STATE(113)] = 3267, - [SMALL_STATE(114)] = 3278, - [SMALL_STATE(115)] = 3289, - [SMALL_STATE(116)] = 3300, - [SMALL_STATE(117)] = 3311, - [SMALL_STATE(118)] = 3324, - [SMALL_STATE(119)] = 3335, - [SMALL_STATE(120)] = 3346, - [SMALL_STATE(121)] = 3357, - [SMALL_STATE(122)] = 3368, - [SMALL_STATE(123)] = 3378, - [SMALL_STATE(124)] = 3388, - [SMALL_STATE(125)] = 3398, - [SMALL_STATE(126)] = 3408, - [SMALL_STATE(127)] = 3418, - [SMALL_STATE(128)] = 3428, - [SMALL_STATE(129)] = 3438, - [SMALL_STATE(130)] = 3448, - [SMALL_STATE(131)] = 3454, - [SMALL_STATE(132)] = 3459, - [SMALL_STATE(133)] = 3466, - [SMALL_STATE(134)] = 3473, - [SMALL_STATE(135)] = 3478, - [SMALL_STATE(136)] = 3483, - [SMALL_STATE(137)] = 3488, - [SMALL_STATE(138)] = 3495, - [SMALL_STATE(139)] = 3502, - [SMALL_STATE(140)] = 3507, - [SMALL_STATE(141)] = 3512, - [SMALL_STATE(142)] = 3516, - [SMALL_STATE(143)] = 3520, - [SMALL_STATE(144)] = 3524, - [SMALL_STATE(145)] = 3528, - [SMALL_STATE(146)] = 3532, - [SMALL_STATE(147)] = 3536, - [SMALL_STATE(148)] = 3540, - [SMALL_STATE(149)] = 3544, - [SMALL_STATE(150)] = 3548, - [SMALL_STATE(151)] = 3552, + [SMALL_STATE(98)] = 3095, + [SMALL_STATE(99)] = 3114, + [SMALL_STATE(100)] = 3128, + [SMALL_STATE(101)] = 3142, + [SMALL_STATE(102)] = 3155, + [SMALL_STATE(103)] = 3168, + [SMALL_STATE(104)] = 3181, + [SMALL_STATE(105)] = 3194, + [SMALL_STATE(106)] = 3203, + [SMALL_STATE(107)] = 3216, + [SMALL_STATE(108)] = 3229, + [SMALL_STATE(109)] = 3238, + [SMALL_STATE(110)] = 3251, + [SMALL_STATE(111)] = 3259, + [SMALL_STATE(112)] = 3271, + [SMALL_STATE(113)] = 3283, + [SMALL_STATE(114)] = 3291, + [SMALL_STATE(115)] = 3302, + [SMALL_STATE(116)] = 3313, + [SMALL_STATE(117)] = 3324, + [SMALL_STATE(118)] = 3335, + [SMALL_STATE(119)] = 3348, + [SMALL_STATE(120)] = 3359, + [SMALL_STATE(121)] = 3370, + [SMALL_STATE(122)] = 3381, + [SMALL_STATE(123)] = 3392, + [SMALL_STATE(124)] = 3402, + [SMALL_STATE(125)] = 3412, + [SMALL_STATE(126)] = 3422, + [SMALL_STATE(127)] = 3432, + [SMALL_STATE(128)] = 3442, + [SMALL_STATE(129)] = 3452, + [SMALL_STATE(130)] = 3462, + [SMALL_STATE(131)] = 3468, + [SMALL_STATE(132)] = 3478, + [SMALL_STATE(133)] = 3483, + [SMALL_STATE(134)] = 3490, + [SMALL_STATE(135)] = 3497, + [SMALL_STATE(136)] = 3502, + [SMALL_STATE(137)] = 3509, + [SMALL_STATE(138)] = 3514, + [SMALL_STATE(139)] = 3519, + [SMALL_STATE(140)] = 3524, + [SMALL_STATE(141)] = 3531, + [SMALL_STATE(142)] = 3536, + [SMALL_STATE(143)] = 3540, + [SMALL_STATE(144)] = 3544, + [SMALL_STATE(145)] = 3548, + [SMALL_STATE(146)] = 3552, + [SMALL_STATE(147)] = 3556, + [SMALL_STATE(148)] = 3560, + [SMALL_STATE(149)] = 3564, + [SMALL_STATE(150)] = 3568, + [SMALL_STATE(151)] = 3572, + [SMALL_STATE(152)] = 3576, }; 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}}, REDUCE(sym_source_file, 0), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(112), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(111), [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(35), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(34), [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(97), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(98), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), - [39] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(15), - [42] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(37), - [45] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(146), - [48] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(112), - [51] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(80), - [54] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(62), - [57] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(5), - [60] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), - [62] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(17), - [65] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(35), - [68] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(66), - [71] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(97), - [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), + [37] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(15), + [40] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(36), + [43] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(151), + [46] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(111), + [49] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(80), + [52] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(63), + [55] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(5), + [58] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), + [60] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(17), + [63] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(34), + [66] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(66), + [69] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(98), + [72] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), + [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2), - [78] = {.entry = {.count = 1, .reusable = false}}, SHIFT(143), + [78] = {.entry = {.count = 1, .reusable = false}}, SHIFT(145), [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2), - [82] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [84] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19), - [86] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24), - [88] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 3), - [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 3), - [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), - [94] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(143), - [97] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), - [99] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1), - [101] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1), - [103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [105] = {.entry = {.count = 1, .reusable = false}}, SHIFT(96), + [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 3), + [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 3), + [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), + [88] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(145), + [91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), + [93] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1), + [95] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1), + [97] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [99] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19), + [101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), + [103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [105] = {.entry = {.count = 1, .reusable = false}}, SHIFT(97), [107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [109] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 5), - [111] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 5), - [113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 17), - [115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 17), - [117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [121] = {.entry = {.count = 1, .reusable = false}}, SHIFT(42), - [123] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 11), - [125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 11), - [127] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), - [129] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), - [131] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), - [133] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57), - [135] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), - [137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [139] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 11), - [141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 11), - [143] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 5, .production_id = 25), - [145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 5, .production_id = 25), - [147] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 4, .production_id = 22), - [149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 4, .production_id = 22), - [151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 8), - [153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 8), - [155] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 3, .production_id = 13), - [157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 3, .production_id = 13), - [159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_left_side, 2, .production_id = 6), - [161] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), - [163] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12), + [109] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 6), + [111] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 6), + [113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [117] = {.entry = {.count = 1, .reusable = false}}, SHIFT(43), + [119] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 20), + [121] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 20), + [123] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), + [125] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), + [127] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57), + [129] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), + [131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [133] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), + [135] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 9), + [137] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 9), + [139] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 5, .production_id = 28), + [141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 5, .production_id = 28), + [143] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 14), + [145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 14), + [147] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 14), + [149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 14), + [151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 4, .production_id = 25), + [153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 4, .production_id = 25), + [155] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 3, .production_id = 16), + [157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 3, .production_id = 16), + [159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_left_side, 1, .production_id = 2), + [161] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60), + [163] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16), [165] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49), - [167] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_left_side, 1, .production_id = 2), - [169] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), - [171] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type, 1), - [173] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__maybe_global_identifier, 1), - [175] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), REDUCE(sym__type, 1), - [178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_assign_left_side_repeat2, 2, .production_id = 15), - [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 11), - [182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_assign_left_side_repeat2, 3, .production_id = 23), + [167] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), + [169] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type, 1), + [171] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__maybe_global_identifier, 1), + [173] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), REDUCE(sym__type, 1), + [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_left_side, 2, .production_id = 7), + [178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_assign_left_side_repeat2, 2, .production_id = 18), + [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 14), + [182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_assign_left_side_repeat2, 3, .production_id = 26), [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3), - [194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [196] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 19), - [198] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 19), + [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), + [194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [196] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 22), + [198] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 22), [200] = {.entry = {.count = 1, .reusable = false}}, SHIFT(119), - [202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), - [204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3, .production_id = 11), + [204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 11), [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), + [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [216] = {.entry = {.count = 1, .reusable = false}}, SHIFT(149), - [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [220] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(149), - [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [214] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), + [216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), + [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [220] = {.entry = {.count = 1, .reusable = false}}, SHIFT(150), + [222] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(150), + [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [243] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), - [245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), - [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), - [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), [255] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), [257] = {.entry = {.count = 1, .reusable = false}}, SHIFT(32), [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), [263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [265] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5, .production_id = 28), - [267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5, .production_id = 28), - [269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [271] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 27), - [273] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 27), - [275] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 24), - [277] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3), - [279] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), - [281] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72), - [283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [285] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 3, .production_id = 29), - [287] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), - [289] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 20), - [291] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), - [293] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69), - [295] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), - [297] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), - [299] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29), - [301] = {.entry = {.count = 1, .reusable = false}}, SHIFT(139), - [303] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), - [305] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_assign_left_side_repeat1, 2), - [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2), - [309] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_assign_left_side_repeat1, 2), SHIFT_REPEAT(96), - [312] = {.entry = {.count = 1, .reusable = false}}, SHIFT(115), - [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), - [316] = {.entry = {.count = 1, .reusable = false}}, SHIFT(110), - [318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 7), - [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 10), - [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 9), - [326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 21), - [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 3, .production_id = 12), - [332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 6), - [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 14), - [336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 2), - [338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat2, 2, .production_id = 16), - [340] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat2, 2, .production_id = 16), SHIFT_REPEAT(12), - [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat2, 2, .production_id = 15), - [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat2, 3, .production_id = 23), - [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), - [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), - [353] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(142), - [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [364] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(145), - [367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [265] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5, .production_id = 31), + [267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5, .production_id = 31), + [269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [271] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 30), + [273] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 30), + [275] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 4), + [277] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 4), + [279] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 27), + [281] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3), + [283] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), + [285] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), + [287] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), + [289] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), + [291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [293] = {.entry = {.count = 1, .reusable = false}}, SHIFT(30), + [295] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31), + [297] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 23), + [299] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69), + [301] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), + [303] = {.entry = {.count = 1, .reusable = false}}, SHIFT(141), + [305] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), + [307] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 3, .production_id = 32), + [309] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_assign_left_side_repeat1, 2), + [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2), + [313] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_assign_left_side_repeat1, 2), SHIFT_REPEAT(97), + [316] = {.entry = {.count = 1, .reusable = false}}, SHIFT(114), + [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), + [320] = {.entry = {.count = 1, .reusable = false}}, SHIFT(112), + [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 8), + [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 13), + [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 10), + [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 3, .production_id = 15), + [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 2), + [336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 7), + [338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 24), + [340] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat2, 2, .production_id = 19), + [342] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat2, 2, .production_id = 19), SHIFT_REPEAT(16), + [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 17), + [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat2, 2, .production_id = 18), + [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat2, 3, .production_id = 26), + [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), + [355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), + [357] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(143), + [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [368] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(146), [371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), - [375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), - [377] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 26), SHIFT_REPEAT(53), - [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 26), - [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 1), - [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 8), - [396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 4), - [398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 3), - [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), - [406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), - [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), - [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [416] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 18), + [373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [377] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 29), SHIFT_REPEAT(53), + [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 29), + [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), + [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 5), + [394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 9), + [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 3), + [404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 1), + [406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 21), + [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), + [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), + [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [420] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), }; #ifdef __cplusplus From 261d2ed21a63435de51420c5efddd0355aebb843 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Mon, 1 Apr 2024 15:17:12 +0200 Subject: [PATCH 13/49] Didn't realize word had to be outside of rules. Nice optimization now --- grammar.js | 4 +- src/grammar.json | 5 +- src/parser.c | 5435 ++++++++++++++++------------------------------ 3 files changed, 1884 insertions(+), 3560 deletions(-) diff --git a/grammar.js b/grammar.js index e6b0e99..2095823 100644 --- a/grammar.js +++ b/grammar.js @@ -41,8 +41,6 @@ module.exports = grammar({ identifier: $ => /[\p{L}_][\p{L}_\d]*/, number: $ => /\d[\d_]*/, - word: $=> $.identifier, - global_identifier: $ => prec.left(PREC.namespace_path, seq( optional('::'), sepSeq1($.identifier, '::') @@ -196,6 +194,8 @@ module.exports = grammar({ [$._maybe_global_identifier, $._type] // Just because LR(1) is too weak to resolve 'ident[] a' vs 'type_name[]'. Tree sitter resolves this itself with more expensive GLR. NOT a precedence relation. ], + word: $=> $.identifier, + extras: $ => [ /\s+/, /\/\/[^\n]*\n/, // Single line comment diff --git a/src/grammar.json b/src/grammar.json index 394bfe3..40b576d 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -1,5 +1,6 @@ { "name": "sus", + "word": "identifier", "rules": { "source_file": { "type": "REPEAT", @@ -99,10 +100,6 @@ "type": "PATTERN", "value": "\\d[\\d_]*" }, - "word": { - "type": "SYMBOL", - "name": "identifier" - }, "global_identifier": { "type": "PREC_LEFT", "value": 9, diff --git a/src/parser.c b/src/parser.c index ac8a93b..83c87d4 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,8 +6,8 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 153 -#define LARGE_STATE_COUNT 9 +#define STATE_COUNT 118 +#define LARGE_STATE_COUNT 5 #define SYMBOL_COUNT 69 #define ALIAS_COUNT 0 #define TOKEN_COUNT 40 @@ -17,10 +17,10 @@ #define PRODUCTION_ID_COUNT 33 enum { - anon_sym_COLON = 1, - anon_sym_DASH_GT = 2, - anon_sym_module = 3, - sym_identifier = 4, + sym_identifier = 1, + anon_sym_COLON = 2, + anon_sym_DASH_GT = 3, + anon_sym_module = 4, sym_number = 5, anon_sym_COLON_COLON = 6, anon_sym_SQUOTE = 7, @@ -89,10 +89,10 @@ enum { static const char * const ts_symbol_names[] = { [ts_builtin_sym_end] = "end", + [sym_identifier] = "identifier", [anon_sym_COLON] = ":", [anon_sym_DASH_GT] = "->", [anon_sym_module] = "module", - [sym_identifier] = "identifier", [sym_number] = "number", [anon_sym_COLON_COLON] = "::", [anon_sym_SQUOTE] = "'", @@ -161,10 +161,10 @@ static const char * const ts_symbol_names[] = { static const TSSymbol ts_symbol_map[] = { [ts_builtin_sym_end] = ts_builtin_sym_end, + [sym_identifier] = sym_identifier, [anon_sym_COLON] = anon_sym_COLON, [anon_sym_DASH_GT] = anon_sym_DASH_GT, [anon_sym_module] = anon_sym_module, - [sym_identifier] = sym_identifier, [sym_number] = sym_number, [anon_sym_COLON_COLON] = anon_sym_COLON_COLON, [anon_sym_SQUOTE] = anon_sym_SQUOTE, @@ -236,6 +236,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = true, }, + [sym_identifier] = { + .visible = true, + .named = true, + }, [anon_sym_COLON] = { .visible = true, .named = false, @@ -248,10 +252,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [sym_identifier] = { - .visible = true, - .named = true, - }, [sym_number] = { .visible = true, .named = true, @@ -718,11 +718,11 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [1] = 1, [2] = 2, [3] = 3, - [4] = 2, - [5] = 3, + [4] = 4, + [5] = 5, [6] = 6, - [7] = 3, - [8] = 2, + [7] = 7, + [8] = 8, [9] = 9, [10] = 10, [11] = 11, @@ -761,63 +761,63 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [44] = 44, [45] = 45, [46] = 46, - [47] = 47, + [47] = 46, [48] = 48, [49] = 49, - [50] = 12, - [51] = 13, - [52] = 49, + [50] = 50, + [51] = 51, + [52] = 52, [53] = 53, - [54] = 14, + [54] = 54, [55] = 55, - [56] = 47, + [56] = 56, [57] = 57, [58] = 58, [59] = 59, [60] = 60, - [61] = 11, + [61] = 61, [62] = 62, [63] = 63, - [64] = 46, + [64] = 64, [65] = 65, [66] = 66, - [67] = 60, - [68] = 59, - [69] = 58, - [70] = 57, + [67] = 67, + [68] = 68, + [69] = 69, + [70] = 67, [71] = 71, - [72] = 62, - [73] = 55, - [74] = 44, + [72] = 72, + [73] = 73, + [74] = 74, [75] = 75, - [76] = 15, + [76] = 76, [77] = 77, [78] = 78, [79] = 79, - [80] = 75, + [80] = 80, [81] = 81, [82] = 82, [83] = 83, - [84] = 18, - [85] = 23, + [84] = 84, + [85] = 85, [86] = 86, [87] = 87, - [88] = 88, - [89] = 40, - [90] = 24, - [91] = 25, - [92] = 27, - [93] = 29, - [94] = 87, + [88] = 6, + [89] = 10, + [90] = 9, + [91] = 7, + [92] = 92, + [93] = 93, + [94] = 94, [95] = 95, [96] = 96, [97] = 97, [98] = 98, [99] = 99, - [100] = 100, + [100] = 13, [101] = 101, [102] = 102, - [103] = 103, + [103] = 28, [104] = 104, [105] = 105, [106] = 106, @@ -826,47 +826,12 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [109] = 109, [110] = 110, [111] = 111, - [112] = 111, + [112] = 112, [113] = 113, - [114] = 114, - [115] = 11, - [116] = 14, + [114] = 112, + [115] = 110, + [116] = 116, [117] = 117, - [118] = 118, - [119] = 119, - [120] = 120, - [121] = 13, - [122] = 12, - [123] = 123, - [124] = 99, - [125] = 125, - [126] = 126, - [127] = 126, - [128] = 128, - [129] = 123, - [130] = 18, - [131] = 100, - [132] = 132, - [133] = 133, - [134] = 134, - [135] = 135, - [136] = 136, - [137] = 46, - [138] = 44, - [139] = 139, - [140] = 140, - [141] = 31, - [142] = 142, - [143] = 143, - [144] = 144, - [145] = 145, - [146] = 145, - [147] = 147, - [148] = 144, - [149] = 149, - [150] = 145, - [151] = 144, - [152] = 152, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -1390,521 +1355,7 @@ static inline bool sym_identifier_character_set_2(int32_t c) { ? (c < 1376 ? (c < 750 ? (c < 186 - ? (c < 'b' - ? (c < 'A' - ? (c >= '0' && c <= '9') - : (c <= 'Z' || c == '_')) - : (c <= 'z' || (c < 181 - ? c == 170 - : c <= 181))) - : (c <= 186 || (c < 710 - ? (c < 216 - ? (c >= 192 && c <= 214) - : (c <= 246 || (c >= 248 && c <= 705))) - : (c <= 721 || (c < 748 - ? (c >= 736 && c <= 740) - : c <= 748))))) - : (c <= 750 || (c < 908 - ? (c < 895 - ? (c < 886 - ? (c >= 880 && c <= 884) - : (c <= 887 || (c >= 890 && c <= 893))) - : (c <= 895 || (c < 904 - ? c == 902 - : c <= 906))) - : (c <= 908 || (c < 1162 - ? (c < 931 - ? (c >= 910 && c <= 929) - : (c <= 1013 || (c >= 1015 && c <= 1153))) - : (c <= 1327 || (c < 1369 - ? (c >= 1329 && c <= 1366) - : c <= 1369))))))) - : (c <= 1416 || (c < 1969 - ? (c < 1765 - ? (c < 1646 - ? (c < 1519 - ? (c >= 1488 && c <= 1514) - : (c <= 1522 || (c >= 1568 && c <= 1610))) - : (c <= 1647 || (c < 1749 - ? (c >= 1649 && c <= 1747) - : c <= 1749))) - : (c <= 1766 || (c < 1808 - ? (c < 1786 - ? (c >= 1774 && c <= 1775) - : (c <= 1788 || c == 1791)) - : (c <= 1808 || (c < 1869 - ? (c >= 1810 && c <= 1839) - : c <= 1957))))) - : (c <= 1969 || (c < 2088 - ? (c < 2048 - ? (c < 2036 - ? (c >= 1994 && c <= 2026) - : (c <= 2037 || c == 2042)) - : (c <= 2069 || (c < 2084 - ? c == 2074 - : c <= 2084))) - : (c <= 2088 || (c < 2160 - ? (c < 2144 - ? (c >= 2112 && c <= 2136) - : c <= 2154) - : (c <= 2183 || (c < 2208 - ? (c >= 2185 && c <= 2190) - : c <= 2249))))))))) - : (c <= 2361 || (c < 2693 - ? (c < 2527 - ? (c < 2451 - ? (c < 2417 - ? (c < 2384 - ? c == 2365 - : (c <= 2384 || (c >= 2392 && c <= 2401))) - : (c <= 2432 || (c < 2447 - ? (c >= 2437 && c <= 2444) - : c <= 2448))) - : (c <= 2472 || (c < 2493 - ? (c < 2482 - ? (c >= 2474 && c <= 2480) - : (c <= 2482 || (c >= 2486 && c <= 2489))) - : (c <= 2493 || (c < 2524 - ? c == 2510 - : c <= 2525))))) - : (c <= 2529 || (c < 2610 - ? (c < 2575 - ? (c < 2556 - ? (c >= 2544 && c <= 2545) - : (c <= 2556 || (c >= 2565 && c <= 2570))) - : (c <= 2576 || (c < 2602 - ? (c >= 2579 && c <= 2600) - : c <= 2608))) - : (c <= 2611 || (c < 2649 - ? (c < 2616 - ? (c >= 2613 && c <= 2614) - : c <= 2617) - : (c <= 2652 || (c < 2674 - ? c == 2654 - : c <= 2676))))))) - : (c <= 2701 || (c < 2866 - ? (c < 2768 - ? (c < 2738 - ? (c < 2707 - ? (c >= 2703 && c <= 2705) - : (c <= 2728 || (c >= 2730 && c <= 2736))) - : (c <= 2739 || (c < 2749 - ? (c >= 2741 && c <= 2745) - : c <= 2749))) - : (c <= 2768 || (c < 2831 - ? (c < 2809 - ? (c >= 2784 && c <= 2785) - : (c <= 2809 || (c >= 2821 && c <= 2828))) - : (c <= 2832 || (c < 2858 - ? (c >= 2835 && c <= 2856) - : c <= 2864))))) - : (c <= 2867 || (c < 2949 - ? (c < 2911 - ? (c < 2877 - ? (c >= 2869 && c <= 2873) - : (c <= 2877 || (c >= 2908 && c <= 2909))) - : (c <= 2913 || (c < 2947 - ? c == 2929 - : c <= 2947))) - : (c <= 2954 || (c < 2969 - ? (c < 2962 - ? (c >= 2958 && c <= 2960) - : c <= 2965) - : (c <= 2970 || (c < 2974 - ? c == 2972 - : c <= 2975))))))))))) - : (c <= 2980 || (c < 4159 - ? (c < 3412 - ? (c < 3214 - ? (c < 3114 - ? (c < 3077 - ? (c < 2990 - ? (c >= 2984 && c <= 2986) - : (c <= 3001 || c == 3024)) - : (c <= 3084 || (c < 3090 - ? (c >= 3086 && c <= 3088) - : c <= 3112))) - : (c <= 3129 || (c < 3168 - ? (c < 3160 - ? c == 3133 - : (c <= 3162 || c == 3165)) - : (c <= 3169 || (c < 3205 - ? c == 3200 - : c <= 3212))))) - : (c <= 3216 || (c < 3313 - ? (c < 3261 - ? (c < 3242 - ? (c >= 3218 && c <= 3240) - : (c <= 3251 || (c >= 3253 && c <= 3257))) - : (c <= 3261 || (c < 3296 - ? (c >= 3293 && c <= 3294) - : c <= 3297))) - : (c <= 3314 || (c < 3346 - ? (c < 3342 - ? (c >= 3332 && c <= 3340) - : c <= 3344) - : (c <= 3386 || (c < 3406 - ? c == 3389 - : c <= 3406))))))) - : (c <= 3414 || (c < 3724 - ? (c < 3520 - ? (c < 3482 - ? (c < 3450 - ? (c >= 3423 && c <= 3425) - : (c <= 3455 || (c >= 3461 && c <= 3478))) - : (c <= 3505 || (c < 3517 - ? (c >= 3507 && c <= 3515) - : c <= 3517))) - : (c <= 3526 || (c < 3713 - ? (c < 3634 - ? (c >= 3585 && c <= 3632) - : (c <= 3635 || (c >= 3648 && c <= 3654))) - : (c <= 3714 || (c < 3718 - ? c == 3716 - : c <= 3722))))) - : (c <= 3747 || (c < 3804 - ? (c < 3773 - ? (c < 3751 - ? c == 3749 - : (c <= 3760 || (c >= 3762 && c <= 3763))) - : (c <= 3773 || (c < 3782 - ? (c >= 3776 && c <= 3780) - : c <= 3782))) - : (c <= 3807 || (c < 3913 - ? (c < 3904 - ? c == 3840 - : c <= 3911) - : (c <= 3948 || (c < 4096 - ? (c >= 3976 && c <= 3980) - : c <= 4138))))))))) - : (c <= 4159 || (c < 4888 - ? (c < 4688 - ? (c < 4238 - ? (c < 4197 - ? (c < 4186 - ? (c >= 4176 && c <= 4181) - : (c <= 4189 || c == 4193)) - : (c <= 4198 || (c < 4213 - ? (c >= 4206 && c <= 4208) - : c <= 4225))) - : (c <= 4238 || (c < 4304 - ? (c < 4295 - ? (c >= 4256 && c <= 4293) - : (c <= 4295 || c == 4301)) - : (c <= 4346 || (c < 4682 - ? (c >= 4348 && c <= 4680) - : c <= 4685))))) - : (c <= 4694 || (c < 4792 - ? (c < 4746 - ? (c < 4698 - ? c == 4696 - : (c <= 4701 || (c >= 4704 && c <= 4744))) - : (c <= 4749 || (c < 4786 - ? (c >= 4752 && c <= 4784) - : c <= 4789))) - : (c <= 4798 || (c < 4808 - ? (c < 4802 - ? c == 4800 - : c <= 4805) - : (c <= 4822 || (c < 4882 - ? (c >= 4824 && c <= 4880) - : c <= 4885))))))) - : (c <= 4954 || (c < 6016 - ? (c < 5792 - ? (c < 5121 - ? (c < 5024 - ? (c >= 4992 && c <= 5007) - : (c <= 5109 || (c >= 5112 && c <= 5117))) - : (c <= 5740 || (c < 5761 - ? (c >= 5743 && c <= 5759) - : c <= 5786))) - : (c <= 5866 || (c < 5952 - ? (c < 5888 - ? (c >= 5873 && c <= 5880) - : (c <= 5905 || (c >= 5919 && c <= 5937))) - : (c <= 5969 || (c < 5998 - ? (c >= 5984 && c <= 5996) - : c <= 6000))))) - : (c <= 6067 || (c < 6320 - ? (c < 6272 - ? (c < 6108 - ? c == 6103 - : (c <= 6108 || (c >= 6176 && c <= 6264))) - : (c <= 6276 || (c < 6314 - ? (c >= 6279 && c <= 6312) - : c <= 6314))) - : (c <= 6389 || (c < 6512 - ? (c < 6480 - ? (c >= 6400 && c <= 6430) - : c <= 6509) - : (c <= 6516 || (c < 6576 - ? (c >= 6528 && c <= 6571) - : c <= 6601))))))))))))) - : (c <= 6678 || (c < 43259 - ? (c < 8579 - ? (c < 8031 - ? (c < 7401 - ? (c < 7098 - ? (c < 6981 - ? (c < 6823 - ? (c >= 6688 && c <= 6740) - : (c <= 6823 || (c >= 6917 && c <= 6963))) - : (c <= 6988 || (c < 7086 - ? (c >= 7043 && c <= 7072) - : c <= 7087))) - : (c <= 7141 || (c < 7296 - ? (c < 7245 - ? (c >= 7168 && c <= 7203) - : (c <= 7247 || (c >= 7258 && c <= 7293))) - : (c <= 7304 || (c < 7357 - ? (c >= 7312 && c <= 7354) - : c <= 7359))))) - : (c <= 7404 || (c < 7968 - ? (c < 7424 - ? (c < 7413 - ? (c >= 7406 && c <= 7411) - : (c <= 7414 || c == 7418)) - : (c <= 7615 || (c < 7960 - ? (c >= 7680 && c <= 7957) - : c <= 7965))) - : (c <= 8005 || (c < 8025 - ? (c < 8016 - ? (c >= 8008 && c <= 8013) - : c <= 8023) - : (c <= 8025 || (c < 8029 - ? c == 8027 - : c <= 8029))))))) - : (c <= 8061 || (c < 8450 - ? (c < 8150 - ? (c < 8130 - ? (c < 8118 - ? (c >= 8064 && c <= 8116) - : (c <= 8124 || c == 8126)) - : (c <= 8132 || (c < 8144 - ? (c >= 8134 && c <= 8140) - : c <= 8147))) - : (c <= 8155 || (c < 8305 - ? (c < 8178 - ? (c >= 8160 && c <= 8172) - : (c <= 8180 || (c >= 8182 && c <= 8188))) - : (c <= 8305 || (c < 8336 - ? c == 8319 - : c <= 8348))))) - : (c <= 8450 || (c < 8488 - ? (c < 8473 - ? (c < 8458 - ? c == 8455 - : (c <= 8467 || c == 8469)) - : (c <= 8477 || (c < 8486 - ? c == 8484 - : c <= 8486))) - : (c <= 8488 || (c < 8508 - ? (c < 8495 - ? (c >= 8490 && c <= 8493) - : c <= 8505) - : (c <= 8511 || (c < 8526 - ? (c >= 8517 && c <= 8521) - : c <= 8526))))))))) - : (c <= 8580 || (c < 12593 - ? (c < 11712 - ? (c < 11568 - ? (c < 11520 - ? (c < 11499 - ? (c >= 11264 && c <= 11492) - : (c <= 11502 || (c >= 11506 && c <= 11507))) - : (c <= 11557 || (c < 11565 - ? c == 11559 - : c <= 11565))) - : (c <= 11623 || (c < 11688 - ? (c < 11648 - ? c == 11631 - : (c <= 11670 || (c >= 11680 && c <= 11686))) - : (c <= 11694 || (c < 11704 - ? (c >= 11696 && c <= 11702) - : c <= 11710))))) - : (c <= 11718 || (c < 12347 - ? (c < 11823 - ? (c < 11728 - ? (c >= 11720 && c <= 11726) - : (c <= 11734 || (c >= 11736 && c <= 11742))) - : (c <= 11823 || (c < 12337 - ? (c >= 12293 && c <= 12294) - : c <= 12341))) - : (c <= 12348 || (c < 12449 - ? (c < 12445 - ? (c >= 12353 && c <= 12438) - : c <= 12447) - : (c <= 12538 || (c < 12549 - ? (c >= 12540 && c <= 12543) - : c <= 12591))))))) - : (c <= 12686 || (c < 42775 - ? (c < 42192 - ? (c < 19903 - ? (c < 12784 - ? (c >= 12704 && c <= 12735) - : (c <= 12799 || c == 13312)) - : (c <= 19903 || (c < 40959 - ? c == 19968 - : c <= 42124))) - : (c <= 42237 || (c < 42560 - ? (c < 42512 - ? (c >= 42240 && c <= 42508) - : (c <= 42527 || (c >= 42538 && c <= 42539))) - : (c <= 42606 || (c < 42656 - ? (c >= 42623 && c <= 42653) - : c <= 42725))))) - : (c <= 42783 || (c < 43011 - ? (c < 42963 - ? (c < 42891 - ? (c >= 42786 && c <= 42888) - : (c <= 42954 || (c >= 42960 && c <= 42961))) - : (c <= 42963 || (c < 42994 - ? (c >= 42965 && c <= 42969) - : c <= 43009))) - : (c <= 43013 || (c < 43072 - ? (c < 43020 - ? (c >= 43015 && c <= 43018) - : c <= 43042) - : (c <= 43123 || (c < 43250 - ? (c >= 43138 && c <= 43187) - : c <= 43255))))))))))) - : (c <= 43259 || (c < 65313 - ? (c < 43808 - ? (c < 43642 - ? (c < 43488 - ? (c < 43360 - ? (c < 43274 - ? (c >= 43261 && c <= 43262) - : (c <= 43301 || (c >= 43312 && c <= 43334))) - : (c <= 43388 || (c < 43471 - ? (c >= 43396 && c <= 43442) - : c <= 43471))) - : (c <= 43492 || (c < 43584 - ? (c < 43514 - ? (c >= 43494 && c <= 43503) - : (c <= 43518 || (c >= 43520 && c <= 43560))) - : (c <= 43586 || (c < 43616 - ? (c >= 43588 && c <= 43595) - : c <= 43638))))) - : (c <= 43642 || (c < 43739 - ? (c < 43705 - ? (c < 43697 - ? (c >= 43646 && c <= 43695) - : (c <= 43697 || (c >= 43701 && c <= 43702))) - : (c <= 43709 || (c < 43714 - ? c == 43712 - : c <= 43714))) - : (c <= 43741 || (c < 43777 - ? (c < 43762 - ? (c >= 43744 && c <= 43754) - : c <= 43764) - : (c <= 43782 || (c < 43793 - ? (c >= 43785 && c <= 43790) - : c <= 43798))))))) - : (c <= 43814 || (c < 64287 - ? (c < 55216 - ? (c < 43888 - ? (c < 43824 - ? (c >= 43816 && c <= 43822) - : (c <= 43866 || (c >= 43868 && c <= 43881))) - : (c <= 44002 || (c < 55203 - ? c == 44032 - : c <= 55203))) - : (c <= 55238 || (c < 64256 - ? (c < 63744 - ? (c >= 55243 && c <= 55291) - : (c <= 64109 || (c >= 64112 && c <= 64217))) - : (c <= 64262 || (c < 64285 - ? (c >= 64275 && c <= 64279) - : c <= 64285))))) - : (c <= 64296 || (c < 64467 - ? (c < 64320 - ? (c < 64312 - ? (c >= 64298 && c <= 64310) - : (c <= 64316 || c == 64318)) - : (c <= 64321 || (c < 64326 - ? (c >= 64323 && c <= 64324) - : c <= 64433))) - : (c <= 64829 || (c < 65008 - ? (c < 64914 - ? (c >= 64848 && c <= 64911) - : c <= 64967) - : (c <= 65019 || (c < 65142 - ? (c >= 65136 && c <= 65140) - : c <= 65276))))))))) - : (c <= 65338 || (c < 66864 - ? (c < 66176 - ? (c < 65536 - ? (c < 65482 - ? (c < 65382 - ? (c >= 65345 && c <= 65370) - : (c <= 65470 || (c >= 65474 && c <= 65479))) - : (c <= 65487 || (c < 65498 - ? (c >= 65490 && c <= 65495) - : c <= 65500))) - : (c <= 65547 || (c < 65599 - ? (c < 65576 - ? (c >= 65549 && c <= 65574) - : (c <= 65594 || (c >= 65596 && c <= 65597))) - : (c <= 65613 || (c < 65664 - ? (c >= 65616 && c <= 65629) - : c <= 65786))))) - : (c <= 66204 || (c < 66464 - ? (c < 66370 - ? (c < 66304 - ? (c >= 66208 && c <= 66256) - : (c <= 66335 || (c >= 66349 && c <= 66368))) - : (c <= 66377 || (c < 66432 - ? (c >= 66384 && c <= 66421) - : c <= 66461))) - : (c <= 66499 || (c < 66736 - ? (c < 66560 - ? (c >= 66504 && c <= 66511) - : c <= 66717) - : (c <= 66771 || (c < 66816 - ? (c >= 66776 && c <= 66811) - : c <= 66855))))))) - : (c <= 66915 || (c < 67506 - ? (c < 66995 - ? (c < 66964 - ? (c < 66940 - ? (c >= 66928 && c <= 66938) - : (c <= 66954 || (c >= 66956 && c <= 66962))) - : (c <= 66965 || (c < 66979 - ? (c >= 66967 && c <= 66977) - : c <= 66993))) - : (c <= 67001 || (c < 67424 - ? (c < 67072 - ? (c >= 67003 && c <= 67004) - : (c <= 67382 || (c >= 67392 && c <= 67413))) - : (c <= 67431 || (c < 67463 - ? (c >= 67456 && c <= 67461) - : c <= 67504))))) - : (c <= 67514 || (c < 67680 - ? (c < 67639 - ? (c < 67592 - ? (c >= 67584 && c <= 67589) - : (c <= 67592 || (c >= 67594 && c <= 67637))) - : (c <= 67640 || (c < 67647 - ? c == 67644 - : c <= 67669))) - : (c <= 67702 || (c < 67828 - ? (c < 67808 - ? (c >= 67712 && c <= 67742) - : c <= 67826) - : (c <= 67829 || (c < 67872 - ? (c >= 67840 && c <= 67861) - : c <= 67883))))))))))))))); -} - -static inline bool sym_identifier_character_set_3(int32_t c) { - return (c < 6656 - ? (c < 2979 - ? (c < 2308 - ? (c < 1376 - ? (c < 750 - ? (c < 186 - ? (c < 'a' + ? (c < 'a' ? (c < 'A' ? (c >= '0' && c <= '9') : (c <= 'Z' || c == '_')) @@ -2416,734 +1867,443 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (eof) ADVANCE(66); - if (lookahead == '!') ADVANCE(104); - if (lookahead == '%') ADVANCE(115); - if (lookahead == '&') ADVANCE(106); - if (lookahead == '\'') ADVANCE(94); - if (lookahead == '(') ADVANCE(116); - if (lookahead == ')') ADVANCE(118); - if (lookahead == '*') ADVANCE(102); - if (lookahead == '+') ADVANCE(99); - if (lookahead == ',') ADVANCE(117); - if (lookahead == '-') ADVANCE(101); - if (lookahead == '/') SKIP(63) - if (lookahead == ':') ADVANCE(68); - if (lookahead == ';') ADVANCE(134); - if (lookahead == '<') ADVANCE(110); - if (lookahead == '=') ADVANCE(126); - if (lookahead == '>') ADVANCE(112); - if (lookahead == '[') ADVANCE(119); - if (lookahead == ']') ADVANCE(120); - if (lookahead == '^') ADVANCE(107); - if (lookahead == 'e') ADVANCE(51); - if (lookahead == 'f') ADVANCE(55); - if (lookahead == 'g') ADVANCE(44); - if (lookahead == 'i') ADVANCE(49); - if (lookahead == 'm') ADVANCE(56); - if (lookahead == 'r') ADVANCE(45); - if (lookahead == 's') ADVANCE(59); - if (lookahead == '{') ADVANCE(121); - if (lookahead == '|') ADVANCE(105); - if (lookahead == '}') ADVANCE(122); + if (eof) ADVANCE(19); + if (lookahead == '!') ADVANCE(32); + if (lookahead == '%') ADVANCE(43); + if (lookahead == '&') ADVANCE(34); + if (lookahead == '\'') ADVANCE(26); + if (lookahead == '(') ADVANCE(44); + if (lookahead == ')') ADVANCE(46); + if (lookahead == '*') ADVANCE(30); + if (lookahead == '+') ADVANCE(27); + if (lookahead == ',') ADVANCE(45); + if (lookahead == '-') ADVANCE(29); + if (lookahead == '/') SKIP(13) + if (lookahead == ':') ADVANCE(21); + if (lookahead == ';') ADVANCE(52); + if (lookahead == '<') ADVANCE(38); + if (lookahead == '=') ADVANCE(51); + if (lookahead == '>') ADVANCE(40); + if (lookahead == '[') ADVANCE(47); + if (lookahead == ']') ADVANCE(48); + if (lookahead == '^') ADVANCE(35); + if (lookahead == '{') ADVANCE(49); + if (lookahead == '|') ADVANCE(33); + if (lookahead == '}') ADVANCE(50); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(0) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(92); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(24); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(23); END_STATE(); case 1: - if (lookahead == '\n') SKIP(9) + if (lookahead == '\n') SKIP(7) if (lookahead != 0) SKIP(1) END_STATE(); case 2: - if (lookahead == '\n') SKIP(10) - if (lookahead != 0) SKIP(2) + if (lookahead == '!') ADVANCE(9); + if (lookahead == '%') ADVANCE(43); + if (lookahead == '&') ADVANCE(34); + if (lookahead == '(') ADVANCE(44); + if (lookahead == ')') ADVANCE(46); + if (lookahead == '*') ADVANCE(30); + if (lookahead == '+') ADVANCE(27); + if (lookahead == ',') ADVANCE(45); + if (lookahead == '-') ADVANCE(29); + if (lookahead == '/') ADVANCE(42); + if (lookahead == ':') ADVANCE(21); + if (lookahead == ';') ADVANCE(52); + if (lookahead == '<') ADVANCE(38); + if (lookahead == '=') ADVANCE(51); + if (lookahead == '>') ADVANCE(40); + if (lookahead == '[') ADVANCE(47); + if (lookahead == ']') ADVANCE(48); + if (lookahead == '^') ADVANCE(35); + if (lookahead == '{') ADVANCE(49); + if (lookahead == '|') ADVANCE(33); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(2) + if (sym_identifier_character_set_1(lookahead)) ADVANCE(23); END_STATE(); case 3: - if (lookahead == '\n') SKIP(11) - if (lookahead != 0) SKIP(3) + if (lookahead == '!') ADVANCE(9); + if (lookahead == '%') ADVANCE(43); + if (lookahead == '&') ADVANCE(34); + if (lookahead == '(') ADVANCE(44); + if (lookahead == ')') ADVANCE(46); + if (lookahead == '*') ADVANCE(30); + if (lookahead == '+') ADVANCE(27); + if (lookahead == ',') ADVANCE(45); + if (lookahead == '-') ADVANCE(29); + if (lookahead == '/') ADVANCE(42); + if (lookahead == ':') ADVANCE(20); + if (lookahead == ';') ADVANCE(52); + if (lookahead == '<') ADVANCE(38); + if (lookahead == '=') ADVANCE(51); + if (lookahead == '>') ADVANCE(40); + if (lookahead == '[') ADVANCE(47); + if (lookahead == ']') ADVANCE(48); + if (lookahead == '^') ADVANCE(35); + if (lookahead == '{') ADVANCE(49); + if (lookahead == '|') ADVANCE(33); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(3) + if (sym_identifier_character_set_1(lookahead)) ADVANCE(23); END_STATE(); case 4: - if (lookahead == '\n') SKIP(12) - if (lookahead != 0) SKIP(4) + if (lookahead == '*') SKIP(6) + if (lookahead == '/') SKIP(1) END_STATE(); case 5: - if (lookahead == '\n') SKIP(8) - if (lookahead != 0) SKIP(5) + if (lookahead == '*') SKIP(5) + if (lookahead == '/') SKIP(7) + if (lookahead != 0) SKIP(6) END_STATE(); case 6: - if (lookahead == '\n') SKIP(13) + if (lookahead == '*') SKIP(5) if (lookahead != 0) SKIP(6) END_STATE(); case 7: - if (lookahead == '\n') SKIP(38) - if (lookahead != 0) SKIP(7) - END_STATE(); - case 8: - if (lookahead == '!') ADVANCE(103); - if (lookahead == '&') ADVANCE(106); - if (lookahead == '(') ADVANCE(116); - if (lookahead == ')') ADVANCE(118); - if (lookahead == '*') ADVANCE(102); - if (lookahead == '+') ADVANCE(99); - if (lookahead == '-') ADVANCE(100); - if (lookahead == '/') SKIP(35) - if (lookahead == ':') ADVANCE(39); - if (lookahead == '[') ADVANCE(119); - if (lookahead == '^') ADVANCE(107); - if (lookahead == '|') ADVANCE(105); + if (lookahead == '/') SKIP(4) + if (lookahead == ':') ADVANCE(20); + if (lookahead == '{') ADVANCE(49); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || - lookahead == ' ') SKIP(8) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(92); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(91); + lookahead == ' ') SKIP(7) + END_STATE(); + case 8: + if (lookahead == ':') ADVANCE(25); END_STATE(); case 9: - if (lookahead == '!') ADVANCE(103); - if (lookahead == '&') ADVANCE(106); - if (lookahead == '(') ADVANCE(116); - if (lookahead == '*') ADVANCE(102); - if (lookahead == '+') ADVANCE(99); - if (lookahead == '-') ADVANCE(100); - if (lookahead == '/') SKIP(17) - if (lookahead == ':') ADVANCE(39); - if (lookahead == '^') ADVANCE(107); - if (lookahead == 'f') ADVANCE(85); - if (lookahead == 'g') ADVANCE(73); - if (lookahead == 'i') ADVANCE(77); - if (lookahead == 'r') ADVANCE(74); - if (lookahead == 's') ADVANCE(88); - if (lookahead == '{') ADVANCE(121); - if (lookahead == '|') ADVANCE(105); - if (lookahead == '}') ADVANCE(122); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(9) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(92); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(91); + if (lookahead == '=') ADVANCE(37); END_STATE(); case 10: - if (lookahead == '!') ADVANCE(103); - if (lookahead == '&') ADVANCE(106); - if (lookahead == '(') ADVANCE(116); - if (lookahead == '*') ADVANCE(102); - if (lookahead == '+') ADVANCE(99); - if (lookahead == '-') ADVANCE(100); - if (lookahead == '/') SKIP(32) - if (lookahead == ':') ADVANCE(39); - if (lookahead == '^') ADVANCE(107); - if (lookahead == 'g') ADVANCE(73); - if (lookahead == 'i') ADVANCE(83); - if (lookahead == 'r') ADVANCE(74); - if (lookahead == 's') ADVANCE(88); - if (lookahead == '|') ADVANCE(105); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(10) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(92); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(91); + if (eof) ADVANCE(19); + if (lookahead == '\n') SKIP(0) + if (lookahead != 0) SKIP(10) END_STATE(); case 11: - if (lookahead == '!') ADVANCE(103); - if (lookahead == '&') ADVANCE(106); - if (lookahead == '(') ADVANCE(116); - if (lookahead == '*') ADVANCE(102); - if (lookahead == '+') ADVANCE(99); - if (lookahead == '-') ADVANCE(100); - if (lookahead == '/') SKIP(33) - if (lookahead == ':') ADVANCE(39); - if (lookahead == '^') ADVANCE(107); - if (lookahead == 'g') ADVANCE(73); - if (lookahead == 'r') ADVANCE(74); - if (lookahead == 's') ADVANCE(88); - if (lookahead == '|') ADVANCE(105); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(11) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(92); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(91); + if (eof) ADVANCE(19); + if (lookahead == '\n') SKIP(12) + if (lookahead != 0) SKIP(11) END_STATE(); case 12: - if (lookahead == '!') ADVANCE(103); - if (lookahead == '&') ADVANCE(106); - if (lookahead == '(') ADVANCE(116); - if (lookahead == '*') ADVANCE(102); - if (lookahead == '+') ADVANCE(99); - if (lookahead == '-') ADVANCE(100); - if (lookahead == '/') SKIP(34) - if (lookahead == ':') ADVANCE(39); - if (lookahead == '^') ADVANCE(107); - if (lookahead == 'g') ADVANCE(73); - if (lookahead == 's') ADVANCE(88); - if (lookahead == '|') ADVANCE(105); + if (eof) ADVANCE(19); + if (lookahead == '!') ADVANCE(31); + if (lookahead == '&') ADVANCE(34); + if (lookahead == '(') ADVANCE(44); + if (lookahead == ')') ADVANCE(46); + if (lookahead == '*') ADVANCE(30); + if (lookahead == '+') ADVANCE(27); + if (lookahead == '-') ADVANCE(28); + if (lookahead == '/') SKIP(18) + if (lookahead == ':') ADVANCE(8); + if (lookahead == '^') ADVANCE(35); + if (lookahead == '{') ADVANCE(49); + if (lookahead == '|') ADVANCE(33); + if (lookahead == '}') ADVANCE(50); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(12) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(92); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(91); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(24); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(23); END_STATE(); case 13: - if (lookahead == '!') ADVANCE(103); - if (lookahead == '&') ADVANCE(106); - if (lookahead == '(') ADVANCE(116); - if (lookahead == '*') ADVANCE(102); - if (lookahead == '+') ADVANCE(99); - if (lookahead == '-') ADVANCE(100); - if (lookahead == '/') SKIP(36) - if (lookahead == ':') ADVANCE(39); - if (lookahead == '^') ADVANCE(107); - if (lookahead == 'e') ADVANCE(82); - if (lookahead == 'f') ADVANCE(85); - if (lookahead == 'g') ADVANCE(73); - if (lookahead == 'i') ADVANCE(77); - if (lookahead == 'r') ADVANCE(74); - if (lookahead == 's') ADVANCE(88); - if (lookahead == '{') ADVANCE(121); - if (lookahead == '|') ADVANCE(105); - if (lookahead == '}') ADVANCE(122); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(13) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(92); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(91); + if (eof) ADVANCE(19); + if (lookahead == '*') SKIP(15) + if (lookahead == '/') SKIP(10) END_STATE(); case 14: - if (lookahead == '!') ADVANCE(40); - if (lookahead == '%') ADVANCE(115); - if (lookahead == '&') ADVANCE(106); - if (lookahead == '(') ADVANCE(116); - if (lookahead == ')') ADVANCE(118); - if (lookahead == '*') ADVANCE(102); - if (lookahead == '+') ADVANCE(99); - if (lookahead == ',') ADVANCE(117); - if (lookahead == '-') ADVANCE(101); - if (lookahead == '/') ADVANCE(114); - if (lookahead == ':') ADVANCE(68); - if (lookahead == ';') ADVANCE(134); - if (lookahead == '<') ADVANCE(110); - if (lookahead == '=') ADVANCE(126); - if (lookahead == '>') ADVANCE(112); - if (lookahead == '[') ADVANCE(119); - if (lookahead == ']') ADVANCE(120); - if (lookahead == '^') ADVANCE(107); - if (lookahead == '{') ADVANCE(121); - if (lookahead == '|') ADVANCE(105); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(14) - if (sym_identifier_character_set_1(lookahead)) ADVANCE(91); + if (eof) ADVANCE(19); + if (lookahead == '*') SKIP(14) + if (lookahead == '/') SKIP(0) + if (lookahead != 0) SKIP(15) END_STATE(); case 15: - if (lookahead == '!') ADVANCE(40); - if (lookahead == '%') ADVANCE(115); - if (lookahead == '&') ADVANCE(106); - if (lookahead == '(') ADVANCE(116); - if (lookahead == ')') ADVANCE(118); - if (lookahead == '*') ADVANCE(102); - if (lookahead == '+') ADVANCE(99); - if (lookahead == ',') ADVANCE(117); - if (lookahead == '-') ADVANCE(101); - if (lookahead == '/') ADVANCE(114); - if (lookahead == ':') ADVANCE(67); - if (lookahead == ';') ADVANCE(134); - if (lookahead == '<') ADVANCE(110); - if (lookahead == '=') ADVANCE(126); - if (lookahead == '>') ADVANCE(112); - if (lookahead == '[') ADVANCE(119); - if (lookahead == ']') ADVANCE(120); - if (lookahead == '^') ADVANCE(107); - if (lookahead == 'i') ADVANCE(53); - if (lookahead == '{') ADVANCE(121); - if (lookahead == '|') ADVANCE(105); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(15) + if (eof) ADVANCE(19); + if (lookahead == '*') SKIP(14) + if (lookahead != 0) SKIP(15) END_STATE(); case 16: - if (lookahead == '!') ADVANCE(40); - if (lookahead == '%') ADVANCE(115); - if (lookahead == '&') ADVANCE(106); - if (lookahead == '(') ADVANCE(116); - if (lookahead == '*') ADVANCE(102); - if (lookahead == '+') ADVANCE(99); - if (lookahead == '-') ADVANCE(100); - if (lookahead == '/') ADVANCE(114); - if (lookahead == ':') ADVANCE(39); - if (lookahead == '<') ADVANCE(110); - if (lookahead == '=') ADVANCE(41); - if (lookahead == '>') ADVANCE(112); - if (lookahead == '[') ADVANCE(119); - if (lookahead == '^') ADVANCE(107); - if (lookahead == 'i') ADVANCE(53); - if (lookahead == '|') ADVANCE(105); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(16) + if (eof) ADVANCE(19); + if (lookahead == '*') SKIP(16) + if (lookahead == '/') SKIP(12) + if (lookahead != 0) SKIP(17) END_STATE(); case 17: - if (lookahead == '*') SKIP(19) - if (lookahead == '/') SKIP(1) + if (eof) ADVANCE(19); + if (lookahead == '*') SKIP(16) + if (lookahead != 0) SKIP(17) END_STATE(); case 18: - if (lookahead == '*') SKIP(18) - if (lookahead == '/') SKIP(9) - if (lookahead != 0) SKIP(19) - END_STATE(); - case 19: - if (lookahead == '*') SKIP(18) - if (lookahead != 0) SKIP(19) - END_STATE(); - case 20: - if (lookahead == '*') SKIP(20) - if (lookahead == '/') SKIP(10) - if (lookahead != 0) SKIP(21) - END_STATE(); - case 21: - if (lookahead == '*') SKIP(20) - if (lookahead != 0) SKIP(21) - END_STATE(); - case 22: - if (lookahead == '*') SKIP(22) + if (eof) ADVANCE(19); + if (lookahead == '*') SKIP(17) if (lookahead == '/') SKIP(11) - if (lookahead != 0) SKIP(23) - END_STATE(); - case 23: - if (lookahead == '*') SKIP(22) - if (lookahead != 0) SKIP(23) - END_STATE(); - case 24: - if (lookahead == '*') SKIP(24) - if (lookahead == '/') SKIP(12) - if (lookahead != 0) SKIP(25) - END_STATE(); - case 25: - if (lookahead == '*') SKIP(24) - if (lookahead != 0) SKIP(25) - END_STATE(); - case 26: - if (lookahead == '*') SKIP(26) - if (lookahead == '/') SKIP(8) - if (lookahead != 0) SKIP(27) - END_STATE(); - case 27: - if (lookahead == '*') SKIP(26) - if (lookahead != 0) SKIP(27) - END_STATE(); - case 28: - if (lookahead == '*') SKIP(28) - if (lookahead == '/') SKIP(13) - if (lookahead != 0) SKIP(29) - END_STATE(); - case 29: - if (lookahead == '*') SKIP(28) - if (lookahead != 0) SKIP(29) - END_STATE(); - case 30: - if (lookahead == '*') SKIP(30) - if (lookahead == '/') SKIP(38) - if (lookahead != 0) SKIP(31) - END_STATE(); - case 31: - if (lookahead == '*') SKIP(30) - if (lookahead != 0) SKIP(31) - END_STATE(); - case 32: - if (lookahead == '*') SKIP(21) - if (lookahead == '/') SKIP(2) - END_STATE(); - case 33: - if (lookahead == '*') SKIP(23) - if (lookahead == '/') SKIP(3) END_STATE(); - case 34: - if (lookahead == '*') SKIP(25) - if (lookahead == '/') SKIP(4) - END_STATE(); - case 35: - if (lookahead == '*') SKIP(27) - if (lookahead == '/') SKIP(5) - END_STATE(); - case 36: - if (lookahead == '*') SKIP(29) - if (lookahead == '/') SKIP(6) - END_STATE(); - case 37: - if (lookahead == '*') SKIP(31) - if (lookahead == '/') SKIP(7) - END_STATE(); - case 38: - if (lookahead == '/') SKIP(37) - if (lookahead == ':') ADVANCE(67); - if (lookahead == '{') ADVANCE(121); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(38) - END_STATE(); - case 39: - if (lookahead == ':') ADVANCE(93); - END_STATE(); - case 40: - if (lookahead == '=') ADVANCE(109); - END_STATE(); - case 41: - if (lookahead == '=') ADVANCE(108); - END_STATE(); - case 42: - if (lookahead == 'a') ADVANCE(60); - END_STATE(); - case 43: - if (lookahead == 'd') ADVANCE(61); - END_STATE(); - case 44: - if (lookahead == 'e') ADVANCE(54); - END_STATE(); - case 45: - if (lookahead == 'e') ADVANCE(50); - END_STATE(); - case 46: - if (lookahead == 'e') ADVANCE(129); - END_STATE(); - case 47: - if (lookahead == 'e') ADVANCE(95); - END_STATE(); - case 48: - if (lookahead == 'e') ADVANCE(70); - END_STATE(); - case 49: - if (lookahead == 'f') ADVANCE(127); - if (lookahead == 'n') ADVANCE(133); - END_STATE(); - case 50: - if (lookahead == 'g') ADVANCE(123); - END_STATE(); - case 51: - if (lookahead == 'l') ADVANCE(58); - END_STATE(); - case 52: - if (lookahead == 'l') ADVANCE(48); - END_STATE(); - case 53: - if (lookahead == 'n') ADVANCE(133); - END_STATE(); - case 54: - if (lookahead == 'n') ADVANCE(97); - END_STATE(); - case 55: - if (lookahead == 'o') ADVANCE(57); - END_STATE(); - case 56: - if (lookahead == 'o') ADVANCE(43); - END_STATE(); - case 57: - if (lookahead == 'r') ADVANCE(131); - END_STATE(); - case 58: - if (lookahead == 's') ADVANCE(46); - END_STATE(); - case 59: - if (lookahead == 't') ADVANCE(42); - END_STATE(); - case 60: - if (lookahead == 't') ADVANCE(47); - END_STATE(); - case 61: - if (lookahead == 'u') ADVANCE(52); - END_STATE(); - case 62: - if (eof) ADVANCE(66); - if (lookahead == '\n') SKIP(0) - if (lookahead != 0) SKIP(62) - END_STATE(); - case 63: - if (eof) ADVANCE(66); - if (lookahead == '*') SKIP(65) - if (lookahead == '/') SKIP(62) - END_STATE(); - case 64: - if (eof) ADVANCE(66); - if (lookahead == '*') SKIP(64) - if (lookahead == '/') SKIP(0) - if (lookahead != 0) SKIP(65) - END_STATE(); - case 65: - if (eof) ADVANCE(66); - if (lookahead == '*') SKIP(64) - if (lookahead != 0) SKIP(65) - END_STATE(); - case 66: + case 19: ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); - case 67: + case 20: ACCEPT_TOKEN(anon_sym_COLON); END_STATE(); - case 68: + case 21: ACCEPT_TOKEN(anon_sym_COLON); - if (lookahead == ':') ADVANCE(93); + if (lookahead == ':') ADVANCE(25); END_STATE(); - case 69: + case 22: ACCEPT_TOKEN(anon_sym_DASH_GT); END_STATE(); - case 70: - ACCEPT_TOKEN(anon_sym_module); - END_STATE(); - case 71: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'a') ADVANCE(81); - if (sym_identifier_character_set_2(lookahead)) ADVANCE(91); - END_STATE(); - case 72: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'a') ADVANCE(90); - if (sym_identifier_character_set_2(lookahead)) ADVANCE(91); - END_STATE(); - case 73: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(84); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); - END_STATE(); - case 74: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(78); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); - END_STATE(); - case 75: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(96); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); - END_STATE(); - case 76: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(130); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); - END_STATE(); - case 77: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'f') ADVANCE(128); - if (lookahead == 'n') ADVANCE(79); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); - END_STATE(); - case 78: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'g') ADVANCE(124); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); - END_STATE(); - case 79: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'i') ADVANCE(89); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); - END_STATE(); - case 80: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'i') ADVANCE(71); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); - END_STATE(); - case 81: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'l') ADVANCE(125); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); - END_STATE(); - case 82: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'l') ADVANCE(87); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); - END_STATE(); - case 83: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'n') ADVANCE(79); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); - END_STATE(); - case 84: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'n') ADVANCE(98); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); - END_STATE(); - case 85: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'o') ADVANCE(86); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); - END_STATE(); - case 86: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'r') ADVANCE(132); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); - END_STATE(); - case 87: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 's') ADVANCE(76); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); - END_STATE(); - case 88: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 't') ADVANCE(72); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); - END_STATE(); - case 89: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 't') ADVANCE(80); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); - END_STATE(); - case 90: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 't') ADVANCE(75); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); - END_STATE(); - case 91: + case 23: ACCEPT_TOKEN(sym_identifier); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); - END_STATE(); - case 92: - ACCEPT_TOKEN(sym_number); - if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(92); - END_STATE(); - case 93: - ACCEPT_TOKEN(anon_sym_COLON_COLON); - END_STATE(); - case 94: - ACCEPT_TOKEN(anon_sym_SQUOTE); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(23); END_STATE(); - case 95: - ACCEPT_TOKEN(anon_sym_state); - END_STATE(); - case 96: - ACCEPT_TOKEN(anon_sym_state); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); + case 24: + ACCEPT_TOKEN(sym_number); + if (('0' <= lookahead && lookahead <= '9') || + lookahead == '_') ADVANCE(24); END_STATE(); - case 97: - ACCEPT_TOKEN(anon_sym_gen); + case 25: + ACCEPT_TOKEN(anon_sym_COLON_COLON); END_STATE(); - case 98: - ACCEPT_TOKEN(anon_sym_gen); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); + case 26: + ACCEPT_TOKEN(anon_sym_SQUOTE); END_STATE(); - case 99: + case 27: ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); - case 100: + case 28: ACCEPT_TOKEN(anon_sym_DASH); END_STATE(); - case 101: + case 29: ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '>') ADVANCE(69); + if (lookahead == '>') ADVANCE(22); END_STATE(); - case 102: + case 30: ACCEPT_TOKEN(anon_sym_STAR); END_STATE(); - case 103: + case 31: ACCEPT_TOKEN(anon_sym_BANG); END_STATE(); - case 104: + case 32: ACCEPT_TOKEN(anon_sym_BANG); - if (lookahead == '=') ADVANCE(109); + if (lookahead == '=') ADVANCE(37); END_STATE(); - case 105: + case 33: ACCEPT_TOKEN(anon_sym_PIPE); END_STATE(); - case 106: + case 34: ACCEPT_TOKEN(anon_sym_AMP); END_STATE(); - case 107: + case 35: ACCEPT_TOKEN(anon_sym_CARET); END_STATE(); - case 108: + case 36: ACCEPT_TOKEN(anon_sym_EQ_EQ); END_STATE(); - case 109: + case 37: ACCEPT_TOKEN(anon_sym_BANG_EQ); END_STATE(); - case 110: + case 38: ACCEPT_TOKEN(anon_sym_LT); - if (lookahead == '=') ADVANCE(111); + if (lookahead == '=') ADVANCE(39); END_STATE(); - case 111: + case 39: ACCEPT_TOKEN(anon_sym_LT_EQ); END_STATE(); - case 112: + case 40: ACCEPT_TOKEN(anon_sym_GT); - if (lookahead == '=') ADVANCE(113); + if (lookahead == '=') ADVANCE(41); END_STATE(); - case 113: + case 41: ACCEPT_TOKEN(anon_sym_GT_EQ); END_STATE(); - case 114: + case 42: ACCEPT_TOKEN(anon_sym_SLASH); END_STATE(); - case 115: + case 43: ACCEPT_TOKEN(anon_sym_PERCENT); END_STATE(); - case 116: + case 44: ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); - case 117: + case 45: ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); - case 118: + case 46: ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); - case 119: + case 47: ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); - case 120: + case 48: ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); - case 121: + case 49: ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); - case 122: + case 50: ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); - case 123: - ACCEPT_TOKEN(anon_sym_reg); + case 51: + ACCEPT_TOKEN(anon_sym_EQ); + if (lookahead == '=') ADVANCE(36); END_STATE(); - case 124: - ACCEPT_TOKEN(anon_sym_reg); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); + case 52: + ACCEPT_TOKEN(anon_sym_SEMI); END_STATE(); - case 125: - ACCEPT_TOKEN(anon_sym_initial); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); + default: + return false; + } +} + +static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { + START_LEXER(); + eof = lexer->eof(lexer); + switch (state) { + case 0: + if (lookahead == '/') SKIP(1) + if (lookahead == 'e') ADVANCE(2); + if (lookahead == 'f') ADVANCE(3); + if (lookahead == 'g') ADVANCE(4); + if (lookahead == 'i') ADVANCE(5); + if (lookahead == 'm') ADVANCE(6); + if (lookahead == 'r') ADVANCE(7); + if (lookahead == 's') ADVANCE(8); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(0) END_STATE(); - case 126: - ACCEPT_TOKEN(anon_sym_EQ); - if (lookahead == '=') ADVANCE(108); + case 1: + if (lookahead == '*') SKIP(9) + if (lookahead == '/') SKIP(10) END_STATE(); - case 127: - ACCEPT_TOKEN(anon_sym_if); + case 2: + if (lookahead == 'l') ADVANCE(11); + END_STATE(); + case 3: + if (lookahead == 'o') ADVANCE(12); + END_STATE(); + case 4: + if (lookahead == 'e') ADVANCE(13); + END_STATE(); + case 5: + if (lookahead == 'f') ADVANCE(14); + if (lookahead == 'n') ADVANCE(15); + END_STATE(); + case 6: + if (lookahead == 'o') ADVANCE(16); + END_STATE(); + case 7: + if (lookahead == 'e') ADVANCE(17); + END_STATE(); + case 8: + if (lookahead == 't') ADVANCE(18); + END_STATE(); + case 9: + if (lookahead == '*') SKIP(19) + if (lookahead != 0) SKIP(9) + END_STATE(); + case 10: + if (lookahead == '\n') SKIP(0) + if (lookahead != 0) SKIP(10) + END_STATE(); + case 11: + if (lookahead == 's') ADVANCE(20); + END_STATE(); + case 12: + if (lookahead == 'r') ADVANCE(21); + END_STATE(); + case 13: + if (lookahead == 'n') ADVANCE(22); END_STATE(); - case 128: + case 14: ACCEPT_TOKEN(anon_sym_if); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); - case 129: - ACCEPT_TOKEN(anon_sym_else); + case 15: + ACCEPT_TOKEN(anon_sym_in); + if (lookahead == 'i') ADVANCE(23); END_STATE(); - case 130: - ACCEPT_TOKEN(anon_sym_else); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); + case 16: + if (lookahead == 'd') ADVANCE(24); END_STATE(); - case 131: - ACCEPT_TOKEN(anon_sym_for); + case 17: + if (lookahead == 'g') ADVANCE(25); + END_STATE(); + case 18: + if (lookahead == 'a') ADVANCE(26); + END_STATE(); + case 19: + if (lookahead == '*') SKIP(19) + if (lookahead == '/') SKIP(0) + if (lookahead != 0) SKIP(27) + END_STATE(); + case 20: + if (lookahead == 'e') ADVANCE(28); END_STATE(); - case 132: + case 21: ACCEPT_TOKEN(anon_sym_for); - if (sym_identifier_character_set_3(lookahead)) ADVANCE(91); END_STATE(); - case 133: - ACCEPT_TOKEN(anon_sym_in); + case 22: + ACCEPT_TOKEN(anon_sym_gen); END_STATE(); - case 134: - ACCEPT_TOKEN(anon_sym_SEMI); + case 23: + if (lookahead == 't') ADVANCE(29); + END_STATE(); + case 24: + if (lookahead == 'u') ADVANCE(30); + END_STATE(); + case 25: + ACCEPT_TOKEN(anon_sym_reg); + END_STATE(); + case 26: + if (lookahead == 't') ADVANCE(31); + END_STATE(); + case 27: + if (lookahead == '*') SKIP(32) + if (lookahead != 0) SKIP(27) + END_STATE(); + case 28: + ACCEPT_TOKEN(anon_sym_else); + END_STATE(); + case 29: + if (lookahead == 'i') ADVANCE(33); + END_STATE(); + case 30: + if (lookahead == 'l') ADVANCE(34); + END_STATE(); + case 31: + if (lookahead == 'e') ADVANCE(35); + END_STATE(); + case 32: + if (lookahead == '*') SKIP(32) + if (lookahead == '/') SKIP(0) + if (lookahead != 0) SKIP(27) + END_STATE(); + case 33: + if (lookahead == 'a') ADVANCE(36); + END_STATE(); + case 34: + if (lookahead == 'e') ADVANCE(37); + END_STATE(); + case 35: + ACCEPT_TOKEN(anon_sym_state); + END_STATE(); + case 36: + if (lookahead == 'l') ADVANCE(38); + END_STATE(); + case 37: + ACCEPT_TOKEN(anon_sym_module); + END_STATE(); + case 38: + ACCEPT_TOKEN(anon_sym_initial); END_STATE(); default: return false; @@ -3153,103 +2313,103 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { static const TSLexMode ts_lex_modes[STATE_COUNT] = { [0] = {.lex_state = 0}, [1] = {.lex_state = 0}, - [2] = {.lex_state = 9}, - [3] = {.lex_state = 9}, - [4] = {.lex_state = 9}, - [5] = {.lex_state = 9}, - [6] = {.lex_state = 9}, - [7] = {.lex_state = 9}, - [8] = {.lex_state = 9}, - [9] = {.lex_state = 10}, - [10] = {.lex_state = 10}, - [11] = {.lex_state = 14}, - [12] = {.lex_state = 14}, - [13] = {.lex_state = 14}, - [14] = {.lex_state = 14}, - [15] = {.lex_state = 14}, - [16] = {.lex_state = 10}, - [17] = {.lex_state = 11}, - [18] = {.lex_state = 14}, - [19] = {.lex_state = 11}, - [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 = 12}, - [34] = {.lex_state = 12}, - [35] = {.lex_state = 15}, - [36] = {.lex_state = 14}, - [37] = {.lex_state = 14}, - [38] = {.lex_state = 14}, - [39] = {.lex_state = 14}, - [40] = {.lex_state = 14}, - [41] = {.lex_state = 14}, - [42] = {.lex_state = 8}, - [43] = {.lex_state = 8}, - [44] = {.lex_state = 13}, - [45] = {.lex_state = 13}, - [46] = {.lex_state = 13}, - [47] = {.lex_state = 8}, - [48] = {.lex_state = 9}, - [49] = {.lex_state = 8}, - [50] = {.lex_state = 16}, - [51] = {.lex_state = 16}, - [52] = {.lex_state = 8}, - [53] = {.lex_state = 8}, - [54] = {.lex_state = 16}, - [55] = {.lex_state = 8}, - [56] = {.lex_state = 8}, - [57] = {.lex_state = 8}, - [58] = {.lex_state = 8}, - [59] = {.lex_state = 8}, - [60] = {.lex_state = 8}, - [61] = {.lex_state = 16}, - [62] = {.lex_state = 8}, - [63] = {.lex_state = 8}, - [64] = {.lex_state = 9}, - [65] = {.lex_state = 8}, - [66] = {.lex_state = 8}, - [67] = {.lex_state = 8}, - [68] = {.lex_state = 8}, - [69] = {.lex_state = 8}, - [70] = {.lex_state = 8}, - [71] = {.lex_state = 14}, - [72] = {.lex_state = 8}, - [73] = {.lex_state = 8}, - [74] = {.lex_state = 9}, - [75] = {.lex_state = 8}, - [76] = {.lex_state = 16}, - [77] = {.lex_state = 9}, - [78] = {.lex_state = 8}, - [79] = {.lex_state = 9}, - [80] = {.lex_state = 8}, - [81] = {.lex_state = 9}, - [82] = {.lex_state = 14}, - [83] = {.lex_state = 14}, - [84] = {.lex_state = 16}, - [85] = {.lex_state = 15}, - [86] = {.lex_state = 14}, - [87] = {.lex_state = 14}, - [88] = {.lex_state = 14}, - [89] = {.lex_state = 15}, - [90] = {.lex_state = 15}, - [91] = {.lex_state = 15}, - [92] = {.lex_state = 15}, - [93] = {.lex_state = 15}, - [94] = {.lex_state = 14}, - [95] = {.lex_state = 15}, - [96] = {.lex_state = 14}, - [97] = {.lex_state = 11}, - [98] = {.lex_state = 12}, + [2] = {.lex_state = 12}, + [3] = {.lex_state = 12}, + [4] = {.lex_state = 12}, + [5] = {.lex_state = 12}, + [6] = {.lex_state = 2}, + [7] = {.lex_state = 2}, + [8] = {.lex_state = 12}, + [9] = {.lex_state = 2}, + [10] = {.lex_state = 2}, + [11] = {.lex_state = 2}, + [12] = {.lex_state = 12}, + [13] = {.lex_state = 2}, + [14] = {.lex_state = 12}, + [15] = {.lex_state = 12}, + [16] = {.lex_state = 3}, + [17] = {.lex_state = 3}, + [18] = {.lex_state = 3}, + [19] = {.lex_state = 3}, + [20] = {.lex_state = 3}, + [21] = {.lex_state = 3}, + [22] = {.lex_state = 3}, + [23] = {.lex_state = 3}, + [24] = {.lex_state = 12}, + [25] = {.lex_state = 3}, + [26] = {.lex_state = 3}, + [27] = {.lex_state = 12}, + [28] = {.lex_state = 3}, + [29] = {.lex_state = 3}, + [30] = {.lex_state = 3}, + [31] = {.lex_state = 3}, + [32] = {.lex_state = 12}, + [33] = {.lex_state = 2}, + [34] = {.lex_state = 2}, + [35] = {.lex_state = 2}, + [36] = {.lex_state = 12}, + [37] = {.lex_state = 2}, + [38] = {.lex_state = 2}, + [39] = {.lex_state = 2}, + [40] = {.lex_state = 12}, + [41] = {.lex_state = 12}, + [42] = {.lex_state = 12}, + [43] = {.lex_state = 12}, + [44] = {.lex_state = 12}, + [45] = {.lex_state = 12}, + [46] = {.lex_state = 12}, + [47] = {.lex_state = 12}, + [48] = {.lex_state = 12}, + [49] = {.lex_state = 12}, + [50] = {.lex_state = 12}, + [51] = {.lex_state = 12}, + [52] = {.lex_state = 12}, + [53] = {.lex_state = 12}, + [54] = {.lex_state = 12}, + [55] = {.lex_state = 12}, + [56] = {.lex_state = 12}, + [57] = {.lex_state = 2}, + [58] = {.lex_state = 12}, + [59] = {.lex_state = 12}, + [60] = {.lex_state = 12}, + [61] = {.lex_state = 12}, + [62] = {.lex_state = 12}, + [63] = {.lex_state = 2}, + [64] = {.lex_state = 2}, + [65] = {.lex_state = 2}, + [66] = {.lex_state = 2}, + [67] = {.lex_state = 2}, + [68] = {.lex_state = 2}, + [69] = {.lex_state = 3}, + [70] = {.lex_state = 2}, + [71] = {.lex_state = 12}, + [72] = {.lex_state = 0}, + [73] = {.lex_state = 0}, + [74] = {.lex_state = 0}, + [75] = {.lex_state = 0}, + [76] = {.lex_state = 0}, + [77] = {.lex_state = 0}, + [78] = {.lex_state = 0}, + [79] = {.lex_state = 0}, + [80] = {.lex_state = 0}, + [81] = {.lex_state = 0}, + [82] = {.lex_state = 0}, + [83] = {.lex_state = 0}, + [84] = {.lex_state = 0}, + [85] = {.lex_state = 0}, + [86] = {.lex_state = 0}, + [87] = {.lex_state = 7}, + [88] = {.lex_state = 0}, + [89] = {.lex_state = 0}, + [90] = {.lex_state = 0}, + [91] = {.lex_state = 0}, + [92] = {.lex_state = 0}, + [93] = {.lex_state = 0}, + [94] = {.lex_state = 0}, + [95] = {.lex_state = 0}, + [96] = {.lex_state = 0}, + [97] = {.lex_state = 0}, + [98] = {.lex_state = 0}, [99] = {.lex_state = 0}, [100] = {.lex_state = 0}, [101] = {.lex_state = 0}, @@ -3262,53 +2422,19 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [108] = {.lex_state = 0}, [109] = {.lex_state = 0}, [110] = {.lex_state = 0}, - [111] = {.lex_state = 8}, - [112] = {.lex_state = 8}, + [111] = {.lex_state = 0}, + [112] = {.lex_state = 0}, [113] = {.lex_state = 0}, - [114] = {.lex_state = 8}, - [115] = {.lex_state = 8}, - [116] = {.lex_state = 8}, + [114] = {.lex_state = 0}, + [115] = {.lex_state = 0}, + [116] = {.lex_state = 0}, [117] = {.lex_state = 0}, - [118] = {.lex_state = 38}, - [119] = {.lex_state = 0}, - [120] = {.lex_state = 0}, - [121] = {.lex_state = 8}, - [122] = {.lex_state = 8}, - [123] = {.lex_state = 8}, - [124] = {.lex_state = 0}, - [125] = {.lex_state = 0}, - [126] = {.lex_state = 8}, - [127] = {.lex_state = 8}, - [128] = {.lex_state = 0}, - [129] = {.lex_state = 8}, - [130] = {.lex_state = 8}, - [131] = {.lex_state = 0}, - [132] = {.lex_state = 0}, - [133] = {.lex_state = 0}, - [134] = {.lex_state = 0}, - [135] = {.lex_state = 8}, - [136] = {.lex_state = 0}, - [137] = {.lex_state = 0}, - [138] = {.lex_state = 0}, - [139] = {.lex_state = 0}, - [140] = {.lex_state = 0}, - [141] = {.lex_state = 8}, - [142] = {.lex_state = 0}, - [143] = {.lex_state = 8}, - [144] = {.lex_state = 8}, - [145] = {.lex_state = 8}, - [146] = {.lex_state = 8}, - [147] = {.lex_state = 0}, - [148] = {.lex_state = 8}, - [149] = {.lex_state = 0}, - [150] = {.lex_state = 8}, - [151] = {.lex_state = 8}, - [152] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [0] = { [ts_builtin_sym_end] = ACTIONS(1), + [sym_identifier] = ACTIONS(1), [anon_sym_COLON] = ACTIONS(1), [anon_sym_DASH_GT] = ACTIONS(1), [anon_sym_module] = ACTIONS(1), @@ -3339,6 +2465,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_LBRACE] = ACTIONS(1), [anon_sym_RBRACE] = ACTIONS(1), [anon_sym_reg] = ACTIONS(1), + [anon_sym_initial] = ACTIONS(1), [anon_sym_EQ] = ACTIONS(1), [anon_sym_if] = ACTIONS(1), [anon_sym_else] = ACTIONS(1), @@ -3347,376 +2474,172 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_SEMI] = ACTIONS(1), }, [1] = { - [sym_source_file] = STATE(149), - [sym_module] = STATE(120), - [aux_sym_source_file_repeat1] = STATE(120), + [sym_source_file] = STATE(113), + [sym_module] = STATE(93), + [aux_sym_source_file_repeat1] = STATE(93), [ts_builtin_sym_end] = ACTIONS(3), [anon_sym_module] = ACTIONS(5), }, [2] = { - [sym_global_identifier] = STATE(37), - [sym__maybe_global_identifier] = STATE(21), - [sym_array_type] = STATE(123), - [sym__type] = STATE(123), - [sym_declaration] = STATE(103), - [sym_unary_op] = STATE(36), - [sym_binary_op] = STATE(36), - [sym_array_op] = STATE(36), - [sym_func_call] = STATE(36), - [sym_parenthesis_expression] = STATE(36), - [sym__expression] = STATE(36), - [sym_block] = STATE(81), - [sym_assign_left_side] = STATE(134), - [sym_decl_assign_statement] = STATE(152), - [sym_if_statement] = STATE(81), - [sym_for_statement] = STATE(81), - [sym__statement] = STATE(81), - [aux_sym_block_repeat1] = STATE(6), - [aux_sym_assign_left_side_repeat1] = STATE(17), - [sym_identifier] = ACTIONS(7), - [sym_number] = ACTIONS(9), - [anon_sym_COLON_COLON] = ACTIONS(11), - [anon_sym_state] = ACTIONS(13), - [anon_sym_gen] = ACTIONS(13), - [anon_sym_PLUS] = ACTIONS(15), - [anon_sym_DASH] = ACTIONS(15), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_BANG] = ACTIONS(15), - [anon_sym_PIPE] = ACTIONS(15), - [anon_sym_AMP] = ACTIONS(15), - [anon_sym_CARET] = ACTIONS(15), - [anon_sym_LPAREN] = ACTIONS(17), - [anon_sym_LBRACE] = ACTIONS(19), - [anon_sym_RBRACE] = ACTIONS(21), - [anon_sym_reg] = ACTIONS(23), - [anon_sym_initial] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_for] = ACTIONS(29), - }, - [3] = { - [sym_global_identifier] = STATE(37), - [sym__maybe_global_identifier] = STATE(21), - [sym_array_type] = STATE(123), - [sym__type] = STATE(123), - [sym_declaration] = STATE(103), - [sym_unary_op] = STATE(36), - [sym_binary_op] = STATE(36), - [sym_array_op] = STATE(36), - [sym_func_call] = STATE(36), - [sym_parenthesis_expression] = STATE(36), - [sym__expression] = STATE(36), - [sym_block] = STATE(81), - [sym_assign_left_side] = STATE(134), - [sym_decl_assign_statement] = STATE(152), - [sym_if_statement] = STATE(81), - [sym_for_statement] = STATE(81), - [sym__statement] = STATE(81), + [sym_global_identifier] = STATE(35), + [sym__maybe_global_identifier] = STATE(19), + [sym_array_type] = STATE(98), + [sym__type] = STATE(98), + [sym_declaration] = STATE(79), + [sym_unary_op] = STATE(33), + [sym_binary_op] = STATE(33), + [sym_array_op] = STATE(33), + [sym_func_call] = STATE(33), + [sym_parenthesis_expression] = STATE(33), + [sym__expression] = STATE(33), + [sym_block] = STATE(43), + [sym_assign_left_side] = STATE(104), + [sym_decl_assign_statement] = STATE(109), + [sym_if_statement] = STATE(43), + [sym_for_statement] = STATE(43), + [sym__statement] = STATE(43), [aux_sym_block_repeat1] = STATE(2), - [aux_sym_assign_left_side_repeat1] = STATE(17), - [sym_identifier] = ACTIONS(7), - [sym_number] = ACTIONS(9), - [anon_sym_COLON_COLON] = ACTIONS(11), - [anon_sym_state] = ACTIONS(13), - [anon_sym_gen] = ACTIONS(13), - [anon_sym_PLUS] = ACTIONS(15), - [anon_sym_DASH] = ACTIONS(15), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_BANG] = ACTIONS(15), - [anon_sym_PIPE] = ACTIONS(15), - [anon_sym_AMP] = ACTIONS(15), - [anon_sym_CARET] = ACTIONS(15), - [anon_sym_LPAREN] = ACTIONS(17), - [anon_sym_LBRACE] = ACTIONS(19), - [anon_sym_RBRACE] = ACTIONS(31), - [anon_sym_reg] = ACTIONS(23), - [anon_sym_initial] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_for] = ACTIONS(29), - }, - [4] = { - [sym_global_identifier] = STATE(37), - [sym__maybe_global_identifier] = STATE(21), - [sym_array_type] = STATE(123), - [sym__type] = STATE(123), - [sym_declaration] = STATE(103), - [sym_unary_op] = STATE(36), - [sym_binary_op] = STATE(36), - [sym_array_op] = STATE(36), - [sym_func_call] = STATE(36), - [sym_parenthesis_expression] = STATE(36), - [sym__expression] = STATE(36), - [sym_block] = STATE(81), - [sym_assign_left_side] = STATE(134), - [sym_decl_assign_statement] = STATE(152), - [sym_if_statement] = STATE(81), - [sym_for_statement] = STATE(81), - [sym__statement] = STATE(81), - [aux_sym_block_repeat1] = STATE(6), - [aux_sym_assign_left_side_repeat1] = STATE(17), + [aux_sym_assign_left_side_repeat1] = STATE(14), [sym_identifier] = ACTIONS(7), - [sym_number] = ACTIONS(9), - [anon_sym_COLON_COLON] = ACTIONS(11), - [anon_sym_state] = ACTIONS(13), - [anon_sym_gen] = ACTIONS(13), - [anon_sym_PLUS] = ACTIONS(15), - [anon_sym_DASH] = ACTIONS(15), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_BANG] = ACTIONS(15), - [anon_sym_PIPE] = ACTIONS(15), - [anon_sym_AMP] = ACTIONS(15), - [anon_sym_CARET] = ACTIONS(15), - [anon_sym_LPAREN] = ACTIONS(17), - [anon_sym_LBRACE] = ACTIONS(19), - [anon_sym_RBRACE] = ACTIONS(33), - [anon_sym_reg] = ACTIONS(23), - [anon_sym_initial] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_for] = ACTIONS(29), + [sym_number] = ACTIONS(10), + [anon_sym_COLON_COLON] = ACTIONS(13), + [anon_sym_state] = ACTIONS(16), + [anon_sym_gen] = ACTIONS(16), + [anon_sym_PLUS] = ACTIONS(19), + [anon_sym_DASH] = ACTIONS(19), + [anon_sym_STAR] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(19), + [anon_sym_PIPE] = ACTIONS(19), + [anon_sym_AMP] = ACTIONS(19), + [anon_sym_CARET] = ACTIONS(19), + [anon_sym_LPAREN] = ACTIONS(22), + [anon_sym_LBRACE] = ACTIONS(25), + [anon_sym_RBRACE] = ACTIONS(28), + [anon_sym_reg] = ACTIONS(30), + [anon_sym_initial] = ACTIONS(33), + [anon_sym_if] = ACTIONS(36), + [anon_sym_for] = ACTIONS(39), }, - [5] = { - [sym_global_identifier] = STATE(37), - [sym__maybe_global_identifier] = STATE(21), - [sym_array_type] = STATE(123), - [sym__type] = STATE(123), - [sym_declaration] = STATE(103), - [sym_unary_op] = STATE(36), - [sym_binary_op] = STATE(36), - [sym_array_op] = STATE(36), - [sym_func_call] = STATE(36), - [sym_parenthesis_expression] = STATE(36), - [sym__expression] = STATE(36), - [sym_block] = STATE(81), - [sym_assign_left_side] = STATE(134), - [sym_decl_assign_statement] = STATE(152), - [sym_if_statement] = STATE(81), - [sym_for_statement] = STATE(81), - [sym__statement] = STATE(81), + [3] = { + [sym_global_identifier] = STATE(35), + [sym__maybe_global_identifier] = STATE(19), + [sym_array_type] = STATE(98), + [sym__type] = STATE(98), + [sym_declaration] = STATE(79), + [sym_unary_op] = STATE(33), + [sym_binary_op] = STATE(33), + [sym_array_op] = STATE(33), + [sym_func_call] = STATE(33), + [sym_parenthesis_expression] = STATE(33), + [sym__expression] = STATE(33), + [sym_block] = STATE(43), + [sym_assign_left_side] = STATE(104), + [sym_decl_assign_statement] = STATE(109), + [sym_if_statement] = STATE(43), + [sym_for_statement] = STATE(43), + [sym__statement] = STATE(43), [aux_sym_block_repeat1] = STATE(4), - [aux_sym_assign_left_side_repeat1] = STATE(17), - [sym_identifier] = ACTIONS(7), - [sym_number] = ACTIONS(9), - [anon_sym_COLON_COLON] = ACTIONS(11), - [anon_sym_state] = ACTIONS(13), - [anon_sym_gen] = ACTIONS(13), - [anon_sym_PLUS] = ACTIONS(15), - [anon_sym_DASH] = ACTIONS(15), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_BANG] = ACTIONS(15), - [anon_sym_PIPE] = ACTIONS(15), - [anon_sym_AMP] = ACTIONS(15), - [anon_sym_CARET] = ACTIONS(15), - [anon_sym_LPAREN] = ACTIONS(17), - [anon_sym_LBRACE] = ACTIONS(19), - [anon_sym_RBRACE] = ACTIONS(35), - [anon_sym_reg] = ACTIONS(23), - [anon_sym_initial] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_for] = ACTIONS(29), - }, - [6] = { - [sym_global_identifier] = STATE(37), - [sym__maybe_global_identifier] = STATE(21), - [sym_array_type] = STATE(123), - [sym__type] = STATE(123), - [sym_declaration] = STATE(103), - [sym_unary_op] = STATE(36), - [sym_binary_op] = STATE(36), - [sym_array_op] = STATE(36), - [sym_func_call] = STATE(36), - [sym_parenthesis_expression] = STATE(36), - [sym__expression] = STATE(36), - [sym_block] = STATE(81), - [sym_assign_left_side] = STATE(134), - [sym_decl_assign_statement] = STATE(152), - [sym_if_statement] = STATE(81), - [sym_for_statement] = STATE(81), - [sym__statement] = STATE(81), - [aux_sym_block_repeat1] = STATE(6), - [aux_sym_assign_left_side_repeat1] = STATE(17), - [sym_identifier] = ACTIONS(37), - [sym_number] = ACTIONS(40), - [anon_sym_COLON_COLON] = ACTIONS(43), - [anon_sym_state] = ACTIONS(46), - [anon_sym_gen] = ACTIONS(46), - [anon_sym_PLUS] = ACTIONS(49), - [anon_sym_DASH] = ACTIONS(49), - [anon_sym_STAR] = ACTIONS(49), - [anon_sym_BANG] = ACTIONS(49), - [anon_sym_PIPE] = ACTIONS(49), - [anon_sym_AMP] = ACTIONS(49), - [anon_sym_CARET] = ACTIONS(49), + [aux_sym_assign_left_side_repeat1] = STATE(14), + [sym_identifier] = ACTIONS(42), + [sym_number] = ACTIONS(44), + [anon_sym_COLON_COLON] = ACTIONS(46), + [anon_sym_state] = ACTIONS(48), + [anon_sym_gen] = ACTIONS(48), + [anon_sym_PLUS] = ACTIONS(50), + [anon_sym_DASH] = ACTIONS(50), + [anon_sym_STAR] = ACTIONS(50), + [anon_sym_BANG] = ACTIONS(50), + [anon_sym_PIPE] = ACTIONS(50), + [anon_sym_AMP] = ACTIONS(50), + [anon_sym_CARET] = ACTIONS(50), [anon_sym_LPAREN] = ACTIONS(52), - [anon_sym_LBRACE] = ACTIONS(55), - [anon_sym_RBRACE] = ACTIONS(58), - [anon_sym_reg] = ACTIONS(60), - [anon_sym_initial] = ACTIONS(63), - [anon_sym_if] = ACTIONS(66), - [anon_sym_for] = ACTIONS(69), - }, - [7] = { - [sym_global_identifier] = STATE(37), - [sym__maybe_global_identifier] = STATE(21), - [sym_array_type] = STATE(123), - [sym__type] = STATE(123), - [sym_declaration] = STATE(103), - [sym_unary_op] = STATE(36), - [sym_binary_op] = STATE(36), - [sym_array_op] = STATE(36), - [sym_func_call] = STATE(36), - [sym_parenthesis_expression] = STATE(36), - [sym__expression] = STATE(36), - [sym_block] = STATE(81), - [sym_assign_left_side] = STATE(134), - [sym_decl_assign_statement] = STATE(152), - [sym_if_statement] = STATE(81), - [sym_for_statement] = STATE(81), - [sym__statement] = STATE(81), - [aux_sym_block_repeat1] = STATE(8), - [aux_sym_assign_left_side_repeat1] = STATE(17), - [sym_identifier] = ACTIONS(7), - [sym_number] = ACTIONS(9), - [anon_sym_COLON_COLON] = ACTIONS(11), - [anon_sym_state] = ACTIONS(13), - [anon_sym_gen] = ACTIONS(13), - [anon_sym_PLUS] = ACTIONS(15), - [anon_sym_DASH] = ACTIONS(15), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_BANG] = ACTIONS(15), - [anon_sym_PIPE] = ACTIONS(15), - [anon_sym_AMP] = ACTIONS(15), - [anon_sym_CARET] = ACTIONS(15), - [anon_sym_LPAREN] = ACTIONS(17), - [anon_sym_LBRACE] = ACTIONS(19), - [anon_sym_RBRACE] = ACTIONS(72), - [anon_sym_reg] = ACTIONS(23), - [anon_sym_initial] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_for] = ACTIONS(29), + [anon_sym_LBRACE] = ACTIONS(54), + [anon_sym_RBRACE] = ACTIONS(56), + [anon_sym_reg] = ACTIONS(58), + [anon_sym_initial] = ACTIONS(60), + [anon_sym_if] = ACTIONS(62), + [anon_sym_for] = ACTIONS(64), }, - [8] = { - [sym_global_identifier] = STATE(37), - [sym__maybe_global_identifier] = STATE(21), - [sym_array_type] = STATE(123), - [sym__type] = STATE(123), - [sym_declaration] = STATE(103), - [sym_unary_op] = STATE(36), - [sym_binary_op] = STATE(36), - [sym_array_op] = STATE(36), - [sym_func_call] = STATE(36), - [sym_parenthesis_expression] = STATE(36), - [sym__expression] = STATE(36), - [sym_block] = STATE(81), - [sym_assign_left_side] = STATE(134), - [sym_decl_assign_statement] = STATE(152), - [sym_if_statement] = STATE(81), - [sym_for_statement] = STATE(81), - [sym__statement] = STATE(81), - [aux_sym_block_repeat1] = STATE(6), - [aux_sym_assign_left_side_repeat1] = STATE(17), - [sym_identifier] = ACTIONS(7), - [sym_number] = ACTIONS(9), - [anon_sym_COLON_COLON] = ACTIONS(11), - [anon_sym_state] = ACTIONS(13), - [anon_sym_gen] = ACTIONS(13), - [anon_sym_PLUS] = ACTIONS(15), - [anon_sym_DASH] = ACTIONS(15), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_BANG] = ACTIONS(15), - [anon_sym_PIPE] = ACTIONS(15), - [anon_sym_AMP] = ACTIONS(15), - [anon_sym_CARET] = ACTIONS(15), - [anon_sym_LPAREN] = ACTIONS(17), - [anon_sym_LBRACE] = ACTIONS(19), - [anon_sym_RBRACE] = ACTIONS(74), - [anon_sym_reg] = ACTIONS(23), - [anon_sym_initial] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_for] = ACTIONS(29), + [4] = { + [sym_global_identifier] = STATE(35), + [sym__maybe_global_identifier] = STATE(19), + [sym_array_type] = STATE(98), + [sym__type] = STATE(98), + [sym_declaration] = STATE(79), + [sym_unary_op] = STATE(33), + [sym_binary_op] = STATE(33), + [sym_array_op] = STATE(33), + [sym_func_call] = STATE(33), + [sym_parenthesis_expression] = STATE(33), + [sym__expression] = STATE(33), + [sym_block] = STATE(43), + [sym_assign_left_side] = STATE(104), + [sym_decl_assign_statement] = STATE(109), + [sym_if_statement] = STATE(43), + [sym_for_statement] = STATE(43), + [sym__statement] = STATE(43), + [aux_sym_block_repeat1] = STATE(2), + [aux_sym_assign_left_side_repeat1] = STATE(14), + [sym_identifier] = ACTIONS(42), + [sym_number] = ACTIONS(44), + [anon_sym_COLON_COLON] = ACTIONS(46), + [anon_sym_state] = ACTIONS(48), + [anon_sym_gen] = ACTIONS(48), + [anon_sym_PLUS] = ACTIONS(50), + [anon_sym_DASH] = ACTIONS(50), + [anon_sym_STAR] = ACTIONS(50), + [anon_sym_BANG] = ACTIONS(50), + [anon_sym_PIPE] = ACTIONS(50), + [anon_sym_AMP] = ACTIONS(50), + [anon_sym_CARET] = ACTIONS(50), + [anon_sym_LPAREN] = ACTIONS(52), + [anon_sym_LBRACE] = ACTIONS(54), + [anon_sym_RBRACE] = ACTIONS(66), + [anon_sym_reg] = ACTIONS(58), + [anon_sym_initial] = ACTIONS(60), + [anon_sym_if] = ACTIONS(62), + [anon_sym_for] = ACTIONS(64), }, }; static const uint16_t ts_small_parse_table[] = { [0] = 15, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(9), 1, - sym_number, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(23), 1, - anon_sym_reg, - ACTIONS(25), 1, - anon_sym_initial, - STATE(17), 1, - aux_sym_assign_left_side_repeat1, - STATE(21), 1, - sym__maybe_global_identifier, - STATE(37), 1, - sym_global_identifier, - STATE(103), 1, - sym_declaration, - STATE(136), 1, - sym_assign_left_side, - ACTIONS(13), 2, - anon_sym_state, - anon_sym_gen, - STATE(123), 2, - sym_array_type, - sym__type, - STATE(36), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [59] = 15, - ACTIONS(7), 1, + ACTIONS(42), 1, sym_identifier, - ACTIONS(9), 1, + ACTIONS(44), 1, sym_number, - ACTIONS(11), 1, + ACTIONS(46), 1, anon_sym_COLON_COLON, - ACTIONS(17), 1, + ACTIONS(52), 1, anon_sym_LPAREN, - ACTIONS(23), 1, + ACTIONS(58), 1, anon_sym_reg, - ACTIONS(25), 1, + ACTIONS(60), 1, anon_sym_initial, - STATE(17), 1, + STATE(14), 1, aux_sym_assign_left_side_repeat1, - STATE(21), 1, + STATE(19), 1, sym__maybe_global_identifier, - STATE(37), 1, + STATE(35), 1, sym_global_identifier, - STATE(103), 1, + STATE(79), 1, sym_declaration, - STATE(142), 1, + STATE(111), 1, sym_assign_left_side, - ACTIONS(13), 2, + ACTIONS(48), 2, anon_sym_state, anon_sym_gen, - STATE(123), 2, + STATE(98), 2, sym_array_type, sym__type, - STATE(36), 6, + STATE(33), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(50), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3724,14 +2647,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [118] = 4, - ACTIONS(78), 1, + [59] = 4, + ACTIONS(70), 1, anon_sym_COLON_COLON, - ACTIONS(80), 1, + ACTIONS(72), 1, anon_sym_SLASH, - STATE(13), 1, + STATE(10), 1, aux_sym_global_identifier_repeat1, - ACTIONS(76), 24, + ACTIONS(68), 25, anon_sym_COLON, anon_sym_DASH_GT, sym_identifier, @@ -3755,15 +2678,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, + anon_sym_in, anon_sym_SEMI, - [154] = 4, - ACTIONS(78), 1, + [96] = 4, + ACTIONS(70), 1, anon_sym_COLON_COLON, - ACTIONS(84), 1, + ACTIONS(72), 1, anon_sym_SLASH, - STATE(13), 1, + STATE(9), 1, aux_sym_global_identifier_repeat1, - ACTIONS(82), 24, + ACTIONS(68), 25, anon_sym_COLON, anon_sym_DASH_GT, sym_identifier, @@ -3787,15 +2711,60 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, + anon_sym_in, anon_sym_SEMI, - [190] = 4, - ACTIONS(88), 1, + [133] = 15, + ACTIONS(42), 1, + sym_identifier, + ACTIONS(44), 1, + sym_number, + ACTIONS(46), 1, anon_sym_COLON_COLON, - ACTIONS(91), 1, + ACTIONS(52), 1, + anon_sym_LPAREN, + ACTIONS(58), 1, + anon_sym_reg, + ACTIONS(60), 1, + anon_sym_initial, + STATE(14), 1, + aux_sym_assign_left_side_repeat1, + STATE(19), 1, + sym__maybe_global_identifier, + STATE(35), 1, + sym_global_identifier, + STATE(79), 1, + sym_declaration, + STATE(102), 1, + sym_assign_left_side, + ACTIONS(48), 2, + anon_sym_state, + anon_sym_gen, + STATE(98), 2, + sym_array_type, + sym__type, + STATE(33), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(50), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [192] = 4, + ACTIONS(76), 1, + anon_sym_COLON_COLON, + ACTIONS(79), 1, anon_sym_SLASH, - STATE(13), 1, + STATE(9), 1, aux_sym_global_identifier_repeat1, - ACTIONS(86), 24, + ACTIONS(74), 25, anon_sym_COLON, anon_sym_DASH_GT, sym_identifier, @@ -3819,15 +2788,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, + anon_sym_in, anon_sym_SEMI, - [226] = 4, - ACTIONS(78), 1, + [229] = 4, + ACTIONS(70), 1, anon_sym_COLON_COLON, - ACTIONS(80), 1, + ACTIONS(83), 1, anon_sym_SLASH, - STATE(12), 1, + STATE(9), 1, aux_sym_global_identifier_repeat1, - ACTIONS(76), 24, + ACTIONS(81), 25, anon_sym_COLON, anon_sym_DASH_GT, sym_identifier, @@ -3851,15 +2821,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, + anon_sym_in, anon_sym_SEMI, - [262] = 4, - ACTIONS(78), 1, + [266] = 4, + ACTIONS(70), 1, anon_sym_COLON_COLON, - ACTIONS(95), 1, + ACTIONS(87), 1, anon_sym_SLASH, - STATE(11), 1, + STATE(7), 1, aux_sym_global_identifier_repeat1, - ACTIONS(93), 24, + ACTIONS(85), 25, anon_sym_COLON, anon_sym_DASH_GT, sym_identifier, @@ -3883,72 +2854,33 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, + anon_sym_in, anon_sym_SEMI, - [298] = 14, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(97), 1, - sym_number, - ACTIONS(99), 1, - anon_sym_reg, - ACTIONS(101), 1, - anon_sym_initial, - STATE(19), 1, - aux_sym_assign_left_side_repeat1, - STATE(21), 1, - sym__maybe_global_identifier, - STATE(37), 1, - sym_global_identifier, - STATE(110), 1, - sym_declaration, - ACTIONS(13), 2, - anon_sym_state, - anon_sym_gen, - STATE(123), 2, - sym_array_type, - sym__type, - STATE(39), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [354] = 13, - ACTIONS(7), 1, + [303] = 14, + ACTIONS(42), 1, sym_identifier, - ACTIONS(11), 1, + ACTIONS(46), 1, anon_sym_COLON_COLON, - ACTIONS(17), 1, + ACTIONS(52), 1, anon_sym_LPAREN, - ACTIONS(103), 1, + ACTIONS(89), 1, sym_number, - ACTIONS(105), 1, + ACTIONS(91), 1, anon_sym_reg, - STATE(21), 1, + ACTIONS(93), 1, + anon_sym_initial, + STATE(15), 1, + aux_sym_assign_left_side_repeat1, + STATE(19), 1, sym__maybe_global_identifier, - STATE(37), 1, + STATE(35), 1, sym_global_identifier, - STATE(97), 1, - aux_sym_assign_left_side_repeat1, - STATE(104), 1, + STATE(84), 1, sym_declaration, - ACTIONS(13), 2, + ACTIONS(48), 2, anon_sym_state, anon_sym_gen, - STATE(123), 2, + STATE(98), 2, sym_array_type, sym__type, STATE(38), 6, @@ -3958,7 +2890,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(50), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3966,10 +2898,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [407] = 2, - ACTIONS(91), 1, + [359] = 2, + ACTIONS(79), 1, anon_sym_SLASH, - ACTIONS(86), 25, + ACTIONS(74), 26, anon_sym_COLON, anon_sym_DASH_GT, sym_identifier, @@ -3994,40 +2926,41 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, + anon_sym_in, anon_sym_SEMI, - [438] = 13, - ACTIONS(7), 1, + [391] = 13, + ACTIONS(42), 1, sym_identifier, - ACTIONS(11), 1, + ACTIONS(46), 1, anon_sym_COLON_COLON, - ACTIONS(17), 1, + ACTIONS(52), 1, anon_sym_LPAREN, - ACTIONS(105), 1, - anon_sym_reg, - ACTIONS(107), 1, + ACTIONS(95), 1, sym_number, - STATE(21), 1, + ACTIONS(97), 1, + anon_sym_reg, + STATE(19), 1, sym__maybe_global_identifier, - STATE(37), 1, + STATE(35), 1, sym_global_identifier, - STATE(97), 1, + STATE(71), 1, aux_sym_assign_left_side_repeat1, - STATE(113), 1, + STATE(75), 1, sym_declaration, - ACTIONS(13), 2, + ACTIONS(48), 2, anon_sym_state, anon_sym_gen, - STATE(123), 2, + STATE(98), 2, sym_array_type, sym__type, - STATE(41), 6, + STATE(37), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(50), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4035,75 +2968,59 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [491] = 3, - ACTIONS(111), 1, - anon_sym_SLASH, - STATE(26), 1, - sym_array_bracket_expression, - ACTIONS(109), 23, - anon_sym_COLON, - anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_SEMI, - [523] = 3, - ACTIONS(115), 1, - anon_sym_SLASH, - ACTIONS(117), 1, + [444] = 13, + ACTIONS(42), 1, + sym_identifier, + ACTIONS(46), 1, + anon_sym_COLON_COLON, + ACTIONS(52), 1, anon_sym_LPAREN, - ACTIONS(113), 23, - anon_sym_COLON, - anon_sym_DASH_GT, + ACTIONS(97), 1, + anon_sym_reg, + ACTIONS(99), 1, + sym_number, + STATE(19), 1, + sym__maybe_global_identifier, + STATE(35), 1, + sym_global_identifier, + STATE(71), 1, + aux_sym_assign_left_side_repeat1, + STATE(85), 1, + sym_declaration, + ACTIONS(48), 2, + anon_sym_state, + anon_sym_gen, + STATE(98), 2, + sym_array_type, + sym__type, + STATE(39), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(50), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_SEMI, - [555] = 3, - ACTIONS(121), 1, + [497] = 4, + ACTIONS(105), 1, anon_sym_SLASH, - STATE(26), 1, + STATE(30), 1, sym_array_bracket_expression, - ACTIONS(119), 23, + ACTIONS(103), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(101), 21, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_DASH, - anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -4113,7 +3030,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_PERCENT, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, @@ -4122,22 +3038,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [587] = 7, - ACTIONS(127), 1, + [531] = 7, + ACTIONS(105), 1, + anon_sym_SLASH, + ACTIONS(109), 1, anon_sym_PIPE, - ACTIONS(129), 1, + ACTIONS(111), 1, anon_sym_CARET, - ACTIONS(131), 1, - anon_sym_SLASH, - STATE(26), 1, + STATE(30), 1, sym_array_bracket_expression, - ACTIONS(123), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(125), 2, + ACTIONS(103), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(119), 16, + ACTIONS(107), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(101), 17, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_AMP, @@ -4153,54 +3069,48 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, + anon_sym_in, anon_sym_SEMI, - [626] = 8, - ACTIONS(127), 1, - anon_sym_PIPE, - ACTIONS(129), 1, - anon_sym_CARET, - ACTIONS(131), 1, + [571] = 3, + ACTIONS(115), 1, anon_sym_SLASH, - ACTIONS(133), 1, - anon_sym_AMP, - STATE(26), 1, + STATE(30), 1, sym_array_bracket_expression, - ACTIONS(123), 2, + ACTIONS(113), 23, + anon_sym_COLON, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(125), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(119), 15, - anon_sym_COLON, - anon_sym_DASH_GT, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, + anon_sym_in, anon_sym_SEMI, - [667] = 5, - ACTIONS(131), 1, + [603] = 3, + ACTIONS(119), 1, anon_sym_SLASH, - STATE(26), 1, - sym_array_bracket_expression, - ACTIONS(123), 2, + ACTIONS(121), 1, + anon_sym_LPAREN, + ACTIONS(117), 23, + anon_sym_COLON, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(125), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(119), 18, - anon_sym_COLON, - anon_sym_DASH_GT, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -4210,17 +3120,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, + anon_sym_in, anon_sym_SEMI, - [702] = 2, - ACTIONS(137), 1, + [635] = 3, + ACTIONS(123), 1, anon_sym_SLASH, - ACTIONS(135), 23, + STATE(30), 1, + sym_array_bracket_expression, + ACTIONS(101), 23, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4244,24 +3158,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [731] = 6, - ACTIONS(129), 1, - anon_sym_CARET, - ACTIONS(131), 1, + [667] = 8, + ACTIONS(105), 1, anon_sym_SLASH, - STATE(26), 1, + ACTIONS(109), 1, + anon_sym_PIPE, + ACTIONS(111), 1, + anon_sym_CARET, + ACTIONS(125), 1, + anon_sym_AMP, + STATE(30), 1, sym_array_bracket_expression, - ACTIONS(123), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(125), 2, + ACTIONS(103), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(119), 17, + ACTIONS(107), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(101), 16, anon_sym_COLON, anon_sym_DASH_GT, - anon_sym_PIPE, - anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, @@ -4274,16 +3190,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, + anon_sym_in, anon_sym_SEMI, - [768] = 2, - ACTIONS(141), 1, + [709] = 5, + ACTIONS(105), 1, anon_sym_SLASH, - ACTIONS(139), 23, - anon_sym_COLON, - anon_sym_DASH_GT, + STATE(30), 1, + sym_array_bracket_expression, + ACTIONS(103), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(107), 2, anon_sym_PLUS, anon_sym_DASH, - anon_sym_STAR, + ACTIONS(101), 19, + anon_sym_COLON, + anon_sym_DASH_GT, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -4293,7 +3215,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_PERCENT, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, @@ -4302,22 +3223,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [797] = 4, - ACTIONS(131), 1, + [745] = 6, + ACTIONS(105), 1, anon_sym_SLASH, - STATE(26), 1, + ACTIONS(111), 1, + anon_sym_CARET, + STATE(30), 1, sym_array_bracket_expression, - ACTIONS(125), 2, + ACTIONS(103), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(119), 20, - anon_sym_COLON, - anon_sym_DASH_GT, + ACTIONS(107), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(101), 18, + anon_sym_COLON, + anon_sym_DASH_GT, anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, @@ -4330,38 +3253,48 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, + anon_sym_in, anon_sym_SEMI, - [830] = 2, - ACTIONS(145), 1, - anon_sym_SLASH, - ACTIONS(143), 23, - anon_sym_COLON, - anon_sym_DASH_GT, + [783] = 11, + ACTIONS(42), 1, + sym_identifier, + ACTIONS(46), 1, + anon_sym_COLON_COLON, + ACTIONS(52), 1, + anon_sym_LPAREN, + ACTIONS(99), 1, + sym_number, + STATE(19), 1, + sym__maybe_global_identifier, + STATE(35), 1, + sym_global_identifier, + STATE(85), 1, + sym_declaration, + ACTIONS(48), 2, + anon_sym_state, + anon_sym_gen, + STATE(98), 2, + sym_array_type, + sym__type, + STATE(39), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(50), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_SEMI, - [859] = 2, - ACTIONS(149), 1, + [830] = 2, + ACTIONS(129), 1, anon_sym_SLASH, - ACTIONS(147), 23, + ACTIONS(127), 23, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4385,10 +3318,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [888] = 2, - ACTIONS(153), 1, + [859] = 2, + ACTIONS(133), 1, anon_sym_SLASH, - ACTIONS(151), 23, + ACTIONS(131), 23, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4412,35 +3345,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [917] = 11, - ACTIONS(7), 1, + [888] = 11, + ACTIONS(42), 1, sym_identifier, - ACTIONS(11), 1, + ACTIONS(46), 1, anon_sym_COLON_COLON, - ACTIONS(17), 1, + ACTIONS(52), 1, anon_sym_LPAREN, - ACTIONS(107), 1, + ACTIONS(95), 1, sym_number, - STATE(21), 1, + STATE(19), 1, sym__maybe_global_identifier, - STATE(37), 1, + STATE(35), 1, sym_global_identifier, - STATE(113), 1, + STATE(75), 1, sym_declaration, - ACTIONS(13), 2, + ACTIONS(48), 2, anon_sym_state, anon_sym_gen, - STATE(123), 2, + STATE(98), 2, sym_array_type, sym__type, - STATE(41), 6, + STATE(37), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(50), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4448,46 +3381,37 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [964] = 11, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(103), 1, - sym_number, - STATE(21), 1, - sym__maybe_global_identifier, - STATE(37), 1, - sym_global_identifier, - STATE(104), 1, - sym_declaration, - ACTIONS(13), 2, - anon_sym_state, - anon_sym_gen, - STATE(123), 2, - sym_array_type, - sym__type, - STATE(38), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, + [935] = 2, + ACTIONS(137), 1, + anon_sym_SLASH, + ACTIONS(135), 23, + anon_sym_COLON, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, - anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1011] = 2, - ACTIONS(157), 1, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_SEMI, + [964] = 2, + ACTIONS(141), 1, anon_sym_SLASH, - ACTIONS(155), 23, + ACTIONS(139), 23, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4511,49 +3435,38 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [1040] = 12, - ACTIONS(127), 1, - anon_sym_PIPE, - ACTIONS(129), 1, - anon_sym_CARET, - ACTIONS(131), 1, + [993] = 2, + ACTIONS(145), 1, anon_sym_SLASH, - ACTIONS(133), 1, - anon_sym_AMP, - ACTIONS(163), 1, - anon_sym_COMMA, - ACTIONS(165), 1, - anon_sym_LBRACK, - STATE(26), 1, - sym_array_bracket_expression, - STATE(109), 1, - aux_sym_assign_left_side_repeat2, - ACTIONS(123), 2, + ACTIONS(143), 23, + anon_sym_COLON, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(125), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(159), 4, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_SEMI, - ACTIONS(161), 6, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1087] = 4, - ACTIONS(169), 1, - sym_identifier, - ACTIONS(171), 1, - anon_sym_SLASH, - ACTIONS(173), 1, + anon_sym_PERCENT, + anon_sym_COMMA, + anon_sym_RPAREN, anon_sym_LBRACK, - ACTIONS(167), 19, + anon_sym_RBRACK, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_SEMI, + [1022] = 2, + ACTIONS(149), 1, + anon_sym_SLASH, + ACTIONS(147), 23, + anon_sym_COLON, anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_DASH, @@ -4568,307 +3481,147 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, + anon_sym_in, anon_sym_SEMI, - [1118] = 12, - ACTIONS(127), 1, + [1051] = 2, + ACTIONS(153), 9, + anon_sym_module, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_else, + anon_sym_for, + ACTIONS(151), 13, + ts_builtin_sym_end, + sym_number, + anon_sym_COLON_COLON, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, - ACTIONS(129), 1, + anon_sym_AMP, anon_sym_CARET, - ACTIONS(131), 1, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1078] = 12, + ACTIONS(105), 1, anon_sym_SLASH, - ACTIONS(133), 1, + ACTIONS(109), 1, + anon_sym_PIPE, + ACTIONS(111), 1, + anon_sym_CARET, + ACTIONS(125), 1, anon_sym_AMP, - ACTIONS(163), 1, + ACTIONS(159), 1, anon_sym_COMMA, - ACTIONS(165), 1, + ACTIONS(161), 1, anon_sym_LBRACK, - STATE(26), 1, + STATE(30), 1, sym_array_bracket_expression, - STATE(106), 1, + STATE(77), 1, aux_sym_assign_left_side_repeat2, - ACTIONS(123), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(125), 2, + ACTIONS(103), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(176), 4, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_SEMI, - ACTIONS(161), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [1165] = 10, - ACTIONS(127), 1, - anon_sym_PIPE, - ACTIONS(129), 1, - anon_sym_CARET, - ACTIONS(131), 1, - anon_sym_SLASH, - ACTIONS(133), 1, - anon_sym_AMP, - ACTIONS(165), 1, - anon_sym_LBRACK, - STATE(26), 1, - sym_array_bracket_expression, - ACTIONS(123), 2, + ACTIONS(107), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(125), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(178), 5, + ACTIONS(155), 4, anon_sym_DASH_GT, - anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - ACTIONS(161), 6, + ACTIONS(157), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1207] = 10, - ACTIONS(127), 1, + [1125] = 10, + ACTIONS(105), 1, + anon_sym_SLASH, + ACTIONS(109), 1, anon_sym_PIPE, - ACTIONS(129), 1, + ACTIONS(111), 1, anon_sym_CARET, - ACTIONS(131), 1, - anon_sym_SLASH, - ACTIONS(133), 1, + ACTIONS(125), 1, anon_sym_AMP, - ACTIONS(165), 1, + ACTIONS(161), 1, anon_sym_LBRACK, - STATE(26), 1, + STATE(30), 1, sym_array_bracket_expression, - ACTIONS(123), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(125), 2, + ACTIONS(103), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(180), 5, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_SEMI, - ACTIONS(161), 6, + ACTIONS(107), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(157), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1249] = 10, - ACTIONS(127), 1, - anon_sym_PIPE, - ACTIONS(129), 1, - anon_sym_CARET, - ACTIONS(131), 1, - anon_sym_SLASH, - ACTIONS(133), 1, - anon_sym_AMP, - ACTIONS(165), 1, - anon_sym_LBRACK, - STATE(26), 1, - sym_array_bracket_expression, - ACTIONS(123), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(125), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(182), 5, + ACTIONS(163), 6, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, + anon_sym_in, anon_sym_SEMI, - ACTIONS(161), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [1291] = 8, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(184), 1, - sym_identifier, - ACTIONS(186), 1, - sym_number, - STATE(140), 1, - sym_range, - STATE(21), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(95), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [1328] = 8, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(184), 1, - sym_identifier, - ACTIONS(188), 1, - sym_number, - ACTIONS(190), 1, - anon_sym_RPAREN, - STATE(21), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(71), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [1365] = 2, - ACTIONS(192), 8, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_else, - anon_sym_for, - ACTIONS(194), 12, - sym_number, - anon_sym_COLON_COLON, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1390] = 3, - ACTIONS(200), 1, - anon_sym_else, - ACTIONS(196), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(198), 12, - sym_number, - anon_sym_COLON_COLON, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1417] = 2, - ACTIONS(202), 8, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_else, - anon_sym_for, - ACTIONS(204), 12, - sym_number, - anon_sym_COLON_COLON, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1442] = 7, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(206), 1, + [1168] = 4, + ACTIONS(165), 1, sym_identifier, - ACTIONS(208), 1, - sym_number, - ACTIONS(210), 1, - anon_sym_COLON_COLON, - STATE(21), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(22), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(212), 7, + ACTIONS(169), 1, + anon_sym_SLASH, + ACTIONS(171), 1, + anon_sym_LBRACK, + ACTIONS(167), 19, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, - anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1476] = 2, - ACTIONS(214), 7, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_SEMI, + [1199] = 2, + ACTIONS(176), 9, + anon_sym_module, sym_identifier, anon_sym_state, anon_sym_gen, anon_sym_reg, anon_sym_initial, anon_sym_if, + anon_sym_else, anon_sym_for, - ACTIONS(216), 12, + ACTIONS(174), 13, + ts_builtin_sym_end, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -4881,179 +3634,119 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1500] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(184), 1, - sym_identifier, - ACTIONS(218), 1, - sym_number, - STATE(21), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(87), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, + [1226] = 12, + ACTIONS(105), 1, + anon_sym_SLASH, + ACTIONS(109), 1, anon_sym_PIPE, - anon_sym_AMP, + ACTIONS(111), 1, anon_sym_CARET, - [1534] = 4, - ACTIONS(84), 1, - anon_sym_SLASH, - ACTIONS(220), 1, - anon_sym_COLON_COLON, - STATE(51), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(82), 16, + ACTIONS(125), 1, + anon_sym_AMP, + ACTIONS(159), 1, + anon_sym_COMMA, + ACTIONS(161), 1, + anon_sym_LBRACK, + STATE(30), 1, + sym_array_bracket_expression, + STATE(82), 1, + aux_sym_assign_left_side_repeat2, + ACTIONS(103), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(107), 2, anon_sym_PLUS, anon_sym_DASH, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, + ACTIONS(178), 4, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_SEMI, + ACTIONS(157), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_LBRACK, - anon_sym_in, - [1562] = 4, - ACTIONS(91), 1, + [1273] = 10, + ACTIONS(105), 1, anon_sym_SLASH, - ACTIONS(222), 1, - anon_sym_COLON_COLON, - STATE(51), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(86), 16, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, + ACTIONS(109), 1, anon_sym_PIPE, - anon_sym_AMP, + ACTIONS(111), 1, anon_sym_CARET, + ACTIONS(125), 1, + anon_sym_AMP, + ACTIONS(161), 1, + anon_sym_LBRACK, + STATE(30), 1, + sym_array_bracket_expression, + ACTIONS(103), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(107), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(180), 5, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_SEMI, + ACTIONS(157), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_LBRACK, - anon_sym_in, - [1590] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(184), 1, - sym_identifier, - ACTIONS(225), 1, - sym_number, - STATE(21), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(94), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, + [1315] = 10, + ACTIONS(105), 1, + anon_sym_SLASH, + ACTIONS(109), 1, anon_sym_PIPE, - anon_sym_AMP, + ACTIONS(111), 1, anon_sym_CARET, - [1624] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(184), 1, - sym_identifier, - ACTIONS(227), 1, - sym_number, - STATE(21), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(82), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, + ACTIONS(125), 1, anon_sym_AMP, - anon_sym_CARET, - [1658] = 4, - ACTIONS(80), 1, - anon_sym_SLASH, - ACTIONS(220), 1, - anon_sym_COLON_COLON, - STATE(50), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(76), 16, + ACTIONS(161), 1, + anon_sym_LBRACK, + STATE(30), 1, + sym_array_bracket_expression, + ACTIONS(103), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(107), 2, anon_sym_PLUS, anon_sym_DASH, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, + ACTIONS(182), 5, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_SEMI, + ACTIONS(157), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_LBRACK, - anon_sym_in, - [1686] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(184), 1, + [1357] = 3, + ACTIONS(188), 1, + anon_sym_else, + ACTIONS(184), 7, sym_identifier, - ACTIONS(229), 1, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(186), 12, sym_number, - STATE(21), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(29), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, + anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5061,26 +3754,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1720] = 7, - ACTIONS(11), 1, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1384] = 8, + ACTIONS(46), 1, anon_sym_COLON_COLON, - ACTIONS(17), 1, + ACTIONS(52), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(190), 1, sym_identifier, - ACTIONS(208), 1, + ACTIONS(192), 1, sym_number, - STATE(21), 2, + STATE(105), 1, + sym_range, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(22), 6, + STATE(69), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(50), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5088,26 +3786,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1754] = 7, - ACTIONS(11), 1, + [1421] = 8, + ACTIONS(46), 1, anon_sym_COLON_COLON, - ACTIONS(17), 1, + ACTIONS(52), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(190), 1, sym_identifier, - ACTIONS(231), 1, + ACTIONS(194), 1, sym_number, - STATE(21), 2, + ACTIONS(196), 1, + anon_sym_RPAREN, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(27), 6, + STATE(57), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(50), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5115,26 +3815,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1788] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(184), 1, + [1458] = 2, + ACTIONS(198), 7, sym_identifier, - ACTIONS(233), 1, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(200), 12, sym_number, - STATE(21), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(23), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, + anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5142,26 +3834,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1822] = 7, - ACTIONS(11), 1, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1482] = 7, + ACTIONS(46), 1, anon_sym_COLON_COLON, - ACTIONS(17), 1, + ACTIONS(52), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(190), 1, sym_identifier, - ACTIONS(235), 1, + ACTIONS(202), 1, sym_number, - STATE(21), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(25), 6, + STATE(66), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(50), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5169,26 +3864,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1856] = 7, - ACTIONS(11), 1, + [1516] = 7, + ACTIONS(46), 1, anon_sym_COLON_COLON, - ACTIONS(17), 1, + ACTIONS(52), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(190), 1, sym_identifier, - ACTIONS(237), 1, + ACTIONS(204), 1, sym_number, - STATE(21), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(24), 6, + STATE(18), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(50), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5196,50 +3891,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1890] = 4, - ACTIONS(80), 1, - anon_sym_SLASH, - ACTIONS(220), 1, + [1550] = 7, + ACTIONS(46), 1, anon_sym_COLON_COLON, - STATE(51), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(76), 16, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_LBRACK, - anon_sym_in, - [1918] = 7, - ACTIONS(17), 1, + ACTIONS(52), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(190), 1, sym_identifier, - ACTIONS(210), 1, - anon_sym_COLON_COLON, - ACTIONS(239), 1, + ACTIONS(206), 1, sym_number, - STATE(21), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(89), 6, + STATE(70), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(212), 7, + ACTIONS(50), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5247,75 +3918,53 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1952] = 7, - ACTIONS(11), 1, + [1584] = 7, + ACTIONS(46), 1, anon_sym_COLON_COLON, - ACTIONS(17), 1, + ACTIONS(52), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(190), 1, sym_identifier, - ACTIONS(241), 1, + ACTIONS(208), 1, sym_number, - STATE(21), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(86), 6, + STATE(67), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [1986] = 2, - ACTIONS(202), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(204), 12, - sym_number, - anon_sym_COLON_COLON, + ACTIONS(50), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [2010] = 7, - ACTIONS(11), 1, + anon_sym_CARET, + [1618] = 7, + ACTIONS(46), 1, anon_sym_COLON_COLON, - ACTIONS(17), 1, + ACTIONS(52), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(190), 1, sym_identifier, - ACTIONS(243), 1, + ACTIONS(210), 1, sym_number, - STATE(21), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(88), 6, + STATE(65), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(50), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5323,26 +3972,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2044] = 7, - ACTIONS(11), 1, + [1652] = 7, + ACTIONS(46), 1, anon_sym_COLON_COLON, - ACTIONS(17), 1, + ACTIONS(52), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(190), 1, sym_identifier, - ACTIONS(245), 1, + ACTIONS(212), 1, sym_number, - STATE(21), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(83), 6, + STATE(16), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(50), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5350,26 +3999,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2078] = 7, - ACTIONS(17), 1, + [1686] = 7, + ACTIONS(46), 1, + anon_sym_COLON_COLON, + ACTIONS(52), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(190), 1, sym_identifier, - ACTIONS(210), 1, - anon_sym_COLON_COLON, - ACTIONS(247), 1, + ACTIONS(214), 1, sym_number, - STATE(21), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(90), 6, + STATE(20), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(212), 7, + ACTIONS(50), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5377,26 +4026,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2112] = 7, - ACTIONS(17), 1, + [1720] = 7, + ACTIONS(46), 1, + anon_sym_COLON_COLON, + ACTIONS(52), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(190), 1, sym_identifier, - ACTIONS(210), 1, - anon_sym_COLON_COLON, - ACTIONS(249), 1, + ACTIONS(216), 1, sym_number, - STATE(21), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(91), 6, + STATE(23), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(212), 7, + ACTIONS(50), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5404,26 +4053,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2146] = 7, - ACTIONS(17), 1, + [1754] = 7, + ACTIONS(46), 1, + anon_sym_COLON_COLON, + ACTIONS(52), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(190), 1, sym_identifier, - ACTIONS(210), 1, - anon_sym_COLON_COLON, - ACTIONS(251), 1, + ACTIONS(218), 1, sym_number, - STATE(21), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(85), 6, + STATE(17), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(212), 7, + ACTIONS(50), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5431,26 +4080,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2180] = 7, - ACTIONS(17), 1, + [1788] = 7, + ACTIONS(46), 1, + anon_sym_COLON_COLON, + ACTIONS(52), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(190), 1, sym_identifier, - ACTIONS(210), 1, - anon_sym_COLON_COLON, - ACTIONS(253), 1, + ACTIONS(220), 1, sym_number, - STATE(21), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(92), 6, + STATE(22), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(212), 7, + ACTIONS(50), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5458,58 +4107,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2214] = 12, - ACTIONS(127), 1, - anon_sym_PIPE, - ACTIONS(129), 1, - anon_sym_CARET, - ACTIONS(131), 1, - anon_sym_SLASH, - ACTIONS(133), 1, - anon_sym_AMP, - ACTIONS(165), 1, - anon_sym_LBRACK, - ACTIONS(255), 1, - anon_sym_COMMA, - ACTIONS(257), 1, - anon_sym_RPAREN, - STATE(26), 1, - sym_array_bracket_expression, - STATE(128), 1, - aux_sym_func_call_repeat1, - ACTIONS(123), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(125), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(161), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [2258] = 7, - ACTIONS(11), 1, + [1822] = 7, + ACTIONS(46), 1, anon_sym_COLON_COLON, - ACTIONS(17), 1, + ACTIONS(52), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(190), 1, sym_identifier, - ACTIONS(259), 1, + ACTIONS(222), 1, sym_number, - STATE(21), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(40), 6, + STATE(21), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(50), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5517,26 +4134,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2292] = 7, - ACTIONS(17), 1, + [1856] = 7, + ACTIONS(46), 1, + anon_sym_COLON_COLON, + ACTIONS(52), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(190), 1, sym_identifier, - ACTIONS(210), 1, - anon_sym_COLON_COLON, - ACTIONS(261), 1, + ACTIONS(224), 1, sym_number, - STATE(21), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(93), 6, + STATE(64), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(212), 7, + ACTIONS(50), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5544,48 +4161,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2326] = 2, - ACTIONS(192), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(194), 12, - sym_number, + [1890] = 7, + ACTIONS(46), 1, anon_sym_COLON_COLON, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [2350] = 7, - ACTIONS(17), 1, + ACTIONS(52), 1, anon_sym_LPAREN, - ACTIONS(206), 1, + ACTIONS(190), 1, sym_identifier, - ACTIONS(210), 1, - anon_sym_COLON_COLON, - ACTIONS(263), 1, + ACTIONS(226), 1, sym_number, - STATE(21), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(20), 6, + STATE(34), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(212), 7, + ACTIONS(50), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5593,32 +4188,40 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2384] = 4, - ACTIONS(95), 1, + [1924] = 12, + ACTIONS(105), 1, anon_sym_SLASH, - ACTIONS(220), 1, - anon_sym_COLON_COLON, - STATE(61), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(93), 16, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, + ACTIONS(109), 1, anon_sym_PIPE, - anon_sym_AMP, + ACTIONS(111), 1, anon_sym_CARET, + ACTIONS(125), 1, + anon_sym_AMP, + ACTIONS(161), 1, + anon_sym_LBRACK, + ACTIONS(228), 1, + anon_sym_COMMA, + ACTIONS(230), 1, + anon_sym_RPAREN, + STATE(30), 1, + sym_array_bracket_expression, + STATE(96), 1, + aux_sym_func_call_repeat1, + ACTIONS(103), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(107), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(157), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_LBRACK, - anon_sym_in, - [2412] = 2, - ACTIONS(265), 7, + [1968] = 2, + ACTIONS(232), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -5626,7 +4229,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(267), 12, + ACTIONS(234), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -5639,26 +4242,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [2436] = 7, - ACTIONS(11), 1, + [1992] = 7, + ACTIONS(46), 1, anon_sym_COLON_COLON, - ACTIONS(17), 1, + ACTIONS(52), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(190), 1, sym_identifier, - ACTIONS(269), 1, + ACTIONS(236), 1, sym_number, - STATE(21), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(96), 6, + STATE(68), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(50), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5666,8 +4269,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2470] = 2, - ACTIONS(271), 7, + [2026] = 2, + ACTIONS(238), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -5675,7 +4278,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(273), 12, + ACTIONS(240), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -5688,26 +4291,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [2494] = 7, - ACTIONS(11), 1, + [2050] = 7, + ACTIONS(46), 1, anon_sym_COLON_COLON, - ACTIONS(17), 1, + ACTIONS(52), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(190), 1, sym_identifier, - ACTIONS(263), 1, + ACTIONS(242), 1, sym_number, - STATE(21), 2, + STATE(19), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(20), 6, + STATE(63), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(50), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5715,8 +4318,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2528] = 2, - ACTIONS(275), 7, + [2084] = 2, + ACTIONS(244), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -5724,7 +4327,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(277), 12, + ACTIONS(246), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -5737,412 +4340,243 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [2552] = 10, - ACTIONS(127), 1, - anon_sym_PIPE, - ACTIONS(129), 1, - anon_sym_CARET, - ACTIONS(131), 1, - anon_sym_SLASH, - ACTIONS(133), 1, - anon_sym_AMP, - ACTIONS(165), 1, - anon_sym_LBRACK, - STATE(26), 1, - sym_array_bracket_expression, - ACTIONS(123), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(125), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(279), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - ACTIONS(161), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [2591] = 11, - ACTIONS(127), 1, - anon_sym_PIPE, - ACTIONS(129), 1, - anon_sym_CARET, - ACTIONS(131), 1, - anon_sym_SLASH, - ACTIONS(133), 1, - anon_sym_AMP, - ACTIONS(165), 1, - anon_sym_LBRACK, - ACTIONS(281), 1, - anon_sym_LBRACE, - STATE(26), 1, - sym_array_bracket_expression, - STATE(45), 1, - sym_block, - ACTIONS(123), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(125), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(161), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [2632] = 2, - ACTIONS(91), 1, - anon_sym_SLASH, - ACTIONS(86), 17, - anon_sym_COLON_COLON, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_LBRACK, - anon_sym_in, - [2655] = 7, - ACTIONS(287), 1, - anon_sym_PIPE, - ACTIONS(289), 1, - anon_sym_CARET, - ACTIONS(291), 1, - anon_sym_SLASH, - STATE(26), 1, - sym_array_bracket_expression, - ACTIONS(283), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(285), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(119), 9, - anon_sym_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_LBRACK, - anon_sym_in, - [2687] = 10, - ACTIONS(127), 1, - anon_sym_PIPE, - ACTIONS(129), 1, - anon_sym_CARET, - ACTIONS(131), 1, - anon_sym_SLASH, - ACTIONS(133), 1, - anon_sym_AMP, - ACTIONS(165), 1, - anon_sym_LBRACK, - ACTIONS(293), 1, - anon_sym_RPAREN, - STATE(26), 1, - sym_array_bracket_expression, - ACTIONS(123), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(125), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(161), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [2725] = 10, - ACTIONS(127), 1, - anon_sym_PIPE, - ACTIONS(129), 1, - anon_sym_CARET, - ACTIONS(131), 1, - anon_sym_SLASH, - ACTIONS(133), 1, - anon_sym_AMP, - ACTIONS(165), 1, - anon_sym_LBRACK, - ACTIONS(295), 1, - anon_sym_RBRACK, - STATE(26), 1, - sym_array_bracket_expression, - ACTIONS(123), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(125), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(161), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [2763] = 10, - ACTIONS(127), 1, - anon_sym_PIPE, - ACTIONS(129), 1, - anon_sym_CARET, - ACTIONS(131), 1, - anon_sym_SLASH, - ACTIONS(133), 1, - anon_sym_AMP, - ACTIONS(165), 1, - anon_sym_LBRACK, - ACTIONS(297), 1, - anon_sym_SEMI, - STATE(26), 1, - sym_array_bracket_expression, - ACTIONS(123), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(125), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(161), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [2801] = 10, - ACTIONS(165), 1, - anon_sym_LBRACK, - ACTIONS(180), 1, - anon_sym_in, - ACTIONS(287), 1, + [2108] = 10, + ACTIONS(105), 1, + anon_sym_SLASH, + ACTIONS(109), 1, anon_sym_PIPE, - ACTIONS(289), 1, + ACTIONS(111), 1, anon_sym_CARET, - ACTIONS(291), 1, - anon_sym_SLASH, - ACTIONS(299), 1, + ACTIONS(125), 1, anon_sym_AMP, - STATE(26), 1, + ACTIONS(161), 1, + anon_sym_LBRACK, + STATE(30), 1, sym_array_bracket_expression, - ACTIONS(283), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(285), 2, + ACTIONS(103), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(301), 6, + ACTIONS(107), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(248), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + ACTIONS(157), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2839] = 8, - ACTIONS(287), 1, + [2147] = 11, + ACTIONS(105), 1, + anon_sym_SLASH, + ACTIONS(109), 1, anon_sym_PIPE, - ACTIONS(289), 1, + ACTIONS(111), 1, anon_sym_CARET, - ACTIONS(291), 1, - anon_sym_SLASH, - ACTIONS(299), 1, + ACTIONS(125), 1, anon_sym_AMP, - STATE(26), 1, + ACTIONS(161), 1, + anon_sym_LBRACK, + ACTIONS(250), 1, + anon_sym_LBRACE, + STATE(30), 1, sym_array_bracket_expression, - ACTIONS(283), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(285), 2, + STATE(40), 1, + sym_block, + ACTIONS(103), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(119), 8, + ACTIONS(107), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(157), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_LBRACK, - anon_sym_in, - [2873] = 5, - ACTIONS(291), 1, + [2188] = 10, + ACTIONS(105), 1, anon_sym_SLASH, - STATE(26), 1, + ACTIONS(109), 1, + anon_sym_PIPE, + ACTIONS(111), 1, + anon_sym_CARET, + ACTIONS(125), 1, + anon_sym_AMP, + ACTIONS(161), 1, + anon_sym_LBRACK, + ACTIONS(252), 1, + anon_sym_RPAREN, + STATE(30), 1, sym_array_bracket_expression, - ACTIONS(283), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(285), 2, + ACTIONS(103), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(119), 11, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, + ACTIONS(107), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(157), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_LBRACK, - anon_sym_in, - [2901] = 6, - ACTIONS(289), 1, - anon_sym_CARET, - ACTIONS(291), 1, + [2226] = 10, + ACTIONS(105), 1, anon_sym_SLASH, - STATE(26), 1, + ACTIONS(109), 1, + anon_sym_PIPE, + ACTIONS(111), 1, + anon_sym_CARET, + ACTIONS(125), 1, + anon_sym_AMP, + ACTIONS(161), 1, + anon_sym_LBRACK, + ACTIONS(254), 1, + anon_sym_LBRACE, + STATE(30), 1, sym_array_bracket_expression, - ACTIONS(283), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(285), 2, + ACTIONS(103), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(119), 10, - anon_sym_PIPE, - anon_sym_AMP, + ACTIONS(107), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(157), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_LBRACK, - anon_sym_in, - [2931] = 4, - ACTIONS(291), 1, + [2264] = 10, + ACTIONS(105), 1, anon_sym_SLASH, - STATE(26), 1, + ACTIONS(109), 1, + anon_sym_PIPE, + ACTIONS(111), 1, + anon_sym_CARET, + ACTIONS(125), 1, + anon_sym_AMP, + ACTIONS(161), 1, + anon_sym_LBRACK, + ACTIONS(256), 1, + anon_sym_RBRACK, + STATE(30), 1, sym_array_bracket_expression, - ACTIONS(285), 2, + ACTIONS(103), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(119), 13, + ACTIONS(107), 2, anon_sym_PLUS, anon_sym_DASH, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, + ACTIONS(157), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_LBRACK, - anon_sym_in, - [2957] = 10, - ACTIONS(127), 1, + [2302] = 10, + ACTIONS(105), 1, + anon_sym_SLASH, + ACTIONS(109), 1, anon_sym_PIPE, - ACTIONS(129), 1, + ACTIONS(111), 1, anon_sym_CARET, - ACTIONS(131), 1, - anon_sym_SLASH, - ACTIONS(133), 1, + ACTIONS(125), 1, anon_sym_AMP, - ACTIONS(165), 1, + ACTIONS(161), 1, anon_sym_LBRACK, - ACTIONS(303), 1, - anon_sym_RBRACK, - STATE(26), 1, + ACTIONS(258), 1, + anon_sym_SEMI, + STATE(30), 1, sym_array_bracket_expression, - ACTIONS(123), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(125), 2, + ACTIONS(103), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(161), 6, + ACTIONS(107), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(157), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2995] = 10, - ACTIONS(127), 1, + [2340] = 10, + ACTIONS(105), 1, + anon_sym_SLASH, + ACTIONS(109), 1, anon_sym_PIPE, - ACTIONS(129), 1, + ACTIONS(111), 1, anon_sym_CARET, - ACTIONS(131), 1, - anon_sym_SLASH, - ACTIONS(133), 1, + ACTIONS(125), 1, anon_sym_AMP, - ACTIONS(165), 1, + ACTIONS(161), 1, anon_sym_LBRACK, - ACTIONS(305), 1, + ACTIONS(260), 1, anon_sym_COLON, - STATE(26), 1, + STATE(30), 1, sym_array_bracket_expression, - ACTIONS(123), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(125), 2, + ACTIONS(103), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(161), 6, + ACTIONS(107), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(157), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [3033] = 10, - ACTIONS(127), 1, + [2378] = 10, + ACTIONS(105), 1, + anon_sym_SLASH, + ACTIONS(109), 1, anon_sym_PIPE, - ACTIONS(129), 1, + ACTIONS(111), 1, anon_sym_CARET, - ACTIONS(131), 1, - anon_sym_SLASH, - ACTIONS(133), 1, + ACTIONS(125), 1, anon_sym_AMP, - ACTIONS(165), 1, + ACTIONS(161), 1, anon_sym_LBRACK, - ACTIONS(307), 1, - anon_sym_LBRACE, - STATE(26), 1, + ACTIONS(262), 1, + anon_sym_RBRACK, + STATE(30), 1, sym_array_bracket_expression, - ACTIONS(123), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(125), 2, + ACTIONS(103), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(161), 6, + ACTIONS(107), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(157), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [3071] = 4, - ACTIONS(313), 1, + [2416] = 4, + ACTIONS(268), 1, anon_sym_reg, - STATE(97), 1, + STATE(71), 1, aux_sym_assign_left_side_repeat1, - ACTIONS(309), 3, + ACTIONS(264), 3, sym_identifier, anon_sym_state, anon_sym_gen, - ACTIONS(311), 10, + ACTIONS(266), 10, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -6153,725 +4587,616 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [3095] = 5, - ACTIONS(316), 1, - sym_identifier, - ACTIONS(318), 1, - anon_sym_COLON_COLON, - STATE(147), 1, - sym_declaration, - ACTIONS(320), 2, - anon_sym_state, - anon_sym_gen, - STATE(129), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [3114] = 3, - ACTIONS(324), 1, + [2440] = 3, + ACTIONS(273), 1, anon_sym_SQUOTE, - STATE(108), 1, + STATE(83), 1, sym_latency_specifier, - ACTIONS(322), 5, + ACTIONS(271), 6, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, + anon_sym_in, anon_sym_SEMI, - [3128] = 3, - ACTIONS(324), 1, + [2455] = 3, + ACTIONS(273), 1, anon_sym_SQUOTE, - STATE(105), 1, + STATE(81), 1, sym_latency_specifier, - ACTIONS(326), 5, + ACTIONS(275), 6, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, + anon_sym_in, anon_sym_SEMI, - [3142] = 3, - ACTIONS(330), 1, + [2470] = 5, + ACTIONS(277), 1, + sym_identifier, + ACTIONS(279), 1, + anon_sym_COLON_COLON, + STATE(117), 1, + sym_declaration, + ACTIONS(48), 2, + anon_sym_state, + anon_sym_gen, + STATE(98), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [2489] = 3, + ACTIONS(283), 1, anon_sym_COMMA, - STATE(107), 1, + STATE(76), 1, aux_sym_assign_left_side_repeat2, - ACTIONS(328), 4, + ACTIONS(281), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3155] = 3, - ACTIONS(330), 1, + [2502] = 3, + ACTIONS(283), 1, anon_sym_COMMA, - STATE(107), 1, + STATE(78), 1, aux_sym_assign_left_side_repeat2, - ACTIONS(332), 4, + ACTIONS(285), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3168] = 3, - ACTIONS(330), 1, + [2515] = 3, + ACTIONS(283), 1, anon_sym_COMMA, - STATE(101), 1, + STATE(78), 1, aux_sym_assign_left_side_repeat2, - ACTIONS(334), 4, + ACTIONS(287), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3181] = 3, - ACTIONS(330), 1, + [2528] = 3, + ACTIONS(291), 1, anon_sym_COMMA, - STATE(102), 1, + STATE(78), 1, aux_sym_assign_left_side_repeat2, - ACTIONS(336), 4, + ACTIONS(289), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3194] = 1, - ACTIONS(338), 6, - anon_sym_DASH_GT, + [2541] = 3, + ACTIONS(283), 1, anon_sym_COMMA, + STATE(80), 1, + aux_sym_assign_left_side_repeat2, + ACTIONS(294), 4, + anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, - anon_sym_in, anon_sym_SEMI, - [3203] = 3, - ACTIONS(330), 1, + [2554] = 3, + ACTIONS(283), 1, anon_sym_COMMA, - STATE(107), 1, + STATE(78), 1, aux_sym_assign_left_side_repeat2, - ACTIONS(332), 4, + ACTIONS(287), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3216] = 3, - ACTIONS(342), 1, + [2567] = 1, + ACTIONS(296), 6, + anon_sym_DASH_GT, anon_sym_COMMA, - STATE(107), 1, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_SEMI, + [2576] = 3, + ACTIONS(283), 1, + anon_sym_COMMA, + STATE(78), 1, aux_sym_assign_left_side_repeat2, - ACTIONS(340), 4, + ACTIONS(285), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3229] = 1, - ACTIONS(345), 6, + [2589] = 1, + ACTIONS(298), 6, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [3238] = 3, - ACTIONS(330), 1, - anon_sym_COMMA, - STATE(107), 1, - aux_sym_assign_left_side_repeat2, - ACTIONS(328), 4, + [2598] = 1, + ACTIONS(300), 5, anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3251] = 1, - ACTIONS(347), 5, + [2606] = 1, + ACTIONS(302), 5, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_SEMI, - [3259] = 3, - ACTIONS(318), 1, + [2614] = 3, + ACTIONS(279), 1, anon_sym_COLON_COLON, - ACTIONS(349), 1, + ACTIONS(304), 1, sym_identifier, - STATE(127), 3, + STATE(99), 3, sym_global_identifier, sym_array_type, sym__type, - [3271] = 3, - ACTIONS(318), 1, + [2626] = 4, + ACTIONS(54), 1, + anon_sym_LBRACE, + ACTIONS(306), 1, + anon_sym_COLON, + STATE(101), 1, + sym_block, + STATE(108), 1, + sym_interface_ports, + [2639] = 3, + ACTIONS(308), 1, anon_sym_COLON_COLON, - ACTIONS(349), 1, + STATE(89), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(72), 2, sym_identifier, - STATE(126), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [3283] = 1, - ACTIONS(351), 5, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_SEMI, - [3291] = 3, - ACTIONS(353), 1, + anon_sym_LBRACK, + [2650] = 3, + ACTIONS(308), 1, anon_sym_COLON_COLON, - STATE(115), 1, + STATE(90), 1, aux_sym_global_identifier_repeat1, - ACTIONS(95), 2, + ACTIONS(83), 2, sym_identifier, anon_sym_LBRACK, - [3302] = 3, - ACTIONS(353), 1, + [2661] = 3, + ACTIONS(310), 1, anon_sym_COLON_COLON, - STATE(121), 1, + STATE(90), 1, aux_sym_global_identifier_repeat1, - ACTIONS(80), 2, + ACTIONS(79), 2, sym_identifier, anon_sym_LBRACK, - [3313] = 3, - ACTIONS(353), 1, + [2672] = 3, + ACTIONS(308), 1, anon_sym_COLON_COLON, - STATE(122), 1, + STATE(90), 1, aux_sym_global_identifier_repeat1, - ACTIONS(80), 2, + ACTIONS(72), 2, sym_identifier, anon_sym_LBRACK, - [3324] = 3, - ACTIONS(355), 1, + [2683] = 3, + ACTIONS(308), 1, + anon_sym_COLON_COLON, + STATE(91), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(87), 2, + sym_identifier, + anon_sym_LBRACK, + [2694] = 3, + ACTIONS(5), 1, + anon_sym_module, + ACTIONS(313), 1, ts_builtin_sym_end, - ACTIONS(357), 1, + STATE(94), 2, + sym_module, + aux_sym_source_file_repeat1, + [2705] = 3, + ACTIONS(315), 1, + ts_builtin_sym_end, + ACTIONS(317), 1, anon_sym_module, - STATE(117), 2, + STATE(94), 2, sym_module, aux_sym_source_file_repeat1, - [3335] = 4, - ACTIONS(360), 1, - anon_sym_COLON, - ACTIONS(362), 1, - anon_sym_LBRACE, - STATE(133), 1, - sym_interface_ports, - STATE(139), 1, - sym_block, - [3348] = 3, - ACTIONS(19), 1, + [2716] = 3, + ACTIONS(54), 1, anon_sym_LBRACE, - ACTIONS(364), 1, + ACTIONS(320), 1, anon_sym_if, - STATE(79), 2, + STATE(58), 2, sym_block, sym_if_statement, - [3359] = 3, - ACTIONS(5), 1, - anon_sym_module, - ACTIONS(366), 1, - ts_builtin_sym_end, - STATE(117), 2, - sym_module, - aux_sym_source_file_repeat1, - [3370] = 3, - ACTIONS(368), 1, - anon_sym_COLON_COLON, - STATE(121), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(91), 2, - sym_identifier, - anon_sym_LBRACK, - [3381] = 3, - ACTIONS(353), 1, - anon_sym_COLON_COLON, - STATE(121), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(84), 2, - sym_identifier, - anon_sym_LBRACK, - [3392] = 3, - ACTIONS(371), 1, - sym_identifier, - ACTIONS(373), 1, - anon_sym_LBRACK, - STATE(135), 1, - sym_array_bracket_expression, - [3402] = 3, + [2727] = 3, ACTIONS(322), 1, - anon_sym_in, - ACTIONS(375), 1, - anon_sym_SQUOTE, - STATE(108), 1, - sym_latency_specifier, - [3412] = 3, - ACTIONS(377), 1, anon_sym_COMMA, - ACTIONS(380), 1, + ACTIONS(324), 1, anon_sym_RPAREN, - STATE(125), 1, + STATE(97), 1, aux_sym_func_call_repeat1, - [3422] = 3, - ACTIONS(373), 1, - anon_sym_LBRACK, - ACTIONS(382), 1, - sym_identifier, - STATE(135), 1, - sym_array_bracket_expression, - [3432] = 3, - ACTIONS(373), 1, - anon_sym_LBRACK, - ACTIONS(384), 1, - sym_identifier, - STATE(135), 1, - sym_array_bracket_expression, - [3442] = 3, - ACTIONS(386), 1, + [2737] = 3, + ACTIONS(326), 1, anon_sym_COMMA, - ACTIONS(388), 1, + ACTIONS(329), 1, anon_sym_RPAREN, - STATE(125), 1, + STATE(97), 1, aux_sym_func_call_repeat1, - [3452] = 3, - ACTIONS(373), 1, + [2747] = 3, + ACTIONS(331), 1, + sym_identifier, + ACTIONS(333), 1, + anon_sym_LBRACK, + STATE(106), 1, + sym_array_bracket_expression, + [2757] = 3, + ACTIONS(333), 1, anon_sym_LBRACK, - ACTIONS(390), 1, + ACTIONS(335), 1, sym_identifier, - STATE(135), 1, + STATE(106), 1, sym_array_bracket_expression, - [3462] = 1, - ACTIONS(91), 3, + [2767] = 1, + ACTIONS(79), 3, sym_identifier, anon_sym_COLON_COLON, anon_sym_LBRACK, - [3468] = 3, - ACTIONS(326), 1, - anon_sym_in, - ACTIONS(375), 1, - anon_sym_SQUOTE, - STATE(105), 1, - sym_latency_specifier, - [3478] = 1, - ACTIONS(392), 2, + [2773] = 1, + ACTIONS(337), 2, ts_builtin_sym_end, anon_sym_module, - [3483] = 2, - ACTIONS(362), 1, + [2778] = 2, + ACTIONS(339), 1, + anon_sym_DASH_GT, + ACTIONS(341), 1, anon_sym_LBRACE, - STATE(132), 1, - sym_block, - [3490] = 2, - ACTIONS(394), 1, + [2785] = 1, + ACTIONS(137), 2, + sym_identifier, + anon_sym_LBRACK, + [2790] = 2, + ACTIONS(343), 1, anon_sym_EQ, - ACTIONS(396), 1, + ACTIONS(345), 1, anon_sym_SEMI, - [3497] = 1, - ACTIONS(398), 2, + [2797] = 2, + ACTIONS(54), 1, + anon_sym_LBRACE, + STATE(62), 1, + sym_block, + [2804] = 1, + ACTIONS(347), 2, sym_identifier, anon_sym_LBRACK, - [3502] = 2, - ACTIONS(400), 1, - anon_sym_DASH_GT, - ACTIONS(402), 1, - anon_sym_LBRACE, - [3509] = 1, - ACTIONS(204), 2, - ts_builtin_sym_end, - anon_sym_module, - [3514] = 1, - ACTIONS(194), 2, - ts_builtin_sym_end, - anon_sym_module, - [3519] = 1, - ACTIONS(404), 2, + [2809] = 1, + ACTIONS(349), 2, ts_builtin_sym_end, anon_sym_module, - [3524] = 2, - ACTIONS(19), 1, + [2814] = 2, + ACTIONS(54), 1, anon_sym_LBRACE, - STATE(77), 1, + STATE(107), 1, sym_block, - [3531] = 1, - ACTIONS(149), 2, + [2821] = 1, + ACTIONS(345), 1, + anon_sym_SEMI, + [2825] = 1, + ACTIONS(351), 1, sym_identifier, - anon_sym_LBRACK, - [3536] = 1, - ACTIONS(406), 1, + [2829] = 1, + ACTIONS(353), 1, anon_sym_LBRACE, - [3540] = 1, - ACTIONS(408), 1, + [2833] = 1, + ACTIONS(355), 1, sym_identifier, - [3544] = 1, - ACTIONS(410), 1, + [2837] = 1, + ACTIONS(357), 1, + ts_builtin_sym_end, + [2841] = 1, + ACTIONS(359), 1, sym_identifier, - [3548] = 1, - ACTIONS(412), 1, + [2845] = 1, + ACTIONS(361), 1, sym_identifier, - [3552] = 1, - ACTIONS(414), 1, + [2849] = 1, + ACTIONS(363), 1, sym_identifier, - [3556] = 1, - ACTIONS(416), 1, + [2853] = 1, + ACTIONS(365), 1, anon_sym_in, - [3560] = 1, - ACTIONS(418), 1, - sym_identifier, - [3564] = 1, - ACTIONS(420), 1, - ts_builtin_sym_end, - [3568] = 1, - ACTIONS(422), 1, - sym_identifier, - [3572] = 1, - ACTIONS(424), 1, - sym_identifier, - [3576] = 1, - ACTIONS(396), 1, - anon_sym_SEMI, }; static const uint32_t ts_small_parse_table_map[] = { - [SMALL_STATE(9)] = 0, - [SMALL_STATE(10)] = 59, - [SMALL_STATE(11)] = 118, - [SMALL_STATE(12)] = 154, - [SMALL_STATE(13)] = 190, - [SMALL_STATE(14)] = 226, - [SMALL_STATE(15)] = 262, - [SMALL_STATE(16)] = 298, - [SMALL_STATE(17)] = 354, - [SMALL_STATE(18)] = 407, - [SMALL_STATE(19)] = 438, - [SMALL_STATE(20)] = 491, - [SMALL_STATE(21)] = 523, - [SMALL_STATE(22)] = 555, - [SMALL_STATE(23)] = 587, - [SMALL_STATE(24)] = 626, - [SMALL_STATE(25)] = 667, - [SMALL_STATE(26)] = 702, - [SMALL_STATE(27)] = 731, - [SMALL_STATE(28)] = 768, - [SMALL_STATE(29)] = 797, - [SMALL_STATE(30)] = 830, - [SMALL_STATE(31)] = 859, - [SMALL_STATE(32)] = 888, - [SMALL_STATE(33)] = 917, - [SMALL_STATE(34)] = 964, - [SMALL_STATE(35)] = 1011, - [SMALL_STATE(36)] = 1040, - [SMALL_STATE(37)] = 1087, - [SMALL_STATE(38)] = 1118, - [SMALL_STATE(39)] = 1165, - [SMALL_STATE(40)] = 1207, - [SMALL_STATE(41)] = 1249, - [SMALL_STATE(42)] = 1291, - [SMALL_STATE(43)] = 1328, - [SMALL_STATE(44)] = 1365, - [SMALL_STATE(45)] = 1390, - [SMALL_STATE(46)] = 1417, - [SMALL_STATE(47)] = 1442, - [SMALL_STATE(48)] = 1476, - [SMALL_STATE(49)] = 1500, - [SMALL_STATE(50)] = 1534, - [SMALL_STATE(51)] = 1562, - [SMALL_STATE(52)] = 1590, - [SMALL_STATE(53)] = 1624, - [SMALL_STATE(54)] = 1658, - [SMALL_STATE(55)] = 1686, - [SMALL_STATE(56)] = 1720, - [SMALL_STATE(57)] = 1754, - [SMALL_STATE(58)] = 1788, - [SMALL_STATE(59)] = 1822, - [SMALL_STATE(60)] = 1856, - [SMALL_STATE(61)] = 1890, - [SMALL_STATE(62)] = 1918, - [SMALL_STATE(63)] = 1952, - [SMALL_STATE(64)] = 1986, - [SMALL_STATE(65)] = 2010, - [SMALL_STATE(66)] = 2044, - [SMALL_STATE(67)] = 2078, - [SMALL_STATE(68)] = 2112, - [SMALL_STATE(69)] = 2146, - [SMALL_STATE(70)] = 2180, - [SMALL_STATE(71)] = 2214, - [SMALL_STATE(72)] = 2258, - [SMALL_STATE(73)] = 2292, - [SMALL_STATE(74)] = 2326, - [SMALL_STATE(75)] = 2350, - [SMALL_STATE(76)] = 2384, - [SMALL_STATE(77)] = 2412, - [SMALL_STATE(78)] = 2436, - [SMALL_STATE(79)] = 2470, - [SMALL_STATE(80)] = 2494, - [SMALL_STATE(81)] = 2528, - [SMALL_STATE(82)] = 2552, - [SMALL_STATE(83)] = 2591, - [SMALL_STATE(84)] = 2632, - [SMALL_STATE(85)] = 2655, - [SMALL_STATE(86)] = 2687, - [SMALL_STATE(87)] = 2725, - [SMALL_STATE(88)] = 2763, - [SMALL_STATE(89)] = 2801, - [SMALL_STATE(90)] = 2839, - [SMALL_STATE(91)] = 2873, - [SMALL_STATE(92)] = 2901, - [SMALL_STATE(93)] = 2931, - [SMALL_STATE(94)] = 2957, - [SMALL_STATE(95)] = 2995, - [SMALL_STATE(96)] = 3033, - [SMALL_STATE(97)] = 3071, - [SMALL_STATE(98)] = 3095, - [SMALL_STATE(99)] = 3114, - [SMALL_STATE(100)] = 3128, - [SMALL_STATE(101)] = 3142, - [SMALL_STATE(102)] = 3155, - [SMALL_STATE(103)] = 3168, - [SMALL_STATE(104)] = 3181, - [SMALL_STATE(105)] = 3194, - [SMALL_STATE(106)] = 3203, - [SMALL_STATE(107)] = 3216, - [SMALL_STATE(108)] = 3229, - [SMALL_STATE(109)] = 3238, - [SMALL_STATE(110)] = 3251, - [SMALL_STATE(111)] = 3259, - [SMALL_STATE(112)] = 3271, - [SMALL_STATE(113)] = 3283, - [SMALL_STATE(114)] = 3291, - [SMALL_STATE(115)] = 3302, - [SMALL_STATE(116)] = 3313, - [SMALL_STATE(117)] = 3324, - [SMALL_STATE(118)] = 3335, - [SMALL_STATE(119)] = 3348, - [SMALL_STATE(120)] = 3359, - [SMALL_STATE(121)] = 3370, - [SMALL_STATE(122)] = 3381, - [SMALL_STATE(123)] = 3392, - [SMALL_STATE(124)] = 3402, - [SMALL_STATE(125)] = 3412, - [SMALL_STATE(126)] = 3422, - [SMALL_STATE(127)] = 3432, - [SMALL_STATE(128)] = 3442, - [SMALL_STATE(129)] = 3452, - [SMALL_STATE(130)] = 3462, - [SMALL_STATE(131)] = 3468, - [SMALL_STATE(132)] = 3478, - [SMALL_STATE(133)] = 3483, - [SMALL_STATE(134)] = 3490, - [SMALL_STATE(135)] = 3497, - [SMALL_STATE(136)] = 3502, - [SMALL_STATE(137)] = 3509, - [SMALL_STATE(138)] = 3514, - [SMALL_STATE(139)] = 3519, - [SMALL_STATE(140)] = 3524, - [SMALL_STATE(141)] = 3531, - [SMALL_STATE(142)] = 3536, - [SMALL_STATE(143)] = 3540, - [SMALL_STATE(144)] = 3544, - [SMALL_STATE(145)] = 3548, - [SMALL_STATE(146)] = 3552, - [SMALL_STATE(147)] = 3556, - [SMALL_STATE(148)] = 3560, - [SMALL_STATE(149)] = 3564, - [SMALL_STATE(150)] = 3568, - [SMALL_STATE(151)] = 3572, - [SMALL_STATE(152)] = 3576, + [SMALL_STATE(5)] = 0, + [SMALL_STATE(6)] = 59, + [SMALL_STATE(7)] = 96, + [SMALL_STATE(8)] = 133, + [SMALL_STATE(9)] = 192, + [SMALL_STATE(10)] = 229, + [SMALL_STATE(11)] = 266, + [SMALL_STATE(12)] = 303, + [SMALL_STATE(13)] = 359, + [SMALL_STATE(14)] = 391, + [SMALL_STATE(15)] = 444, + [SMALL_STATE(16)] = 497, + [SMALL_STATE(17)] = 531, + [SMALL_STATE(18)] = 571, + [SMALL_STATE(19)] = 603, + [SMALL_STATE(20)] = 635, + [SMALL_STATE(21)] = 667, + [SMALL_STATE(22)] = 709, + [SMALL_STATE(23)] = 745, + [SMALL_STATE(24)] = 783, + [SMALL_STATE(25)] = 830, + [SMALL_STATE(26)] = 859, + [SMALL_STATE(27)] = 888, + [SMALL_STATE(28)] = 935, + [SMALL_STATE(29)] = 964, + [SMALL_STATE(30)] = 993, + [SMALL_STATE(31)] = 1022, + [SMALL_STATE(32)] = 1051, + [SMALL_STATE(33)] = 1078, + [SMALL_STATE(34)] = 1125, + [SMALL_STATE(35)] = 1168, + [SMALL_STATE(36)] = 1199, + [SMALL_STATE(37)] = 1226, + [SMALL_STATE(38)] = 1273, + [SMALL_STATE(39)] = 1315, + [SMALL_STATE(40)] = 1357, + [SMALL_STATE(41)] = 1384, + [SMALL_STATE(42)] = 1421, + [SMALL_STATE(43)] = 1458, + [SMALL_STATE(44)] = 1482, + [SMALL_STATE(45)] = 1516, + [SMALL_STATE(46)] = 1550, + [SMALL_STATE(47)] = 1584, + [SMALL_STATE(48)] = 1618, + [SMALL_STATE(49)] = 1652, + [SMALL_STATE(50)] = 1686, + [SMALL_STATE(51)] = 1720, + [SMALL_STATE(52)] = 1754, + [SMALL_STATE(53)] = 1788, + [SMALL_STATE(54)] = 1822, + [SMALL_STATE(55)] = 1856, + [SMALL_STATE(56)] = 1890, + [SMALL_STATE(57)] = 1924, + [SMALL_STATE(58)] = 1968, + [SMALL_STATE(59)] = 1992, + [SMALL_STATE(60)] = 2026, + [SMALL_STATE(61)] = 2050, + [SMALL_STATE(62)] = 2084, + [SMALL_STATE(63)] = 2108, + [SMALL_STATE(64)] = 2147, + [SMALL_STATE(65)] = 2188, + [SMALL_STATE(66)] = 2226, + [SMALL_STATE(67)] = 2264, + [SMALL_STATE(68)] = 2302, + [SMALL_STATE(69)] = 2340, + [SMALL_STATE(70)] = 2378, + [SMALL_STATE(71)] = 2416, + [SMALL_STATE(72)] = 2440, + [SMALL_STATE(73)] = 2455, + [SMALL_STATE(74)] = 2470, + [SMALL_STATE(75)] = 2489, + [SMALL_STATE(76)] = 2502, + [SMALL_STATE(77)] = 2515, + [SMALL_STATE(78)] = 2528, + [SMALL_STATE(79)] = 2541, + [SMALL_STATE(80)] = 2554, + [SMALL_STATE(81)] = 2567, + [SMALL_STATE(82)] = 2576, + [SMALL_STATE(83)] = 2589, + [SMALL_STATE(84)] = 2598, + [SMALL_STATE(85)] = 2606, + [SMALL_STATE(86)] = 2614, + [SMALL_STATE(87)] = 2626, + [SMALL_STATE(88)] = 2639, + [SMALL_STATE(89)] = 2650, + [SMALL_STATE(90)] = 2661, + [SMALL_STATE(91)] = 2672, + [SMALL_STATE(92)] = 2683, + [SMALL_STATE(93)] = 2694, + [SMALL_STATE(94)] = 2705, + [SMALL_STATE(95)] = 2716, + [SMALL_STATE(96)] = 2727, + [SMALL_STATE(97)] = 2737, + [SMALL_STATE(98)] = 2747, + [SMALL_STATE(99)] = 2757, + [SMALL_STATE(100)] = 2767, + [SMALL_STATE(101)] = 2773, + [SMALL_STATE(102)] = 2778, + [SMALL_STATE(103)] = 2785, + [SMALL_STATE(104)] = 2790, + [SMALL_STATE(105)] = 2797, + [SMALL_STATE(106)] = 2804, + [SMALL_STATE(107)] = 2809, + [SMALL_STATE(108)] = 2814, + [SMALL_STATE(109)] = 2821, + [SMALL_STATE(110)] = 2825, + [SMALL_STATE(111)] = 2829, + [SMALL_STATE(112)] = 2833, + [SMALL_STATE(113)] = 2837, + [SMALL_STATE(114)] = 2841, + [SMALL_STATE(115)] = 2845, + [SMALL_STATE(116)] = 2849, + [SMALL_STATE(117)] = 2853, }; 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}}, REDUCE(sym_source_file, 0), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), - [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(111), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(34), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(98), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [37] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(15), - [40] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(36), - [43] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(151), - [46] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(111), - [49] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(80), - [52] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(63), - [55] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(5), - [58] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), - [60] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(17), - [63] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(34), - [66] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(66), - [69] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(98), - [72] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), - [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), - [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2), - [78] = {.entry = {.count = 1, .reusable = false}}, SHIFT(145), - [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2), - [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 3), - [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 3), - [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), - [88] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(145), - [91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), - [93] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1), - [95] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1), - [97] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [99] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19), - [101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), - [103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [105] = {.entry = {.count = 1, .reusable = false}}, SHIFT(97), - [107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [109] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 6), - [111] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 6), - [113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [117] = {.entry = {.count = 1, .reusable = false}}, SHIFT(43), - [119] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 20), - [121] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 20), - [123] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), - [125] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), - [127] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57), - [129] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), - [131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [133] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), - [135] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 9), - [137] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 9), - [139] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 5, .production_id = 28), - [141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 5, .production_id = 28), - [143] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 14), - [145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 14), - [147] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 14), - [149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 14), - [151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 4, .production_id = 25), - [153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 4, .production_id = 25), - [155] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 3, .production_id = 16), - [157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 3, .production_id = 16), - [159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_left_side, 1, .production_id = 2), - [161] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60), - [163] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16), - [165] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), + [7] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(11), + [10] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(33), + [13] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(112), + [16] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(86), + [19] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(45), + [22] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(48), + [25] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(3), + [28] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), + [30] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(14), + [33] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(27), + [36] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(55), + [39] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(74), + [42] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), + [44] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [46] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [48] = {.entry = {.count = 1, .reusable = false}}, SHIFT(86), + [50] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [52] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [54] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [56] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [58] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), + [60] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), + [62] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), + [64] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74), + [66] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [68] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2), + [70] = {.entry = {.count = 1, .reusable = false}}, SHIFT(110), + [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2), + [74] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), + [76] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(110), + [79] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), + [81] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 3), + [83] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 3), + [85] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1), + [87] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1), + [89] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [91] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), + [93] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24), + [95] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [97] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), + [99] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [101] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 20), + [103] = {.entry = {.count = 1, .reusable = false}}, SHIFT(50), + [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [107] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49), + [109] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51), + [111] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), + [113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 6), + [115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 6), + [117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [121] = {.entry = {.count = 1, .reusable = false}}, SHIFT(42), + [123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 20), + [125] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), + [127] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 3, .production_id = 16), + [129] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 3, .production_id = 16), + [131] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 14), + [133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 14), + [135] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 14), + [137] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 14), + [139] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 4, .production_id = 25), + [141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 4, .production_id = 25), + [143] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 9), + [145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 9), + [147] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 5, .production_id = 28), + [149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 5, .production_id = 28), + [151] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [153] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), + [155] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_left_side, 1, .production_id = 2), + [157] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), + [159] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12), + [161] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), + [163] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 14), + [165] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type, 1), [167] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), - [169] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type, 1), - [171] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__maybe_global_identifier, 1), - [173] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), REDUCE(sym__type, 1), - [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_left_side, 2, .production_id = 7), - [178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_assign_left_side_repeat2, 2, .production_id = 18), - [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 14), + [169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__maybe_global_identifier, 1), + [171] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), REDUCE(sym__type, 1), + [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 11), + [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3, .production_id = 11), + [178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_left_side, 2, .production_id = 7), + [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_assign_left_side_repeat2, 2, .production_id = 18), [182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_assign_left_side_repeat2, 3, .production_id = 26), - [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), - [194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [196] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 22), - [198] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 22), - [200] = {.entry = {.count = 1, .reusable = false}}, SHIFT(119), - [202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3, .production_id = 11), - [204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 11), - [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), - [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [214] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), - [216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), - [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [220] = {.entry = {.count = 1, .reusable = false}}, SHIFT(150), - [222] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(150), - [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), - [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [255] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), - [257] = {.entry = {.count = 1, .reusable = false}}, SHIFT(32), - [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [265] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5, .production_id = 31), - [267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5, .production_id = 31), - [269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [271] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 30), - [273] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 30), - [275] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 4), - [277] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 4), - [279] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 27), - [281] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3), - [283] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), - [285] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), - [287] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), - [289] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), - [291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [293] = {.entry = {.count = 1, .reusable = false}}, SHIFT(30), - [295] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31), - [297] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 23), - [299] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69), - [301] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), - [303] = {.entry = {.count = 1, .reusable = false}}, SHIFT(141), - [305] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), - [307] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 3, .production_id = 32), - [309] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_assign_left_side_repeat1, 2), - [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2), - [313] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_assign_left_side_repeat1, 2), SHIFT_REPEAT(97), - [316] = {.entry = {.count = 1, .reusable = false}}, SHIFT(114), - [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), - [320] = {.entry = {.count = 1, .reusable = false}}, SHIFT(112), - [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 8), - [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 13), - [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 10), - [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 3, .production_id = 15), - [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 2), - [336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 7), - [338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 24), - [340] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat2, 2, .production_id = 19), - [342] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat2, 2, .production_id = 19), SHIFT_REPEAT(16), - [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 17), - [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat2, 2, .production_id = 18), - [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), - [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat2, 3, .production_id = 26), - [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), - [355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), - [357] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(143), - [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [368] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(146), - [371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [377] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 29), SHIFT_REPEAT(53), - [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 29), - [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), - [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 5), - [394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 9), - [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 3), - [404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 1), - [406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 21), - [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), - [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), - [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), - [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [420] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), - [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [184] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 22), + [186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 22), + [188] = {.entry = {.count = 1, .reusable = false}}, SHIFT(95), + [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 4), + [200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 4), + [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [228] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61), + [230] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29), + [232] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 30), + [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 30), + [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [238] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), + [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), + [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [244] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5, .production_id = 31), + [246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5, .production_id = 31), + [248] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 27), + [250] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3), + [252] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), + [254] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 3, .production_id = 32), + [256] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28), + [258] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 23), + [260] = {.entry = {.count = 1, .reusable = false}}, SHIFT(44), + [262] = {.entry = {.count = 1, .reusable = false}}, SHIFT(103), + [264] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_assign_left_side_repeat1, 2), + [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2), + [268] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_assign_left_side_repeat1, 2), SHIFT_REPEAT(71), + [271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 13), + [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [275] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 8), + [277] = {.entry = {.count = 1, .reusable = false}}, SHIFT(92), + [279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 7), + [283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 3, .production_id = 15), + [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 10), + [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat2, 2, .production_id = 19), + [291] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat2, 2, .production_id = 19), SHIFT_REPEAT(12), + [294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 2), + [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 17), + [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 24), + [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat2, 2, .production_id = 18), + [302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat2, 3, .production_id = 26), + [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [310] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(115), + [313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), + [317] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(116), + [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [326] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 29), SHIFT_REPEAT(61), + [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 29), + [331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 1), + [339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 3), + [343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 9), + [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 5), + [351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 21), + [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [357] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), }; #ifdef __cplusplus @@ -6907,6 +5232,8 @@ extern const TSLanguage *tree_sitter_sus(void) { .alias_sequences = &ts_alias_sequences[0][0], .lex_modes = ts_lex_modes, .lex_fn = ts_lex, + .keyword_lex_fn = ts_lex_keywords, + .keyword_capture_token = sym_identifier, .primary_state_ids = ts_primary_state_ids, }; return &language; From 19d6102e8a333914b096e49e53631e7e92f31720 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Mon, 1 Apr 2024 21:41:45 +0200 Subject: [PATCH 14/49] Use general 'item' and 'content' fields, also io specifically wants declarations now --- grammar.js | 33 +- src/grammar.json | 194 ++- src/node-types.json | 163 +- src/parser.c | 3518 +++++++++++++++++++++---------------------- 4 files changed, 1942 insertions(+), 1966 deletions(-) diff --git a/grammar.js b/grammar.js index 2095823..277bb53 100644 --- a/grammar.js +++ b/grammar.js @@ -26,12 +26,14 @@ module.exports = grammar({ interface_ports : $ => seq( ':', - field('inputs', $.assign_left_side), + optional(field('inputs', $.declaration_list)), optional(seq( '->', - field('outputs', $.assign_left_side) + field('outputs', $.declaration_list) )) ), + declaration_list : $ => sepSeq1(field('item', $.declaration), ','), + module: $ => seq( 'module', field('name', $.identifier), @@ -43,7 +45,7 @@ module.exports = grammar({ global_identifier: $ => prec.left(PREC.namespace_path, seq( optional('::'), - sepSeq1($.identifier, '::') + sepSeq1(field('item', $.identifier), '::') )), _maybe_global_identifier: $ => choice( @@ -104,8 +106,12 @@ module.exports = grammar({ func_call: $ => seq( field('name', $._maybe_global_identifier), + field('arguments', $.parenthesis_expression_list) + ), + + parenthesis_expression_list: $ => seq( '(', - sepSeq(field('argument', $._expression), ','), + sepSeq(field('item', $._expression), ','), ')' ), @@ -139,20 +145,25 @@ module.exports = grammar({ block: $ => seq( '{', - repeat(field('block_statement', $._statement)), + repeat(field('item', $._statement)), '}' ), - assign_left_side: $ => sepSeq1(field('assign_to', seq( - choice( + assign_to: $ => seq( + field('write_modifiers', choice( repeat('reg'), 'initial' - ), - choice( + )), + field('expr_or_decl', choice( $._expression, $.declaration - ) - )), ','), + )) + ), + assign_left_side: $ => sepSeq1( + field('item', $.assign_to), + ',' + ), + decl_assign_statement: $ => seq( field('assign_left', $.assign_left_side), '=', diff --git a/src/grammar.json b/src/grammar.json index 40b576d..c4008f2 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -17,12 +17,20 @@ "value": ":" }, { - "type": "FIELD", - "name": "inputs", - "content": { - "type": "SYMBOL", - "name": "assign_left_side" - } + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "inputs", + "content": { + "type": "SYMBOL", + "name": "declaration_list" + } + }, + { + "type": "BLANK" + } + ] }, { "type": "CHOICE", @@ -39,7 +47,7 @@ "name": "outputs", "content": { "type": "SYMBOL", - "name": "assign_left_side" + "name": "declaration_list" } } ] @@ -51,6 +59,39 @@ } ] }, + "declaration_list": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "item", + "content": { + "type": "SYMBOL", + "name": "declaration" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "FIELD", + "name": "item", + "content": { + "type": "SYMBOL", + "name": "declaration" + } + } + ] + } + } + ] + }, "module": { "type": "SEQ", "members": [ @@ -122,8 +163,12 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "identifier" + "type": "FIELD", + "name": "item", + "content": { + "type": "SYMBOL", + "name": "identifier" + } }, { "type": "REPEAT", @@ -135,8 +180,12 @@ "value": "::" }, { - "type": "SYMBOL", - "name": "identifier" + "type": "FIELD", + "name": "item", + "content": { + "type": "SYMBOL", + "name": "identifier" + } } ] } @@ -621,6 +670,19 @@ "name": "_maybe_global_identifier" } }, + { + "type": "FIELD", + "name": "arguments", + "content": { + "type": "SYMBOL", + "name": "parenthesis_expression_list" + } + } + ] + }, + "parenthesis_expression_list": { + "type": "SEQ", + "members": [ { "type": "STRING", "value": "(" @@ -633,7 +695,7 @@ "members": [ { "type": "FIELD", - "name": "argument", + "name": "item", "content": { "type": "SYMBOL", "name": "_expression" @@ -650,7 +712,7 @@ }, { "type": "FIELD", - "name": "argument", + "name": "item", "content": { "type": "SYMBOL", "name": "_expression" @@ -783,7 +845,7 @@ "type": "REPEAT", "content": { "type": "FIELD", - "name": "block_statement", + "name": "item", "content": { "type": "SYMBOL", "name": "_statement" @@ -796,47 +858,59 @@ } ] }, - "assign_left_side": { + "assign_to": { "type": "SEQ", "members": [ { "type": "FIELD", - "name": "assign_to", + "name": "write_modifiers", "content": { - "type": "SEQ", + "type": "CHOICE", "members": [ { - "type": "CHOICE", - "members": [ - { - "type": "REPEAT", - "content": { - "type": "STRING", - "value": "reg" - } - }, - { - "type": "STRING", - "value": "initial" - } - ] + "type": "REPEAT", + "content": { + "type": "STRING", + "value": "reg" + } }, { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_expression" - }, - { - "type": "SYMBOL", - "name": "declaration" - } - ] + "type": "STRING", + "value": "initial" } ] } }, + { + "type": "FIELD", + "name": "expr_or_decl", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "SYMBOL", + "name": "declaration" + } + ] + } + } + ] + }, + "assign_left_side": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "item", + "content": { + "type": "SYMBOL", + "name": "assign_to" + } + }, { "type": "REPEAT", "content": { @@ -848,40 +922,10 @@ }, { "type": "FIELD", - "name": "assign_to", + "name": "item", "content": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "REPEAT", - "content": { - "type": "STRING", - "value": "reg" - } - }, - { - "type": "STRING", - "value": "initial" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_expression" - }, - { - "type": "SYMBOL", - "name": "declaration" - } - ] - } - ] + "type": "SYMBOL", + "name": "assign_to" } } ] diff --git a/src/node-types.json b/src/node-types.json index d0a6eb9..0011339 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -131,9 +131,25 @@ "type": "assign_left_side", "named": true, "fields": { - "assign_to": { + "item": { "multiple": true, "required": true, + "types": [ + { + "type": "assign_to", + "named": true + } + ] + } + } + }, + { + "type": "assign_to", + "named": true, + "fields": { + "expr_or_decl": { + "multiple": false, + "required": true, "types": [ { "type": "array_op", @@ -159,10 +175,6 @@ "type": "identifier", "named": true }, - { - "type": "initial", - "named": false - }, { "type": "number", "named": true @@ -172,12 +184,22 @@ "named": true }, { - "type": "reg", + "type": "unary_op", + "named": true + } + ] + }, + "write_modifiers": { + "multiple": true, + "required": false, + "types": [ + { + "type": "initial", "named": false }, { - "type": "unary_op", - "named": true + "type": "reg", + "named": false } ] } @@ -331,7 +353,7 @@ "type": "block", "named": true, "fields": { - "block_statement": { + "item": { "multiple": true, "required": false, "types": [ @@ -471,6 +493,22 @@ } } }, + { + "type": "declaration_list", + "named": true, + "fields": { + "item": { + "multiple": true, + "required": true, + "types": [ + { + "type": "declaration", + "named": true + } + ] + } + } + }, { "type": "for_statement", "named": true, @@ -511,40 +549,12 @@ "type": "func_call", "named": true, "fields": { - "argument": { - "multiple": true, - "required": false, + "arguments": { + "multiple": false, + "required": true, "types": [ { - "type": "array_op", - "named": true - }, - { - "type": "binary_op", - "named": true - }, - { - "type": "func_call", - "named": true - }, - { - "type": "global_identifier", - "named": true - }, - { - "type": "identifier", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "parenthesis_expression", - "named": true - }, - { - "type": "unary_op", + "type": "parenthesis_expression_list", "named": true } ] @@ -568,16 +578,17 @@ { "type": "global_identifier", "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - } - ] + "fields": { + "item": { + "multiple": true, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } } }, { @@ -654,10 +665,10 @@ "fields": { "inputs": { "multiple": false, - "required": true, + "required": false, "types": [ { - "type": "assign_left_side", + "type": "declaration_list", "named": true } ] @@ -667,7 +678,7 @@ "required": false, "types": [ { - "type": "assign_left_side", + "type": "declaration_list", "named": true } ] @@ -798,6 +809,50 @@ } } }, + { + "type": "parenthesis_expression_list", + "named": true, + "fields": { + "item": { + "multiple": true, + "required": false, + "types": [ + { + "type": "array_op", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "func_call", + "named": true + }, + { + "type": "global_identifier", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "parenthesis_expression", + "named": true + }, + { + "type": "unary_op", + "named": true + } + ] + } + } + }, { "type": "range", "named": true, diff --git a/src/parser.c b/src/parser.c index 83c87d4..85a2568 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,43 +6,43 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 118 +#define STATE_COUNT 119 #define LARGE_STATE_COUNT 5 -#define SYMBOL_COUNT 69 +#define SYMBOL_COUNT 73 #define ALIAS_COUNT 0 #define TOKEN_COUNT 40 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 26 +#define FIELD_COUNT 27 #define MAX_ALIAS_SEQUENCE_LENGTH 5 -#define PRODUCTION_ID_COUNT 33 +#define PRODUCTION_ID_COUNT 28 enum { sym_identifier = 1, anon_sym_COLON = 2, anon_sym_DASH_GT = 3, - anon_sym_module = 4, - sym_number = 5, - anon_sym_COLON_COLON = 6, - anon_sym_SQUOTE = 7, - anon_sym_state = 8, - anon_sym_gen = 9, - anon_sym_PLUS = 10, - anon_sym_DASH = 11, - anon_sym_STAR = 12, - anon_sym_BANG = 13, - anon_sym_PIPE = 14, - anon_sym_AMP = 15, - anon_sym_CARET = 16, - anon_sym_EQ_EQ = 17, - anon_sym_BANG_EQ = 18, - anon_sym_LT = 19, - anon_sym_LT_EQ = 20, - anon_sym_GT = 21, - anon_sym_GT_EQ = 22, - anon_sym_SLASH = 23, - anon_sym_PERCENT = 24, - anon_sym_LPAREN = 25, - anon_sym_COMMA = 26, + anon_sym_COMMA = 4, + anon_sym_module = 5, + sym_number = 6, + anon_sym_COLON_COLON = 7, + anon_sym_SQUOTE = 8, + anon_sym_state = 9, + anon_sym_gen = 10, + anon_sym_PLUS = 11, + anon_sym_DASH = 12, + anon_sym_STAR = 13, + anon_sym_BANG = 14, + anon_sym_PIPE = 15, + anon_sym_AMP = 16, + anon_sym_CARET = 17, + anon_sym_EQ_EQ = 18, + anon_sym_BANG_EQ = 19, + anon_sym_LT = 20, + anon_sym_LT_EQ = 21, + anon_sym_GT = 22, + anon_sym_GT_EQ = 23, + anon_sym_SLASH = 24, + anon_sym_PERCENT = 25, + anon_sym_LPAREN = 26, anon_sym_RPAREN = 27, anon_sym_LBRACK = 28, anon_sym_RBRACK = 29, @@ -58,33 +58,37 @@ enum { anon_sym_SEMI = 39, sym_source_file = 40, sym_interface_ports = 41, - sym_module = 42, - sym_global_identifier = 43, - sym__maybe_global_identifier = 44, - sym_array_type = 45, - sym__type = 46, - sym_latency_specifier = 47, - sym_declaration = 48, - sym_unary_op = 49, - sym_binary_op = 50, - sym_array_op = 51, - sym_func_call = 52, - sym_parenthesis_expression = 53, - sym_array_bracket_expression = 54, - sym__expression = 55, - sym_range = 56, - sym_block = 57, - sym_assign_left_side = 58, - sym_decl_assign_statement = 59, - sym_if_statement = 60, - sym_for_statement = 61, - sym__statement = 62, - aux_sym_source_file_repeat1 = 63, - aux_sym_global_identifier_repeat1 = 64, - aux_sym_func_call_repeat1 = 65, - aux_sym_block_repeat1 = 66, - aux_sym_assign_left_side_repeat1 = 67, - aux_sym_assign_left_side_repeat2 = 68, + sym_declaration_list = 42, + sym_module = 43, + sym_global_identifier = 44, + sym__maybe_global_identifier = 45, + sym_array_type = 46, + sym__type = 47, + sym_latency_specifier = 48, + sym_declaration = 49, + sym_unary_op = 50, + sym_binary_op = 51, + sym_array_op = 52, + sym_func_call = 53, + sym_parenthesis_expression_list = 54, + sym_parenthesis_expression = 55, + sym_array_bracket_expression = 56, + sym__expression = 57, + sym_range = 58, + sym_block = 59, + sym_assign_to = 60, + sym_assign_left_side = 61, + sym_decl_assign_statement = 62, + sym_if_statement = 63, + sym_for_statement = 64, + sym__statement = 65, + aux_sym_source_file_repeat1 = 66, + aux_sym_declaration_list_repeat1 = 67, + aux_sym_global_identifier_repeat1 = 68, + aux_sym_parenthesis_expression_list_repeat1 = 69, + aux_sym_block_repeat1 = 70, + aux_sym_assign_to_repeat1 = 71, + aux_sym_assign_left_side_repeat1 = 72, }; static const char * const ts_symbol_names[] = { @@ -92,6 +96,7 @@ static const char * const ts_symbol_names[] = { [sym_identifier] = "identifier", [anon_sym_COLON] = ":", [anon_sym_DASH_GT] = "->", + [anon_sym_COMMA] = ",", [anon_sym_module] = "module", [sym_number] = "number", [anon_sym_COLON_COLON] = "::", @@ -114,7 +119,6 @@ static const char * const ts_symbol_names[] = { [anon_sym_SLASH] = "/", [anon_sym_PERCENT] = "%", [anon_sym_LPAREN] = "(", - [anon_sym_COMMA] = ",", [anon_sym_RPAREN] = ")", [anon_sym_LBRACK] = "[", [anon_sym_RBRACK] = "]", @@ -130,6 +134,7 @@ static const char * const ts_symbol_names[] = { [anon_sym_SEMI] = ";", [sym_source_file] = "source_file", [sym_interface_ports] = "interface_ports", + [sym_declaration_list] = "declaration_list", [sym_module] = "module", [sym_global_identifier] = "global_identifier", [sym__maybe_global_identifier] = "_maybe_global_identifier", @@ -141,22 +146,25 @@ static const char * const ts_symbol_names[] = { [sym_binary_op] = "binary_op", [sym_array_op] = "array_op", [sym_func_call] = "func_call", + [sym_parenthesis_expression_list] = "parenthesis_expression_list", [sym_parenthesis_expression] = "parenthesis_expression", [sym_array_bracket_expression] = "array_bracket_expression", [sym__expression] = "_expression", [sym_range] = "range", [sym_block] = "block", + [sym_assign_to] = "assign_to", [sym_assign_left_side] = "assign_left_side", [sym_decl_assign_statement] = "decl_assign_statement", [sym_if_statement] = "if_statement", [sym_for_statement] = "for_statement", [sym__statement] = "_statement", [aux_sym_source_file_repeat1] = "source_file_repeat1", + [aux_sym_declaration_list_repeat1] = "declaration_list_repeat1", [aux_sym_global_identifier_repeat1] = "global_identifier_repeat1", - [aux_sym_func_call_repeat1] = "func_call_repeat1", + [aux_sym_parenthesis_expression_list_repeat1] = "parenthesis_expression_list_repeat1", [aux_sym_block_repeat1] = "block_repeat1", + [aux_sym_assign_to_repeat1] = "assign_to_repeat1", [aux_sym_assign_left_side_repeat1] = "assign_left_side_repeat1", - [aux_sym_assign_left_side_repeat2] = "assign_left_side_repeat2", }; static const TSSymbol ts_symbol_map[] = { @@ -164,6 +172,7 @@ static const TSSymbol ts_symbol_map[] = { [sym_identifier] = sym_identifier, [anon_sym_COLON] = anon_sym_COLON, [anon_sym_DASH_GT] = anon_sym_DASH_GT, + [anon_sym_COMMA] = anon_sym_COMMA, [anon_sym_module] = anon_sym_module, [sym_number] = sym_number, [anon_sym_COLON_COLON] = anon_sym_COLON_COLON, @@ -186,7 +195,6 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_SLASH] = anon_sym_SLASH, [anon_sym_PERCENT] = anon_sym_PERCENT, [anon_sym_LPAREN] = anon_sym_LPAREN, - [anon_sym_COMMA] = anon_sym_COMMA, [anon_sym_RPAREN] = anon_sym_RPAREN, [anon_sym_LBRACK] = anon_sym_LBRACK, [anon_sym_RBRACK] = anon_sym_RBRACK, @@ -202,6 +210,7 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_SEMI] = anon_sym_SEMI, [sym_source_file] = sym_source_file, [sym_interface_ports] = sym_interface_ports, + [sym_declaration_list] = sym_declaration_list, [sym_module] = sym_module, [sym_global_identifier] = sym_global_identifier, [sym__maybe_global_identifier] = sym__maybe_global_identifier, @@ -213,22 +222,25 @@ static const TSSymbol ts_symbol_map[] = { [sym_binary_op] = sym_binary_op, [sym_array_op] = sym_array_op, [sym_func_call] = sym_func_call, + [sym_parenthesis_expression_list] = sym_parenthesis_expression_list, [sym_parenthesis_expression] = sym_parenthesis_expression, [sym_array_bracket_expression] = sym_array_bracket_expression, [sym__expression] = sym__expression, [sym_range] = sym_range, [sym_block] = sym_block, + [sym_assign_to] = sym_assign_to, [sym_assign_left_side] = sym_assign_left_side, [sym_decl_assign_statement] = sym_decl_assign_statement, [sym_if_statement] = sym_if_statement, [sym_for_statement] = sym_for_statement, [sym__statement] = sym__statement, [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1, + [aux_sym_declaration_list_repeat1] = aux_sym_declaration_list_repeat1, [aux_sym_global_identifier_repeat1] = aux_sym_global_identifier_repeat1, - [aux_sym_func_call_repeat1] = aux_sym_func_call_repeat1, + [aux_sym_parenthesis_expression_list_repeat1] = aux_sym_parenthesis_expression_list_repeat1, [aux_sym_block_repeat1] = aux_sym_block_repeat1, + [aux_sym_assign_to_repeat1] = aux_sym_assign_to_repeat1, [aux_sym_assign_left_side_repeat1] = aux_sym_assign_left_side_repeat1, - [aux_sym_assign_left_side_repeat2] = aux_sym_assign_left_side_repeat2, }; static const TSSymbolMetadata ts_symbol_metadata[] = { @@ -248,6 +260,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_COMMA] = { + .visible = true, + .named = false, + }, [anon_sym_module] = { .visible = true, .named = false, @@ -336,10 +352,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_COMMA] = { - .visible = true, - .named = false, - }, [anon_sym_RPAREN] = { .visible = true, .named = false, @@ -400,6 +412,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_declaration_list] = { + .visible = true, + .named = true, + }, [sym_module] = { .visible = true, .named = true, @@ -444,6 +460,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_parenthesis_expression_list] = { + .visible = true, + .named = true, + }, [sym_parenthesis_expression] = { .visible = true, .named = true, @@ -464,6 +484,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_assign_to] = { + .visible = true, + .named = true, + }, [sym_assign_left_side] = { .visible = true, .named = true, @@ -488,11 +512,15 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, + [aux_sym_declaration_list_repeat1] = { + .visible = false, + .named = false, + }, [aux_sym_global_identifier_repeat1] = { .visible = false, .named = false, }, - [aux_sym_func_call_repeat1] = { + [aux_sym_parenthesis_expression_list_repeat1] = { .visible = false, .named = false, }, @@ -500,34 +528,34 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, - [aux_sym_assign_left_side_repeat1] = { + [aux_sym_assign_to_repeat1] = { .visible = false, .named = false, }, - [aux_sym_assign_left_side_repeat2] = { + [aux_sym_assign_left_side_repeat1] = { .visible = false, .named = false, }, }; enum { - field_argument = 1, + field_arguments = 1, field_arr = 2, field_arr_idx = 3, field_assign_left = 4, - field_assign_to = 5, - field_assign_value = 6, - field_block = 7, - field_block_statement = 8, - field_condition = 9, - field_content = 10, - field_declaration_modifiers = 11, - field_else_block = 12, - field_for_decl = 13, - field_for_range = 14, - field_from = 15, - field_inputs = 16, - field_interface_ports = 17, + field_assign_value = 5, + field_block = 6, + field_condition = 7, + field_content = 8, + field_declaration_modifiers = 9, + field_else_block = 10, + field_expr_or_decl = 11, + field_for_decl = 12, + field_for_range = 13, + field_from = 14, + field_inputs = 15, + field_interface_ports = 16, + field_item = 17, field_latency_specifier = 18, field_left = 19, field_name = 20, @@ -537,27 +565,28 @@ enum { field_then_block = 24, field_to = 25, field_type = 26, + field_write_modifiers = 27, }; static const char * const ts_field_names[] = { [0] = NULL, - [field_argument] = "argument", + [field_arguments] = "arguments", [field_arr] = "arr", [field_arr_idx] = "arr_idx", [field_assign_left] = "assign_left", - [field_assign_to] = "assign_to", [field_assign_value] = "assign_value", [field_block] = "block", - [field_block_statement] = "block_statement", [field_condition] = "condition", [field_content] = "content", [field_declaration_modifiers] = "declaration_modifiers", [field_else_block] = "else_block", + [field_expr_or_decl] = "expr_or_decl", [field_for_decl] = "for_decl", [field_for_range] = "for_range", [field_from] = "from", [field_inputs] = "inputs", [field_interface_ports] = "interface_ports", + [field_item] = "item", [field_latency_specifier] = "latency_specifier", [field_left] = "left", [field_name] = "name", @@ -567,6 +596,7 @@ static const char * const ts_field_names[] = { [field_then_block] = "then_block", [field_to] = "to", [field_type] = "type", + [field_write_modifiers] = "write_modifiers", }; static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { @@ -575,33 +605,28 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [3] = {.index = 3, .length = 1}, [4] = {.index = 4, .length = 1}, [5] = {.index = 5, .length = 3}, - [6] = {.index = 8, .length = 2}, - [7] = {.index = 10, .length = 2}, - [8] = {.index = 12, .length = 2}, - [9] = {.index = 14, .length = 2}, - [10] = {.index = 16, .length = 2}, - [11] = {.index = 18, .length = 1}, - [12] = {.index = 19, .length = 2}, - [13] = {.index = 21, .length = 3}, - [14] = {.index = 24, .length = 1}, - [15] = {.index = 25, .length = 3}, - [16] = {.index = 28, .length = 1}, - [17] = {.index = 29, .length = 3}, - [18] = {.index = 32, .length = 1}, - [19] = {.index = 33, .length = 2}, - [20] = {.index = 35, .length = 3}, - [21] = {.index = 38, .length = 2}, - [22] = {.index = 40, .length = 2}, - [23] = {.index = 42, .length = 2}, - [24] = {.index = 44, .length = 4}, - [25] = {.index = 48, .length = 2}, - [26] = {.index = 50, .length = 2}, - [27] = {.index = 52, .length = 1}, - [28] = {.index = 53, .length = 3}, - [29] = {.index = 56, .length = 2}, - [30] = {.index = 58, .length = 3}, - [31] = {.index = 61, .length = 3}, - [32] = {.index = 64, .length = 2}, + [6] = {.index = 8, .length = 1}, + [7] = {.index = 9, .length = 2}, + [8] = {.index = 11, .length = 1}, + [9] = {.index = 12, .length = 2}, + [10] = {.index = 14, .length = 2}, + [11] = {.index = 16, .length = 2}, + [12] = {.index = 18, .length = 2}, + [13] = {.index = 20, .length = 2}, + [14] = {.index = 22, .length = 1}, + [15] = {.index = 23, .length = 2}, + [16] = {.index = 25, .length = 2}, + [17] = {.index = 27, .length = 3}, + [18] = {.index = 30, .length = 2}, + [19] = {.index = 32, .length = 3}, + [20] = {.index = 35, .length = 1}, + [21] = {.index = 36, .length = 2}, + [22] = {.index = 38, .length = 3}, + [23] = {.index = 41, .length = 2}, + [24] = {.index = 43, .length = 4}, + [25] = {.index = 47, .length = 3}, + [26] = {.index = 50, .length = 3}, + [27] = {.index = 53, .length = 2}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -609,21 +634,22 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_block, 2}, {field_name, 1}, [2] = - {field_assign_to, 0}, + {field_item, 0}, [3] = {field_inputs, 1}, [4] = - {field_block_statement, 0}, + {field_expr_or_decl, 0}, [5] = {field_block, 3}, {field_interface_ports, 2}, {field_name, 1}, [8] = - {field_operator, 0}, - {field_right, 1}, - [10] = - {field_assign_to, 0}, - {field_assign_to, 1}, + {field_outputs, 2}, + [9] = + {field_item, 0}, + {field_item, 1, .inherited = true}, + [11] = + {field_item, 1}, [12] = {field_name, 1}, {field_type, 0}, @@ -631,76 +657,59 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_arr, 0}, {field_arr_idx, 1}, [16] = - {field_assign_to, 0}, - {field_assign_to, 1, .inherited = true}, + {field_operator, 0}, + {field_right, 1}, [18] = - {field_block_statement, 1, .inherited = true}, - [19] = - {field_block_statement, 0, .inherited = true}, - {field_block_statement, 1, .inherited = true}, - [21] = + {field_expr_or_decl, 1}, + {field_write_modifiers, 0}, + [20] = + {field_arguments, 1}, + {field_name, 0}, + [22] = + {field_item, 1, .inherited = true}, + [23] = + {field_item, 0, .inherited = true}, + {field_item, 1, .inherited = true}, + [25] = + {field_item, 1}, + {field_item, 2, .inherited = true}, + [27] = {field_declaration_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [24] = - {field_content, 1}, - [25] = - {field_assign_to, 0}, - {field_assign_to, 1}, - {field_assign_to, 2, .inherited = true}, - [28] = - {field_name, 0}, - [29] = + [30] = + {field_inputs, 1}, + {field_outputs, 3}, + [32] = {field_latency_specifier, 2}, {field_name, 1}, {field_type, 0}, - [32] = - {field_assign_to, 1}, - [33] = - {field_assign_to, 0, .inherited = true}, - {field_assign_to, 1, .inherited = true}, [35] = + {field_content, 1}, + [36] = + {field_condition, 1}, + {field_then_block, 2}, + [38] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [38] = - {field_inputs, 1}, - {field_outputs, 3}, - [40] = - {field_condition, 1}, - {field_then_block, 2}, - [42] = + [41] = {field_assign_left, 0}, {field_assign_value, 2}, - [44] = + [43] = {field_declaration_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [48] = - {field_argument, 2}, - {field_name, 0}, - [50] = - {field_assign_to, 1}, - {field_assign_to, 2}, - [52] = - {field_argument, 1}, - [53] = - {field_argument, 2}, - {field_argument, 3, .inherited = true}, - {field_name, 0}, - [56] = - {field_argument, 0, .inherited = true}, - {field_argument, 1, .inherited = true}, - [58] = + [47] = {field_condition, 1}, {field_else_block, 4}, {field_then_block, 2}, - [61] = + [50] = {field_block, 4}, {field_for_decl, 1}, {field_for_range, 3}, - [64] = + [53] = {field_from, 0}, {field_to, 2}, }; @@ -760,8 +769,8 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [43] = 43, [44] = 44, [45] = 45, - [46] = 46, - [47] = 46, + [46] = 38, + [47] = 47, [48] = 48, [49] = 49, [50] = 50, @@ -779,12 +788,12 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [62] = 62, [63] = 63, [64] = 64, - [65] = 65, + [65] = 64, [66] = 66, [67] = 67, [68] = 68, [69] = 69, - [70] = 67, + [70] = 70, [71] = 71, [72] = 72, [73] = 73, @@ -792,46 +801,47 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [75] = 75, [76] = 76, [77] = 77, - [78] = 78, + [78] = 6, [79] = 79, [80] = 80, [81] = 81, - [82] = 82, - [83] = 83, - [84] = 84, + [82] = 8, + [83] = 9, + [84] = 7, [85] = 85, [86] = 86, [87] = 87, - [88] = 6, - [89] = 10, - [90] = 9, - [91] = 7, + [88] = 88, + [89] = 89, + [90] = 90, + [91] = 91, [92] = 92, [93] = 93, [94] = 94, - [95] = 95, + [95] = 11, [96] = 96, [97] = 97, [98] = 98, [99] = 99, - [100] = 13, + [100] = 100, [101] = 101, [102] = 102, - [103] = 28, + [103] = 103, [104] = 104, [105] = 105, [106] = 106, [107] = 107, - [108] = 108, + [108] = 21, [109] = 109, [110] = 110, [111] = 111, [112] = 112, [113] = 113, - [114] = 112, - [115] = 110, + [114] = 114, + [115] = 113, [116] = 116, - [117] = 117, + [117] = 116, + [118] = 118, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -1868,34 +1878,34 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { switch (state) { case 0: if (eof) ADVANCE(19); - if (lookahead == '!') ADVANCE(32); - if (lookahead == '%') ADVANCE(43); - if (lookahead == '&') ADVANCE(34); - if (lookahead == '\'') ADVANCE(26); - if (lookahead == '(') ADVANCE(44); + if (lookahead == '!') ADVANCE(33); + if (lookahead == '%') ADVANCE(44); + if (lookahead == '&') ADVANCE(35); + if (lookahead == '\'') ADVANCE(27); + if (lookahead == '(') ADVANCE(45); if (lookahead == ')') ADVANCE(46); - if (lookahead == '*') ADVANCE(30); - if (lookahead == '+') ADVANCE(27); - if (lookahead == ',') ADVANCE(45); - if (lookahead == '-') ADVANCE(29); + if (lookahead == '*') ADVANCE(31); + if (lookahead == '+') ADVANCE(28); + if (lookahead == ',') ADVANCE(23); + if (lookahead == '-') ADVANCE(30); if (lookahead == '/') SKIP(13) if (lookahead == ':') ADVANCE(21); if (lookahead == ';') ADVANCE(52); - if (lookahead == '<') ADVANCE(38); + if (lookahead == '<') ADVANCE(39); if (lookahead == '=') ADVANCE(51); - if (lookahead == '>') ADVANCE(40); + if (lookahead == '>') ADVANCE(41); if (lookahead == '[') ADVANCE(47); if (lookahead == ']') ADVANCE(48); - if (lookahead == '^') ADVANCE(35); + if (lookahead == '^') ADVANCE(36); if (lookahead == '{') ADVANCE(49); - if (lookahead == '|') ADVANCE(33); + if (lookahead == '|') ADVANCE(34); if (lookahead == '}') ADVANCE(50); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(0) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(24); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(23); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(25); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(24); END_STATE(); case 1: if (lookahead == '\n') SKIP(7) @@ -1903,57 +1913,57 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 2: if (lookahead == '!') ADVANCE(9); - if (lookahead == '%') ADVANCE(43); - if (lookahead == '&') ADVANCE(34); - if (lookahead == '(') ADVANCE(44); + if (lookahead == '%') ADVANCE(44); + if (lookahead == '&') ADVANCE(35); + if (lookahead == '(') ADVANCE(45); if (lookahead == ')') ADVANCE(46); - if (lookahead == '*') ADVANCE(30); - if (lookahead == '+') ADVANCE(27); - if (lookahead == ',') ADVANCE(45); - if (lookahead == '-') ADVANCE(29); - if (lookahead == '/') ADVANCE(42); + if (lookahead == '*') ADVANCE(31); + if (lookahead == '+') ADVANCE(28); + if (lookahead == ',') ADVANCE(23); + if (lookahead == '-') ADVANCE(30); + if (lookahead == '/') ADVANCE(43); if (lookahead == ':') ADVANCE(21); if (lookahead == ';') ADVANCE(52); - if (lookahead == '<') ADVANCE(38); + if (lookahead == '<') ADVANCE(39); if (lookahead == '=') ADVANCE(51); - if (lookahead == '>') ADVANCE(40); + if (lookahead == '>') ADVANCE(41); if (lookahead == '[') ADVANCE(47); if (lookahead == ']') ADVANCE(48); - if (lookahead == '^') ADVANCE(35); + if (lookahead == '^') ADVANCE(36); if (lookahead == '{') ADVANCE(49); - if (lookahead == '|') ADVANCE(33); + if (lookahead == '|') ADVANCE(34); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(2) - if (sym_identifier_character_set_1(lookahead)) ADVANCE(23); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(24); END_STATE(); case 3: if (lookahead == '!') ADVANCE(9); - if (lookahead == '%') ADVANCE(43); - if (lookahead == '&') ADVANCE(34); - if (lookahead == '(') ADVANCE(44); + if (lookahead == '%') ADVANCE(44); + if (lookahead == '&') ADVANCE(35); + if (lookahead == '(') ADVANCE(45); if (lookahead == ')') ADVANCE(46); - if (lookahead == '*') ADVANCE(30); - if (lookahead == '+') ADVANCE(27); - if (lookahead == ',') ADVANCE(45); - if (lookahead == '-') ADVANCE(29); - if (lookahead == '/') ADVANCE(42); + if (lookahead == '*') ADVANCE(31); + if (lookahead == '+') ADVANCE(28); + if (lookahead == ',') ADVANCE(23); + if (lookahead == '-') ADVANCE(30); + if (lookahead == '/') ADVANCE(43); if (lookahead == ':') ADVANCE(20); if (lookahead == ';') ADVANCE(52); - if (lookahead == '<') ADVANCE(38); + if (lookahead == '<') ADVANCE(39); if (lookahead == '=') ADVANCE(51); - if (lookahead == '>') ADVANCE(40); + if (lookahead == '>') ADVANCE(41); if (lookahead == '[') ADVANCE(47); if (lookahead == ']') ADVANCE(48); - if (lookahead == '^') ADVANCE(35); + if (lookahead == '^') ADVANCE(36); if (lookahead == '{') ADVANCE(49); - if (lookahead == '|') ADVANCE(33); + if (lookahead == '|') ADVANCE(34); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(3) - if (sym_identifier_character_set_1(lookahead)) ADVANCE(23); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(24); END_STATE(); case 4: if (lookahead == '*') SKIP(6) @@ -1978,10 +1988,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead == ' ') SKIP(7) END_STATE(); case 8: - if (lookahead == ':') ADVANCE(25); + if (lookahead == ':') ADVANCE(26); END_STATE(); case 9: - if (lookahead == '=') ADVANCE(37); + if (lookahead == '=') ADVANCE(38); END_STATE(); case 10: if (eof) ADVANCE(19); @@ -1995,25 +2005,25 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 12: if (eof) ADVANCE(19); - if (lookahead == '!') ADVANCE(31); - if (lookahead == '&') ADVANCE(34); - if (lookahead == '(') ADVANCE(44); + if (lookahead == '!') ADVANCE(32); + if (lookahead == '&') ADVANCE(35); + if (lookahead == '(') ADVANCE(45); if (lookahead == ')') ADVANCE(46); - if (lookahead == '*') ADVANCE(30); - if (lookahead == '+') ADVANCE(27); - if (lookahead == '-') ADVANCE(28); + if (lookahead == '*') ADVANCE(31); + if (lookahead == '+') ADVANCE(28); + if (lookahead == '-') ADVANCE(29); if (lookahead == '/') SKIP(18) if (lookahead == ':') ADVANCE(8); - if (lookahead == '^') ADVANCE(35); + if (lookahead == '^') ADVANCE(36); if (lookahead == '{') ADVANCE(49); - if (lookahead == '|') ADVANCE(33); + if (lookahead == '|') ADVANCE(34); if (lookahead == '}') ADVANCE(50); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(12) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(24); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(23); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(25); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(24); END_STATE(); case 13: if (eof) ADVANCE(19); @@ -2055,86 +2065,86 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 21: ACCEPT_TOKEN(anon_sym_COLON); - if (lookahead == ':') ADVANCE(25); + if (lookahead == ':') ADVANCE(26); END_STATE(); case 22: ACCEPT_TOKEN(anon_sym_DASH_GT); END_STATE(); case 23: - ACCEPT_TOKEN(sym_identifier); - if (sym_identifier_character_set_2(lookahead)) ADVANCE(23); + ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); case 24: - ACCEPT_TOKEN(sym_number); - if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(24); + ACCEPT_TOKEN(sym_identifier); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(24); END_STATE(); case 25: - ACCEPT_TOKEN(anon_sym_COLON_COLON); + ACCEPT_TOKEN(sym_number); + if (('0' <= lookahead && lookahead <= '9') || + lookahead == '_') ADVANCE(25); END_STATE(); case 26: - ACCEPT_TOKEN(anon_sym_SQUOTE); + ACCEPT_TOKEN(anon_sym_COLON_COLON); END_STATE(); case 27: - ACCEPT_TOKEN(anon_sym_PLUS); + ACCEPT_TOKEN(anon_sym_SQUOTE); END_STATE(); case 28: - ACCEPT_TOKEN(anon_sym_DASH); + ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); case 29: ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '>') ADVANCE(22); END_STATE(); case 30: - ACCEPT_TOKEN(anon_sym_STAR); + ACCEPT_TOKEN(anon_sym_DASH); + if (lookahead == '>') ADVANCE(22); END_STATE(); case 31: - ACCEPT_TOKEN(anon_sym_BANG); + ACCEPT_TOKEN(anon_sym_STAR); END_STATE(); case 32: ACCEPT_TOKEN(anon_sym_BANG); - if (lookahead == '=') ADVANCE(37); END_STATE(); case 33: - ACCEPT_TOKEN(anon_sym_PIPE); + ACCEPT_TOKEN(anon_sym_BANG); + if (lookahead == '=') ADVANCE(38); END_STATE(); case 34: - ACCEPT_TOKEN(anon_sym_AMP); + ACCEPT_TOKEN(anon_sym_PIPE); END_STATE(); case 35: - ACCEPT_TOKEN(anon_sym_CARET); + ACCEPT_TOKEN(anon_sym_AMP); END_STATE(); case 36: - ACCEPT_TOKEN(anon_sym_EQ_EQ); + ACCEPT_TOKEN(anon_sym_CARET); END_STATE(); case 37: - ACCEPT_TOKEN(anon_sym_BANG_EQ); + ACCEPT_TOKEN(anon_sym_EQ_EQ); END_STATE(); case 38: - ACCEPT_TOKEN(anon_sym_LT); - if (lookahead == '=') ADVANCE(39); + ACCEPT_TOKEN(anon_sym_BANG_EQ); END_STATE(); case 39: - ACCEPT_TOKEN(anon_sym_LT_EQ); + ACCEPT_TOKEN(anon_sym_LT); + if (lookahead == '=') ADVANCE(40); END_STATE(); case 40: - ACCEPT_TOKEN(anon_sym_GT); - if (lookahead == '=') ADVANCE(41); + ACCEPT_TOKEN(anon_sym_LT_EQ); END_STATE(); case 41: - ACCEPT_TOKEN(anon_sym_GT_EQ); + ACCEPT_TOKEN(anon_sym_GT); + if (lookahead == '=') ADVANCE(42); END_STATE(); case 42: - ACCEPT_TOKEN(anon_sym_SLASH); + ACCEPT_TOKEN(anon_sym_GT_EQ); END_STATE(); case 43: - ACCEPT_TOKEN(anon_sym_PERCENT); + ACCEPT_TOKEN(anon_sym_SLASH); END_STATE(); case 44: - ACCEPT_TOKEN(anon_sym_LPAREN); + ACCEPT_TOKEN(anon_sym_PERCENT); END_STATE(); case 45: - ACCEPT_TOKEN(anon_sym_COMMA); + ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); case 46: ACCEPT_TOKEN(anon_sym_RPAREN); @@ -2153,7 +2163,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 51: ACCEPT_TOKEN(anon_sym_EQ); - if (lookahead == '=') ADVANCE(36); + if (lookahead == '=') ADVANCE(37); END_STATE(); case 52: ACCEPT_TOKEN(anon_sym_SEMI); @@ -2316,46 +2326,46 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [2] = {.lex_state = 12}, [3] = {.lex_state = 12}, [4] = {.lex_state = 12}, - [5] = {.lex_state = 12}, + [5] = {.lex_state = 2}, [6] = {.lex_state = 2}, [7] = {.lex_state = 2}, - [8] = {.lex_state = 12}, + [8] = {.lex_state = 2}, [9] = {.lex_state = 2}, - [10] = {.lex_state = 2}, + [10] = {.lex_state = 12}, [11] = {.lex_state = 2}, - [12] = {.lex_state = 12}, - [13] = {.lex_state = 2}, - [14] = {.lex_state = 12}, - [15] = {.lex_state = 12}, + [12] = {.lex_state = 3}, + [13] = {.lex_state = 12}, + [14] = {.lex_state = 3}, + [15] = {.lex_state = 3}, [16] = {.lex_state = 3}, [17] = {.lex_state = 3}, [18] = {.lex_state = 3}, [19] = {.lex_state = 3}, [20] = {.lex_state = 3}, [21] = {.lex_state = 3}, - [22] = {.lex_state = 3}, + [22] = {.lex_state = 12}, [23] = {.lex_state = 3}, - [24] = {.lex_state = 12}, + [24] = {.lex_state = 3}, [25] = {.lex_state = 3}, [26] = {.lex_state = 3}, - [27] = {.lex_state = 12}, + [27] = {.lex_state = 3}, [28] = {.lex_state = 3}, - [29] = {.lex_state = 3}, - [30] = {.lex_state = 3}, - [31] = {.lex_state = 3}, + [29] = {.lex_state = 12}, + [30] = {.lex_state = 12}, + [31] = {.lex_state = 2}, [32] = {.lex_state = 12}, [33] = {.lex_state = 2}, - [34] = {.lex_state = 2}, - [35] = {.lex_state = 2}, + [34] = {.lex_state = 12}, + [35] = {.lex_state = 12}, [36] = {.lex_state = 12}, - [37] = {.lex_state = 2}, - [38] = {.lex_state = 2}, - [39] = {.lex_state = 2}, + [37] = {.lex_state = 12}, + [38] = {.lex_state = 12}, + [39] = {.lex_state = 12}, [40] = {.lex_state = 12}, [41] = {.lex_state = 12}, - [42] = {.lex_state = 12}, + [42] = {.lex_state = 2}, [43] = {.lex_state = 12}, - [44] = {.lex_state = 12}, + [44] = {.lex_state = 2}, [45] = {.lex_state = 12}, [46] = {.lex_state = 12}, [47] = {.lex_state = 12}, @@ -2363,26 +2373,26 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [49] = {.lex_state = 12}, [50] = {.lex_state = 12}, [51] = {.lex_state = 12}, - [52] = {.lex_state = 12}, + [52] = {.lex_state = 2}, [53] = {.lex_state = 12}, [54] = {.lex_state = 12}, [55] = {.lex_state = 12}, [56] = {.lex_state = 12}, - [57] = {.lex_state = 2}, - [58] = {.lex_state = 12}, - [59] = {.lex_state = 12}, - [60] = {.lex_state = 12}, - [61] = {.lex_state = 12}, - [62] = {.lex_state = 12}, + [57] = {.lex_state = 12}, + [58] = {.lex_state = 2}, + [59] = {.lex_state = 2}, + [60] = {.lex_state = 3}, + [61] = {.lex_state = 2}, + [62] = {.lex_state = 2}, [63] = {.lex_state = 2}, [64] = {.lex_state = 2}, [65] = {.lex_state = 2}, - [66] = {.lex_state = 2}, - [67] = {.lex_state = 2}, - [68] = {.lex_state = 2}, - [69] = {.lex_state = 3}, - [70] = {.lex_state = 2}, - [71] = {.lex_state = 12}, + [66] = {.lex_state = 12}, + [67] = {.lex_state = 0}, + [68] = {.lex_state = 0}, + [69] = {.lex_state = 0}, + [70] = {.lex_state = 0}, + [71] = {.lex_state = 0}, [72] = {.lex_state = 0}, [73] = {.lex_state = 0}, [74] = {.lex_state = 0}, @@ -2391,14 +2401,14 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [77] = {.lex_state = 0}, [78] = {.lex_state = 0}, [79] = {.lex_state = 0}, - [80] = {.lex_state = 0}, + [80] = {.lex_state = 7}, [81] = {.lex_state = 0}, [82] = {.lex_state = 0}, [83] = {.lex_state = 0}, [84] = {.lex_state = 0}, [85] = {.lex_state = 0}, [86] = {.lex_state = 0}, - [87] = {.lex_state = 7}, + [87] = {.lex_state = 0}, [88] = {.lex_state = 0}, [89] = {.lex_state = 0}, [90] = {.lex_state = 0}, @@ -2429,6 +2439,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [115] = {.lex_state = 0}, [116] = {.lex_state = 0}, [117] = {.lex_state = 0}, + [118] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -2437,6 +2448,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_identifier] = ACTIONS(1), [anon_sym_COLON] = ACTIONS(1), [anon_sym_DASH_GT] = ACTIONS(1), + [anon_sym_COMMA] = ACTIONS(1), [anon_sym_module] = ACTIONS(1), [sym_number] = ACTIONS(1), [anon_sym_COLON_COLON] = ACTIONS(1), @@ -2458,7 +2470,6 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_GT_EQ] = ACTIONS(1), [anon_sym_PERCENT] = ACTIONS(1), [anon_sym_LPAREN] = ACTIONS(1), - [anon_sym_COMMA] = ACTIONS(1), [anon_sym_RPAREN] = ACTIONS(1), [anon_sym_LBRACK] = ACTIONS(1), [anon_sym_RBRACK] = ACTIONS(1), @@ -2474,189 +2485,149 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_SEMI] = ACTIONS(1), }, [1] = { - [sym_source_file] = STATE(113), - [sym_module] = STATE(93), - [aux_sym_source_file_repeat1] = STATE(93), + [sym_source_file] = STATE(114), + [sym_module] = STATE(79), + [aux_sym_source_file_repeat1] = STATE(79), [ts_builtin_sym_end] = ACTIONS(3), [anon_sym_module] = ACTIONS(5), }, [2] = { - [sym_global_identifier] = STATE(35), - [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(98), - [sym__type] = STATE(98), - [sym_declaration] = STATE(79), - [sym_unary_op] = STATE(33), - [sym_binary_op] = STATE(33), - [sym_array_op] = STATE(33), - [sym_func_call] = STATE(33), - [sym_parenthesis_expression] = STATE(33), - [sym__expression] = STATE(33), - [sym_block] = STATE(43), - [sym_assign_left_side] = STATE(104), - [sym_decl_assign_statement] = STATE(109), - [sym_if_statement] = STATE(43), - [sym_for_statement] = STATE(43), - [sym__statement] = STATE(43), - [aux_sym_block_repeat1] = STATE(2), - [aux_sym_assign_left_side_repeat1] = STATE(14), + [sym_global_identifier] = STATE(33), + [sym__maybe_global_identifier] = STATE(12), + [sym_array_type] = STATE(99), + [sym__type] = STATE(99), + [sym_declaration] = STATE(93), + [sym_unary_op] = STATE(44), + [sym_binary_op] = STATE(44), + [sym_array_op] = STATE(44), + [sym_func_call] = STATE(44), + [sym_parenthesis_expression] = STATE(44), + [sym__expression] = STATE(44), + [sym_block] = STATE(57), + [sym_assign_to] = STATE(88), + [sym_assign_left_side] = STATE(102), + [sym_decl_assign_statement] = STATE(111), + [sym_if_statement] = STATE(57), + [sym_for_statement] = STATE(57), + [sym__statement] = STATE(57), + [aux_sym_block_repeat1] = STATE(3), + [aux_sym_assign_to_repeat1] = STATE(13), [sym_identifier] = ACTIONS(7), - [sym_number] = ACTIONS(10), - [anon_sym_COLON_COLON] = ACTIONS(13), - [anon_sym_state] = ACTIONS(16), - [anon_sym_gen] = ACTIONS(16), - [anon_sym_PLUS] = ACTIONS(19), - [anon_sym_DASH] = ACTIONS(19), - [anon_sym_STAR] = ACTIONS(19), - [anon_sym_BANG] = ACTIONS(19), - [anon_sym_PIPE] = ACTIONS(19), - [anon_sym_AMP] = ACTIONS(19), - [anon_sym_CARET] = ACTIONS(19), - [anon_sym_LPAREN] = ACTIONS(22), - [anon_sym_LBRACE] = ACTIONS(25), - [anon_sym_RBRACE] = ACTIONS(28), - [anon_sym_reg] = ACTIONS(30), - [anon_sym_initial] = ACTIONS(33), - [anon_sym_if] = ACTIONS(36), - [anon_sym_for] = ACTIONS(39), + [sym_number] = ACTIONS(9), + [anon_sym_COLON_COLON] = ACTIONS(11), + [anon_sym_state] = ACTIONS(13), + [anon_sym_gen] = ACTIONS(13), + [anon_sym_PLUS] = ACTIONS(15), + [anon_sym_DASH] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(15), + [anon_sym_BANG] = ACTIONS(15), + [anon_sym_PIPE] = ACTIONS(15), + [anon_sym_AMP] = ACTIONS(15), + [anon_sym_CARET] = ACTIONS(15), + [anon_sym_LPAREN] = ACTIONS(17), + [anon_sym_LBRACE] = ACTIONS(19), + [anon_sym_RBRACE] = ACTIONS(21), + [anon_sym_reg] = ACTIONS(23), + [anon_sym_initial] = ACTIONS(25), + [anon_sym_if] = ACTIONS(27), + [anon_sym_for] = ACTIONS(29), }, [3] = { - [sym_global_identifier] = STATE(35), - [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(98), - [sym__type] = STATE(98), - [sym_declaration] = STATE(79), - [sym_unary_op] = STATE(33), - [sym_binary_op] = STATE(33), - [sym_array_op] = STATE(33), - [sym_func_call] = STATE(33), - [sym_parenthesis_expression] = STATE(33), - [sym__expression] = STATE(33), - [sym_block] = STATE(43), - [sym_assign_left_side] = STATE(104), - [sym_decl_assign_statement] = STATE(109), - [sym_if_statement] = STATE(43), - [sym_for_statement] = STATE(43), - [sym__statement] = STATE(43), + [sym_global_identifier] = STATE(33), + [sym__maybe_global_identifier] = STATE(12), + [sym_array_type] = STATE(99), + [sym__type] = STATE(99), + [sym_declaration] = STATE(93), + [sym_unary_op] = STATE(44), + [sym_binary_op] = STATE(44), + [sym_array_op] = STATE(44), + [sym_func_call] = STATE(44), + [sym_parenthesis_expression] = STATE(44), + [sym__expression] = STATE(44), + [sym_block] = STATE(57), + [sym_assign_to] = STATE(88), + [sym_assign_left_side] = STATE(102), + [sym_decl_assign_statement] = STATE(111), + [sym_if_statement] = STATE(57), + [sym_for_statement] = STATE(57), + [sym__statement] = STATE(57), [aux_sym_block_repeat1] = STATE(4), - [aux_sym_assign_left_side_repeat1] = STATE(14), - [sym_identifier] = ACTIONS(42), - [sym_number] = ACTIONS(44), - [anon_sym_COLON_COLON] = ACTIONS(46), - [anon_sym_state] = ACTIONS(48), - [anon_sym_gen] = ACTIONS(48), - [anon_sym_PLUS] = ACTIONS(50), - [anon_sym_DASH] = ACTIONS(50), - [anon_sym_STAR] = ACTIONS(50), - [anon_sym_BANG] = ACTIONS(50), - [anon_sym_PIPE] = ACTIONS(50), - [anon_sym_AMP] = ACTIONS(50), - [anon_sym_CARET] = ACTIONS(50), - [anon_sym_LPAREN] = ACTIONS(52), - [anon_sym_LBRACE] = ACTIONS(54), - [anon_sym_RBRACE] = ACTIONS(56), - [anon_sym_reg] = ACTIONS(58), - [anon_sym_initial] = ACTIONS(60), - [anon_sym_if] = ACTIONS(62), - [anon_sym_for] = ACTIONS(64), + [aux_sym_assign_to_repeat1] = STATE(13), + [sym_identifier] = ACTIONS(7), + [sym_number] = ACTIONS(9), + [anon_sym_COLON_COLON] = ACTIONS(11), + [anon_sym_state] = ACTIONS(13), + [anon_sym_gen] = ACTIONS(13), + [anon_sym_PLUS] = ACTIONS(15), + [anon_sym_DASH] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(15), + [anon_sym_BANG] = ACTIONS(15), + [anon_sym_PIPE] = ACTIONS(15), + [anon_sym_AMP] = ACTIONS(15), + [anon_sym_CARET] = ACTIONS(15), + [anon_sym_LPAREN] = ACTIONS(17), + [anon_sym_LBRACE] = ACTIONS(19), + [anon_sym_RBRACE] = ACTIONS(31), + [anon_sym_reg] = ACTIONS(23), + [anon_sym_initial] = ACTIONS(25), + [anon_sym_if] = ACTIONS(27), + [anon_sym_for] = ACTIONS(29), }, [4] = { - [sym_global_identifier] = STATE(35), - [sym__maybe_global_identifier] = STATE(19), - [sym_array_type] = STATE(98), - [sym__type] = STATE(98), - [sym_declaration] = STATE(79), - [sym_unary_op] = STATE(33), - [sym_binary_op] = STATE(33), - [sym_array_op] = STATE(33), - [sym_func_call] = STATE(33), - [sym_parenthesis_expression] = STATE(33), - [sym__expression] = STATE(33), - [sym_block] = STATE(43), - [sym_assign_left_side] = STATE(104), - [sym_decl_assign_statement] = STATE(109), - [sym_if_statement] = STATE(43), - [sym_for_statement] = STATE(43), - [sym__statement] = STATE(43), - [aux_sym_block_repeat1] = STATE(2), - [aux_sym_assign_left_side_repeat1] = STATE(14), - [sym_identifier] = ACTIONS(42), - [sym_number] = ACTIONS(44), - [anon_sym_COLON_COLON] = ACTIONS(46), - [anon_sym_state] = ACTIONS(48), - [anon_sym_gen] = ACTIONS(48), - [anon_sym_PLUS] = ACTIONS(50), - [anon_sym_DASH] = ACTIONS(50), - [anon_sym_STAR] = ACTIONS(50), - [anon_sym_BANG] = ACTIONS(50), - [anon_sym_PIPE] = ACTIONS(50), - [anon_sym_AMP] = ACTIONS(50), - [anon_sym_CARET] = ACTIONS(50), - [anon_sym_LPAREN] = ACTIONS(52), - [anon_sym_LBRACE] = ACTIONS(54), - [anon_sym_RBRACE] = ACTIONS(66), - [anon_sym_reg] = ACTIONS(58), - [anon_sym_initial] = ACTIONS(60), + [sym_global_identifier] = STATE(33), + [sym__maybe_global_identifier] = STATE(12), + [sym_array_type] = STATE(99), + [sym__type] = STATE(99), + [sym_declaration] = STATE(93), + [sym_unary_op] = STATE(44), + [sym_binary_op] = STATE(44), + [sym_array_op] = STATE(44), + [sym_func_call] = STATE(44), + [sym_parenthesis_expression] = STATE(44), + [sym__expression] = STATE(44), + [sym_block] = STATE(57), + [sym_assign_to] = STATE(88), + [sym_assign_left_side] = STATE(102), + [sym_decl_assign_statement] = STATE(111), + [sym_if_statement] = STATE(57), + [sym_for_statement] = STATE(57), + [sym__statement] = STATE(57), + [aux_sym_block_repeat1] = STATE(4), + [aux_sym_assign_to_repeat1] = STATE(13), + [sym_identifier] = ACTIONS(33), + [sym_number] = ACTIONS(36), + [anon_sym_COLON_COLON] = ACTIONS(39), + [anon_sym_state] = ACTIONS(42), + [anon_sym_gen] = ACTIONS(42), + [anon_sym_PLUS] = ACTIONS(45), + [anon_sym_DASH] = ACTIONS(45), + [anon_sym_STAR] = ACTIONS(45), + [anon_sym_BANG] = ACTIONS(45), + [anon_sym_PIPE] = ACTIONS(45), + [anon_sym_AMP] = ACTIONS(45), + [anon_sym_CARET] = ACTIONS(45), + [anon_sym_LPAREN] = ACTIONS(48), + [anon_sym_LBRACE] = ACTIONS(51), + [anon_sym_RBRACE] = ACTIONS(54), + [anon_sym_reg] = ACTIONS(56), + [anon_sym_initial] = ACTIONS(59), [anon_sym_if] = ACTIONS(62), - [anon_sym_for] = ACTIONS(64), + [anon_sym_for] = ACTIONS(65), }, }; static const uint16_t ts_small_parse_table[] = { - [0] = 15, - ACTIONS(42), 1, - sym_identifier, - ACTIONS(44), 1, - sym_number, - ACTIONS(46), 1, - anon_sym_COLON_COLON, - ACTIONS(52), 1, - anon_sym_LPAREN, - ACTIONS(58), 1, - anon_sym_reg, - ACTIONS(60), 1, - anon_sym_initial, - STATE(14), 1, - aux_sym_assign_left_side_repeat1, - STATE(19), 1, - sym__maybe_global_identifier, - STATE(35), 1, - sym_global_identifier, - STATE(79), 1, - sym_declaration, - STATE(111), 1, - sym_assign_left_side, - ACTIONS(48), 2, - anon_sym_state, - anon_sym_gen, - STATE(98), 2, - sym_array_type, - sym__type, - STATE(33), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(50), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [59] = 4, + [0] = 4, ACTIONS(70), 1, anon_sym_COLON_COLON, ACTIONS(72), 1, anon_sym_SLASH, - STATE(10), 1, + STATE(7), 1, aux_sym_global_identifier_repeat1, ACTIONS(68), 25, anon_sym_COLON, anon_sym_DASH_GT, + anon_sym_COMMA, sym_identifier, anon_sym_PLUS, anon_sym_DASH, @@ -2672,7 +2643,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -2680,16 +2650,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [96] = 4, + [37] = 4, ACTIONS(70), 1, anon_sym_COLON_COLON, - ACTIONS(72), 1, + ACTIONS(76), 1, anon_sym_SLASH, - STATE(9), 1, + STATE(8), 1, aux_sym_global_identifier_repeat1, - ACTIONS(68), 25, + ACTIONS(74), 25, anon_sym_COLON, anon_sym_DASH_GT, + anon_sym_COMMA, sym_identifier, anon_sym_PLUS, anon_sym_DASH, @@ -2705,7 +2676,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -2713,60 +2683,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [133] = 15, - ACTIONS(42), 1, - sym_identifier, - ACTIONS(44), 1, - sym_number, - ACTIONS(46), 1, - anon_sym_COLON_COLON, - ACTIONS(52), 1, - anon_sym_LPAREN, - ACTIONS(58), 1, - anon_sym_reg, - ACTIONS(60), 1, - anon_sym_initial, - STATE(14), 1, - aux_sym_assign_left_side_repeat1, - STATE(19), 1, - sym__maybe_global_identifier, - STATE(35), 1, - sym_global_identifier, - STATE(79), 1, - sym_declaration, - STATE(102), 1, - sym_assign_left_side, - ACTIONS(48), 2, - anon_sym_state, - anon_sym_gen, - STATE(98), 2, - sym_array_type, - sym__type, - STATE(33), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(50), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [192] = 4, - ACTIONS(76), 1, + [74] = 4, + ACTIONS(70), 1, anon_sym_COLON_COLON, - ACTIONS(79), 1, + ACTIONS(80), 1, anon_sym_SLASH, STATE(9), 1, aux_sym_global_identifier_repeat1, - ACTIONS(74), 25, + ACTIONS(78), 25, anon_sym_COLON, anon_sym_DASH_GT, + anon_sym_COMMA, sym_identifier, anon_sym_PLUS, anon_sym_DASH, @@ -2782,7 +2709,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -2790,16 +2716,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [229] = 4, + [111] = 4, ACTIONS(70), 1, anon_sym_COLON_COLON, - ACTIONS(83), 1, + ACTIONS(84), 1, anon_sym_SLASH, STATE(9), 1, aux_sym_global_identifier_repeat1, - ACTIONS(81), 25, + ACTIONS(82), 25, anon_sym_COLON, anon_sym_DASH_GT, + anon_sym_COMMA, sym_identifier, anon_sym_PLUS, anon_sym_DASH, @@ -2815,7 +2742,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -2823,16 +2749,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [266] = 4, - ACTIONS(70), 1, + [148] = 4, + ACTIONS(88), 1, anon_sym_COLON_COLON, - ACTIONS(87), 1, + ACTIONS(91), 1, anon_sym_SLASH, - STATE(7), 1, + STATE(9), 1, aux_sym_global_identifier_repeat1, - ACTIONS(85), 25, + ACTIONS(86), 25, anon_sym_COLON, anon_sym_DASH_GT, + anon_sym_COMMA, sym_identifier, anon_sym_PLUS, anon_sym_DASH, @@ -2848,7 +2775,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -2856,41 +2782,43 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [303] = 14, - ACTIONS(42), 1, + [185] = 15, + ACTIONS(7), 1, sym_identifier, - ACTIONS(46), 1, + ACTIONS(9), 1, + sym_number, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(52), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(89), 1, - sym_number, - ACTIONS(91), 1, + ACTIONS(23), 1, anon_sym_reg, - ACTIONS(93), 1, + ACTIONS(25), 1, anon_sym_initial, - STATE(15), 1, - aux_sym_assign_left_side_repeat1, - STATE(19), 1, + STATE(12), 1, sym__maybe_global_identifier, - STATE(35), 1, + STATE(13), 1, + aux_sym_assign_to_repeat1, + STATE(33), 1, sym_global_identifier, - STATE(84), 1, + STATE(93), 1, sym_declaration, - ACTIONS(48), 2, + STATE(98), 1, + sym_assign_to, + ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(98), 2, + STATE(99), 2, sym_array_type, sym__type, - STATE(38), 6, + STATE(44), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(50), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -2898,12 +2826,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [359] = 2, - ACTIONS(79), 1, + [244] = 2, + ACTIONS(95), 1, anon_sym_SLASH, - ACTIONS(74), 26, + ACTIONS(93), 26, anon_sym_COLON, anon_sym_DASH_GT, + anon_sym_COMMA, sym_identifier, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -2920,7 +2849,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -2928,79 +2856,70 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [391] = 13, - ACTIONS(42), 1, - sym_identifier, - ACTIONS(46), 1, - anon_sym_COLON_COLON, - ACTIONS(52), 1, + [276] = 4, + ACTIONS(99), 1, + anon_sym_SLASH, + ACTIONS(101), 1, anon_sym_LPAREN, - ACTIONS(95), 1, - sym_number, - ACTIONS(97), 1, - anon_sym_reg, - STATE(19), 1, - sym__maybe_global_identifier, - STATE(35), 1, - sym_global_identifier, - STATE(71), 1, - aux_sym_assign_left_side_repeat1, - STATE(75), 1, - sym_declaration, - ACTIONS(48), 2, - anon_sym_state, - anon_sym_gen, - STATE(98), 2, - sym_array_type, - sym__type, - STATE(37), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(50), 7, + STATE(27), 1, + sym_parenthesis_expression_list, + ACTIONS(97), 23, + anon_sym_COLON, + anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, - anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [444] = 13, - ACTIONS(42), 1, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_SEMI, + [311] = 13, + ACTIONS(7), 1, sym_identifier, - ACTIONS(46), 1, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(52), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(97), 1, - anon_sym_reg, - ACTIONS(99), 1, + ACTIONS(103), 1, sym_number, - STATE(19), 1, + ACTIONS(105), 1, + anon_sym_reg, + STATE(12), 1, sym__maybe_global_identifier, - STATE(35), 1, + STATE(33), 1, sym_global_identifier, - STATE(71), 1, - aux_sym_assign_left_side_repeat1, - STATE(85), 1, + STATE(66), 1, + aux_sym_assign_to_repeat1, + STATE(100), 1, sym_declaration, - ACTIONS(48), 2, + ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(98), 2, + STATE(99), 2, sym_array_type, sym__type, - STATE(39), 6, + STATE(52), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(50), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3008,19 +2927,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [497] = 4, - ACTIONS(105), 1, + [364] = 3, + ACTIONS(109), 1, anon_sym_SLASH, - STATE(30), 1, + STATE(25), 1, sym_array_bracket_expression, - ACTIONS(103), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(101), 21, + ACTIONS(107), 23, anon_sym_COLON, anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_PLUS, anon_sym_DASH, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -3030,7 +2948,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_COMMA, + anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -3038,32 +2956,33 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [531] = 7, - ACTIONS(105), 1, - anon_sym_SLASH, - ACTIONS(109), 1, + [396] = 8, + ACTIONS(117), 1, anon_sym_PIPE, - ACTIONS(111), 1, + ACTIONS(119), 1, + anon_sym_AMP, + ACTIONS(121), 1, anon_sym_CARET, - STATE(30), 1, + ACTIONS(123), 1, + anon_sym_SLASH, + STATE(25), 1, sym_array_bracket_expression, - ACTIONS(103), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(107), 2, + ACTIONS(113), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(101), 17, + ACTIONS(115), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(111), 16, anon_sym_COLON, anon_sym_DASH_GT, - anon_sym_AMP, + anon_sym_COMMA, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -3071,17 +2990,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [571] = 3, - ACTIONS(115), 1, + [438] = 5, + ACTIONS(123), 1, anon_sym_SLASH, - STATE(30), 1, + STATE(25), 1, sym_array_bracket_expression, - ACTIONS(113), 23, - anon_sym_COLON, - anon_sym_DASH_GT, + ACTIONS(113), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(115), 2, anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(111), 19, + anon_sym_COLON, + anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -3091,8 +3014,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -3100,28 +3021,32 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [603] = 3, - ACTIONS(119), 1, - anon_sym_SLASH, + [474] = 7, + ACTIONS(117), 1, + anon_sym_PIPE, ACTIONS(121), 1, - anon_sym_LPAREN, - ACTIONS(117), 23, - anon_sym_COLON, - anon_sym_DASH_GT, + anon_sym_CARET, + ACTIONS(123), 1, + anon_sym_SLASH, + STATE(25), 1, + sym_array_bracket_expression, + ACTIONS(113), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(115), 2, anon_sym_STAR, - anon_sym_PIPE, + anon_sym_PERCENT, + ACTIONS(111), 17, + anon_sym_COLON, + anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -3129,28 +3054,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [635] = 3, + [514] = 6, + ACTIONS(121), 1, + anon_sym_CARET, ACTIONS(123), 1, anon_sym_SLASH, - STATE(30), 1, + STATE(25), 1, sym_array_bracket_expression, - ACTIONS(101), 23, - anon_sym_COLON, - anon_sym_DASH_GT, + ACTIONS(113), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(115), 2, anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(111), 18, + anon_sym_COLON, + anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -3158,33 +3086,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [667] = 8, - ACTIONS(105), 1, - anon_sym_SLASH, - ACTIONS(109), 1, - anon_sym_PIPE, - ACTIONS(111), 1, - anon_sym_CARET, + [552] = 3, ACTIONS(125), 1, - anon_sym_AMP, - STATE(30), 1, + anon_sym_SLASH, + STATE(25), 1, sym_array_bracket_expression, - ACTIONS(103), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(107), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(101), 16, + ACTIONS(111), 23, anon_sym_COLON, anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_COMMA, + anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -3192,20 +3115,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [709] = 5, - ACTIONS(105), 1, + [584] = 4, + ACTIONS(123), 1, anon_sym_SLASH, - STATE(30), 1, + STATE(25), 1, sym_array_bracket_expression, - ACTIONS(103), 2, + ACTIONS(115), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(107), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(101), 19, + ACTIONS(111), 21, anon_sym_COLON, anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_PLUS, + anon_sym_DASH, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -3215,7 +3138,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -3223,31 +3145,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [745] = 6, - ACTIONS(105), 1, + [618] = 2, + ACTIONS(129), 1, anon_sym_SLASH, - ACTIONS(111), 1, - anon_sym_CARET, - STATE(30), 1, - sym_array_bracket_expression, - ACTIONS(103), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(107), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(101), 18, + ACTIONS(127), 23, anon_sym_COLON, anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_COMMA, + anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -3255,35 +3172,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [783] = 11, - ACTIONS(42), 1, + [647] = 11, + ACTIONS(7), 1, sym_identifier, - ACTIONS(46), 1, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(52), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(99), 1, + ACTIONS(103), 1, sym_number, - STATE(19), 1, + STATE(12), 1, sym__maybe_global_identifier, - STATE(35), 1, + STATE(33), 1, sym_global_identifier, - STATE(85), 1, + STATE(100), 1, sym_declaration, - ACTIONS(48), 2, + ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(98), 2, + STATE(99), 2, sym_array_type, sym__type, - STATE(39), 6, + STATE(52), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(50), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3291,12 +3208,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [830] = 2, - ACTIONS(129), 1, + [694] = 2, + ACTIONS(133), 1, anon_sym_SLASH, - ACTIONS(127), 23, + ACTIONS(131), 23, anon_sym_COLON, anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3310,7 +3228,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, - anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -3318,12 +3235,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [859] = 2, - ACTIONS(133), 1, + [723] = 2, + ACTIONS(137), 1, anon_sym_SLASH, - ACTIONS(131), 23, + ACTIONS(135), 23, anon_sym_COLON, anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3337,7 +3255,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, - anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -3345,48 +3262,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [888] = 11, - ACTIONS(42), 1, - sym_identifier, - ACTIONS(46), 1, - anon_sym_COLON_COLON, - ACTIONS(52), 1, - anon_sym_LPAREN, - ACTIONS(95), 1, - sym_number, - STATE(19), 1, - sym__maybe_global_identifier, - STATE(35), 1, - sym_global_identifier, - STATE(75), 1, - sym_declaration, - ACTIONS(48), 2, - anon_sym_state, - anon_sym_gen, - STATE(98), 2, - sym_array_type, - sym__type, - STATE(37), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(50), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [935] = 2, - ACTIONS(137), 1, + [752] = 2, + ACTIONS(141), 1, anon_sym_SLASH, - ACTIONS(135), 23, + ACTIONS(139), 23, anon_sym_COLON, anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3400,7 +3282,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, - anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -3408,12 +3289,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [964] = 2, - ACTIONS(141), 1, + [781] = 2, + ACTIONS(145), 1, anon_sym_SLASH, - ACTIONS(139), 23, + ACTIONS(143), 23, anon_sym_COLON, anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3427,7 +3309,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, - anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -3435,12 +3316,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [993] = 2, - ACTIONS(145), 1, + [810] = 2, + ACTIONS(149), 1, anon_sym_SLASH, - ACTIONS(143), 23, + ACTIONS(147), 23, anon_sym_COLON, anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3454,7 +3336,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, - anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -3462,12 +3343,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [1022] = 2, - ACTIONS(149), 1, + [839] = 2, + ACTIONS(153), 1, anon_sym_SLASH, - ACTIONS(147), 23, + ACTIONS(151), 23, anon_sym_COLON, anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3481,7 +3363,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, - anon_sym_COMMA, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -3489,8 +3370,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [1051] = 2, - ACTIONS(153), 9, + [868] = 2, + ACTIONS(157), 9, anon_sym_module, sym_identifier, anon_sym_state, @@ -3500,7 +3381,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_else, anon_sym_for, - ACTIONS(151), 13, + ACTIONS(155), 13, ts_builtin_sym_end, sym_number, anon_sym_COLON_COLON, @@ -3514,67 +3395,50 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1078] = 12, - ACTIONS(105), 1, - anon_sym_SLASH, - ACTIONS(109), 1, - anon_sym_PIPE, - ACTIONS(111), 1, - anon_sym_CARET, - ACTIONS(125), 1, - anon_sym_AMP, - ACTIONS(159), 1, - anon_sym_COMMA, - ACTIONS(161), 1, - anon_sym_LBRACK, - STATE(30), 1, - sym_array_bracket_expression, - STATE(77), 1, - aux_sym_assign_left_side_repeat2, - ACTIONS(103), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(107), 2, + [895] = 2, + ACTIONS(161), 9, + anon_sym_module, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_else, + anon_sym_for, + ACTIONS(159), 13, + ts_builtin_sym_end, + sym_number, + anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(155), 4, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_SEMI, - ACTIONS(157), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [1125] = 10, - ACTIONS(105), 1, - anon_sym_SLASH, - ACTIONS(109), 1, + anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, - ACTIONS(111), 1, + anon_sym_AMP, anon_sym_CARET, - ACTIONS(125), 1, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [922] = 10, + ACTIONS(117), 1, + anon_sym_PIPE, + ACTIONS(119), 1, anon_sym_AMP, - ACTIONS(161), 1, + ACTIONS(121), 1, + anon_sym_CARET, + ACTIONS(123), 1, + anon_sym_SLASH, + ACTIONS(167), 1, anon_sym_LBRACK, - STATE(30), 1, + STATE(25), 1, sym_array_bracket_expression, - ACTIONS(103), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(107), 2, + ACTIONS(113), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(157), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, + ACTIONS(115), 2, + anon_sym_STAR, + anon_sym_PERCENT, ACTIONS(163), 6, anon_sym_DASH_GT, anon_sym_COMMA, @@ -3582,46 +3446,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [1168] = 4, - ACTIONS(165), 1, - sym_identifier, - ACTIONS(169), 1, - anon_sym_SLASH, - ACTIONS(171), 1, - anon_sym_LBRACK, - ACTIONS(167), 19, - anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, + ACTIONS(165), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_SEMI, - [1199] = 2, - ACTIONS(176), 9, - anon_sym_module, + [965] = 3, + ACTIONS(173), 1, + anon_sym_else, + ACTIONS(169), 7, sym_identifier, anon_sym_state, anon_sym_gen, anon_sym_reg, anon_sym_initial, anon_sym_if, - anon_sym_else, anon_sym_for, - ACTIONS(174), 13, - ts_builtin_sym_end, + ACTIONS(171), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -3634,151 +3477,53 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1226] = 12, - ACTIONS(105), 1, + [992] = 4, + ACTIONS(175), 1, + sym_identifier, + ACTIONS(179), 1, anon_sym_SLASH, - ACTIONS(109), 1, - anon_sym_PIPE, - ACTIONS(111), 1, - anon_sym_CARET, - ACTIONS(125), 1, - anon_sym_AMP, - ACTIONS(159), 1, - anon_sym_COMMA, - ACTIONS(161), 1, + ACTIONS(181), 1, anon_sym_LBRACK, - STATE(30), 1, - sym_array_bracket_expression, - STATE(82), 1, - aux_sym_assign_left_side_repeat2, - ACTIONS(103), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(107), 2, + ACTIONS(177), 17, + anon_sym_COMMA, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(178), 4, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_SEMI, - ACTIONS(157), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [1273] = 10, - ACTIONS(105), 1, - anon_sym_SLASH, - ACTIONS(109), 1, + anon_sym_STAR, anon_sym_PIPE, - ACTIONS(111), 1, - anon_sym_CARET, - ACTIONS(125), 1, anon_sym_AMP, - ACTIONS(161), 1, - anon_sym_LBRACK, - STATE(30), 1, - sym_array_bracket_expression, - ACTIONS(103), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(107), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(180), 5, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_SEMI, - ACTIONS(157), 6, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1315] = 10, - ACTIONS(105), 1, - anon_sym_SLASH, - ACTIONS(109), 1, - anon_sym_PIPE, - ACTIONS(111), 1, - anon_sym_CARET, - ACTIONS(125), 1, - anon_sym_AMP, - ACTIONS(161), 1, - anon_sym_LBRACK, - STATE(30), 1, - sym_array_bracket_expression, - ACTIONS(103), 2, - anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(107), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(182), 5, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LBRACE, + anon_sym_LPAREN, anon_sym_EQ, anon_sym_SEMI, - ACTIONS(157), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [1357] = 3, - ACTIONS(188), 1, - anon_sym_else, - ACTIONS(184), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(186), 12, - sym_number, - anon_sym_COLON_COLON, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1384] = 8, - ACTIONS(46), 1, + [1021] = 8, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(52), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(190), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(192), 1, + ACTIONS(186), 1, sym_number, - STATE(105), 1, + STATE(101), 1, sym_range, - STATE(19), 2, + STATE(12), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(69), 6, + STATE(60), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(50), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3786,47 +3531,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1421] = 8, - ACTIONS(46), 1, + [1058] = 8, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(52), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(190), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(194), 1, + ACTIONS(188), 1, sym_number, - ACTIONS(196), 1, + ACTIONS(190), 1, anon_sym_RPAREN, - STATE(19), 2, + STATE(12), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(57), 6, + STATE(42), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(50), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [1458] = 2, - ACTIONS(198), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(200), 12, - sym_number, - anon_sym_COLON_COLON, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3834,29 +3560,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1482] = 7, - ACTIONS(46), 1, + [1095] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(52), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(190), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(202), 1, + ACTIONS(192), 1, sym_number, - STATE(19), 2, + STATE(12), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(66), 6, + STATE(17), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(50), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3864,16 +3587,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1516] = 7, - ACTIONS(46), 1, + [1129] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(52), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(190), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(204), 1, + ACTIONS(194), 1, sym_number, - STATE(19), 2, + STATE(12), 2, sym_global_identifier, sym__maybe_global_identifier, STATE(18), 6, @@ -3883,7 +3606,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(50), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3891,26 +3614,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1550] = 7, - ACTIONS(46), 1, + [1163] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(52), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(190), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(206), 1, + ACTIONS(196), 1, sym_number, - STATE(19), 2, + STATE(12), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(70), 6, + STATE(64), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(50), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3918,26 +3641,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1584] = 7, - ACTIONS(46), 1, + [1197] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(52), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(190), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(208), 1, + ACTIONS(198), 1, sym_number, - STATE(19), 2, + STATE(12), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(67), 6, + STATE(31), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(50), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3945,26 +3668,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1618] = 7, - ACTIONS(46), 1, + [1231] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(52), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(190), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(210), 1, + ACTIONS(200), 1, sym_number, - STATE(19), 2, + STATE(12), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(65), 6, + STATE(58), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(50), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3972,26 +3695,77 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1652] = 7, - ACTIONS(46), 1, + [1265] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(52), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(190), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(212), 1, + ACTIONS(202), 1, sym_number, - STATE(19), 2, + STATE(12), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(16), 6, + STATE(62), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(50), 7, + ACTIONS(15), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [1299] = 12, + ACTIONS(117), 1, + anon_sym_PIPE, + ACTIONS(119), 1, + anon_sym_AMP, + ACTIONS(121), 1, + anon_sym_CARET, + ACTIONS(123), 1, + anon_sym_SLASH, + ACTIONS(167), 1, + anon_sym_LBRACK, + ACTIONS(204), 1, + anon_sym_COMMA, + ACTIONS(206), 1, + anon_sym_RPAREN, + STATE(25), 1, + sym_array_bracket_expression, + STATE(92), 1, + aux_sym_parenthesis_expression_list_repeat1, + ACTIONS(113), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(115), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(165), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [1343] = 2, + ACTIONS(208), 7, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(210), 12, + sym_number, + anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3999,26 +3773,59 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1686] = 7, - ACTIONS(46), 1, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1367] = 10, + ACTIONS(117), 1, + anon_sym_PIPE, + ACTIONS(119), 1, + anon_sym_AMP, + ACTIONS(121), 1, + anon_sym_CARET, + ACTIONS(123), 1, + anon_sym_SLASH, + ACTIONS(167), 1, + anon_sym_LBRACK, + STATE(25), 1, + sym_array_bracket_expression, + ACTIONS(113), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(115), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(212), 3, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_SEMI, + ACTIONS(165), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [1407] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(52), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(190), 1, + ACTIONS(184), 1, sym_identifier, ACTIONS(214), 1, sym_number, - STATE(19), 2, + STATE(12), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(20), 6, + STATE(14), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(50), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4026,26 +3833,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1720] = 7, - ACTIONS(46), 1, + [1441] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(52), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(190), 1, + ACTIONS(184), 1, sym_identifier, ACTIONS(216), 1, sym_number, - STATE(19), 2, + STATE(12), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(23), 6, + STATE(65), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(50), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4053,26 +3860,67 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1754] = 7, - ACTIONS(46), 1, + [1475] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(52), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(190), 1, + ACTIONS(184), 1, sym_identifier, ACTIONS(218), 1, sym_number, - STATE(19), 2, + STATE(12), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(17), 6, + STATE(63), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(50), 7, + ACTIONS(15), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [1509] = 2, + ACTIONS(220), 7, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(222), 12, + sym_number, + anon_sym_COLON_COLON, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1533] = 2, + ACTIONS(224), 7, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(226), 12, + sym_number, + anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4080,26 +3928,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1788] = 7, - ACTIONS(46), 1, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1557] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(52), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(190), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(220), 1, + ACTIONS(228), 1, sym_number, - STATE(19), 2, + STATE(12), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(22), 6, + STATE(61), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(50), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4107,26 +3958,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1822] = 7, - ACTIONS(46), 1, + [1591] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(52), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(190), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(222), 1, + ACTIONS(230), 1, sym_number, - STATE(19), 2, + STATE(12), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(21), 6, + STATE(15), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(50), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4134,26 +3985,56 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1856] = 7, - ACTIONS(46), 1, + [1625] = 10, + ACTIONS(117), 1, + anon_sym_PIPE, + ACTIONS(119), 1, + anon_sym_AMP, + ACTIONS(121), 1, + anon_sym_CARET, + ACTIONS(123), 1, + anon_sym_SLASH, + ACTIONS(167), 1, + anon_sym_LBRACK, + STATE(25), 1, + sym_array_bracket_expression, + ACTIONS(113), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(115), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(232), 3, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_SEMI, + ACTIONS(165), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [1665] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(52), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(190), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(224), 1, + ACTIONS(234), 1, sym_number, - STATE(19), 2, + STATE(12), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(64), 6, + STATE(16), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(50), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4161,26 +4042,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1890] = 7, - ACTIONS(46), 1, + [1699] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(52), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(190), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(226), 1, + ACTIONS(236), 1, sym_number, - STATE(19), 2, + STATE(12), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(34), 6, + STATE(59), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(50), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4188,80 +4069,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1924] = 12, - ACTIONS(105), 1, - anon_sym_SLASH, - ACTIONS(109), 1, - anon_sym_PIPE, - ACTIONS(111), 1, - anon_sym_CARET, - ACTIONS(125), 1, - anon_sym_AMP, - ACTIONS(161), 1, - anon_sym_LBRACK, - ACTIONS(228), 1, - anon_sym_COMMA, - ACTIONS(230), 1, - anon_sym_RPAREN, - STATE(30), 1, - sym_array_bracket_expression, - STATE(96), 1, - aux_sym_func_call_repeat1, - ACTIONS(103), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(107), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(157), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [1968] = 2, - ACTIONS(232), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(234), 12, - sym_number, - anon_sym_COLON_COLON, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1992] = 7, - ACTIONS(46), 1, + [1733] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - ACTIONS(52), 1, + ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(190), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(236), 1, + ACTIONS(238), 1, sym_number, - STATE(19), 2, + STATE(12), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(68), 6, + STATE(20), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(50), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4269,48 +4096,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2026] = 2, - ACTIONS(238), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(240), 12, - sym_number, + [1767] = 7, + ACTIONS(11), 1, anon_sym_COLON_COLON, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, + ACTIONS(17), 1, anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [2050] = 7, - ACTIONS(46), 1, - anon_sym_COLON_COLON, - ACTIONS(52), 1, - anon_sym_LPAREN, - ACTIONS(190), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(242), 1, + ACTIONS(240), 1, sym_number, - STATE(19), 2, + STATE(12), 2, sym_global_identifier, sym__maybe_global_identifier, - STATE(63), 6, + STATE(19), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(50), 7, + ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4318,8 +4123,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [2084] = 2, - ACTIONS(244), 7, + [1801] = 2, + ACTIONS(242), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -4327,7 +4132,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(246), 12, + ACTIONS(244), 12, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -4340,243 +4145,243 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [2108] = 10, - ACTIONS(105), 1, - anon_sym_SLASH, - ACTIONS(109), 1, + [1825] = 11, + ACTIONS(117), 1, anon_sym_PIPE, - ACTIONS(111), 1, - anon_sym_CARET, - ACTIONS(125), 1, + ACTIONS(119), 1, anon_sym_AMP, - ACTIONS(161), 1, + ACTIONS(121), 1, + anon_sym_CARET, + ACTIONS(123), 1, + anon_sym_SLASH, + ACTIONS(167), 1, anon_sym_LBRACK, - STATE(30), 1, + ACTIONS(246), 1, + anon_sym_LBRACE, + STATE(25), 1, sym_array_bracket_expression, - ACTIONS(103), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(107), 2, + STATE(32), 1, + sym_block, + ACTIONS(113), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(248), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - ACTIONS(157), 6, + ACTIONS(115), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(165), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2147] = 11, - ACTIONS(105), 1, - anon_sym_SLASH, - ACTIONS(109), 1, + [1866] = 10, + ACTIONS(117), 1, anon_sym_PIPE, - ACTIONS(111), 1, - anon_sym_CARET, - ACTIONS(125), 1, + ACTIONS(119), 1, anon_sym_AMP, - ACTIONS(161), 1, + ACTIONS(121), 1, + anon_sym_CARET, + ACTIONS(123), 1, + anon_sym_SLASH, + ACTIONS(167), 1, anon_sym_LBRACK, - ACTIONS(250), 1, - anon_sym_LBRACE, - STATE(30), 1, + STATE(25), 1, sym_array_bracket_expression, - STATE(40), 1, - sym_block, - ACTIONS(103), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(107), 2, + ACTIONS(113), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(157), 6, + ACTIONS(115), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(248), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + ACTIONS(165), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2188] = 10, - ACTIONS(105), 1, - anon_sym_SLASH, - ACTIONS(109), 1, + [1905] = 10, + ACTIONS(117), 1, anon_sym_PIPE, - ACTIONS(111), 1, - anon_sym_CARET, - ACTIONS(125), 1, + ACTIONS(119), 1, anon_sym_AMP, - ACTIONS(161), 1, + ACTIONS(121), 1, + anon_sym_CARET, + ACTIONS(123), 1, + anon_sym_SLASH, + ACTIONS(167), 1, anon_sym_LBRACK, - ACTIONS(252), 1, - anon_sym_RPAREN, - STATE(30), 1, + ACTIONS(250), 1, + anon_sym_COLON, + STATE(25), 1, sym_array_bracket_expression, - ACTIONS(103), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(107), 2, + ACTIONS(113), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(157), 6, + ACTIONS(115), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(165), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2226] = 10, - ACTIONS(105), 1, - anon_sym_SLASH, - ACTIONS(109), 1, + [1943] = 10, + ACTIONS(117), 1, anon_sym_PIPE, - ACTIONS(111), 1, - anon_sym_CARET, - ACTIONS(125), 1, + ACTIONS(119), 1, anon_sym_AMP, - ACTIONS(161), 1, + ACTIONS(121), 1, + anon_sym_CARET, + ACTIONS(123), 1, + anon_sym_SLASH, + ACTIONS(167), 1, anon_sym_LBRACK, - ACTIONS(254), 1, - anon_sym_LBRACE, - STATE(30), 1, + ACTIONS(252), 1, + anon_sym_SEMI, + STATE(25), 1, sym_array_bracket_expression, - ACTIONS(103), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(107), 2, + ACTIONS(113), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(157), 6, + ACTIONS(115), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(165), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2264] = 10, - ACTIONS(105), 1, - anon_sym_SLASH, - ACTIONS(109), 1, + [1981] = 10, + ACTIONS(117), 1, anon_sym_PIPE, - ACTIONS(111), 1, - anon_sym_CARET, - ACTIONS(125), 1, + ACTIONS(119), 1, anon_sym_AMP, - ACTIONS(161), 1, + ACTIONS(121), 1, + anon_sym_CARET, + ACTIONS(123), 1, + anon_sym_SLASH, + ACTIONS(167), 1, anon_sym_LBRACK, - ACTIONS(256), 1, - anon_sym_RBRACK, - STATE(30), 1, + ACTIONS(254), 1, + anon_sym_RPAREN, + STATE(25), 1, sym_array_bracket_expression, - ACTIONS(103), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(107), 2, + ACTIONS(113), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(157), 6, + ACTIONS(115), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(165), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2302] = 10, - ACTIONS(105), 1, - anon_sym_SLASH, - ACTIONS(109), 1, + [2019] = 10, + ACTIONS(117), 1, anon_sym_PIPE, - ACTIONS(111), 1, - anon_sym_CARET, - ACTIONS(125), 1, + ACTIONS(119), 1, anon_sym_AMP, - ACTIONS(161), 1, + ACTIONS(121), 1, + anon_sym_CARET, + ACTIONS(123), 1, + anon_sym_SLASH, + ACTIONS(167), 1, anon_sym_LBRACK, - ACTIONS(258), 1, - anon_sym_SEMI, - STATE(30), 1, + ACTIONS(256), 1, + anon_sym_LBRACE, + STATE(25), 1, sym_array_bracket_expression, - ACTIONS(103), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(107), 2, + ACTIONS(113), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(157), 6, + ACTIONS(115), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(165), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2340] = 10, - ACTIONS(105), 1, - anon_sym_SLASH, - ACTIONS(109), 1, + [2057] = 10, + ACTIONS(117), 1, anon_sym_PIPE, - ACTIONS(111), 1, - anon_sym_CARET, - ACTIONS(125), 1, + ACTIONS(119), 1, anon_sym_AMP, - ACTIONS(161), 1, + ACTIONS(121), 1, + anon_sym_CARET, + ACTIONS(123), 1, + anon_sym_SLASH, + ACTIONS(167), 1, anon_sym_LBRACK, - ACTIONS(260), 1, - anon_sym_COLON, - STATE(30), 1, + ACTIONS(258), 1, + anon_sym_RBRACK, + STATE(25), 1, sym_array_bracket_expression, - ACTIONS(103), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(107), 2, + ACTIONS(113), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(157), 6, + ACTIONS(115), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(165), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2378] = 10, - ACTIONS(105), 1, - anon_sym_SLASH, - ACTIONS(109), 1, + [2095] = 10, + ACTIONS(117), 1, anon_sym_PIPE, - ACTIONS(111), 1, - anon_sym_CARET, - ACTIONS(125), 1, + ACTIONS(119), 1, anon_sym_AMP, - ACTIONS(161), 1, + ACTIONS(121), 1, + anon_sym_CARET, + ACTIONS(123), 1, + anon_sym_SLASH, + ACTIONS(167), 1, anon_sym_LBRACK, - ACTIONS(262), 1, + ACTIONS(260), 1, anon_sym_RBRACK, - STATE(30), 1, + STATE(25), 1, sym_array_bracket_expression, - ACTIONS(103), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(107), 2, + ACTIONS(113), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(157), 6, + ACTIONS(115), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(165), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2416] = 4, - ACTIONS(268), 1, + [2133] = 4, + ACTIONS(266), 1, anon_sym_reg, - STATE(71), 1, - aux_sym_assign_left_side_repeat1, - ACTIONS(264), 3, + STATE(66), 1, + aux_sym_assign_to_repeat1, + ACTIONS(262), 3, sym_identifier, anon_sym_state, anon_sym_gen, - ACTIONS(266), 10, + ACTIONS(264), 10, sym_number, anon_sym_COLON_COLON, anon_sym_PLUS, @@ -4587,616 +4392,677 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2440] = 3, + [2157] = 8, + ACTIONS(269), 1, + sym_identifier, + ACTIONS(271), 1, + anon_sym_DASH_GT, ACTIONS(273), 1, + anon_sym_COLON_COLON, + ACTIONS(275), 1, + anon_sym_LBRACE, + STATE(85), 1, + sym_declaration, + STATE(107), 1, + sym_declaration_list, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + STATE(99), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [2185] = 6, + ACTIONS(269), 1, + sym_identifier, + ACTIONS(273), 1, + anon_sym_COLON_COLON, + STATE(85), 1, + sym_declaration, + STATE(118), 1, + sym_declaration_list, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + STATE(99), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [2207] = 6, + ACTIONS(269), 1, + sym_identifier, + ACTIONS(273), 1, + anon_sym_COLON_COLON, + STATE(85), 1, + sym_declaration, + STATE(112), 1, + sym_declaration_list, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + STATE(99), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [2229] = 5, + ACTIONS(269), 1, + sym_identifier, + ACTIONS(273), 1, + anon_sym_COLON_COLON, + STATE(94), 1, + sym_declaration, + ACTIONS(13), 2, + anon_sym_state, + anon_sym_gen, + STATE(99), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [2248] = 3, + ACTIONS(279), 1, anon_sym_SQUOTE, - STATE(83), 1, + STATE(75), 1, sym_latency_specifier, - ACTIONS(271), 6, + ACTIONS(277), 6, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [2455] = 3, - ACTIONS(273), 1, + [2263] = 3, + ACTIONS(279), 1, anon_sym_SQUOTE, - STATE(81), 1, + STATE(74), 1, sym_latency_specifier, - ACTIONS(275), 6, + ACTIONS(281), 6, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [2470] = 5, - ACTIONS(277), 1, + [2278] = 5, + ACTIONS(269), 1, sym_identifier, - ACTIONS(279), 1, + ACTIONS(273), 1, anon_sym_COLON_COLON, - STATE(117), 1, + STATE(109), 1, sym_declaration, - ACTIONS(48), 2, + ACTIONS(13), 2, anon_sym_state, anon_sym_gen, - STATE(98), 3, + STATE(99), 3, sym_global_identifier, sym_array_type, sym__type, - [2489] = 3, - ACTIONS(283), 1, - anon_sym_COMMA, - STATE(76), 1, - aux_sym_assign_left_side_repeat2, - ACTIONS(281), 4, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_SEMI, - [2502] = 3, - ACTIONS(283), 1, - anon_sym_COMMA, - STATE(78), 1, - aux_sym_assign_left_side_repeat2, - ACTIONS(285), 4, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_SEMI, - [2515] = 3, - ACTIONS(283), 1, - anon_sym_COMMA, - STATE(78), 1, - aux_sym_assign_left_side_repeat2, - ACTIONS(287), 4, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_SEMI, - [2528] = 3, - ACTIONS(291), 1, - anon_sym_COMMA, - STATE(78), 1, - aux_sym_assign_left_side_repeat2, - ACTIONS(289), 4, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_SEMI, - [2541] = 3, - ACTIONS(283), 1, - anon_sym_COMMA, - STATE(80), 1, - aux_sym_assign_left_side_repeat2, - ACTIONS(294), 4, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_SEMI, - [2554] = 3, - ACTIONS(283), 1, - anon_sym_COMMA, - STATE(78), 1, - aux_sym_assign_left_side_repeat2, - ACTIONS(287), 4, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_SEMI, - [2567] = 1, - ACTIONS(296), 6, + [2297] = 1, + ACTIONS(283), 6, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [2576] = 3, - ACTIONS(283), 1, - anon_sym_COMMA, - STATE(78), 1, - aux_sym_assign_left_side_repeat2, - ACTIONS(285), 4, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_SEMI, - [2589] = 1, - ACTIONS(298), 6, + [2306] = 1, + ACTIONS(285), 6, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [2598] = 1, - ACTIONS(300), 5, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_SEMI, - [2606] = 1, - ACTIONS(302), 5, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_SEMI, - [2614] = 3, - ACTIONS(279), 1, + [2315] = 3, + ACTIONS(273), 1, anon_sym_COLON_COLON, - ACTIONS(304), 1, + ACTIONS(287), 1, sym_identifier, - STATE(99), 3, + STATE(97), 3, sym_global_identifier, sym_array_type, sym__type, - [2626] = 4, - ACTIONS(54), 1, + [2327] = 3, + ACTIONS(291), 1, + anon_sym_COMMA, + STATE(77), 1, + aux_sym_declaration_list_repeat1, + ACTIONS(289), 2, + anon_sym_DASH_GT, + anon_sym_LBRACE, + [2338] = 3, + ACTIONS(294), 1, + anon_sym_COLON_COLON, + STATE(82), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(76), 2, + sym_identifier, + anon_sym_LBRACK, + [2349] = 3, + ACTIONS(5), 1, + anon_sym_module, + ACTIONS(296), 1, + ts_builtin_sym_end, + STATE(81), 2, + sym_module, + aux_sym_source_file_repeat1, + [2360] = 4, + ACTIONS(19), 1, anon_sym_LBRACE, - ACTIONS(306), 1, + ACTIONS(298), 1, anon_sym_COLON, - STATE(101), 1, + STATE(104), 1, sym_block, - STATE(108), 1, + STATE(106), 1, sym_interface_ports, - [2639] = 3, - ACTIONS(308), 1, + [2373] = 3, + ACTIONS(300), 1, + ts_builtin_sym_end, + ACTIONS(302), 1, + anon_sym_module, + STATE(81), 2, + sym_module, + aux_sym_source_file_repeat1, + [2384] = 3, + ACTIONS(294), 1, anon_sym_COLON_COLON, - STATE(89), 1, + STATE(83), 1, aux_sym_global_identifier_repeat1, - ACTIONS(72), 2, + ACTIONS(84), 2, sym_identifier, anon_sym_LBRACK, - [2650] = 3, - ACTIONS(308), 1, + [2395] = 3, + ACTIONS(305), 1, anon_sym_COLON_COLON, - STATE(90), 1, + STATE(83), 1, aux_sym_global_identifier_repeat1, - ACTIONS(83), 2, + ACTIONS(91), 2, sym_identifier, anon_sym_LBRACK, - [2661] = 3, - ACTIONS(310), 1, + [2406] = 3, + ACTIONS(294), 1, anon_sym_COLON_COLON, - STATE(90), 1, + STATE(83), 1, aux_sym_global_identifier_repeat1, - ACTIONS(79), 2, + ACTIONS(80), 2, sym_identifier, anon_sym_LBRACK, - [2672] = 3, - ACTIONS(308), 1, - anon_sym_COLON_COLON, + [2417] = 3, + ACTIONS(310), 1, + anon_sym_COMMA, + STATE(86), 1, + aux_sym_declaration_list_repeat1, + ACTIONS(308), 2, + anon_sym_DASH_GT, + anon_sym_LBRACE, + [2428] = 3, + ACTIONS(310), 1, + anon_sym_COMMA, + STATE(77), 1, + aux_sym_declaration_list_repeat1, + ACTIONS(312), 2, + anon_sym_DASH_GT, + anon_sym_LBRACE, + [2439] = 3, + ACTIONS(19), 1, + anon_sym_LBRACE, + ACTIONS(314), 1, + anon_sym_if, + STATE(49), 2, + sym_block, + sym_if_statement, + [2450] = 3, + ACTIONS(316), 1, + anon_sym_COMMA, STATE(90), 1, + aux_sym_assign_left_side_repeat1, + ACTIONS(318), 2, + anon_sym_EQ, + anon_sym_SEMI, + [2461] = 3, + ACTIONS(294), 1, + anon_sym_COLON_COLON, + STATE(84), 1, aux_sym_global_identifier_repeat1, ACTIONS(72), 2, sym_identifier, anon_sym_LBRACK, - [2683] = 3, - ACTIONS(308), 1, - anon_sym_COLON_COLON, + [2472] = 3, + ACTIONS(316), 1, + anon_sym_COMMA, STATE(91), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(87), 2, - sym_identifier, - anon_sym_LBRACK, - [2694] = 3, - ACTIONS(5), 1, - anon_sym_module, - ACTIONS(313), 1, - ts_builtin_sym_end, - STATE(94), 2, - sym_module, - aux_sym_source_file_repeat1, - [2705] = 3, - ACTIONS(315), 1, - ts_builtin_sym_end, - ACTIONS(317), 1, - anon_sym_module, - STATE(94), 2, - sym_module, - aux_sym_source_file_repeat1, - [2716] = 3, - ACTIONS(54), 1, - anon_sym_LBRACE, - ACTIONS(320), 1, - anon_sym_if, - STATE(58), 2, - sym_block, - sym_if_statement, - [2727] = 3, + aux_sym_assign_left_side_repeat1, + ACTIONS(320), 2, + anon_sym_EQ, + anon_sym_SEMI, + [2483] = 3, ACTIONS(322), 1, anon_sym_COMMA, - ACTIONS(324), 1, - anon_sym_RPAREN, - STATE(97), 1, - aux_sym_func_call_repeat1, - [2737] = 3, - ACTIONS(326), 1, + STATE(91), 1, + aux_sym_assign_left_side_repeat1, + ACTIONS(325), 2, + anon_sym_EQ, + anon_sym_SEMI, + [2494] = 3, + ACTIONS(327), 1, anon_sym_COMMA, ACTIONS(329), 1, anon_sym_RPAREN, - STATE(97), 1, - aux_sym_func_call_repeat1, - [2747] = 3, - ACTIONS(331), 1, + STATE(96), 1, + aux_sym_parenthesis_expression_list_repeat1, + [2504] = 1, + ACTIONS(331), 3, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_SEMI, + [2510] = 1, + ACTIONS(333), 3, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LBRACE, + [2516] = 1, + ACTIONS(95), 3, sym_identifier, - ACTIONS(333), 1, - anon_sym_LBRACK, - STATE(106), 1, - sym_array_bracket_expression, - [2757] = 3, - ACTIONS(333), 1, + anon_sym_COLON_COLON, anon_sym_LBRACK, + [2522] = 3, ACTIONS(335), 1, + anon_sym_COMMA, + ACTIONS(338), 1, + anon_sym_RPAREN, + STATE(96), 1, + aux_sym_parenthesis_expression_list_repeat1, + [2532] = 3, + ACTIONS(340), 1, sym_identifier, - STATE(106), 1, + ACTIONS(342), 1, + anon_sym_LBRACK, + STATE(103), 1, sym_array_bracket_expression, - [2767] = 1, - ACTIONS(79), 3, - sym_identifier, - anon_sym_COLON_COLON, + [2542] = 1, + ACTIONS(344), 3, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_SEMI, + [2548] = 3, + ACTIONS(342), 1, anon_sym_LBRACK, - [2773] = 1, - ACTIONS(337), 2, - ts_builtin_sym_end, - anon_sym_module, - [2778] = 2, - ACTIONS(339), 1, - anon_sym_DASH_GT, - ACTIONS(341), 1, - anon_sym_LBRACE, - [2785] = 1, - ACTIONS(137), 2, + ACTIONS(346), 1, sym_identifier, - anon_sym_LBRACK, - [2790] = 2, - ACTIONS(343), 1, + STATE(103), 1, + sym_array_bracket_expression, + [2558] = 1, + ACTIONS(348), 3, + anon_sym_COMMA, anon_sym_EQ, - ACTIONS(345), 1, anon_sym_SEMI, - [2797] = 2, - ACTIONS(54), 1, + [2564] = 2, + ACTIONS(19), 1, anon_sym_LBRACE, - STATE(62), 1, + STATE(43), 1, sym_block, - [2804] = 1, - ACTIONS(347), 2, + [2571] = 2, + ACTIONS(350), 1, + anon_sym_EQ, + ACTIONS(352), 1, + anon_sym_SEMI, + [2578] = 1, + ACTIONS(354), 2, sym_identifier, anon_sym_LBRACK, - [2809] = 1, - ACTIONS(349), 2, + [2583] = 1, + ACTIONS(356), 2, ts_builtin_sym_end, anon_sym_module, - [2814] = 2, - ACTIONS(54), 1, + [2588] = 1, + ACTIONS(358), 2, + ts_builtin_sym_end, + anon_sym_module, + [2593] = 2, + ACTIONS(19), 1, anon_sym_LBRACE, - STATE(107), 1, + STATE(105), 1, sym_block, - [2821] = 1, - ACTIONS(345), 1, - anon_sym_SEMI, - [2825] = 1, - ACTIONS(351), 1, + [2600] = 2, + ACTIONS(360), 1, + anon_sym_DASH_GT, + ACTIONS(362), 1, + anon_sym_LBRACE, + [2607] = 1, + ACTIONS(129), 2, sym_identifier, - [2829] = 1, - ACTIONS(353), 1, + anon_sym_LBRACK, + [2612] = 1, + ACTIONS(364), 1, + anon_sym_in, + [2616] = 1, + ACTIONS(366), 1, + sym_identifier, + [2620] = 1, + ACTIONS(352), 1, + anon_sym_SEMI, + [2624] = 1, + ACTIONS(368), 1, anon_sym_LBRACE, - [2833] = 1, - ACTIONS(355), 1, + [2628] = 1, + ACTIONS(370), 1, sym_identifier, - [2837] = 1, - ACTIONS(357), 1, + [2632] = 1, + ACTIONS(372), 1, ts_builtin_sym_end, - [2841] = 1, - ACTIONS(359), 1, + [2636] = 1, + ACTIONS(374), 1, sym_identifier, - [2845] = 1, - ACTIONS(361), 1, + [2640] = 1, + ACTIONS(376), 1, sym_identifier, - [2849] = 1, - ACTIONS(363), 1, + [2644] = 1, + ACTIONS(378), 1, sym_identifier, - [2853] = 1, - ACTIONS(365), 1, - anon_sym_in, + [2648] = 1, + ACTIONS(380), 1, + anon_sym_LBRACE, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(5)] = 0, - [SMALL_STATE(6)] = 59, - [SMALL_STATE(7)] = 96, - [SMALL_STATE(8)] = 133, - [SMALL_STATE(9)] = 192, - [SMALL_STATE(10)] = 229, - [SMALL_STATE(11)] = 266, - [SMALL_STATE(12)] = 303, - [SMALL_STATE(13)] = 359, - [SMALL_STATE(14)] = 391, - [SMALL_STATE(15)] = 444, - [SMALL_STATE(16)] = 497, - [SMALL_STATE(17)] = 531, - [SMALL_STATE(18)] = 571, - [SMALL_STATE(19)] = 603, - [SMALL_STATE(20)] = 635, - [SMALL_STATE(21)] = 667, - [SMALL_STATE(22)] = 709, - [SMALL_STATE(23)] = 745, - [SMALL_STATE(24)] = 783, - [SMALL_STATE(25)] = 830, - [SMALL_STATE(26)] = 859, - [SMALL_STATE(27)] = 888, - [SMALL_STATE(28)] = 935, - [SMALL_STATE(29)] = 964, - [SMALL_STATE(30)] = 993, - [SMALL_STATE(31)] = 1022, - [SMALL_STATE(32)] = 1051, - [SMALL_STATE(33)] = 1078, - [SMALL_STATE(34)] = 1125, - [SMALL_STATE(35)] = 1168, - [SMALL_STATE(36)] = 1199, - [SMALL_STATE(37)] = 1226, - [SMALL_STATE(38)] = 1273, - [SMALL_STATE(39)] = 1315, - [SMALL_STATE(40)] = 1357, - [SMALL_STATE(41)] = 1384, - [SMALL_STATE(42)] = 1421, - [SMALL_STATE(43)] = 1458, - [SMALL_STATE(44)] = 1482, - [SMALL_STATE(45)] = 1516, - [SMALL_STATE(46)] = 1550, - [SMALL_STATE(47)] = 1584, - [SMALL_STATE(48)] = 1618, - [SMALL_STATE(49)] = 1652, - [SMALL_STATE(50)] = 1686, - [SMALL_STATE(51)] = 1720, - [SMALL_STATE(52)] = 1754, - [SMALL_STATE(53)] = 1788, - [SMALL_STATE(54)] = 1822, - [SMALL_STATE(55)] = 1856, - [SMALL_STATE(56)] = 1890, - [SMALL_STATE(57)] = 1924, - [SMALL_STATE(58)] = 1968, - [SMALL_STATE(59)] = 1992, - [SMALL_STATE(60)] = 2026, - [SMALL_STATE(61)] = 2050, - [SMALL_STATE(62)] = 2084, - [SMALL_STATE(63)] = 2108, - [SMALL_STATE(64)] = 2147, - [SMALL_STATE(65)] = 2188, - [SMALL_STATE(66)] = 2226, - [SMALL_STATE(67)] = 2264, - [SMALL_STATE(68)] = 2302, - [SMALL_STATE(69)] = 2340, - [SMALL_STATE(70)] = 2378, - [SMALL_STATE(71)] = 2416, - [SMALL_STATE(72)] = 2440, - [SMALL_STATE(73)] = 2455, - [SMALL_STATE(74)] = 2470, - [SMALL_STATE(75)] = 2489, - [SMALL_STATE(76)] = 2502, - [SMALL_STATE(77)] = 2515, - [SMALL_STATE(78)] = 2528, - [SMALL_STATE(79)] = 2541, - [SMALL_STATE(80)] = 2554, - [SMALL_STATE(81)] = 2567, - [SMALL_STATE(82)] = 2576, - [SMALL_STATE(83)] = 2589, - [SMALL_STATE(84)] = 2598, - [SMALL_STATE(85)] = 2606, - [SMALL_STATE(86)] = 2614, - [SMALL_STATE(87)] = 2626, - [SMALL_STATE(88)] = 2639, - [SMALL_STATE(89)] = 2650, - [SMALL_STATE(90)] = 2661, - [SMALL_STATE(91)] = 2672, - [SMALL_STATE(92)] = 2683, - [SMALL_STATE(93)] = 2694, - [SMALL_STATE(94)] = 2705, - [SMALL_STATE(95)] = 2716, - [SMALL_STATE(96)] = 2727, - [SMALL_STATE(97)] = 2737, - [SMALL_STATE(98)] = 2747, - [SMALL_STATE(99)] = 2757, - [SMALL_STATE(100)] = 2767, - [SMALL_STATE(101)] = 2773, - [SMALL_STATE(102)] = 2778, - [SMALL_STATE(103)] = 2785, - [SMALL_STATE(104)] = 2790, - [SMALL_STATE(105)] = 2797, - [SMALL_STATE(106)] = 2804, - [SMALL_STATE(107)] = 2809, - [SMALL_STATE(108)] = 2814, - [SMALL_STATE(109)] = 2821, - [SMALL_STATE(110)] = 2825, - [SMALL_STATE(111)] = 2829, - [SMALL_STATE(112)] = 2833, - [SMALL_STATE(113)] = 2837, - [SMALL_STATE(114)] = 2841, - [SMALL_STATE(115)] = 2845, - [SMALL_STATE(116)] = 2849, - [SMALL_STATE(117)] = 2853, + [SMALL_STATE(6)] = 37, + [SMALL_STATE(7)] = 74, + [SMALL_STATE(8)] = 111, + [SMALL_STATE(9)] = 148, + [SMALL_STATE(10)] = 185, + [SMALL_STATE(11)] = 244, + [SMALL_STATE(12)] = 276, + [SMALL_STATE(13)] = 311, + [SMALL_STATE(14)] = 364, + [SMALL_STATE(15)] = 396, + [SMALL_STATE(16)] = 438, + [SMALL_STATE(17)] = 474, + [SMALL_STATE(18)] = 514, + [SMALL_STATE(19)] = 552, + [SMALL_STATE(20)] = 584, + [SMALL_STATE(21)] = 618, + [SMALL_STATE(22)] = 647, + [SMALL_STATE(23)] = 694, + [SMALL_STATE(24)] = 723, + [SMALL_STATE(25)] = 752, + [SMALL_STATE(26)] = 781, + [SMALL_STATE(27)] = 810, + [SMALL_STATE(28)] = 839, + [SMALL_STATE(29)] = 868, + [SMALL_STATE(30)] = 895, + [SMALL_STATE(31)] = 922, + [SMALL_STATE(32)] = 965, + [SMALL_STATE(33)] = 992, + [SMALL_STATE(34)] = 1021, + [SMALL_STATE(35)] = 1058, + [SMALL_STATE(36)] = 1095, + [SMALL_STATE(37)] = 1129, + [SMALL_STATE(38)] = 1163, + [SMALL_STATE(39)] = 1197, + [SMALL_STATE(40)] = 1231, + [SMALL_STATE(41)] = 1265, + [SMALL_STATE(42)] = 1299, + [SMALL_STATE(43)] = 1343, + [SMALL_STATE(44)] = 1367, + [SMALL_STATE(45)] = 1407, + [SMALL_STATE(46)] = 1441, + [SMALL_STATE(47)] = 1475, + [SMALL_STATE(48)] = 1509, + [SMALL_STATE(49)] = 1533, + [SMALL_STATE(50)] = 1557, + [SMALL_STATE(51)] = 1591, + [SMALL_STATE(52)] = 1625, + [SMALL_STATE(53)] = 1665, + [SMALL_STATE(54)] = 1699, + [SMALL_STATE(55)] = 1733, + [SMALL_STATE(56)] = 1767, + [SMALL_STATE(57)] = 1801, + [SMALL_STATE(58)] = 1825, + [SMALL_STATE(59)] = 1866, + [SMALL_STATE(60)] = 1905, + [SMALL_STATE(61)] = 1943, + [SMALL_STATE(62)] = 1981, + [SMALL_STATE(63)] = 2019, + [SMALL_STATE(64)] = 2057, + [SMALL_STATE(65)] = 2095, + [SMALL_STATE(66)] = 2133, + [SMALL_STATE(67)] = 2157, + [SMALL_STATE(68)] = 2185, + [SMALL_STATE(69)] = 2207, + [SMALL_STATE(70)] = 2229, + [SMALL_STATE(71)] = 2248, + [SMALL_STATE(72)] = 2263, + [SMALL_STATE(73)] = 2278, + [SMALL_STATE(74)] = 2297, + [SMALL_STATE(75)] = 2306, + [SMALL_STATE(76)] = 2315, + [SMALL_STATE(77)] = 2327, + [SMALL_STATE(78)] = 2338, + [SMALL_STATE(79)] = 2349, + [SMALL_STATE(80)] = 2360, + [SMALL_STATE(81)] = 2373, + [SMALL_STATE(82)] = 2384, + [SMALL_STATE(83)] = 2395, + [SMALL_STATE(84)] = 2406, + [SMALL_STATE(85)] = 2417, + [SMALL_STATE(86)] = 2428, + [SMALL_STATE(87)] = 2439, + [SMALL_STATE(88)] = 2450, + [SMALL_STATE(89)] = 2461, + [SMALL_STATE(90)] = 2472, + [SMALL_STATE(91)] = 2483, + [SMALL_STATE(92)] = 2494, + [SMALL_STATE(93)] = 2504, + [SMALL_STATE(94)] = 2510, + [SMALL_STATE(95)] = 2516, + [SMALL_STATE(96)] = 2522, + [SMALL_STATE(97)] = 2532, + [SMALL_STATE(98)] = 2542, + [SMALL_STATE(99)] = 2548, + [SMALL_STATE(100)] = 2558, + [SMALL_STATE(101)] = 2564, + [SMALL_STATE(102)] = 2571, + [SMALL_STATE(103)] = 2578, + [SMALL_STATE(104)] = 2583, + [SMALL_STATE(105)] = 2588, + [SMALL_STATE(106)] = 2593, + [SMALL_STATE(107)] = 2600, + [SMALL_STATE(108)] = 2607, + [SMALL_STATE(109)] = 2612, + [SMALL_STATE(110)] = 2616, + [SMALL_STATE(111)] = 2620, + [SMALL_STATE(112)] = 2624, + [SMALL_STATE(113)] = 2628, + [SMALL_STATE(114)] = 2632, + [SMALL_STATE(115)] = 2636, + [SMALL_STATE(116)] = 2640, + [SMALL_STATE(117)] = 2644, + [SMALL_STATE(118)] = 2648, }; 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}}, REDUCE(sym_source_file, 0), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), - [7] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(11), - [10] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(33), - [13] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(112), - [16] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(86), - [19] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(45), - [22] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(48), - [25] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(3), - [28] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), - [30] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(14), - [33] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(27), - [36] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(55), - [39] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 12), SHIFT_REPEAT(74), - [42] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), - [44] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [46] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), - [48] = {.entry = {.count = 1, .reusable = false}}, SHIFT(86), - [50] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [52] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [54] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [56] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [58] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), - [60] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), - [62] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), - [64] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74), - [66] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [68] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2), - [70] = {.entry = {.count = 1, .reusable = false}}, SHIFT(110), - [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2), - [74] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), - [76] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(110), - [79] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), - [81] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 3), - [83] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 3), - [85] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1), - [87] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1), - [89] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [91] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), - [93] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24), - [95] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [97] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), - [99] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [101] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 20), - [103] = {.entry = {.count = 1, .reusable = false}}, SHIFT(50), - [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [107] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49), - [109] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51), - [111] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), - [113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 6), - [115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 6), - [117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [121] = {.entry = {.count = 1, .reusable = false}}, SHIFT(42), - [123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 20), - [125] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), - [127] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 3, .production_id = 16), - [129] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 3, .production_id = 16), - [131] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 14), - [133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 14), - [135] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 14), - [137] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 14), - [139] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 4, .production_id = 25), - [141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 4, .production_id = 25), - [143] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 9), - [145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 9), - [147] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 5, .production_id = 28), - [149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 5, .production_id = 28), - [151] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [153] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), - [155] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_left_side, 1, .production_id = 2), - [157] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), - [159] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12), - [161] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), - [163] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 14), - [165] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type, 1), - [167] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), - [169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__maybe_global_identifier, 1), - [171] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), REDUCE(sym__type, 1), - [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 11), - [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3, .production_id = 11), - [178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_left_side, 2, .production_id = 7), - [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_assign_left_side_repeat2, 2, .production_id = 18), - [182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_assign_left_side_repeat2, 3, .production_id = 26), - [184] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 22), - [186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 22), - [188] = {.entry = {.count = 1, .reusable = false}}, SHIFT(95), - [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 4), - [200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 4), - [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [228] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61), - [230] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29), - [232] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 30), - [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 30), - [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [238] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), - [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), - [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [244] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5, .production_id = 31), - [246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5, .production_id = 31), - [248] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 27), - [250] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3), - [252] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), - [254] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 3, .production_id = 32), - [256] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28), - [258] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 23), - [260] = {.entry = {.count = 1, .reusable = false}}, SHIFT(44), - [262] = {.entry = {.count = 1, .reusable = false}}, SHIFT(103), - [264] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_assign_left_side_repeat1, 2), - [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2), - [268] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_assign_left_side_repeat1, 2), SHIFT_REPEAT(71), - [271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 13), - [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [275] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 8), - [277] = {.entry = {.count = 1, .reusable = false}}, SHIFT(92), - [279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), - [281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 7), - [283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 3, .production_id = 15), - [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 10), - [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat2, 2, .production_id = 19), - [291] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat2, 2, .production_id = 19), SHIFT_REPEAT(12), - [294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 2), - [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 17), - [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 24), - [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat2, 2, .production_id = 18), - [302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat2, 3, .production_id = 26), - [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [310] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2), SHIFT_REPEAT(115), - [313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), - [317] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(116), - [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [326] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 29), SHIFT_REPEAT(61), - [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_func_call_repeat1, 2, .production_id = 29), - [331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 1), - [339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 3), - [343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 9), - [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 5), - [351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 21), - [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [357] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [33] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(5), + [36] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(44), + [39] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(115), + [42] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(76), + [45] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(45), + [48] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(41), + [51] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(2), + [54] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), + [56] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(13), + [59] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(22), + [62] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(40), + [65] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(73), + [68] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 2), + [70] = {.entry = {.count = 1, .reusable = false}}, SHIFT(116), + [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 2), + [74] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 8), + [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 8), + [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 7), + [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 7), + [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 3, .production_id = 16), + [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 3, .production_id = 16), + [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 15), + [88] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 15), SHIFT_REPEAT(116), + [91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 15), + [93] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 8), + [95] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 8), + [97] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [99] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(35), + [103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [105] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), + [107] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 11), + [109] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 11), + [111] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 22), + [113] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), + [115] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), + [117] = {.entry = {.count = 1, .reusable = false}}, SHIFT(37), + [119] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36), + [121] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), + [123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 22), + [127] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 20), + [129] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 20), + [131] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 20), + [133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 20), + [135] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 16), + [137] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 16), + [139] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 10), + [141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 10), + [143] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), + [145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [147] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 13), + [149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 13), + [151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 8), + [153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 8), + [155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), + [159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 14), + [161] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3, .production_id = 14), + [163] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 20), + [165] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51), + [167] = {.entry = {.count = 1, .reusable = false}}, SHIFT(38), + [169] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 21), + [171] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 21), + [173] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87), + [175] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type, 1), + [177] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), + [179] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__maybe_global_identifier, 1), + [181] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), REDUCE(sym__type, 1), + [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [204] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), + [206] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28), + [208] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5, .production_id = 26), + [210] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5, .production_id = 26), + [212] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 4), + [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [220] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), + [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), + [224] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 25), + [226] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 25), + [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [232] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 12), + [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [242] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 2), + [244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 2), + [246] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2), + [248] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 8), + [250] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), + [252] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 23), + [254] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), + [256] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 3, .production_id = 27), + [258] = {.entry = {.count = 1, .reusable = false}}, SHIFT(21), + [260] = {.entry = {.count = 1, .reusable = false}}, SHIFT(108), + [262] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_assign_to_repeat1, 2), + [264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_to_repeat1, 2), + [266] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_assign_to_repeat1, 2), SHIFT_REPEAT(66), + [269] = {.entry = {.count = 1, .reusable = false}}, SHIFT(89), + [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), + [275] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 1), + [277] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 9), + [279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 17), + [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 24), + [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 19), + [287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 15), + [291] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 15), SHIFT_REPEAT(70), + [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), + [302] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(110), + [305] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 15), SHIFT_REPEAT(117), + [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 2), + [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 7), + [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 2), + [320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 7), + [322] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 15), SHIFT_REPEAT(10), + [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 15), + [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 4), + [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 8), + [335] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 15), SHIFT_REPEAT(54), + [338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 15), + [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 8), + [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 12), + [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 10), + [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 1), + [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 5), + [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 3), + [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 18), + [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [372] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 6), }; #ifdef __cplusplus From 6380a6b7e2b415d482b232199608a15545662300 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Mon, 1 Apr 2024 23:47:02 +0200 Subject: [PATCH 15/49] Since global_identifier is a superset of identifier anyway, just make uses of _maybe_global_identifier global_identifier --- grammar.js | 19 +- src/grammar.json | 81 +- src/node-types.json | 56 - src/parser.c | 3442 ++++++++++++++++++++----------------------- 4 files changed, 1621 insertions(+), 1977 deletions(-) diff --git a/grammar.js b/grammar.js index 277bb53..4b4ca9f 100644 --- a/grammar.js +++ b/grammar.js @@ -44,15 +44,10 @@ module.exports = grammar({ number: $ => /\d[\d_]*/, global_identifier: $ => prec.left(PREC.namespace_path, seq( - optional('::'), + //optional('::'), sepSeq1(field('item', $.identifier), '::') )), - _maybe_global_identifier: $ => choice( - prec(1, $.identifier), - prec(0, $.global_identifier) - ), - array_type: $ => seq( field('arr', $._type), field('arr_idx', $.array_bracket_expression) @@ -105,7 +100,7 @@ module.exports = grammar({ ), func_call: $ => seq( - field('name', $._maybe_global_identifier), + field('name', $.global_identifier), field('arguments', $.parenthesis_expression_list) ), @@ -128,7 +123,7 @@ module.exports = grammar({ ), _expression: $ => choice( - $._maybe_global_identifier, + $.global_identifier, $.array_op, $.number, $.parenthesis_expression, @@ -150,10 +145,10 @@ module.exports = grammar({ ), assign_to: $ => seq( - field('write_modifiers', choice( - repeat('reg'), + optional(field('write_modifiers', choice( + repeat1('reg'), 'initial' - )), + ))), field('expr_or_decl', choice( $._expression, $.declaration @@ -202,7 +197,7 @@ module.exports = grammar({ }, conflicts: $ => [ - [$._maybe_global_identifier, $._type] // Just because LR(1) is too weak to resolve 'ident[] a' vs 'type_name[]'. Tree sitter resolves this itself with more expensive GLR. NOT a precedence relation. + [$._expression, $._type] // Just because LR(1) is too weak to resolve 'ident[] a' vs 'type_name[]'. Tree sitter resolves this itself with more expensive GLR. NOT a precedence relation. ], word: $=> $.identifier, diff --git a/src/grammar.json b/src/grammar.json index c4008f2..b0f2124 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -147,18 +147,6 @@ "content": { "type": "SEQ", "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "::" - }, - { - "type": "BLANK" - } - ] - }, { "type": "SEQ", "members": [ @@ -195,27 +183,6 @@ ] } }, - "_maybe_global_identifier": { - "type": "CHOICE", - "members": [ - { - "type": "PREC", - "value": 1, - "content": { - "type": "SYMBOL", - "name": "identifier" - } - }, - { - "type": "PREC", - "value": 0, - "content": { - "type": "SYMBOL", - "name": "global_identifier" - } - } - ] - }, "array_type": { "type": "SEQ", "members": [ @@ -667,7 +634,7 @@ "name": "name", "content": { "type": "SYMBOL", - "name": "_maybe_global_identifier" + "name": "global_identifier" } }, { @@ -781,7 +748,7 @@ "members": [ { "type": "SYMBOL", - "name": "_maybe_global_identifier" + "name": "global_identifier" }, { "type": "SYMBOL", @@ -862,24 +829,32 @@ "type": "SEQ", "members": [ { - "type": "FIELD", - "name": "write_modifiers", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "REPEAT", - "content": { - "type": "STRING", - "value": "reg" - } - }, - { - "type": "STRING", - "value": "initial" + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "write_modifiers", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "REPEAT1", + "content": { + "type": "STRING", + "value": "reg" + } + }, + { + "type": "STRING", + "value": "initial" + } + ] } - ] - } + }, + { + "type": "BLANK" + } + ] }, { "type": "FIELD", @@ -1114,7 +1089,7 @@ ], "conflicts": [ [ - "_maybe_global_identifier", + "_expression", "_type" ] ], diff --git a/src/node-types.json b/src/node-types.json index 0011339..dc2a2e8 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -23,10 +23,6 @@ "type": "global_identifier", "named": true }, - { - "type": "identifier", - "named": true - }, { "type": "number", "named": true @@ -67,10 +63,6 @@ "type": "global_identifier", "named": true }, - { - "type": "identifier", - "named": true - }, { "type": "number", "named": true @@ -171,10 +163,6 @@ "type": "global_identifier", "named": true }, - { - "type": "identifier", - "named": true - }, { "type": "number", "named": true @@ -229,10 +217,6 @@ "type": "global_identifier", "named": true }, - { - "type": "identifier", - "named": true - }, { "type": "number", "named": true @@ -329,10 +313,6 @@ "type": "global_identifier", "named": true }, - { - "type": "identifier", - "named": true - }, { "type": "number", "named": true @@ -419,10 +399,6 @@ "type": "global_identifier", "named": true }, - { - "type": "identifier", - "named": true - }, { "type": "number", "named": true @@ -566,10 +542,6 @@ { "type": "global_identifier", "named": true - }, - { - "type": "identifier", - "named": true } ] } @@ -615,10 +587,6 @@ "type": "global_identifier", "named": true }, - { - "type": "identifier", - "named": true - }, { "type": "number", "named": true @@ -709,10 +677,6 @@ "type": "global_identifier", "named": true }, - { - "type": "identifier", - "named": true - }, { "type": "number", "named": true @@ -789,10 +753,6 @@ "type": "global_identifier", "named": true }, - { - "type": "identifier", - "named": true - }, { "type": "number", "named": true @@ -833,10 +793,6 @@ "type": "global_identifier", "named": true }, - { - "type": "identifier", - "named": true - }, { "type": "number", "named": true @@ -877,10 +833,6 @@ "type": "global_identifier", "named": true }, - { - "type": "identifier", - "named": true - }, { "type": "number", "named": true @@ -915,10 +867,6 @@ "type": "global_identifier", "named": true }, - { - "type": "identifier", - "named": true - }, { "type": "number", "named": true @@ -1008,10 +956,6 @@ "type": "global_identifier", "named": true }, - { - "type": "identifier", - "named": true - }, { "type": "number", "named": true diff --git a/src/parser.c b/src/parser.c index 85a2568..a11decd 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,9 +6,9 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 119 +#define STATE_COUNT 113 #define LARGE_STATE_COUNT 5 -#define SYMBOL_COUNT 73 +#define SYMBOL_COUNT 72 #define ALIAS_COUNT 0 #define TOKEN_COUNT 40 #define EXTERNAL_TOKEN_COUNT 0 @@ -61,34 +61,33 @@ enum { sym_declaration_list = 42, sym_module = 43, sym_global_identifier = 44, - sym__maybe_global_identifier = 45, - sym_array_type = 46, - sym__type = 47, - sym_latency_specifier = 48, - sym_declaration = 49, - sym_unary_op = 50, - sym_binary_op = 51, - sym_array_op = 52, - sym_func_call = 53, - sym_parenthesis_expression_list = 54, - sym_parenthesis_expression = 55, - sym_array_bracket_expression = 56, - sym__expression = 57, - sym_range = 58, - sym_block = 59, - sym_assign_to = 60, - sym_assign_left_side = 61, - sym_decl_assign_statement = 62, - sym_if_statement = 63, - sym_for_statement = 64, - sym__statement = 65, - aux_sym_source_file_repeat1 = 66, - aux_sym_declaration_list_repeat1 = 67, - aux_sym_global_identifier_repeat1 = 68, - aux_sym_parenthesis_expression_list_repeat1 = 69, - aux_sym_block_repeat1 = 70, - aux_sym_assign_to_repeat1 = 71, - aux_sym_assign_left_side_repeat1 = 72, + sym_array_type = 45, + sym__type = 46, + sym_latency_specifier = 47, + sym_declaration = 48, + sym_unary_op = 49, + sym_binary_op = 50, + sym_array_op = 51, + sym_func_call = 52, + sym_parenthesis_expression_list = 53, + sym_parenthesis_expression = 54, + sym_array_bracket_expression = 55, + sym__expression = 56, + sym_range = 57, + sym_block = 58, + sym_assign_to = 59, + sym_assign_left_side = 60, + sym_decl_assign_statement = 61, + sym_if_statement = 62, + sym_for_statement = 63, + sym__statement = 64, + aux_sym_source_file_repeat1 = 65, + aux_sym_declaration_list_repeat1 = 66, + aux_sym_global_identifier_repeat1 = 67, + aux_sym_parenthesis_expression_list_repeat1 = 68, + aux_sym_block_repeat1 = 69, + aux_sym_assign_to_repeat1 = 70, + aux_sym_assign_left_side_repeat1 = 71, }; static const char * const ts_symbol_names[] = { @@ -137,7 +136,6 @@ static const char * const ts_symbol_names[] = { [sym_declaration_list] = "declaration_list", [sym_module] = "module", [sym_global_identifier] = "global_identifier", - [sym__maybe_global_identifier] = "_maybe_global_identifier", [sym_array_type] = "array_type", [sym__type] = "_type", [sym_latency_specifier] = "latency_specifier", @@ -213,7 +211,6 @@ static const TSSymbol ts_symbol_map[] = { [sym_declaration_list] = sym_declaration_list, [sym_module] = sym_module, [sym_global_identifier] = sym_global_identifier, - [sym__maybe_global_identifier] = sym__maybe_global_identifier, [sym_array_type] = sym_array_type, [sym__type] = sym__type, [sym_latency_specifier] = sym_latency_specifier, @@ -424,10 +421,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym__maybe_global_identifier] = { - .visible = false, - .named = true, - }, [sym_array_type] = { .visible = true, .named = true, @@ -607,25 +600,25 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [5] = {.index = 5, .length = 3}, [6] = {.index = 8, .length = 1}, [7] = {.index = 9, .length = 2}, - [8] = {.index = 11, .length = 1}, - [9] = {.index = 12, .length = 2}, - [10] = {.index = 14, .length = 2}, - [11] = {.index = 16, .length = 2}, - [12] = {.index = 18, .length = 2}, - [13] = {.index = 20, .length = 2}, - [14] = {.index = 22, .length = 1}, - [15] = {.index = 23, .length = 2}, - [16] = {.index = 25, .length = 2}, - [17] = {.index = 27, .length = 3}, - [18] = {.index = 30, .length = 2}, - [19] = {.index = 32, .length = 3}, - [20] = {.index = 35, .length = 1}, - [21] = {.index = 36, .length = 2}, - [22] = {.index = 38, .length = 3}, - [23] = {.index = 41, .length = 2}, - [24] = {.index = 43, .length = 4}, - [25] = {.index = 47, .length = 3}, - [26] = {.index = 50, .length = 3}, + [8] = {.index = 11, .length = 2}, + [9] = {.index = 13, .length = 2}, + [10] = {.index = 15, .length = 2}, + [11] = {.index = 17, .length = 2}, + [12] = {.index = 19, .length = 2}, + [13] = {.index = 21, .length = 1}, + [14] = {.index = 22, .length = 2}, + [15] = {.index = 24, .length = 1}, + [16] = {.index = 25, .length = 3}, + [17] = {.index = 28, .length = 2}, + [18] = {.index = 30, .length = 3}, + [19] = {.index = 33, .length = 1}, + [20] = {.index = 34, .length = 2}, + [21] = {.index = 36, .length = 3}, + [22] = {.index = 39, .length = 2}, + [23] = {.index = 41, .length = 4}, + [24] = {.index = 45, .length = 3}, + [25] = {.index = 48, .length = 3}, + [26] = {.index = 51, .length = 2}, [27] = {.index = 53, .length = 2}, }; @@ -649,66 +642,66 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_item, 0}, {field_item, 1, .inherited = true}, [11] = - {field_item, 1}, - [12] = {field_name, 1}, {field_type, 0}, - [14] = + [13] = {field_arr, 0}, {field_arr_idx, 1}, - [16] = + [15] = {field_operator, 0}, {field_right, 1}, - [18] = + [17] = {field_expr_or_decl, 1}, {field_write_modifiers, 0}, - [20] = + [19] = {field_arguments, 1}, {field_name, 0}, - [22] = + [21] = {field_item, 1, .inherited = true}, - [23] = + [22] = {field_item, 0, .inherited = true}, {field_item, 1, .inherited = true}, - [25] = + [24] = {field_item, 1}, - {field_item, 2, .inherited = true}, - [27] = + [25] = {field_declaration_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [30] = + [28] = {field_inputs, 1}, {field_outputs, 3}, - [32] = + [30] = {field_latency_specifier, 2}, {field_name, 1}, {field_type, 0}, - [35] = + [33] = {field_content, 1}, - [36] = + [34] = {field_condition, 1}, {field_then_block, 2}, - [38] = + [36] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [41] = + [39] = {field_assign_left, 0}, {field_assign_value, 2}, - [43] = + [41] = {field_declaration_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [47] = + [45] = {field_condition, 1}, {field_else_block, 4}, {field_then_block, 2}, - [50] = + [48] = {field_block, 4}, {field_for_decl, 1}, {field_for_range, 3}, + [51] = + {field_item, 1}, + {field_item, 2, .inherited = true}, [53] = {field_from, 0}, {field_to, 2}, @@ -769,11 +762,11 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [43] = 43, [44] = 44, [45] = 45, - [46] = 38, + [46] = 45, [47] = 47, [48] = 48, [49] = 49, - [50] = 50, + [50] = 48, [51] = 51, [52] = 52, [53] = 53, @@ -788,7 +781,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [62] = 62, [63] = 63, [64] = 64, - [65] = 64, + [65] = 65, [66] = 66, [67] = 67, [68] = 68, @@ -800,48 +793,42 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [74] = 74, [75] = 75, [76] = 76, - [77] = 77, - [78] = 6, - [79] = 79, + [77] = 7, + [78] = 78, + [79] = 6, [80] = 80, [81] = 81, - [82] = 8, - [83] = 9, - [84] = 7, + [82] = 82, + [83] = 83, + [84] = 84, [85] = 85, - [86] = 86, + [86] = 5, [87] = 87, [88] = 88, - [89] = 89, + [89] = 8, [90] = 90, [91] = 91, [92] = 92, [93] = 93, [94] = 94, - [95] = 11, + [95] = 95, [96] = 96, [97] = 97, [98] = 98, [99] = 99, [100] = 100, - [101] = 101, + [101] = 20, [102] = 102, [103] = 103, [104] = 104, [105] = 105, [106] = 106, [107] = 107, - [108] = 21, + [108] = 108, [109] = 109, [110] = 110, [111] = 111, - [112] = 112, - [113] = 113, - [114] = 114, - [115] = 113, - [116] = 116, - [117] = 116, - [118] = 118, + [112] = 105, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -1877,295 +1864,235 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (eof) ADVANCE(19); - if (lookahead == '!') ADVANCE(33); - if (lookahead == '%') ADVANCE(44); - if (lookahead == '&') ADVANCE(35); - if (lookahead == '\'') ADVANCE(27); - if (lookahead == '(') ADVANCE(45); - if (lookahead == ')') ADVANCE(46); - if (lookahead == '*') ADVANCE(31); - if (lookahead == '+') ADVANCE(28); - if (lookahead == ',') ADVANCE(23); - if (lookahead == '-') ADVANCE(30); - if (lookahead == '/') SKIP(13) - if (lookahead == ':') ADVANCE(21); - if (lookahead == ';') ADVANCE(52); - if (lookahead == '<') ADVANCE(39); - if (lookahead == '=') ADVANCE(51); - if (lookahead == '>') ADVANCE(41); - if (lookahead == '[') ADVANCE(47); - if (lookahead == ']') ADVANCE(48); - if (lookahead == '^') ADVANCE(36); - if (lookahead == '{') ADVANCE(49); - if (lookahead == '|') ADVANCE(34); - if (lookahead == '}') ADVANCE(50); + if (eof) ADVANCE(12); + if (lookahead == '!') ADVANCE(25); + if (lookahead == '%') ADVANCE(36); + if (lookahead == '&') ADVANCE(27); + if (lookahead == '\'') ADVANCE(19); + if (lookahead == '(') ADVANCE(37); + if (lookahead == ')') ADVANCE(38); + if (lookahead == '*') ADVANCE(23); + if (lookahead == '+') ADVANCE(20); + if (lookahead == ',') ADVANCE(15); + if (lookahead == '-') ADVANCE(22); + if (lookahead == '/') SKIP(6) + if (lookahead == ':') ADVANCE(13); + if (lookahead == ';') ADVANCE(44); + if (lookahead == '<') ADVANCE(31); + if (lookahead == '=') ADVANCE(43); + if (lookahead == '>') ADVANCE(33); + if (lookahead == '[') ADVANCE(39); + if (lookahead == ']') ADVANCE(40); + if (lookahead == '^') ADVANCE(28); + if (lookahead == '{') ADVANCE(41); + if (lookahead == '|') ADVANCE(26); + if (lookahead == '}') ADVANCE(42); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(0) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(25); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(24); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(17); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(16); END_STATE(); case 1: - if (lookahead == '\n') SKIP(7) - if (lookahead != 0) SKIP(1) - END_STATE(); - case 2: - if (lookahead == '!') ADVANCE(9); - if (lookahead == '%') ADVANCE(44); - if (lookahead == '&') ADVANCE(35); - if (lookahead == '(') ADVANCE(45); - if (lookahead == ')') ADVANCE(46); - if (lookahead == '*') ADVANCE(31); - if (lookahead == '+') ADVANCE(28); - if (lookahead == ',') ADVANCE(23); - if (lookahead == '-') ADVANCE(30); - if (lookahead == '/') ADVANCE(43); - if (lookahead == ':') ADVANCE(21); - if (lookahead == ';') ADVANCE(52); - if (lookahead == '<') ADVANCE(39); - if (lookahead == '=') ADVANCE(51); - if (lookahead == '>') ADVANCE(41); - if (lookahead == '[') ADVANCE(47); - if (lookahead == ']') ADVANCE(48); - if (lookahead == '^') ADVANCE(36); - if (lookahead == '{') ADVANCE(49); - if (lookahead == '|') ADVANCE(34); + if (lookahead == '!') ADVANCE(2); + if (lookahead == '%') ADVANCE(36); + if (lookahead == '&') ADVANCE(27); + if (lookahead == '(') ADVANCE(37); + if (lookahead == ')') ADVANCE(38); + if (lookahead == '*') ADVANCE(23); + if (lookahead == '+') ADVANCE(20); + if (lookahead == ',') ADVANCE(15); + if (lookahead == '-') ADVANCE(22); + if (lookahead == '/') ADVANCE(35); + if (lookahead == ':') ADVANCE(13); + if (lookahead == ';') ADVANCE(44); + if (lookahead == '<') ADVANCE(31); + if (lookahead == '=') ADVANCE(43); + if (lookahead == '>') ADVANCE(33); + if (lookahead == '[') ADVANCE(39); + if (lookahead == ']') ADVANCE(40); + if (lookahead == '^') ADVANCE(28); + if (lookahead == '{') ADVANCE(41); + if (lookahead == '|') ADVANCE(26); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || - lookahead == ' ') SKIP(2) - if (sym_identifier_character_set_1(lookahead)) ADVANCE(24); + lookahead == ' ') SKIP(1) + if (sym_identifier_character_set_1(lookahead)) ADVANCE(16); + END_STATE(); + case 2: + if (lookahead == '=') ADVANCE(30); END_STATE(); case 3: - if (lookahead == '!') ADVANCE(9); - if (lookahead == '%') ADVANCE(44); - if (lookahead == '&') ADVANCE(35); - if (lookahead == '(') ADVANCE(45); - if (lookahead == ')') ADVANCE(46); - if (lookahead == '*') ADVANCE(31); - if (lookahead == '+') ADVANCE(28); - if (lookahead == ',') ADVANCE(23); - if (lookahead == '-') ADVANCE(30); - if (lookahead == '/') ADVANCE(43); - if (lookahead == ':') ADVANCE(20); - if (lookahead == ';') ADVANCE(52); - if (lookahead == '<') ADVANCE(39); - if (lookahead == '=') ADVANCE(51); - if (lookahead == '>') ADVANCE(41); - if (lookahead == '[') ADVANCE(47); - if (lookahead == ']') ADVANCE(48); - if (lookahead == '^') ADVANCE(36); - if (lookahead == '{') ADVANCE(49); - if (lookahead == '|') ADVANCE(34); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(3) - if (sym_identifier_character_set_1(lookahead)) ADVANCE(24); + if (eof) ADVANCE(12); + if (lookahead == '\n') SKIP(0) + if (lookahead != 0) SKIP(3) END_STATE(); case 4: - if (lookahead == '*') SKIP(6) - if (lookahead == '/') SKIP(1) + if (eof) ADVANCE(12); + if (lookahead == '\n') SKIP(5) + if (lookahead != 0) SKIP(4) END_STATE(); case 5: - if (lookahead == '*') SKIP(5) - if (lookahead == '/') SKIP(7) - if (lookahead != 0) SKIP(6) + if (eof) ADVANCE(12); + if (lookahead == '!') ADVANCE(24); + if (lookahead == '&') ADVANCE(27); + if (lookahead == '(') ADVANCE(37); + if (lookahead == ')') ADVANCE(38); + if (lookahead == '*') ADVANCE(23); + if (lookahead == '+') ADVANCE(20); + if (lookahead == '-') ADVANCE(21); + if (lookahead == '/') SKIP(11) + if (lookahead == '^') ADVANCE(28); + if (lookahead == '{') ADVANCE(41); + if (lookahead == '|') ADVANCE(26); + if (lookahead == '}') ADVANCE(42); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(5) + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(17); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(16); END_STATE(); case 6: - if (lookahead == '*') SKIP(5) - if (lookahead != 0) SKIP(6) + if (eof) ADVANCE(12); + if (lookahead == '*') SKIP(8) + if (lookahead == '/') SKIP(3) END_STATE(); case 7: - if (lookahead == '/') SKIP(4) - if (lookahead == ':') ADVANCE(20); - if (lookahead == '{') ADVANCE(49); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(7) + if (eof) ADVANCE(12); + if (lookahead == '*') SKIP(7) + if (lookahead == '/') SKIP(0) + if (lookahead != 0) SKIP(8) END_STATE(); case 8: - if (lookahead == ':') ADVANCE(26); + if (eof) ADVANCE(12); + if (lookahead == '*') SKIP(7) + if (lookahead != 0) SKIP(8) END_STATE(); case 9: - if (lookahead == '=') ADVANCE(38); + if (eof) ADVANCE(12); + if (lookahead == '*') SKIP(9) + if (lookahead == '/') SKIP(5) + if (lookahead != 0) SKIP(10) END_STATE(); case 10: - if (eof) ADVANCE(19); - if (lookahead == '\n') SKIP(0) + if (eof) ADVANCE(12); + if (lookahead == '*') SKIP(9) if (lookahead != 0) SKIP(10) END_STATE(); case 11: - if (eof) ADVANCE(19); - if (lookahead == '\n') SKIP(12) - if (lookahead != 0) SKIP(11) + if (eof) ADVANCE(12); + if (lookahead == '*') SKIP(10) + if (lookahead == '/') SKIP(4) END_STATE(); case 12: - if (eof) ADVANCE(19); - if (lookahead == '!') ADVANCE(32); - if (lookahead == '&') ADVANCE(35); - if (lookahead == '(') ADVANCE(45); - if (lookahead == ')') ADVANCE(46); - if (lookahead == '*') ADVANCE(31); - if (lookahead == '+') ADVANCE(28); - if (lookahead == '-') ADVANCE(29); - if (lookahead == '/') SKIP(18) - if (lookahead == ':') ADVANCE(8); - if (lookahead == '^') ADVANCE(36); - if (lookahead == '{') ADVANCE(49); - if (lookahead == '|') ADVANCE(34); - if (lookahead == '}') ADVANCE(50); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(12) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(25); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(24); - END_STATE(); - case 13: - if (eof) ADVANCE(19); - if (lookahead == '*') SKIP(15) - if (lookahead == '/') SKIP(10) - END_STATE(); - case 14: - if (eof) ADVANCE(19); - if (lookahead == '*') SKIP(14) - if (lookahead == '/') SKIP(0) - if (lookahead != 0) SKIP(15) - END_STATE(); - case 15: - if (eof) ADVANCE(19); - if (lookahead == '*') SKIP(14) - if (lookahead != 0) SKIP(15) - END_STATE(); - case 16: - if (eof) ADVANCE(19); - if (lookahead == '*') SKIP(16) - if (lookahead == '/') SKIP(12) - if (lookahead != 0) SKIP(17) - END_STATE(); - case 17: - if (eof) ADVANCE(19); - if (lookahead == '*') SKIP(16) - if (lookahead != 0) SKIP(17) - END_STATE(); - case 18: - if (eof) ADVANCE(19); - if (lookahead == '*') SKIP(17) - if (lookahead == '/') SKIP(11) - END_STATE(); - case 19: ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); - case 20: - ACCEPT_TOKEN(anon_sym_COLON); - END_STATE(); - case 21: + case 13: ACCEPT_TOKEN(anon_sym_COLON); - if (lookahead == ':') ADVANCE(26); + if (lookahead == ':') ADVANCE(18); END_STATE(); - case 22: + case 14: ACCEPT_TOKEN(anon_sym_DASH_GT); END_STATE(); - case 23: + case 15: ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); - case 24: + case 16: ACCEPT_TOKEN(sym_identifier); - if (sym_identifier_character_set_2(lookahead)) ADVANCE(24); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(16); END_STATE(); - case 25: + case 17: ACCEPT_TOKEN(sym_number); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(25); + lookahead == '_') ADVANCE(17); END_STATE(); - case 26: + case 18: ACCEPT_TOKEN(anon_sym_COLON_COLON); END_STATE(); - case 27: + case 19: ACCEPT_TOKEN(anon_sym_SQUOTE); END_STATE(); - case 28: + case 20: ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); - case 29: + case 21: ACCEPT_TOKEN(anon_sym_DASH); END_STATE(); - case 30: + case 22: ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '>') ADVANCE(22); + if (lookahead == '>') ADVANCE(14); END_STATE(); - case 31: + case 23: ACCEPT_TOKEN(anon_sym_STAR); END_STATE(); - case 32: + case 24: ACCEPT_TOKEN(anon_sym_BANG); END_STATE(); - case 33: + case 25: ACCEPT_TOKEN(anon_sym_BANG); - if (lookahead == '=') ADVANCE(38); + if (lookahead == '=') ADVANCE(30); END_STATE(); - case 34: + case 26: ACCEPT_TOKEN(anon_sym_PIPE); END_STATE(); - case 35: + case 27: ACCEPT_TOKEN(anon_sym_AMP); END_STATE(); - case 36: + case 28: ACCEPT_TOKEN(anon_sym_CARET); END_STATE(); - case 37: + case 29: ACCEPT_TOKEN(anon_sym_EQ_EQ); END_STATE(); - case 38: + case 30: ACCEPT_TOKEN(anon_sym_BANG_EQ); END_STATE(); - case 39: + case 31: ACCEPT_TOKEN(anon_sym_LT); - if (lookahead == '=') ADVANCE(40); + if (lookahead == '=') ADVANCE(32); END_STATE(); - case 40: + case 32: ACCEPT_TOKEN(anon_sym_LT_EQ); END_STATE(); - case 41: + case 33: ACCEPT_TOKEN(anon_sym_GT); - if (lookahead == '=') ADVANCE(42); + if (lookahead == '=') ADVANCE(34); END_STATE(); - case 42: + case 34: ACCEPT_TOKEN(anon_sym_GT_EQ); END_STATE(); - case 43: + case 35: ACCEPT_TOKEN(anon_sym_SLASH); END_STATE(); - case 44: + case 36: ACCEPT_TOKEN(anon_sym_PERCENT); END_STATE(); - case 45: + case 37: ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); - case 46: + case 38: ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); - case 47: + case 39: ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); - case 48: + case 40: ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); - case 49: + case 41: ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); - case 50: + case 42: ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); - case 51: + case 43: ACCEPT_TOKEN(anon_sym_EQ); - if (lookahead == '=') ADVANCE(37); + if (lookahead == '=') ADVANCE(29); END_STATE(); - case 52: + case 44: ACCEPT_TOKEN(anon_sym_SEMI); END_STATE(); default: @@ -2323,71 +2250,71 @@ 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 = 12}, - [3] = {.lex_state = 12}, - [4] = {.lex_state = 12}, - [5] = {.lex_state = 2}, - [6] = {.lex_state = 2}, - [7] = {.lex_state = 2}, - [8] = {.lex_state = 2}, - [9] = {.lex_state = 2}, - [10] = {.lex_state = 12}, - [11] = {.lex_state = 2}, - [12] = {.lex_state = 3}, - [13] = {.lex_state = 12}, - [14] = {.lex_state = 3}, - [15] = {.lex_state = 3}, - [16] = {.lex_state = 3}, - [17] = {.lex_state = 3}, - [18] = {.lex_state = 3}, - [19] = {.lex_state = 3}, - [20] = {.lex_state = 3}, - [21] = {.lex_state = 3}, - [22] = {.lex_state = 12}, - [23] = {.lex_state = 3}, - [24] = {.lex_state = 3}, - [25] = {.lex_state = 3}, - [26] = {.lex_state = 3}, - [27] = {.lex_state = 3}, - [28] = {.lex_state = 3}, - [29] = {.lex_state = 12}, - [30] = {.lex_state = 12}, - [31] = {.lex_state = 2}, - [32] = {.lex_state = 12}, - [33] = {.lex_state = 2}, - [34] = {.lex_state = 12}, - [35] = {.lex_state = 12}, - [36] = {.lex_state = 12}, - [37] = {.lex_state = 12}, - [38] = {.lex_state = 12}, - [39] = {.lex_state = 12}, - [40] = {.lex_state = 12}, - [41] = {.lex_state = 12}, - [42] = {.lex_state = 2}, - [43] = {.lex_state = 12}, - [44] = {.lex_state = 2}, - [45] = {.lex_state = 12}, - [46] = {.lex_state = 12}, - [47] = {.lex_state = 12}, - [48] = {.lex_state = 12}, - [49] = {.lex_state = 12}, - [50] = {.lex_state = 12}, - [51] = {.lex_state = 12}, - [52] = {.lex_state = 2}, - [53] = {.lex_state = 12}, - [54] = {.lex_state = 12}, - [55] = {.lex_state = 12}, - [56] = {.lex_state = 12}, - [57] = {.lex_state = 12}, - [58] = {.lex_state = 2}, - [59] = {.lex_state = 2}, - [60] = {.lex_state = 3}, - [61] = {.lex_state = 2}, - [62] = {.lex_state = 2}, - [63] = {.lex_state = 2}, - [64] = {.lex_state = 2}, - [65] = {.lex_state = 2}, - [66] = {.lex_state = 12}, + [2] = {.lex_state = 5}, + [3] = {.lex_state = 5}, + [4] = {.lex_state = 5}, + [5] = {.lex_state = 1}, + [6] = {.lex_state = 1}, + [7] = {.lex_state = 1}, + [8] = {.lex_state = 1}, + [9] = {.lex_state = 1}, + [10] = {.lex_state = 5}, + [11] = {.lex_state = 1}, + [12] = {.lex_state = 1}, + [13] = {.lex_state = 1}, + [14] = {.lex_state = 1}, + [15] = {.lex_state = 1}, + [16] = {.lex_state = 1}, + [17] = {.lex_state = 1}, + [18] = {.lex_state = 1}, + [19] = {.lex_state = 1}, + [20] = {.lex_state = 1}, + [21] = {.lex_state = 1}, + [22] = {.lex_state = 1}, + [23] = {.lex_state = 5}, + [24] = {.lex_state = 1}, + [25] = {.lex_state = 1}, + [26] = {.lex_state = 5}, + [27] = {.lex_state = 1}, + [28] = {.lex_state = 1}, + [29] = {.lex_state = 5}, + [30] = {.lex_state = 5}, + [31] = {.lex_state = 5}, + [32] = {.lex_state = 1}, + [33] = {.lex_state = 1}, + [34] = {.lex_state = 1}, + [35] = {.lex_state = 5}, + [36] = {.lex_state = 5}, + [37] = {.lex_state = 1}, + [38] = {.lex_state = 5}, + [39] = {.lex_state = 5}, + [40] = {.lex_state = 5}, + [41] = {.lex_state = 5}, + [42] = {.lex_state = 1}, + [43] = {.lex_state = 5}, + [44] = {.lex_state = 5}, + [45] = {.lex_state = 5}, + [46] = {.lex_state = 5}, + [47] = {.lex_state = 5}, + [48] = {.lex_state = 1}, + [49] = {.lex_state = 1}, + [50] = {.lex_state = 1}, + [51] = {.lex_state = 1}, + [52] = {.lex_state = 5}, + [53] = {.lex_state = 5}, + [54] = {.lex_state = 5}, + [55] = {.lex_state = 5}, + [56] = {.lex_state = 5}, + [57] = {.lex_state = 5}, + [58] = {.lex_state = 5}, + [59] = {.lex_state = 5}, + [60] = {.lex_state = 5}, + [61] = {.lex_state = 5}, + [62] = {.lex_state = 1}, + [63] = {.lex_state = 1}, + [64] = {.lex_state = 5}, + [65] = {.lex_state = 0}, + [66] = {.lex_state = 0}, [67] = {.lex_state = 0}, [68] = {.lex_state = 0}, [69] = {.lex_state = 0}, @@ -2401,7 +2328,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [77] = {.lex_state = 0}, [78] = {.lex_state = 0}, [79] = {.lex_state = 0}, - [80] = {.lex_state = 7}, + [80] = {.lex_state = 0}, [81] = {.lex_state = 0}, [82] = {.lex_state = 0}, [83] = {.lex_state = 0}, @@ -2434,12 +2361,6 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [110] = {.lex_state = 0}, [111] = {.lex_state = 0}, [112] = {.lex_state = 0}, - [113] = {.lex_state = 0}, - [114] = {.lex_state = 0}, - [115] = {.lex_state = 0}, - [116] = {.lex_state = 0}, - [117] = {.lex_state = 0}, - [118] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -2485,120 +2406,114 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_SEMI] = ACTIONS(1), }, [1] = { - [sym_source_file] = STATE(114), - [sym_module] = STATE(79), - [aux_sym_source_file_repeat1] = STATE(79), + [sym_source_file] = STATE(111), + [sym_module] = STATE(80), + [aux_sym_source_file_repeat1] = STATE(80), [ts_builtin_sym_end] = ACTIONS(3), [anon_sym_module] = ACTIONS(5), }, [2] = { - [sym_global_identifier] = STATE(33), - [sym__maybe_global_identifier] = STATE(12), - [sym_array_type] = STATE(99), - [sym__type] = STATE(99), - [sym_declaration] = STATE(93), - [sym_unary_op] = STATE(44), - [sym_binary_op] = STATE(44), - [sym_array_op] = STATE(44), - [sym_func_call] = STATE(44), - [sym_parenthesis_expression] = STATE(44), - [sym__expression] = STATE(44), - [sym_block] = STATE(57), - [sym_assign_to] = STATE(88), - [sym_assign_left_side] = STATE(102), - [sym_decl_assign_statement] = STATE(111), - [sym_if_statement] = STATE(57), - [sym_for_statement] = STATE(57), - [sym__statement] = STATE(57), - [aux_sym_block_repeat1] = STATE(3), - [aux_sym_assign_to_repeat1] = STATE(13), + [sym_global_identifier] = STATE(28), + [sym_array_type] = STATE(90), + [sym__type] = STATE(90), + [sym_declaration] = STATE(94), + [sym_unary_op] = STATE(32), + [sym_binary_op] = STATE(32), + [sym_array_op] = STATE(32), + [sym_func_call] = STATE(32), + [sym_parenthesis_expression] = STATE(32), + [sym__expression] = STATE(32), + [sym_block] = STATE(35), + [sym_assign_to] = STATE(78), + [sym_assign_left_side] = STATE(104), + [sym_decl_assign_statement] = STATE(106), + [sym_if_statement] = STATE(35), + [sym_for_statement] = STATE(35), + [sym__statement] = STATE(35), + [aux_sym_block_repeat1] = STATE(2), + [aux_sym_assign_to_repeat1] = STATE(23), [sym_identifier] = ACTIONS(7), - [sym_number] = ACTIONS(9), - [anon_sym_COLON_COLON] = ACTIONS(11), + [sym_number] = ACTIONS(10), [anon_sym_state] = ACTIONS(13), [anon_sym_gen] = ACTIONS(13), - [anon_sym_PLUS] = ACTIONS(15), - [anon_sym_DASH] = ACTIONS(15), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_BANG] = ACTIONS(15), - [anon_sym_PIPE] = ACTIONS(15), - [anon_sym_AMP] = ACTIONS(15), - [anon_sym_CARET] = ACTIONS(15), - [anon_sym_LPAREN] = ACTIONS(17), - [anon_sym_LBRACE] = ACTIONS(19), - [anon_sym_RBRACE] = ACTIONS(21), - [anon_sym_reg] = ACTIONS(23), - [anon_sym_initial] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_for] = ACTIONS(29), + [anon_sym_PLUS] = ACTIONS(16), + [anon_sym_DASH] = ACTIONS(16), + [anon_sym_STAR] = ACTIONS(16), + [anon_sym_BANG] = ACTIONS(16), + [anon_sym_PIPE] = ACTIONS(16), + [anon_sym_AMP] = ACTIONS(16), + [anon_sym_CARET] = ACTIONS(16), + [anon_sym_LPAREN] = ACTIONS(19), + [anon_sym_LBRACE] = ACTIONS(22), + [anon_sym_RBRACE] = ACTIONS(25), + [anon_sym_reg] = ACTIONS(27), + [anon_sym_initial] = ACTIONS(30), + [anon_sym_if] = ACTIONS(33), + [anon_sym_for] = ACTIONS(36), }, [3] = { - [sym_global_identifier] = STATE(33), - [sym__maybe_global_identifier] = STATE(12), - [sym_array_type] = STATE(99), - [sym__type] = STATE(99), - [sym_declaration] = STATE(93), - [sym_unary_op] = STATE(44), - [sym_binary_op] = STATE(44), - [sym_array_op] = STATE(44), - [sym_func_call] = STATE(44), - [sym_parenthesis_expression] = STATE(44), - [sym__expression] = STATE(44), - [sym_block] = STATE(57), - [sym_assign_to] = STATE(88), - [sym_assign_left_side] = STATE(102), - [sym_decl_assign_statement] = STATE(111), - [sym_if_statement] = STATE(57), - [sym_for_statement] = STATE(57), - [sym__statement] = STATE(57), + [sym_global_identifier] = STATE(28), + [sym_array_type] = STATE(90), + [sym__type] = STATE(90), + [sym_declaration] = STATE(94), + [sym_unary_op] = STATE(32), + [sym_binary_op] = STATE(32), + [sym_array_op] = STATE(32), + [sym_func_call] = STATE(32), + [sym_parenthesis_expression] = STATE(32), + [sym__expression] = STATE(32), + [sym_block] = STATE(35), + [sym_assign_to] = STATE(78), + [sym_assign_left_side] = STATE(104), + [sym_decl_assign_statement] = STATE(106), + [sym_if_statement] = STATE(35), + [sym_for_statement] = STATE(35), + [sym__statement] = STATE(35), [aux_sym_block_repeat1] = STATE(4), - [aux_sym_assign_to_repeat1] = STATE(13), - [sym_identifier] = ACTIONS(7), - [sym_number] = ACTIONS(9), - [anon_sym_COLON_COLON] = ACTIONS(11), - [anon_sym_state] = ACTIONS(13), - [anon_sym_gen] = ACTIONS(13), - [anon_sym_PLUS] = ACTIONS(15), - [anon_sym_DASH] = ACTIONS(15), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_BANG] = ACTIONS(15), - [anon_sym_PIPE] = ACTIONS(15), - [anon_sym_AMP] = ACTIONS(15), - [anon_sym_CARET] = ACTIONS(15), - [anon_sym_LPAREN] = ACTIONS(17), - [anon_sym_LBRACE] = ACTIONS(19), - [anon_sym_RBRACE] = ACTIONS(31), - [anon_sym_reg] = ACTIONS(23), - [anon_sym_initial] = ACTIONS(25), - [anon_sym_if] = ACTIONS(27), - [anon_sym_for] = ACTIONS(29), + [aux_sym_assign_to_repeat1] = STATE(23), + [sym_identifier] = ACTIONS(39), + [sym_number] = ACTIONS(41), + [anon_sym_state] = ACTIONS(43), + [anon_sym_gen] = ACTIONS(43), + [anon_sym_PLUS] = ACTIONS(45), + [anon_sym_DASH] = ACTIONS(45), + [anon_sym_STAR] = ACTIONS(45), + [anon_sym_BANG] = ACTIONS(45), + [anon_sym_PIPE] = ACTIONS(45), + [anon_sym_AMP] = ACTIONS(45), + [anon_sym_CARET] = ACTIONS(45), + [anon_sym_LPAREN] = ACTIONS(47), + [anon_sym_LBRACE] = ACTIONS(49), + [anon_sym_RBRACE] = ACTIONS(51), + [anon_sym_reg] = ACTIONS(53), + [anon_sym_initial] = ACTIONS(55), + [anon_sym_if] = ACTIONS(57), + [anon_sym_for] = ACTIONS(59), }, [4] = { - [sym_global_identifier] = STATE(33), - [sym__maybe_global_identifier] = STATE(12), - [sym_array_type] = STATE(99), - [sym__type] = STATE(99), - [sym_declaration] = STATE(93), - [sym_unary_op] = STATE(44), - [sym_binary_op] = STATE(44), - [sym_array_op] = STATE(44), - [sym_func_call] = STATE(44), - [sym_parenthesis_expression] = STATE(44), - [sym__expression] = STATE(44), - [sym_block] = STATE(57), - [sym_assign_to] = STATE(88), - [sym_assign_left_side] = STATE(102), - [sym_decl_assign_statement] = STATE(111), - [sym_if_statement] = STATE(57), - [sym_for_statement] = STATE(57), - [sym__statement] = STATE(57), - [aux_sym_block_repeat1] = STATE(4), - [aux_sym_assign_to_repeat1] = STATE(13), - [sym_identifier] = ACTIONS(33), - [sym_number] = ACTIONS(36), - [anon_sym_COLON_COLON] = ACTIONS(39), - [anon_sym_state] = ACTIONS(42), - [anon_sym_gen] = ACTIONS(42), + [sym_global_identifier] = STATE(28), + [sym_array_type] = STATE(90), + [sym__type] = STATE(90), + [sym_declaration] = STATE(94), + [sym_unary_op] = STATE(32), + [sym_binary_op] = STATE(32), + [sym_array_op] = STATE(32), + [sym_func_call] = STATE(32), + [sym_parenthesis_expression] = STATE(32), + [sym__expression] = STATE(32), + [sym_block] = STATE(35), + [sym_assign_to] = STATE(78), + [sym_assign_left_side] = STATE(104), + [sym_decl_assign_statement] = STATE(106), + [sym_if_statement] = STATE(35), + [sym_for_statement] = STATE(35), + [sym__statement] = STATE(35), + [aux_sym_block_repeat1] = STATE(2), + [aux_sym_assign_to_repeat1] = STATE(23), + [sym_identifier] = ACTIONS(39), + [sym_number] = ACTIONS(41), + [anon_sym_state] = ACTIONS(43), + [anon_sym_gen] = ACTIONS(43), [anon_sym_PLUS] = ACTIONS(45), [anon_sym_DASH] = ACTIONS(45), [anon_sym_STAR] = ACTIONS(45), @@ -2606,25 +2521,25 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_PIPE] = ACTIONS(45), [anon_sym_AMP] = ACTIONS(45), [anon_sym_CARET] = ACTIONS(45), - [anon_sym_LPAREN] = ACTIONS(48), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_RBRACE] = ACTIONS(54), - [anon_sym_reg] = ACTIONS(56), - [anon_sym_initial] = ACTIONS(59), - [anon_sym_if] = ACTIONS(62), - [anon_sym_for] = ACTIONS(65), + [anon_sym_LPAREN] = ACTIONS(47), + [anon_sym_LBRACE] = ACTIONS(49), + [anon_sym_RBRACE] = ACTIONS(61), + [anon_sym_reg] = ACTIONS(53), + [anon_sym_initial] = ACTIONS(55), + [anon_sym_if] = ACTIONS(57), + [anon_sym_for] = ACTIONS(59), }, }; static const uint16_t ts_small_parse_table[] = { [0] = 4, - ACTIONS(70), 1, + ACTIONS(65), 1, anon_sym_COLON_COLON, - ACTIONS(72), 1, + ACTIONS(68), 1, anon_sym_SLASH, - STATE(7), 1, + STATE(5), 1, aux_sym_global_identifier_repeat1, - ACTIONS(68), 25, + ACTIONS(63), 25, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, @@ -2651,13 +2566,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_SEMI, [37] = 4, - ACTIONS(70), 1, + ACTIONS(72), 1, anon_sym_COLON_COLON, - ACTIONS(76), 1, + ACTIONS(74), 1, anon_sym_SLASH, - STATE(8), 1, + STATE(5), 1, aux_sym_global_identifier_repeat1, - ACTIONS(74), 25, + ACTIONS(70), 25, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, @@ -2684,13 +2599,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_SEMI, [74] = 4, - ACTIONS(70), 1, + ACTIONS(72), 1, anon_sym_COLON_COLON, - ACTIONS(80), 1, + ACTIONS(78), 1, anon_sym_SLASH, - STATE(9), 1, + STATE(6), 1, aux_sym_global_identifier_repeat1, - ACTIONS(78), 25, + ACTIONS(76), 25, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, @@ -2716,18 +2631,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [111] = 4, - ACTIONS(70), 1, - anon_sym_COLON_COLON, - ACTIONS(84), 1, + [111] = 2, + ACTIONS(82), 1, anon_sym_SLASH, - STATE(9), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(82), 25, + ACTIONS(80), 26, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, sym_identifier, + anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -2749,18 +2661,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [148] = 4, - ACTIONS(88), 1, - anon_sym_COLON_COLON, - ACTIONS(91), 1, + [143] = 4, + ACTIONS(86), 1, anon_sym_SLASH, - STATE(9), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(86), 25, + ACTIONS(88), 1, + anon_sym_LPAREN, + STATE(21), 1, + sym_parenthesis_expression_list, + ACTIONS(84), 23, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, - sym_identifier, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -2774,7 +2685,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -2782,144 +2692,39 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [185] = 15, - ACTIONS(7), 1, + [178] = 13, + ACTIONS(39), 1, sym_identifier, - ACTIONS(9), 1, + ACTIONS(41), 1, sym_number, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, + ACTIONS(47), 1, anon_sym_LPAREN, - ACTIONS(23), 1, + ACTIONS(53), 1, anon_sym_reg, - ACTIONS(25), 1, + ACTIONS(55), 1, anon_sym_initial, - STATE(12), 1, - sym__maybe_global_identifier, - STATE(13), 1, + STATE(23), 1, aux_sym_assign_to_repeat1, - STATE(33), 1, + STATE(28), 1, sym_global_identifier, - STATE(93), 1, - sym_declaration, - STATE(98), 1, + STATE(88), 1, sym_assign_to, - ACTIONS(13), 2, - anon_sym_state, - anon_sym_gen, - STATE(99), 2, - sym_array_type, - sym__type, - STATE(44), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [244] = 2, - ACTIONS(95), 1, - anon_sym_SLASH, - ACTIONS(93), 26, - anon_sym_COLON, - anon_sym_DASH_GT, - anon_sym_COMMA, - sym_identifier, - anon_sym_COLON_COLON, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_SEMI, - [276] = 4, - ACTIONS(99), 1, - anon_sym_SLASH, - ACTIONS(101), 1, - anon_sym_LPAREN, - STATE(27), 1, - sym_parenthesis_expression_list, - ACTIONS(97), 23, - anon_sym_COLON, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_RPAREN, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_SEMI, - [311] = 13, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(103), 1, - sym_number, - ACTIONS(105), 1, - anon_sym_reg, - STATE(12), 1, - sym__maybe_global_identifier, - STATE(33), 1, - sym_global_identifier, - STATE(66), 1, - aux_sym_assign_to_repeat1, - STATE(100), 1, + STATE(94), 1, sym_declaration, - ACTIONS(13), 2, + ACTIONS(43), 2, anon_sym_state, anon_sym_gen, - STATE(99), 2, + STATE(90), 2, sym_array_type, sym__type, - STATE(52), 6, + STATE(32), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(45), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -2927,12 +2732,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [364] = 3, - ACTIONS(109), 1, + [231] = 3, + ACTIONS(92), 1, anon_sym_SLASH, - STATE(25), 1, + STATE(19), 1, sym_array_bracket_expression, - ACTIONS(107), 23, + ACTIONS(90), 23, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, @@ -2956,24 +2761,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [396] = 8, - ACTIONS(117), 1, + [263] = 8, + ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(119), 1, + ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(121), 1, + ACTIONS(102), 1, anon_sym_CARET, - ACTIONS(123), 1, + ACTIONS(104), 1, anon_sym_SLASH, - STATE(25), 1, + STATE(19), 1, sym_array_bracket_expression, - ACTIONS(113), 2, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(115), 2, + ACTIONS(96), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(111), 16, + ACTIONS(90), 16, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, @@ -2990,18 +2795,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [438] = 5, - ACTIONS(123), 1, + [305] = 5, + ACTIONS(104), 1, anon_sym_SLASH, - STATE(25), 1, + STATE(19), 1, sym_array_bracket_expression, - ACTIONS(113), 2, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(115), 2, + ACTIONS(96), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(111), 19, + ACTIONS(90), 19, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, @@ -3021,22 +2826,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [474] = 7, - ACTIONS(117), 1, + [341] = 7, + ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(121), 1, + ACTIONS(102), 1, anon_sym_CARET, - ACTIONS(123), 1, + ACTIONS(104), 1, anon_sym_SLASH, - STATE(25), 1, + STATE(19), 1, sym_array_bracket_expression, - ACTIONS(113), 2, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(115), 2, + ACTIONS(96), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(111), 17, + ACTIONS(90), 17, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, @@ -3054,20 +2859,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [514] = 6, - ACTIONS(121), 1, + [381] = 6, + ACTIONS(102), 1, anon_sym_CARET, - ACTIONS(123), 1, + ACTIONS(104), 1, anon_sym_SLASH, - STATE(25), 1, + STATE(19), 1, sym_array_bracket_expression, - ACTIONS(113), 2, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(115), 2, + ACTIONS(96), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(111), 18, + ACTIONS(90), 18, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, @@ -3086,12 +2891,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [552] = 3, - ACTIONS(125), 1, + [419] = 3, + ACTIONS(108), 1, anon_sym_SLASH, - STATE(25), 1, + STATE(19), 1, sym_array_bracket_expression, - ACTIONS(111), 23, + ACTIONS(106), 23, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, @@ -3115,15 +2920,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [584] = 4, - ACTIONS(123), 1, + [451] = 4, + ACTIONS(104), 1, anon_sym_SLASH, - STATE(25), 1, + STATE(19), 1, sym_array_bracket_expression, - ACTIONS(115), 2, + ACTIONS(96), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(111), 21, + ACTIONS(90), 21, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, @@ -3145,10 +2950,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [618] = 2, - ACTIONS(129), 1, + [485] = 2, + ACTIONS(112), 1, anon_sym_SLASH, - ACTIONS(127), 23, + ACTIONS(110), 23, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, @@ -3172,46 +2977,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [647] = 11, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(103), 1, - sym_number, - STATE(12), 1, - sym__maybe_global_identifier, - STATE(33), 1, - sym_global_identifier, - STATE(100), 1, - sym_declaration, - ACTIONS(13), 2, - anon_sym_state, - anon_sym_gen, - STATE(99), 2, - sym_array_type, - sym__type, - STATE(52), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [694] = 2, - ACTIONS(133), 1, + [514] = 2, + ACTIONS(116), 1, anon_sym_SLASH, - ACTIONS(131), 23, + ACTIONS(114), 23, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, @@ -3235,10 +3004,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [723] = 2, - ACTIONS(137), 1, + [543] = 2, + ACTIONS(120), 1, anon_sym_SLASH, - ACTIONS(135), 23, + ACTIONS(118), 23, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, @@ -3262,10 +3031,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [752] = 2, - ACTIONS(141), 1, + [572] = 2, + ACTIONS(124), 1, anon_sym_SLASH, - ACTIONS(139), 23, + ACTIONS(122), 23, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, @@ -3289,10 +3058,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [781] = 2, - ACTIONS(145), 1, + [601] = 2, + ACTIONS(128), 1, anon_sym_SLASH, - ACTIONS(143), 23, + ACTIONS(126), 23, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, @@ -3316,12 +3085,48 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [810] = 2, - ACTIONS(149), 1, - anon_sym_SLASH, - ACTIONS(147), 23, - anon_sym_COLON, - anon_sym_DASH_GT, + [630] = 11, + ACTIONS(39), 1, + sym_identifier, + ACTIONS(47), 1, + anon_sym_LPAREN, + ACTIONS(130), 1, + sym_number, + ACTIONS(132), 1, + anon_sym_reg, + STATE(28), 1, + sym_global_identifier, + STATE(64), 1, + aux_sym_assign_to_repeat1, + STATE(96), 1, + sym_declaration, + ACTIONS(43), 2, + anon_sym_state, + anon_sym_gen, + STATE(90), 2, + sym_array_type, + sym__type, + STATE(34), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(45), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [677] = 2, + ACTIONS(136), 1, + anon_sym_SLASH, + ACTIONS(134), 23, + anon_sym_COLON, + anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, anon_sym_DASH, @@ -3343,10 +3148,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [839] = 2, - ACTIONS(153), 1, + [706] = 2, + ACTIONS(140), 1, anon_sym_SLASH, - ACTIONS(151), 23, + ACTIONS(138), 23, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, @@ -3370,46 +3175,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [868] = 2, - ACTIONS(157), 9, - anon_sym_module, + [735] = 9, + ACTIONS(39), 1, sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_else, - anon_sym_for, - ACTIONS(155), 13, - ts_builtin_sym_end, - sym_number, - anon_sym_COLON_COLON, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, + ACTIONS(47), 1, anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [895] = 2, - ACTIONS(161), 9, - anon_sym_module, - sym_identifier, + ACTIONS(130), 1, + sym_number, + STATE(28), 1, + sym_global_identifier, + STATE(96), 1, + sym_declaration, + ACTIONS(43), 2, anon_sym_state, anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_else, - anon_sym_for, - ACTIONS(159), 13, - ts_builtin_sym_end, - sym_number, - anon_sym_COLON_COLON, + STATE(90), 2, + sym_array_type, + sym__type, + STATE(34), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(45), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3417,74 +3207,51 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [922] = 10, - ACTIONS(117), 1, + [776] = 10, + ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(119), 1, + ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(121), 1, + ACTIONS(102), 1, anon_sym_CARET, - ACTIONS(123), 1, + ACTIONS(104), 1, anon_sym_SLASH, - ACTIONS(167), 1, + ACTIONS(146), 1, anon_sym_LBRACK, - STATE(25), 1, + STATE(19), 1, sym_array_bracket_expression, - ACTIONS(113), 2, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(115), 2, + ACTIONS(96), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(163), 6, + ACTIONS(142), 6, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - ACTIONS(165), 6, + ACTIONS(144), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [965] = 3, - ACTIONS(173), 1, - anon_sym_else, - ACTIONS(169), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(171), 12, - sym_number, - anon_sym_COLON_COLON, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, + [819] = 6, + ACTIONS(86), 1, + anon_sym_SLASH, + ACTIONS(88), 1, anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [992] = 4, - ACTIONS(175), 1, + ACTIONS(148), 1, sym_identifier, - ACTIONS(179), 1, - anon_sym_SLASH, - ACTIONS(181), 1, + ACTIONS(150), 1, anon_sym_LBRACK, - ACTIONS(177), 17, + STATE(21), 1, + sym_parenthesis_expression_list, + ACTIONS(84), 16, anon_sym_COMMA, anon_sym_PLUS, anon_sym_DASH, @@ -3499,114 +3266,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_EQ, anon_sym_SEMI, - [1021] = 8, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(184), 1, - sym_identifier, - ACTIONS(186), 1, - sym_number, - STATE(101), 1, - sym_range, - STATE(12), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(60), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [1058] = 8, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(184), 1, - sym_identifier, - ACTIONS(188), 1, - sym_number, - ACTIONS(190), 1, - anon_sym_RPAREN, - STATE(12), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(42), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [1095] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(184), 1, - sym_identifier, - ACTIONS(192), 1, - sym_number, - STATE(12), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(17), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [1129] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(184), 1, + [853] = 2, + ACTIONS(155), 9, + anon_sym_module, sym_identifier, - ACTIONS(194), 1, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_else, + anon_sym_for, + ACTIONS(153), 12, + ts_builtin_sym_end, sym_number, - STATE(12), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(18), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3614,26 +3289,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1163] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + anon_sym_LBRACE, + anon_sym_RBRACE, + [879] = 2, + ACTIONS(159), 9, + anon_sym_module, sym_identifier, - ACTIONS(196), 1, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_else, + anon_sym_for, + ACTIONS(157), 12, + ts_builtin_sym_end, sym_number, - STATE(12), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(64), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3641,26 +3313,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1197] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + anon_sym_LBRACE, + anon_sym_RBRACE, + [905] = 3, + ACTIONS(165), 1, + anon_sym_else, + ACTIONS(161), 7, sym_identifier, - ACTIONS(198), 1, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(163), 11, sym_number, - STATE(12), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(31), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3668,191 +3336,112 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1231] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(184), 1, - sym_identifier, - ACTIONS(200), 1, - sym_number, - STATE(12), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(58), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, + anon_sym_LBRACE, + anon_sym_RBRACE, + [931] = 10, + ACTIONS(98), 1, anon_sym_PIPE, + ACTIONS(100), 1, anon_sym_AMP, + ACTIONS(102), 1, anon_sym_CARET, - [1265] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(184), 1, - sym_identifier, - ACTIONS(202), 1, - sym_number, - STATE(12), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(62), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, + ACTIONS(104), 1, + anon_sym_SLASH, + ACTIONS(146), 1, + anon_sym_LBRACK, + STATE(19), 1, + sym_array_bracket_expression, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(96), 2, anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [1299] = 12, - ACTIONS(117), 1, + anon_sym_PERCENT, + ACTIONS(167), 3, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_SEMI, + ACTIONS(144), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [971] = 12, + ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(119), 1, + ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(121), 1, + ACTIONS(102), 1, anon_sym_CARET, - ACTIONS(123), 1, + ACTIONS(104), 1, anon_sym_SLASH, - ACTIONS(167), 1, + ACTIONS(146), 1, anon_sym_LBRACK, - ACTIONS(204), 1, + ACTIONS(169), 1, anon_sym_COMMA, - ACTIONS(206), 1, + ACTIONS(171), 1, anon_sym_RPAREN, - STATE(25), 1, + STATE(19), 1, sym_array_bracket_expression, - STATE(92), 1, + STATE(95), 1, aux_sym_parenthesis_expression_list_repeat1, - ACTIONS(113), 2, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(115), 2, + ACTIONS(96), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(165), 6, + ACTIONS(144), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1343] = 2, - ACTIONS(208), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(210), 12, - sym_number, - anon_sym_COLON_COLON, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, + [1015] = 10, + ACTIONS(98), 1, anon_sym_PIPE, + ACTIONS(100), 1, anon_sym_AMP, + ACTIONS(102), 1, anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1367] = 10, - ACTIONS(117), 1, - anon_sym_PIPE, - ACTIONS(119), 1, - anon_sym_AMP, - ACTIONS(121), 1, - anon_sym_CARET, - ACTIONS(123), 1, + ACTIONS(104), 1, anon_sym_SLASH, - ACTIONS(167), 1, + ACTIONS(146), 1, anon_sym_LBRACK, - STATE(25), 1, + STATE(19), 1, sym_array_bracket_expression, - ACTIONS(113), 2, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(115), 2, + ACTIONS(96), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(212), 3, + ACTIONS(173), 3, anon_sym_COMMA, anon_sym_EQ, anon_sym_SEMI, - ACTIONS(165), 6, + ACTIONS(144), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1407] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(184), 1, - sym_identifier, - ACTIONS(214), 1, - sym_number, - STATE(12), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(14), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [1441] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(184), 1, + [1055] = 2, + ACTIONS(175), 7, sym_identifier, - ACTIONS(216), 1, - sym_number, - STATE(12), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(65), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(177), 11, + sym_number, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3860,26 +3449,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1475] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1078] = 7, + ACTIONS(47), 1, + anon_sym_LPAREN, + ACTIONS(179), 1, sym_identifier, - ACTIONS(218), 1, + ACTIONS(181), 1, sym_number, - STATE(12), 2, + STATE(9), 1, sym_global_identifier, - sym__maybe_global_identifier, - STATE(63), 6, + STATE(98), 1, + sym_range, + STATE(62), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(45), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3887,8 +3478,37 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1509] = 2, - ACTIONS(220), 7, + [1111] = 10, + ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, + anon_sym_AMP, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, + anon_sym_SLASH, + ACTIONS(146), 1, + anon_sym_LBRACK, + STATE(19), 1, + sym_array_bracket_expression, + ACTIONS(94), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(96), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(183), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + ACTIONS(144), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [1150] = 2, + ACTIONS(185), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -3896,9 +3516,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(222), 12, + ACTIONS(187), 11, sym_number, - anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3909,8 +3528,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1533] = 2, - ACTIONS(224), 7, + [1173] = 2, + ACTIONS(189), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -3918,9 +3537,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(226), 12, + ACTIONS(191), 11, sym_number, - anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3931,26 +3549,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1557] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, - anon_sym_LPAREN, - ACTIONS(184), 1, + [1196] = 2, + ACTIONS(193), 7, sym_identifier, - ACTIONS(228), 1, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(195), 11, sym_number, - STATE(12), 2, - sym_global_identifier, - sym__maybe_global_identifier, - STATE(61), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(15), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3958,26 +3567,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1591] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1219] = 7, + ACTIONS(47), 1, + anon_sym_LPAREN, + ACTIONS(179), 1, sym_identifier, - ACTIONS(230), 1, + ACTIONS(197), 1, sym_number, - STATE(12), 2, + ACTIONS(199), 1, + anon_sym_RPAREN, + STATE(9), 1, sym_global_identifier, - sym__maybe_global_identifier, - STATE(15), 6, + STATE(33), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(45), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3985,56 +3596,53 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1625] = 10, - ACTIONS(117), 1, + [1252] = 11, + ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(119), 1, + ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(121), 1, + ACTIONS(102), 1, anon_sym_CARET, - ACTIONS(123), 1, + ACTIONS(104), 1, anon_sym_SLASH, - ACTIONS(167), 1, + ACTIONS(146), 1, anon_sym_LBRACK, - STATE(25), 1, + ACTIONS(201), 1, + anon_sym_LBRACE, + STATE(19), 1, sym_array_bracket_expression, - ACTIONS(113), 2, + STATE(31), 1, + sym_block, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(115), 2, + ACTIONS(96), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(232), 3, - anon_sym_COMMA, - anon_sym_EQ, - anon_sym_SEMI, - ACTIONS(165), 6, + ACTIONS(144), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1665] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, + [1293] = 6, + ACTIONS(47), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(179), 1, sym_identifier, - ACTIONS(234), 1, + ACTIONS(203), 1, sym_number, - STATE(12), 2, + STATE(9), 1, sym_global_identifier, - sym__maybe_global_identifier, - STATE(16), 6, + STATE(13), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(45), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4042,26 +3650,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1699] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, + [1323] = 6, + ACTIONS(47), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(179), 1, sym_identifier, - ACTIONS(236), 1, + ACTIONS(205), 1, sym_number, - STATE(12), 2, + STATE(9), 1, sym_global_identifier, - sym__maybe_global_identifier, - STATE(59), 6, + STATE(16), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(45), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4069,26 +3674,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1733] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, + [1353] = 6, + ACTIONS(47), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(179), 1, sym_identifier, - ACTIONS(238), 1, + ACTIONS(207), 1, sym_number, - STATE(12), 2, + STATE(9), 1, sym_global_identifier, - sym__maybe_global_identifier, - STATE(20), 6, + STATE(50), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(45), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4096,26 +3698,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1767] = 7, - ACTIONS(11), 1, - anon_sym_COLON_COLON, - ACTIONS(17), 1, + [1383] = 6, + ACTIONS(47), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(179), 1, sym_identifier, - ACTIONS(240), 1, + ACTIONS(209), 1, sym_number, - STATE(12), 2, + STATE(9), 1, sym_global_identifier, - sym__maybe_global_identifier, - STATE(19), 6, + STATE(48), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(15), 7, + ACTIONS(45), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4123,18 +3722,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1801] = 2, - ACTIONS(242), 7, + [1413] = 6, + ACTIONS(47), 1, + anon_sym_LPAREN, + ACTIONS(179), 1, sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(244), 12, + ACTIONS(211), 1, sym_number, - anon_sym_COLON_COLON, + STATE(9), 1, + sym_global_identifier, + STATE(42), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(45), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4142,248 +3746,425 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1825] = 11, - ACTIONS(117), 1, + [1443] = 10, + ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(119), 1, + ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(121), 1, + ACTIONS(102), 1, anon_sym_CARET, - ACTIONS(123), 1, + ACTIONS(104), 1, anon_sym_SLASH, - ACTIONS(167), 1, + ACTIONS(146), 1, anon_sym_LBRACK, - ACTIONS(246), 1, - anon_sym_LBRACE, - STATE(25), 1, + ACTIONS(213), 1, + anon_sym_RBRACK, + STATE(19), 1, sym_array_bracket_expression, - STATE(32), 1, - sym_block, - ACTIONS(113), 2, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(115), 2, + ACTIONS(96), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(165), 6, + ACTIONS(144), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1866] = 10, - ACTIONS(117), 1, + [1481] = 10, + ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(119), 1, + ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(121), 1, + ACTIONS(102), 1, anon_sym_CARET, - ACTIONS(123), 1, + ACTIONS(104), 1, anon_sym_SLASH, - ACTIONS(167), 1, + ACTIONS(146), 1, anon_sym_LBRACK, - STATE(25), 1, + ACTIONS(215), 1, + anon_sym_RPAREN, + STATE(19), 1, sym_array_bracket_expression, - ACTIONS(113), 2, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(115), 2, + ACTIONS(96), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(248), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - ACTIONS(165), 6, + ACTIONS(144), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1905] = 10, - ACTIONS(117), 1, + [1519] = 10, + ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(119), 1, + ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(121), 1, + ACTIONS(102), 1, anon_sym_CARET, - ACTIONS(123), 1, + ACTIONS(104), 1, anon_sym_SLASH, - ACTIONS(167), 1, + ACTIONS(146), 1, anon_sym_LBRACK, - ACTIONS(250), 1, - anon_sym_COLON, - STATE(25), 1, + ACTIONS(217), 1, + anon_sym_RBRACK, + STATE(19), 1, sym_array_bracket_expression, - ACTIONS(113), 2, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(115), 2, + ACTIONS(96), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(165), 6, + ACTIONS(144), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1943] = 10, - ACTIONS(117), 1, + [1557] = 10, + ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(119), 1, + ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(121), 1, + ACTIONS(102), 1, anon_sym_CARET, - ACTIONS(123), 1, + ACTIONS(104), 1, anon_sym_SLASH, - ACTIONS(167), 1, + ACTIONS(146), 1, anon_sym_LBRACK, - ACTIONS(252), 1, - anon_sym_SEMI, - STATE(25), 1, + ACTIONS(219), 1, + anon_sym_LBRACE, + STATE(19), 1, sym_array_bracket_expression, - ACTIONS(113), 2, + ACTIONS(94), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(96), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(144), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [1595] = 6, + ACTIONS(47), 1, + anon_sym_LPAREN, + ACTIONS(179), 1, + sym_identifier, + ACTIONS(221), 1, + sym_number, + STATE(9), 1, + sym_global_identifier, + STATE(17), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(45), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [1625] = 6, + ACTIONS(47), 1, + anon_sym_LPAREN, + ACTIONS(179), 1, + sym_identifier, + ACTIONS(223), 1, + sym_number, + STATE(9), 1, + sym_global_identifier, + STATE(11), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(45), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [1655] = 6, + ACTIONS(47), 1, + anon_sym_LPAREN, + ACTIONS(179), 1, + sym_identifier, + ACTIONS(225), 1, + sym_number, + STATE(9), 1, + sym_global_identifier, + STATE(15), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(45), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [1685] = 6, + ACTIONS(47), 1, + anon_sym_LPAREN, + ACTIONS(179), 1, + sym_identifier, + ACTIONS(227), 1, + sym_number, + STATE(9), 1, + sym_global_identifier, + STATE(14), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(45), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [1715] = 6, + ACTIONS(47), 1, + anon_sym_LPAREN, + ACTIONS(179), 1, + sym_identifier, + ACTIONS(229), 1, + sym_number, + STATE(9), 1, + sym_global_identifier, + STATE(27), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(45), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [1745] = 6, + ACTIONS(47), 1, + anon_sym_LPAREN, + ACTIONS(179), 1, + sym_identifier, + ACTIONS(231), 1, + sym_number, + STATE(9), 1, + sym_global_identifier, + STATE(12), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(45), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [1775] = 6, + ACTIONS(47), 1, + anon_sym_LPAREN, + ACTIONS(179), 1, + sym_identifier, + ACTIONS(233), 1, + sym_number, + STATE(9), 1, + sym_global_identifier, + STATE(49), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(45), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [1805] = 6, + ACTIONS(47), 1, + anon_sym_LPAREN, + ACTIONS(179), 1, + sym_identifier, + ACTIONS(235), 1, + sym_number, + STATE(9), 1, + sym_global_identifier, + STATE(51), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(45), 7, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(115), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(165), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [1981] = 10, - ACTIONS(117), 1, + anon_sym_BANG, anon_sym_PIPE, - ACTIONS(119), 1, anon_sym_AMP, - ACTIONS(121), 1, anon_sym_CARET, - ACTIONS(123), 1, - anon_sym_SLASH, - ACTIONS(167), 1, - anon_sym_LBRACK, - ACTIONS(254), 1, - anon_sym_RPAREN, - STATE(25), 1, - sym_array_bracket_expression, - ACTIONS(113), 2, + [1835] = 6, + ACTIONS(47), 1, + anon_sym_LPAREN, + ACTIONS(179), 1, + sym_identifier, + ACTIONS(237), 1, + sym_number, + STATE(9), 1, + sym_global_identifier, + STATE(63), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(45), 7, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(115), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(165), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [2019] = 10, - ACTIONS(117), 1, + anon_sym_BANG, anon_sym_PIPE, - ACTIONS(119), 1, anon_sym_AMP, - ACTIONS(121), 1, anon_sym_CARET, - ACTIONS(123), 1, - anon_sym_SLASH, - ACTIONS(167), 1, - anon_sym_LBRACK, - ACTIONS(256), 1, - anon_sym_LBRACE, - STATE(25), 1, - sym_array_bracket_expression, - ACTIONS(113), 2, + [1865] = 6, + ACTIONS(47), 1, + anon_sym_LPAREN, + ACTIONS(179), 1, + sym_identifier, + ACTIONS(239), 1, + sym_number, + STATE(9), 1, + sym_global_identifier, + STATE(37), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(45), 7, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(115), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(165), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [2057] = 10, - ACTIONS(117), 1, + anon_sym_BANG, anon_sym_PIPE, - ACTIONS(119), 1, anon_sym_AMP, - ACTIONS(121), 1, anon_sym_CARET, - ACTIONS(123), 1, + [1895] = 10, + ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, + anon_sym_AMP, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, anon_sym_SLASH, - ACTIONS(167), 1, + ACTIONS(146), 1, anon_sym_LBRACK, - ACTIONS(258), 1, - anon_sym_RBRACK, - STATE(25), 1, + ACTIONS(241), 1, + anon_sym_COLON, + STATE(19), 1, sym_array_bracket_expression, - ACTIONS(113), 2, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(115), 2, + ACTIONS(96), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(165), 6, + ACTIONS(144), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2095] = 10, - ACTIONS(117), 1, + [1933] = 10, + ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(119), 1, + ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(121), 1, + ACTIONS(102), 1, anon_sym_CARET, - ACTIONS(123), 1, + ACTIONS(104), 1, anon_sym_SLASH, - ACTIONS(167), 1, + ACTIONS(146), 1, anon_sym_LBRACK, - ACTIONS(260), 1, - anon_sym_RBRACK, - STATE(25), 1, + ACTIONS(243), 1, + anon_sym_SEMI, + STATE(19), 1, sym_array_bracket_expression, - ACTIONS(113), 2, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(115), 2, + ACTIONS(96), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(165), 6, + ACTIONS(144), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [2133] = 4, - ACTIONS(266), 1, + [1971] = 4, + ACTIONS(249), 1, anon_sym_reg, - STATE(66), 1, + STATE(64), 1, aux_sym_assign_to_repeat1, - ACTIONS(262), 3, + ACTIONS(245), 3, sym_identifier, anon_sym_state, anon_sym_gen, - ACTIONS(264), 10, + ACTIONS(247), 9, sym_number, - anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4392,375 +4173,341 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2157] = 8, - ACTIONS(269), 1, + [1994] = 7, + ACTIONS(252), 1, sym_identifier, - ACTIONS(271), 1, + ACTIONS(254), 1, anon_sym_DASH_GT, - ACTIONS(273), 1, - anon_sym_COLON_COLON, - ACTIONS(275), 1, + ACTIONS(256), 1, anon_sym_LBRACE, - STATE(85), 1, + STATE(84), 1, sym_declaration, - STATE(107), 1, + STATE(102), 1, sym_declaration_list, - ACTIONS(13), 2, + ACTIONS(43), 2, anon_sym_state, anon_sym_gen, - STATE(99), 3, + STATE(90), 3, sym_global_identifier, sym_array_type, sym__type, - [2185] = 6, - ACTIONS(269), 1, + [2019] = 3, + ACTIONS(260), 1, + anon_sym_SQUOTE, + STATE(73), 1, + sym_latency_specifier, + ACTIONS(258), 6, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_SEMI, + [2034] = 3, + ACTIONS(260), 1, + anon_sym_SQUOTE, + STATE(72), 1, + sym_latency_specifier, + ACTIONS(262), 6, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_SEMI, + [2049] = 5, + ACTIONS(252), 1, sym_identifier, - ACTIONS(273), 1, - anon_sym_COLON_COLON, - STATE(85), 1, + STATE(84), 1, sym_declaration, - STATE(118), 1, + STATE(110), 1, sym_declaration_list, - ACTIONS(13), 2, + ACTIONS(43), 2, anon_sym_state, anon_sym_gen, - STATE(99), 3, + STATE(90), 3, sym_global_identifier, sym_array_type, sym__type, - [2207] = 6, - ACTIONS(269), 1, + [2068] = 5, + ACTIONS(252), 1, sym_identifier, - ACTIONS(273), 1, - anon_sym_COLON_COLON, - STATE(85), 1, + STATE(84), 1, sym_declaration, - STATE(112), 1, + STATE(107), 1, sym_declaration_list, - ACTIONS(13), 2, + ACTIONS(43), 2, anon_sym_state, anon_sym_gen, - STATE(99), 3, + STATE(90), 3, sym_global_identifier, sym_array_type, sym__type, - [2229] = 5, - ACTIONS(269), 1, + [2087] = 4, + ACTIONS(252), 1, sym_identifier, - ACTIONS(273), 1, - anon_sym_COLON_COLON, - STATE(94), 1, + STATE(109), 1, sym_declaration, - ACTIONS(13), 2, + ACTIONS(43), 2, anon_sym_state, anon_sym_gen, - STATE(99), 3, + STATE(90), 3, sym_global_identifier, sym_array_type, sym__type, - [2248] = 3, - ACTIONS(279), 1, - anon_sym_SQUOTE, - STATE(75), 1, - sym_latency_specifier, - ACTIONS(277), 6, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_SEMI, - [2263] = 3, - ACTIONS(279), 1, - anon_sym_SQUOTE, - STATE(74), 1, - sym_latency_specifier, - ACTIONS(281), 6, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_SEMI, - [2278] = 5, - ACTIONS(269), 1, + [2103] = 4, + ACTIONS(252), 1, sym_identifier, - ACTIONS(273), 1, - anon_sym_COLON_COLON, - STATE(109), 1, + STATE(92), 1, sym_declaration, - ACTIONS(13), 2, + ACTIONS(43), 2, anon_sym_state, anon_sym_gen, - STATE(99), 3, + STATE(90), 3, sym_global_identifier, sym_array_type, sym__type, - [2297] = 1, - ACTIONS(283), 6, + [2119] = 1, + ACTIONS(264), 6, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [2306] = 1, - ACTIONS(285), 6, + [2128] = 1, + ACTIONS(266), 6, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [2315] = 3, - ACTIONS(273), 1, - anon_sym_COLON_COLON, - ACTIONS(287), 1, + [2137] = 2, + ACTIONS(268), 1, sym_identifier, - STATE(97), 3, + STATE(93), 3, sym_global_identifier, sym_array_type, sym__type, - [2327] = 3, - ACTIONS(291), 1, + [2146] = 3, + ACTIONS(270), 1, + ts_builtin_sym_end, + ACTIONS(272), 1, + anon_sym_module, + STATE(75), 2, + sym_module, + aux_sym_source_file_repeat1, + [2157] = 3, + ACTIONS(277), 1, anon_sym_COMMA, - STATE(77), 1, + STATE(81), 1, aux_sym_declaration_list_repeat1, - ACTIONS(289), 2, + ACTIONS(275), 2, anon_sym_DASH_GT, anon_sym_LBRACE, - [2338] = 3, - ACTIONS(294), 1, + [2168] = 3, + ACTIONS(279), 1, + anon_sym_COLON_COLON, + STATE(79), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(78), 2, + sym_identifier, + anon_sym_LBRACK, + [2179] = 3, + ACTIONS(281), 1, + anon_sym_COMMA, + STATE(85), 1, + aux_sym_assign_left_side_repeat1, + ACTIONS(283), 2, + anon_sym_EQ, + anon_sym_SEMI, + [2190] = 3, + ACTIONS(279), 1, anon_sym_COLON_COLON, - STATE(82), 1, + STATE(86), 1, aux_sym_global_identifier_repeat1, - ACTIONS(76), 2, + ACTIONS(74), 2, sym_identifier, anon_sym_LBRACK, - [2349] = 3, + [2201] = 3, ACTIONS(5), 1, anon_sym_module, - ACTIONS(296), 1, - ts_builtin_sym_end, - STATE(81), 2, - sym_module, - aux_sym_source_file_repeat1, - [2360] = 4, - ACTIONS(19), 1, - anon_sym_LBRACE, - ACTIONS(298), 1, - anon_sym_COLON, - STATE(104), 1, - sym_block, - STATE(106), 1, - sym_interface_ports, - [2373] = 3, - ACTIONS(300), 1, + ACTIONS(285), 1, ts_builtin_sym_end, - ACTIONS(302), 1, - anon_sym_module, - STATE(81), 2, + STATE(75), 2, sym_module, aux_sym_source_file_repeat1, - [2384] = 3, - ACTIONS(294), 1, - anon_sym_COLON_COLON, - STATE(83), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(84), 2, - sym_identifier, - anon_sym_LBRACK, - [2395] = 3, - ACTIONS(305), 1, - anon_sym_COLON_COLON, - STATE(83), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(91), 2, - sym_identifier, - anon_sym_LBRACK, - [2406] = 3, - ACTIONS(294), 1, - anon_sym_COLON_COLON, - STATE(83), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(80), 2, - sym_identifier, - anon_sym_LBRACK, - [2417] = 3, - ACTIONS(310), 1, - anon_sym_COMMA, - STATE(86), 1, - aux_sym_declaration_list_repeat1, - ACTIONS(308), 2, - anon_sym_DASH_GT, - anon_sym_LBRACE, - [2428] = 3, - ACTIONS(310), 1, + [2212] = 3, + ACTIONS(289), 1, anon_sym_COMMA, - STATE(77), 1, + STATE(81), 1, aux_sym_declaration_list_repeat1, - ACTIONS(312), 2, + ACTIONS(287), 2, anon_sym_DASH_GT, anon_sym_LBRACE, - [2439] = 3, - ACTIONS(19), 1, + [2223] = 3, + ACTIONS(49), 1, anon_sym_LBRACE, - ACTIONS(314), 1, + ACTIONS(292), 1, anon_sym_if, - STATE(49), 2, + STATE(39), 2, sym_block, sym_if_statement, - [2450] = 3, - ACTIONS(316), 1, + [2234] = 4, + ACTIONS(49), 1, + anon_sym_LBRACE, + ACTIONS(294), 1, + anon_sym_COLON, + STATE(97), 1, + sym_interface_ports, + STATE(99), 1, + sym_block, + [2247] = 3, + ACTIONS(277), 1, anon_sym_COMMA, - STATE(90), 1, + STATE(76), 1, + aux_sym_declaration_list_repeat1, + ACTIONS(296), 2, + anon_sym_DASH_GT, + anon_sym_LBRACE, + [2258] = 3, + ACTIONS(281), 1, + anon_sym_COMMA, + STATE(87), 1, aux_sym_assign_left_side_repeat1, - ACTIONS(318), 2, + ACTIONS(298), 2, anon_sym_EQ, anon_sym_SEMI, - [2461] = 3, - ACTIONS(294), 1, + [2269] = 3, + ACTIONS(300), 1, anon_sym_COLON_COLON, - STATE(84), 1, + STATE(86), 1, aux_sym_global_identifier_repeat1, - ACTIONS(72), 2, + ACTIONS(68), 2, sym_identifier, anon_sym_LBRACK, - [2472] = 3, - ACTIONS(316), 1, + [2280] = 3, + ACTIONS(303), 1, anon_sym_COMMA, - STATE(91), 1, + STATE(87), 1, aux_sym_assign_left_side_repeat1, - ACTIONS(320), 2, + ACTIONS(306), 2, anon_sym_EQ, anon_sym_SEMI, - [2483] = 3, - ACTIONS(322), 1, + [2291] = 1, + ACTIONS(308), 3, anon_sym_COMMA, - STATE(91), 1, - aux_sym_assign_left_side_repeat1, - ACTIONS(325), 2, anon_sym_EQ, anon_sym_SEMI, - [2494] = 3, - ACTIONS(327), 1, + [2297] = 1, + ACTIONS(82), 3, + sym_identifier, + anon_sym_COLON_COLON, + anon_sym_LBRACK, + [2303] = 3, + ACTIONS(310), 1, + sym_identifier, + ACTIONS(312), 1, + anon_sym_LBRACK, + STATE(103), 1, + sym_array_bracket_expression, + [2313] = 3, + ACTIONS(314), 1, anon_sym_COMMA, - ACTIONS(329), 1, + ACTIONS(317), 1, anon_sym_RPAREN, - STATE(96), 1, + STATE(91), 1, aux_sym_parenthesis_expression_list_repeat1, - [2504] = 1, - ACTIONS(331), 3, - anon_sym_COMMA, - anon_sym_EQ, - anon_sym_SEMI, - [2510] = 1, - ACTIONS(333), 3, + [2323] = 1, + ACTIONS(319), 3, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, - [2516] = 1, - ACTIONS(95), 3, - sym_identifier, - anon_sym_COLON_COLON, + [2329] = 3, + ACTIONS(312), 1, anon_sym_LBRACK, - [2522] = 3, - ACTIONS(335), 1, - anon_sym_COMMA, - ACTIONS(338), 1, - anon_sym_RPAREN, - STATE(96), 1, - aux_sym_parenthesis_expression_list_repeat1, - [2532] = 3, - ACTIONS(340), 1, + ACTIONS(321), 1, sym_identifier, - ACTIONS(342), 1, - anon_sym_LBRACK, STATE(103), 1, sym_array_bracket_expression, - [2542] = 1, - ACTIONS(344), 3, + [2339] = 1, + ACTIONS(323), 3, anon_sym_COMMA, anon_sym_EQ, anon_sym_SEMI, - [2548] = 3, - ACTIONS(342), 1, - anon_sym_LBRACK, - ACTIONS(346), 1, - sym_identifier, - STATE(103), 1, - sym_array_bracket_expression, - [2558] = 1, - ACTIONS(348), 3, + [2345] = 3, + ACTIONS(325), 1, + anon_sym_COMMA, + ACTIONS(327), 1, + anon_sym_RPAREN, + STATE(91), 1, + aux_sym_parenthesis_expression_list_repeat1, + [2355] = 1, + ACTIONS(329), 3, anon_sym_COMMA, anon_sym_EQ, anon_sym_SEMI, - [2564] = 2, - ACTIONS(19), 1, + [2361] = 2, + ACTIONS(49), 1, anon_sym_LBRACE, - STATE(43), 1, + STATE(100), 1, sym_block, - [2571] = 2, - ACTIONS(350), 1, - anon_sym_EQ, - ACTIONS(352), 1, - anon_sym_SEMI, - [2578] = 1, - ACTIONS(354), 2, - sym_identifier, - anon_sym_LBRACK, - [2583] = 1, - ACTIONS(356), 2, + [2368] = 2, + ACTIONS(49), 1, + anon_sym_LBRACE, + STATE(40), 1, + sym_block, + [2375] = 1, + ACTIONS(331), 2, ts_builtin_sym_end, anon_sym_module, - [2588] = 1, - ACTIONS(358), 2, + [2380] = 1, + ACTIONS(333), 2, ts_builtin_sym_end, anon_sym_module, - [2593] = 2, - ACTIONS(19), 1, - anon_sym_LBRACE, - STATE(105), 1, - sym_block, - [2600] = 2, - ACTIONS(360), 1, + [2385] = 1, + ACTIONS(120), 2, + sym_identifier, + anon_sym_LBRACK, + [2390] = 2, + ACTIONS(335), 1, anon_sym_DASH_GT, - ACTIONS(362), 1, + ACTIONS(337), 1, anon_sym_LBRACE, - [2607] = 1, - ACTIONS(129), 2, + [2397] = 1, + ACTIONS(339), 2, sym_identifier, anon_sym_LBRACK, - [2612] = 1, - ACTIONS(364), 1, - anon_sym_in, - [2616] = 1, - ACTIONS(366), 1, + [2402] = 2, + ACTIONS(341), 1, + anon_sym_EQ, + ACTIONS(343), 1, + anon_sym_SEMI, + [2409] = 1, + ACTIONS(345), 1, sym_identifier, - [2620] = 1, - ACTIONS(352), 1, + [2413] = 1, + ACTIONS(343), 1, anon_sym_SEMI, - [2624] = 1, - ACTIONS(368), 1, + [2417] = 1, + ACTIONS(347), 1, anon_sym_LBRACE, - [2628] = 1, - ACTIONS(370), 1, + [2421] = 1, + ACTIONS(349), 1, sym_identifier, - [2632] = 1, - ACTIONS(372), 1, + [2425] = 1, + ACTIONS(351), 1, + anon_sym_in, + [2429] = 1, + ACTIONS(353), 1, + anon_sym_LBRACE, + [2433] = 1, + ACTIONS(355), 1, ts_builtin_sym_end, - [2636] = 1, - ACTIONS(374), 1, - sym_identifier, - [2640] = 1, - ACTIONS(376), 1, + [2437] = 1, + ACTIONS(357), 1, sym_identifier, - [2644] = 1, - ACTIONS(378), 1, - sym_identifier, - [2648] = 1, - ACTIONS(380), 1, - anon_sym_LBRACE, }; static const uint32_t ts_small_parse_table_map[] = { @@ -4768,301 +4515,284 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(6)] = 37, [SMALL_STATE(7)] = 74, [SMALL_STATE(8)] = 111, - [SMALL_STATE(9)] = 148, - [SMALL_STATE(10)] = 185, - [SMALL_STATE(11)] = 244, - [SMALL_STATE(12)] = 276, - [SMALL_STATE(13)] = 311, - [SMALL_STATE(14)] = 364, - [SMALL_STATE(15)] = 396, - [SMALL_STATE(16)] = 438, - [SMALL_STATE(17)] = 474, - [SMALL_STATE(18)] = 514, - [SMALL_STATE(19)] = 552, - [SMALL_STATE(20)] = 584, - [SMALL_STATE(21)] = 618, - [SMALL_STATE(22)] = 647, - [SMALL_STATE(23)] = 694, - [SMALL_STATE(24)] = 723, - [SMALL_STATE(25)] = 752, - [SMALL_STATE(26)] = 781, - [SMALL_STATE(27)] = 810, - [SMALL_STATE(28)] = 839, - [SMALL_STATE(29)] = 868, - [SMALL_STATE(30)] = 895, - [SMALL_STATE(31)] = 922, - [SMALL_STATE(32)] = 965, - [SMALL_STATE(33)] = 992, - [SMALL_STATE(34)] = 1021, - [SMALL_STATE(35)] = 1058, - [SMALL_STATE(36)] = 1095, - [SMALL_STATE(37)] = 1129, - [SMALL_STATE(38)] = 1163, - [SMALL_STATE(39)] = 1197, - [SMALL_STATE(40)] = 1231, - [SMALL_STATE(41)] = 1265, - [SMALL_STATE(42)] = 1299, - [SMALL_STATE(43)] = 1343, - [SMALL_STATE(44)] = 1367, - [SMALL_STATE(45)] = 1407, - [SMALL_STATE(46)] = 1441, - [SMALL_STATE(47)] = 1475, - [SMALL_STATE(48)] = 1509, - [SMALL_STATE(49)] = 1533, - [SMALL_STATE(50)] = 1557, - [SMALL_STATE(51)] = 1591, - [SMALL_STATE(52)] = 1625, - [SMALL_STATE(53)] = 1665, - [SMALL_STATE(54)] = 1699, - [SMALL_STATE(55)] = 1733, - [SMALL_STATE(56)] = 1767, - [SMALL_STATE(57)] = 1801, - [SMALL_STATE(58)] = 1825, - [SMALL_STATE(59)] = 1866, - [SMALL_STATE(60)] = 1905, - [SMALL_STATE(61)] = 1943, - [SMALL_STATE(62)] = 1981, - [SMALL_STATE(63)] = 2019, - [SMALL_STATE(64)] = 2057, - [SMALL_STATE(65)] = 2095, - [SMALL_STATE(66)] = 2133, - [SMALL_STATE(67)] = 2157, - [SMALL_STATE(68)] = 2185, - [SMALL_STATE(69)] = 2207, - [SMALL_STATE(70)] = 2229, - [SMALL_STATE(71)] = 2248, - [SMALL_STATE(72)] = 2263, - [SMALL_STATE(73)] = 2278, - [SMALL_STATE(74)] = 2297, - [SMALL_STATE(75)] = 2306, - [SMALL_STATE(76)] = 2315, - [SMALL_STATE(77)] = 2327, - [SMALL_STATE(78)] = 2338, - [SMALL_STATE(79)] = 2349, - [SMALL_STATE(80)] = 2360, - [SMALL_STATE(81)] = 2373, - [SMALL_STATE(82)] = 2384, - [SMALL_STATE(83)] = 2395, - [SMALL_STATE(84)] = 2406, - [SMALL_STATE(85)] = 2417, - [SMALL_STATE(86)] = 2428, - [SMALL_STATE(87)] = 2439, - [SMALL_STATE(88)] = 2450, - [SMALL_STATE(89)] = 2461, - [SMALL_STATE(90)] = 2472, - [SMALL_STATE(91)] = 2483, - [SMALL_STATE(92)] = 2494, - [SMALL_STATE(93)] = 2504, - [SMALL_STATE(94)] = 2510, - [SMALL_STATE(95)] = 2516, - [SMALL_STATE(96)] = 2522, - [SMALL_STATE(97)] = 2532, - [SMALL_STATE(98)] = 2542, - [SMALL_STATE(99)] = 2548, - [SMALL_STATE(100)] = 2558, - [SMALL_STATE(101)] = 2564, - [SMALL_STATE(102)] = 2571, - [SMALL_STATE(103)] = 2578, - [SMALL_STATE(104)] = 2583, - [SMALL_STATE(105)] = 2588, - [SMALL_STATE(106)] = 2593, - [SMALL_STATE(107)] = 2600, - [SMALL_STATE(108)] = 2607, - [SMALL_STATE(109)] = 2612, - [SMALL_STATE(110)] = 2616, - [SMALL_STATE(111)] = 2620, - [SMALL_STATE(112)] = 2624, - [SMALL_STATE(113)] = 2628, - [SMALL_STATE(114)] = 2632, - [SMALL_STATE(115)] = 2636, - [SMALL_STATE(116)] = 2640, - [SMALL_STATE(117)] = 2644, - [SMALL_STATE(118)] = 2648, + [SMALL_STATE(9)] = 143, + [SMALL_STATE(10)] = 178, + [SMALL_STATE(11)] = 231, + [SMALL_STATE(12)] = 263, + [SMALL_STATE(13)] = 305, + [SMALL_STATE(14)] = 341, + [SMALL_STATE(15)] = 381, + [SMALL_STATE(16)] = 419, + [SMALL_STATE(17)] = 451, + [SMALL_STATE(18)] = 485, + [SMALL_STATE(19)] = 514, + [SMALL_STATE(20)] = 543, + [SMALL_STATE(21)] = 572, + [SMALL_STATE(22)] = 601, + [SMALL_STATE(23)] = 630, + [SMALL_STATE(24)] = 677, + [SMALL_STATE(25)] = 706, + [SMALL_STATE(26)] = 735, + [SMALL_STATE(27)] = 776, + [SMALL_STATE(28)] = 819, + [SMALL_STATE(29)] = 853, + [SMALL_STATE(30)] = 879, + [SMALL_STATE(31)] = 905, + [SMALL_STATE(32)] = 931, + [SMALL_STATE(33)] = 971, + [SMALL_STATE(34)] = 1015, + [SMALL_STATE(35)] = 1055, + [SMALL_STATE(36)] = 1078, + [SMALL_STATE(37)] = 1111, + [SMALL_STATE(38)] = 1150, + [SMALL_STATE(39)] = 1173, + [SMALL_STATE(40)] = 1196, + [SMALL_STATE(41)] = 1219, + [SMALL_STATE(42)] = 1252, + [SMALL_STATE(43)] = 1293, + [SMALL_STATE(44)] = 1323, + [SMALL_STATE(45)] = 1353, + [SMALL_STATE(46)] = 1383, + [SMALL_STATE(47)] = 1413, + [SMALL_STATE(48)] = 1443, + [SMALL_STATE(49)] = 1481, + [SMALL_STATE(50)] = 1519, + [SMALL_STATE(51)] = 1557, + [SMALL_STATE(52)] = 1595, + [SMALL_STATE(53)] = 1625, + [SMALL_STATE(54)] = 1655, + [SMALL_STATE(55)] = 1685, + [SMALL_STATE(56)] = 1715, + [SMALL_STATE(57)] = 1745, + [SMALL_STATE(58)] = 1775, + [SMALL_STATE(59)] = 1805, + [SMALL_STATE(60)] = 1835, + [SMALL_STATE(61)] = 1865, + [SMALL_STATE(62)] = 1895, + [SMALL_STATE(63)] = 1933, + [SMALL_STATE(64)] = 1971, + [SMALL_STATE(65)] = 1994, + [SMALL_STATE(66)] = 2019, + [SMALL_STATE(67)] = 2034, + [SMALL_STATE(68)] = 2049, + [SMALL_STATE(69)] = 2068, + [SMALL_STATE(70)] = 2087, + [SMALL_STATE(71)] = 2103, + [SMALL_STATE(72)] = 2119, + [SMALL_STATE(73)] = 2128, + [SMALL_STATE(74)] = 2137, + [SMALL_STATE(75)] = 2146, + [SMALL_STATE(76)] = 2157, + [SMALL_STATE(77)] = 2168, + [SMALL_STATE(78)] = 2179, + [SMALL_STATE(79)] = 2190, + [SMALL_STATE(80)] = 2201, + [SMALL_STATE(81)] = 2212, + [SMALL_STATE(82)] = 2223, + [SMALL_STATE(83)] = 2234, + [SMALL_STATE(84)] = 2247, + [SMALL_STATE(85)] = 2258, + [SMALL_STATE(86)] = 2269, + [SMALL_STATE(87)] = 2280, + [SMALL_STATE(88)] = 2291, + [SMALL_STATE(89)] = 2297, + [SMALL_STATE(90)] = 2303, + [SMALL_STATE(91)] = 2313, + [SMALL_STATE(92)] = 2323, + [SMALL_STATE(93)] = 2329, + [SMALL_STATE(94)] = 2339, + [SMALL_STATE(95)] = 2345, + [SMALL_STATE(96)] = 2355, + [SMALL_STATE(97)] = 2361, + [SMALL_STATE(98)] = 2368, + [SMALL_STATE(99)] = 2375, + [SMALL_STATE(100)] = 2380, + [SMALL_STATE(101)] = 2385, + [SMALL_STATE(102)] = 2390, + [SMALL_STATE(103)] = 2397, + [SMALL_STATE(104)] = 2402, + [SMALL_STATE(105)] = 2409, + [SMALL_STATE(106)] = 2413, + [SMALL_STATE(107)] = 2417, + [SMALL_STATE(108)] = 2421, + [SMALL_STATE(109)] = 2425, + [SMALL_STATE(110)] = 2429, + [SMALL_STATE(111)] = 2433, + [SMALL_STATE(112)] = 2437, }; 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}}, REDUCE(sym_source_file, 0), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), - [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [33] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(5), - [36] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(44), - [39] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(115), - [42] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(76), - [45] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(45), - [48] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(41), - [51] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(2), - [54] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), - [56] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(13), - [59] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(22), - [62] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(40), - [65] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(73), - [68] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 2), - [70] = {.entry = {.count = 1, .reusable = false}}, SHIFT(116), - [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 2), - [74] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 8), - [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 8), - [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 7), - [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 7), - [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 3, .production_id = 16), - [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 3, .production_id = 16), - [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 15), - [88] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 15), SHIFT_REPEAT(116), - [91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 15), - [93] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 8), - [95] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 8), - [97] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [99] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(35), - [103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [105] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), - [107] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 11), - [109] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 11), - [111] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 22), - [113] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), - [115] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), - [117] = {.entry = {.count = 1, .reusable = false}}, SHIFT(37), - [119] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36), - [121] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), - [123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 22), - [127] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 20), - [129] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 20), - [131] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 20), - [133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 20), - [135] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 16), - [137] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 16), - [139] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 10), - [141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 10), - [143] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), - [147] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 13), - [149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 13), - [151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 8), - [153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 8), - [155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), - [159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 14), - [161] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3, .production_id = 14), - [163] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 20), - [165] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51), - [167] = {.entry = {.count = 1, .reusable = false}}, SHIFT(38), - [169] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 21), - [171] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 21), - [173] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87), - [175] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type, 1), - [177] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), - [179] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__maybe_global_identifier, 1), - [181] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__maybe_global_identifier, 1), REDUCE(sym__type, 1), - [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [204] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), - [206] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28), - [208] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5, .production_id = 26), - [210] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5, .production_id = 26), - [212] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 4), - [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [220] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), - [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), - [224] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 25), - [226] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 25), - [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [232] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 12), - [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [242] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 2), - [244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 2), - [246] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2), - [248] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 8), - [250] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), - [252] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 23), - [254] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), - [256] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 3, .production_id = 27), - [258] = {.entry = {.count = 1, .reusable = false}}, SHIFT(21), - [260] = {.entry = {.count = 1, .reusable = false}}, SHIFT(108), - [262] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_assign_to_repeat1, 2), - [264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_to_repeat1, 2), - [266] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_assign_to_repeat1, 2), SHIFT_REPEAT(66), - [269] = {.entry = {.count = 1, .reusable = false}}, SHIFT(89), - [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), - [275] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 1), - [277] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 9), - [279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 17), - [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 24), - [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 19), - [287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 15), - [291] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 15), SHIFT_REPEAT(70), - [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), - [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), - [302] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(110), - [305] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 15), SHIFT_REPEAT(117), - [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 2), - [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 7), - [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 2), - [320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 7), - [322] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 15), SHIFT_REPEAT(10), - [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 15), - [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 4), - [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 8), - [335] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 15), SHIFT_REPEAT(54), - [338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 15), - [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 8), - [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 12), - [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 10), - [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 1), - [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 5), - [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 3), - [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 18), - [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [372] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 6), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [7] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(7), + [10] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(32), + [13] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(74), + [16] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(44), + [19] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(58), + [22] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(3), + [25] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), + [27] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(23), + [30] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(26), + [33] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(47), + [36] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(70), + [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74), + [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [53] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), + [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), + [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), + [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), + [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 14), + [65] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 14), SHIFT_REPEAT(112), + [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 14), + [70] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 7), + [72] = {.entry = {.count = 1, .reusable = false}}, SHIFT(112), + [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 7), + [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 2), + [78] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 2), + [80] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 15), + [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 15), + [84] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [86] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [88] = {.entry = {.count = 1, .reusable = false}}, SHIFT(41), + [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 21), + [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 21), + [94] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), + [96] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), + [98] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), + [100] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), + [102] = {.entry = {.count = 1, .reusable = false}}, SHIFT(43), + [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [106] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 10), + [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 10), + [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 15), + [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 15), + [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 9), + [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 9), + [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 19), + [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 19), + [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 12), + [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 12), + [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 26), + [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 26), + [130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [132] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64), + [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), + [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 19), + [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 19), + [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 19), + [144] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57), + [146] = {.entry = {.count = 1, .reusable = false}}, SHIFT(46), + [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type, 1), + [150] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), + [153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 13), + [155] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3, .production_id = 13), + [157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), + [161] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 20), + [163] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 20), + [165] = {.entry = {.count = 1, .reusable = false}}, SHIFT(82), + [167] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 4), + [169] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61), + [171] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18), + [173] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 11), + [175] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 2), + [177] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 2), + [179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [183] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 15), + [185] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), + [187] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), + [189] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 24), + [191] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 24), + [193] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5, .production_id = 25), + [195] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5, .production_id = 25), + [197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [201] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3), + [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [213] = {.entry = {.count = 1, .reusable = false}}, SHIFT(20), + [215] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), + [217] = {.entry = {.count = 1, .reusable = false}}, SHIFT(101), + [219] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 3, .production_id = 27), + [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [241] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), + [243] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 22), + [245] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_assign_to_repeat1, 2), + [247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_to_repeat1, 2), + [249] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_assign_to_repeat1, 2), SHIFT_REPEAT(64), + [252] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), + [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 1), + [258] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 8), + [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 16), + [264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 23), + [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 18), + [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), + [272] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(108), + [275] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 7), + [277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 2), + [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 14), + [289] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 14), SHIFT_REPEAT(71), + [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 2), + [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 7), + [300] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 14), SHIFT_REPEAT(105), + [303] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 14), SHIFT_REPEAT(10), + [306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 14), + [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 15), + [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [314] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 14), SHIFT_REPEAT(61), + [317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 14), + [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 15), + [321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 4), + [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 11), + [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 1), + [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 5), + [335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 3), + [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 9), + [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 6), + [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 17), + [355] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), }; #ifdef __cplusplus From 49abf5baac20363237293843565985c0204f83b5 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Tue, 2 Apr 2024 00:31:34 +0200 Subject: [PATCH 16/49] Merge range into for. --- grammar.js | 10 +- src/grammar.json | 41 +- src/node-types.json | 136 ++- src/parser.c | 2121 +++++++++++++++++++++---------------------- 4 files changed, 1127 insertions(+), 1181 deletions(-) diff --git a/grammar.js b/grammar.js index 4b4ca9f..3861cf1 100644 --- a/grammar.js +++ b/grammar.js @@ -132,12 +132,6 @@ module.exports = grammar({ $.func_call ), - range: $ => seq( - field('from', $._expression), - ':', - field('to', $._expression), - ), - block: $ => seq( '{', repeat(field('item', $._statement)), @@ -181,7 +175,9 @@ module.exports = grammar({ 'for', field('for_decl', $.declaration), 'in', - field('for_range', $.range), + field('from', $._expression), + ':', + field('to', $._expression), field('block', $.block) ), _statement: $ => choice( diff --git a/src/grammar.json b/src/grammar.json index b0f2124..938da84 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -776,31 +776,6 @@ } ] }, - "range": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "from", - "content": { - "type": "SYMBOL", - "name": "_expression" - } - }, - { - "type": "STRING", - "value": ":" - }, - { - "type": "FIELD", - "name": "to", - "content": { - "type": "SYMBOL", - "name": "_expression" - } - } - ] - }, "block": { "type": "SEQ", "members": [ @@ -1013,10 +988,22 @@ }, { "type": "FIELD", - "name": "for_range", + "name": "from", "content": { "type": "SYMBOL", - "name": "range" + "name": "_expression" + } + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "FIELD", + "name": "to", + "content": { + "type": "SYMBOL", + "name": "_expression" } }, { diff --git a/src/node-types.json b/src/node-types.json index dc2a2e8..4aa7e5e 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -509,12 +509,70 @@ } ] }, - "for_range": { + "from": { "multiple": false, "required": true, "types": [ { - "type": "range", + "type": "array_op", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "func_call", + "named": true + }, + { + "type": "global_identifier", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "parenthesis_expression", + "named": true + }, + { + "type": "unary_op", + "named": true + } + ] + }, + "to": { + "multiple": false, + "required": true, + "types": [ + { + "type": "array_op", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "func_call", + "named": true + }, + { + "type": "global_identifier", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "parenthesis_expression", + "named": true + }, + { + "type": "unary_op", "named": true } ] @@ -809,80 +867,6 @@ } } }, - { - "type": "range", - "named": true, - "fields": { - "from": { - "multiple": false, - "required": true, - "types": [ - { - "type": "array_op", - "named": true - }, - { - "type": "binary_op", - "named": true - }, - { - "type": "func_call", - "named": true - }, - { - "type": "global_identifier", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "parenthesis_expression", - "named": true - }, - { - "type": "unary_op", - "named": true - } - ] - }, - "to": { - "multiple": false, - "required": true, - "types": [ - { - "type": "array_op", - "named": true - }, - { - "type": "binary_op", - "named": true - }, - { - "type": "func_call", - "named": true - }, - { - "type": "global_identifier", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "parenthesis_expression", - "named": true - }, - { - "type": "unary_op", - "named": true - } - ] - } - } - }, { "type": "source_file", "named": true, diff --git a/src/parser.c b/src/parser.c index a11decd..1943150 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,15 +6,15 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 113 +#define STATE_COUNT 112 #define LARGE_STATE_COUNT 5 -#define SYMBOL_COUNT 72 +#define SYMBOL_COUNT 71 #define ALIAS_COUNT 0 #define TOKEN_COUNT 40 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 27 -#define MAX_ALIAS_SEQUENCE_LENGTH 5 -#define PRODUCTION_ID_COUNT 28 +#define FIELD_COUNT 26 +#define MAX_ALIAS_SEQUENCE_LENGTH 7 +#define PRODUCTION_ID_COUNT 27 enum { sym_identifier = 1, @@ -73,21 +73,20 @@ enum { sym_parenthesis_expression = 54, sym_array_bracket_expression = 55, sym__expression = 56, - sym_range = 57, - sym_block = 58, - sym_assign_to = 59, - sym_assign_left_side = 60, - sym_decl_assign_statement = 61, - sym_if_statement = 62, - sym_for_statement = 63, - sym__statement = 64, - aux_sym_source_file_repeat1 = 65, - aux_sym_declaration_list_repeat1 = 66, - aux_sym_global_identifier_repeat1 = 67, - aux_sym_parenthesis_expression_list_repeat1 = 68, - aux_sym_block_repeat1 = 69, - aux_sym_assign_to_repeat1 = 70, - aux_sym_assign_left_side_repeat1 = 71, + sym_block = 57, + sym_assign_to = 58, + sym_assign_left_side = 59, + sym_decl_assign_statement = 60, + sym_if_statement = 61, + sym_for_statement = 62, + sym__statement = 63, + aux_sym_source_file_repeat1 = 64, + aux_sym_declaration_list_repeat1 = 65, + aux_sym_global_identifier_repeat1 = 66, + aux_sym_parenthesis_expression_list_repeat1 = 67, + aux_sym_block_repeat1 = 68, + aux_sym_assign_to_repeat1 = 69, + aux_sym_assign_left_side_repeat1 = 70, }; static const char * const ts_symbol_names[] = { @@ -148,7 +147,6 @@ static const char * const ts_symbol_names[] = { [sym_parenthesis_expression] = "parenthesis_expression", [sym_array_bracket_expression] = "array_bracket_expression", [sym__expression] = "_expression", - [sym_range] = "range", [sym_block] = "block", [sym_assign_to] = "assign_to", [sym_assign_left_side] = "assign_left_side", @@ -223,7 +221,6 @@ static const TSSymbol ts_symbol_map[] = { [sym_parenthesis_expression] = sym_parenthesis_expression, [sym_array_bracket_expression] = sym_array_bracket_expression, [sym__expression] = sym__expression, - [sym_range] = sym_range, [sym_block] = sym_block, [sym_assign_to] = sym_assign_to, [sym_assign_left_side] = sym_assign_left_side, @@ -469,10 +466,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = true, }, - [sym_range] = { - .visible = true, - .named = true, - }, [sym_block] = { .visible = true, .named = true, @@ -544,21 +537,20 @@ enum { field_else_block = 10, field_expr_or_decl = 11, field_for_decl = 12, - field_for_range = 13, - field_from = 14, - field_inputs = 15, - field_interface_ports = 16, - field_item = 17, - field_latency_specifier = 18, - field_left = 19, - field_name = 20, - field_operator = 21, - field_outputs = 22, - field_right = 23, - field_then_block = 24, - field_to = 25, - field_type = 26, - field_write_modifiers = 27, + field_from = 13, + field_inputs = 14, + field_interface_ports = 15, + field_item = 16, + field_latency_specifier = 17, + field_left = 18, + field_name = 19, + field_operator = 20, + field_outputs = 21, + field_right = 22, + field_then_block = 23, + field_to = 24, + field_type = 25, + field_write_modifiers = 26, }; static const char * const ts_field_names[] = { @@ -575,7 +567,6 @@ static const char * const ts_field_names[] = { [field_else_block] = "else_block", [field_expr_or_decl] = "expr_or_decl", [field_for_decl] = "for_decl", - [field_for_range] = "for_range", [field_from] = "from", [field_inputs] = "inputs", [field_interface_ports] = "interface_ports", @@ -617,9 +608,8 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [22] = {.index = 39, .length = 2}, [23] = {.index = 41, .length = 4}, [24] = {.index = 45, .length = 3}, - [25] = {.index = 48, .length = 3}, - [26] = {.index = 51, .length = 2}, - [27] = {.index = 53, .length = 2}, + [25] = {.index = 48, .length = 2}, + [26] = {.index = 50, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -696,15 +686,13 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_else_block, 4}, {field_then_block, 2}, [48] = - {field_block, 4}, - {field_for_decl, 1}, - {field_for_range, 3}, - [51] = {field_item, 1}, {field_item, 2, .inherited = true}, - [53] = - {field_from, 0}, - {field_to, 2}, + [50] = + {field_block, 6}, + {field_for_decl, 1}, + {field_from, 3}, + {field_to, 5}, }; static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { @@ -764,9 +752,9 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [45] = 45, [46] = 45, [47] = 47, - [48] = 48, + [48] = 47, [49] = 49, - [50] = 48, + [50] = 50, [51] = 51, [52] = 52, [53] = 53, @@ -793,19 +781,19 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [74] = 74, [75] = 75, [76] = 76, - [77] = 7, + [77] = 77, [78] = 78, - [79] = 6, - [80] = 80, + [79] = 79, + [80] = 7, [81] = 81, [82] = 82, - [83] = 83, + [83] = 5, [84] = 84, [85] = 85, - [86] = 5, + [86] = 6, [87] = 87, - [88] = 88, - [89] = 8, + [88] = 8, + [89] = 89, [90] = 90, [91] = 91, [92] = 92, @@ -826,9 +814,8 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [107] = 107, [108] = 108, [109] = 109, - [110] = 110, + [110] = 109, [111] = 111, - [112] = 105, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -2257,8 +2244,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [6] = {.lex_state = 1}, [7] = {.lex_state = 1}, [8] = {.lex_state = 1}, - [9] = {.lex_state = 1}, - [10] = {.lex_state = 5}, + [9] = {.lex_state = 5}, + [10] = {.lex_state = 1}, [11] = {.lex_state = 1}, [12] = {.lex_state = 1}, [13] = {.lex_state = 1}, @@ -2267,11 +2254,11 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [16] = {.lex_state = 1}, [17] = {.lex_state = 1}, [18] = {.lex_state = 1}, - [19] = {.lex_state = 1}, + [19] = {.lex_state = 5}, [20] = {.lex_state = 1}, [21] = {.lex_state = 1}, [22] = {.lex_state = 1}, - [23] = {.lex_state = 5}, + [23] = {.lex_state = 1}, [24] = {.lex_state = 1}, [25] = {.lex_state = 1}, [26] = {.lex_state = 5}, @@ -2279,15 +2266,15 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [28] = {.lex_state = 1}, [29] = {.lex_state = 5}, [30] = {.lex_state = 5}, - [31] = {.lex_state = 5}, + [31] = {.lex_state = 1}, [32] = {.lex_state = 1}, - [33] = {.lex_state = 1}, + [33] = {.lex_state = 5}, [34] = {.lex_state = 1}, [35] = {.lex_state = 5}, [36] = {.lex_state = 5}, [37] = {.lex_state = 1}, [38] = {.lex_state = 5}, - [39] = {.lex_state = 5}, + [39] = {.lex_state = 1}, [40] = {.lex_state = 5}, [41] = {.lex_state = 5}, [42] = {.lex_state = 1}, @@ -2295,11 +2282,11 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [44] = {.lex_state = 5}, [45] = {.lex_state = 5}, [46] = {.lex_state = 5}, - [47] = {.lex_state = 5}, + [47] = {.lex_state = 1}, [48] = {.lex_state = 1}, [49] = {.lex_state = 1}, - [50] = {.lex_state = 1}, - [51] = {.lex_state = 1}, + [50] = {.lex_state = 5}, + [51] = {.lex_state = 5}, [52] = {.lex_state = 5}, [53] = {.lex_state = 5}, [54] = {.lex_state = 5}, @@ -2308,10 +2295,10 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [57] = {.lex_state = 5}, [58] = {.lex_state = 5}, [59] = {.lex_state = 5}, - [60] = {.lex_state = 5}, + [60] = {.lex_state = 1}, [61] = {.lex_state = 5}, [62] = {.lex_state = 1}, - [63] = {.lex_state = 1}, + [63] = {.lex_state = 5}, [64] = {.lex_state = 5}, [65] = {.lex_state = 0}, [66] = {.lex_state = 0}, @@ -2360,7 +2347,6 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [109] = {.lex_state = 0}, [110] = {.lex_state = 0}, [111] = {.lex_state = 0}, - [112] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -2406,128 +2392,128 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_SEMI] = ACTIONS(1), }, [1] = { - [sym_source_file] = STATE(111), - [sym_module] = STATE(80), - [aux_sym_source_file_repeat1] = STATE(80), + [sym_source_file] = STATE(108), + [sym_module] = STATE(77), + [aux_sym_source_file_repeat1] = STATE(77), [ts_builtin_sym_end] = ACTIONS(3), [anon_sym_module] = ACTIONS(5), }, [2] = { [sym_global_identifier] = STATE(28), - [sym_array_type] = STATE(90), - [sym__type] = STATE(90), - [sym_declaration] = STATE(94), - [sym_unary_op] = STATE(32), - [sym_binary_op] = STATE(32), - [sym_array_op] = STATE(32), - [sym_func_call] = STATE(32), - [sym_parenthesis_expression] = STATE(32), - [sym__expression] = STATE(32), - [sym_block] = STATE(35), - [sym_assign_to] = STATE(78), - [sym_assign_left_side] = STATE(104), - [sym_decl_assign_statement] = STATE(106), - [sym_if_statement] = STATE(35), - [sym_for_statement] = STATE(35), - [sym__statement] = STATE(35), - [aux_sym_block_repeat1] = STATE(2), - [aux_sym_assign_to_repeat1] = STATE(23), + [sym_array_type] = STATE(92), + [sym__type] = STATE(92), + [sym_declaration] = STATE(91), + [sym_unary_op] = STATE(31), + [sym_binary_op] = STATE(31), + [sym_array_op] = STATE(31), + [sym_func_call] = STATE(31), + [sym_parenthesis_expression] = STATE(31), + [sym__expression] = STATE(31), + [sym_block] = STATE(38), + [sym_assign_to] = STATE(74), + [sym_assign_left_side] = STATE(103), + [sym_decl_assign_statement] = STATE(111), + [sym_if_statement] = STATE(38), + [sym_for_statement] = STATE(38), + [sym__statement] = STATE(38), + [aux_sym_block_repeat1] = STATE(4), + [aux_sym_assign_to_repeat1] = STATE(19), [sym_identifier] = ACTIONS(7), - [sym_number] = ACTIONS(10), - [anon_sym_state] = ACTIONS(13), - [anon_sym_gen] = ACTIONS(13), - [anon_sym_PLUS] = ACTIONS(16), - [anon_sym_DASH] = ACTIONS(16), - [anon_sym_STAR] = ACTIONS(16), - [anon_sym_BANG] = ACTIONS(16), - [anon_sym_PIPE] = ACTIONS(16), - [anon_sym_AMP] = ACTIONS(16), - [anon_sym_CARET] = ACTIONS(16), - [anon_sym_LPAREN] = ACTIONS(19), - [anon_sym_LBRACE] = ACTIONS(22), - [anon_sym_RBRACE] = ACTIONS(25), - [anon_sym_reg] = ACTIONS(27), - [anon_sym_initial] = ACTIONS(30), - [anon_sym_if] = ACTIONS(33), - [anon_sym_for] = ACTIONS(36), + [sym_number] = ACTIONS(9), + [anon_sym_state] = ACTIONS(11), + [anon_sym_gen] = ACTIONS(11), + [anon_sym_PLUS] = ACTIONS(13), + [anon_sym_DASH] = ACTIONS(13), + [anon_sym_STAR] = ACTIONS(13), + [anon_sym_BANG] = ACTIONS(13), + [anon_sym_PIPE] = ACTIONS(13), + [anon_sym_AMP] = ACTIONS(13), + [anon_sym_CARET] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_LBRACE] = ACTIONS(17), + [anon_sym_RBRACE] = ACTIONS(19), + [anon_sym_reg] = ACTIONS(21), + [anon_sym_initial] = ACTIONS(23), + [anon_sym_if] = ACTIONS(25), + [anon_sym_for] = ACTIONS(27), }, [3] = { [sym_global_identifier] = STATE(28), - [sym_array_type] = STATE(90), - [sym__type] = STATE(90), - [sym_declaration] = STATE(94), - [sym_unary_op] = STATE(32), - [sym_binary_op] = STATE(32), - [sym_array_op] = STATE(32), - [sym_func_call] = STATE(32), - [sym_parenthesis_expression] = STATE(32), - [sym__expression] = STATE(32), - [sym_block] = STATE(35), - [sym_assign_to] = STATE(78), - [sym_assign_left_side] = STATE(104), - [sym_decl_assign_statement] = STATE(106), - [sym_if_statement] = STATE(35), - [sym_for_statement] = STATE(35), - [sym__statement] = STATE(35), - [aux_sym_block_repeat1] = STATE(4), - [aux_sym_assign_to_repeat1] = STATE(23), - [sym_identifier] = ACTIONS(39), - [sym_number] = ACTIONS(41), - [anon_sym_state] = ACTIONS(43), - [anon_sym_gen] = ACTIONS(43), - [anon_sym_PLUS] = ACTIONS(45), - [anon_sym_DASH] = ACTIONS(45), - [anon_sym_STAR] = ACTIONS(45), - [anon_sym_BANG] = ACTIONS(45), - [anon_sym_PIPE] = ACTIONS(45), - [anon_sym_AMP] = ACTIONS(45), - [anon_sym_CARET] = ACTIONS(45), - [anon_sym_LPAREN] = ACTIONS(47), - [anon_sym_LBRACE] = ACTIONS(49), - [anon_sym_RBRACE] = ACTIONS(51), - [anon_sym_reg] = ACTIONS(53), - [anon_sym_initial] = ACTIONS(55), - [anon_sym_if] = ACTIONS(57), - [anon_sym_for] = ACTIONS(59), + [sym_array_type] = STATE(92), + [sym__type] = STATE(92), + [sym_declaration] = STATE(91), + [sym_unary_op] = STATE(31), + [sym_binary_op] = STATE(31), + [sym_array_op] = STATE(31), + [sym_func_call] = STATE(31), + [sym_parenthesis_expression] = STATE(31), + [sym__expression] = STATE(31), + [sym_block] = STATE(38), + [sym_assign_to] = STATE(74), + [sym_assign_left_side] = STATE(103), + [sym_decl_assign_statement] = STATE(111), + [sym_if_statement] = STATE(38), + [sym_for_statement] = STATE(38), + [sym__statement] = STATE(38), + [aux_sym_block_repeat1] = STATE(3), + [aux_sym_assign_to_repeat1] = STATE(19), + [sym_identifier] = ACTIONS(29), + [sym_number] = ACTIONS(32), + [anon_sym_state] = ACTIONS(35), + [anon_sym_gen] = ACTIONS(35), + [anon_sym_PLUS] = ACTIONS(38), + [anon_sym_DASH] = ACTIONS(38), + [anon_sym_STAR] = ACTIONS(38), + [anon_sym_BANG] = ACTIONS(38), + [anon_sym_PIPE] = ACTIONS(38), + [anon_sym_AMP] = ACTIONS(38), + [anon_sym_CARET] = ACTIONS(38), + [anon_sym_LPAREN] = ACTIONS(41), + [anon_sym_LBRACE] = ACTIONS(44), + [anon_sym_RBRACE] = ACTIONS(47), + [anon_sym_reg] = ACTIONS(49), + [anon_sym_initial] = ACTIONS(52), + [anon_sym_if] = ACTIONS(55), + [anon_sym_for] = ACTIONS(58), }, [4] = { [sym_global_identifier] = STATE(28), - [sym_array_type] = STATE(90), - [sym__type] = STATE(90), - [sym_declaration] = STATE(94), - [sym_unary_op] = STATE(32), - [sym_binary_op] = STATE(32), - [sym_array_op] = STATE(32), - [sym_func_call] = STATE(32), - [sym_parenthesis_expression] = STATE(32), - [sym__expression] = STATE(32), - [sym_block] = STATE(35), - [sym_assign_to] = STATE(78), - [sym_assign_left_side] = STATE(104), - [sym_decl_assign_statement] = STATE(106), - [sym_if_statement] = STATE(35), - [sym_for_statement] = STATE(35), - [sym__statement] = STATE(35), - [aux_sym_block_repeat1] = STATE(2), - [aux_sym_assign_to_repeat1] = STATE(23), - [sym_identifier] = ACTIONS(39), - [sym_number] = ACTIONS(41), - [anon_sym_state] = ACTIONS(43), - [anon_sym_gen] = ACTIONS(43), - [anon_sym_PLUS] = ACTIONS(45), - [anon_sym_DASH] = ACTIONS(45), - [anon_sym_STAR] = ACTIONS(45), - [anon_sym_BANG] = ACTIONS(45), - [anon_sym_PIPE] = ACTIONS(45), - [anon_sym_AMP] = ACTIONS(45), - [anon_sym_CARET] = ACTIONS(45), - [anon_sym_LPAREN] = ACTIONS(47), - [anon_sym_LBRACE] = ACTIONS(49), + [sym_array_type] = STATE(92), + [sym__type] = STATE(92), + [sym_declaration] = STATE(91), + [sym_unary_op] = STATE(31), + [sym_binary_op] = STATE(31), + [sym_array_op] = STATE(31), + [sym_func_call] = STATE(31), + [sym_parenthesis_expression] = STATE(31), + [sym__expression] = STATE(31), + [sym_block] = STATE(38), + [sym_assign_to] = STATE(74), + [sym_assign_left_side] = STATE(103), + [sym_decl_assign_statement] = STATE(111), + [sym_if_statement] = STATE(38), + [sym_for_statement] = STATE(38), + [sym__statement] = STATE(38), + [aux_sym_block_repeat1] = STATE(3), + [aux_sym_assign_to_repeat1] = STATE(19), + [sym_identifier] = ACTIONS(7), + [sym_number] = ACTIONS(9), + [anon_sym_state] = ACTIONS(11), + [anon_sym_gen] = ACTIONS(11), + [anon_sym_PLUS] = ACTIONS(13), + [anon_sym_DASH] = ACTIONS(13), + [anon_sym_STAR] = ACTIONS(13), + [anon_sym_BANG] = ACTIONS(13), + [anon_sym_PIPE] = ACTIONS(13), + [anon_sym_AMP] = ACTIONS(13), + [anon_sym_CARET] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_LBRACE] = ACTIONS(17), [anon_sym_RBRACE] = ACTIONS(61), - [anon_sym_reg] = ACTIONS(53), - [anon_sym_initial] = ACTIONS(55), - [anon_sym_if] = ACTIONS(57), - [anon_sym_for] = ACTIONS(59), + [anon_sym_reg] = ACTIONS(21), + [anon_sym_initial] = ACTIONS(23), + [anon_sym_if] = ACTIONS(25), + [anon_sym_for] = ACTIONS(27), }, }; @@ -2661,70 +2647,39 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [143] = 4, - ACTIONS(86), 1, - anon_sym_SLASH, - ACTIONS(88), 1, - anon_sym_LPAREN, - STATE(21), 1, - sym_parenthesis_expression_list, - ACTIONS(84), 23, - anon_sym_COLON, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_RPAREN, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_SEMI, - [178] = 13, - ACTIONS(39), 1, + [143] = 13, + ACTIONS(7), 1, sym_identifier, - ACTIONS(41), 1, + ACTIONS(9), 1, sym_number, - ACTIONS(47), 1, + ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(53), 1, + ACTIONS(21), 1, anon_sym_reg, - ACTIONS(55), 1, + ACTIONS(23), 1, anon_sym_initial, - STATE(23), 1, + STATE(19), 1, aux_sym_assign_to_repeat1, STATE(28), 1, sym_global_identifier, - STATE(88), 1, - sym_assign_to, - STATE(94), 1, + STATE(91), 1, sym_declaration, - ACTIONS(43), 2, + STATE(94), 1, + sym_assign_to, + ACTIONS(11), 2, anon_sym_state, anon_sym_gen, - STATE(90), 2, + STATE(92), 2, sym_array_type, sym__type, - STATE(32), 6, + STATE(31), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(45), 7, + ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -2732,12 +2687,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [231] = 3, - ACTIONS(92), 1, + [196] = 4, + ACTIONS(86), 1, anon_sym_SLASH, - STATE(19), 1, - sym_array_bracket_expression, - ACTIONS(90), 23, + ACTIONS(88), 1, + anon_sym_LPAREN, + STATE(21), 1, + sym_parenthesis_expression_list, + ACTIONS(84), 23, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, @@ -2761,27 +2718,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [263] = 8, - ACTIONS(98), 1, - anon_sym_PIPE, - ACTIONS(100), 1, - anon_sym_AMP, - ACTIONS(102), 1, + [231] = 6, + ACTIONS(96), 1, anon_sym_CARET, - ACTIONS(104), 1, + ACTIONS(98), 1, anon_sym_SLASH, - STATE(19), 1, + STATE(23), 1, sym_array_bracket_expression, - ACTIONS(94), 2, + ACTIONS(92), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, + ACTIONS(94), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(90), 16, + ACTIONS(90), 18, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, + anon_sym_PIPE, + anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, @@ -2795,21 +2750,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [305] = 5, - ACTIONS(104), 1, + [269] = 3, + ACTIONS(102), 1, anon_sym_SLASH, - STATE(19), 1, + STATE(23), 1, sym_array_bracket_expression, - ACTIONS(94), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(96), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(90), 19, + ACTIONS(100), 23, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -2819,6 +2771,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -2826,26 +2779,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [341] = 7, + [301] = 4, ACTIONS(98), 1, - anon_sym_PIPE, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(104), 1, anon_sym_SLASH, - STATE(19), 1, + STATE(23), 1, sym_array_bracket_expression, ACTIONS(94), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(96), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(90), 17, + ACTIONS(90), 21, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, @@ -2859,31 +2809,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [381] = 6, - ACTIONS(102), 1, - anon_sym_CARET, + [335] = 3, ACTIONS(104), 1, anon_sym_SLASH, - STATE(19), 1, + STATE(23), 1, sym_array_bracket_expression, - ACTIONS(94), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(96), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(90), 18, + ACTIONS(90), 23, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -2891,18 +2838,55 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [419] = 3, - ACTIONS(108), 1, + [367] = 8, + ACTIONS(96), 1, + anon_sym_CARET, + ACTIONS(98), 1, anon_sym_SLASH, - STATE(19), 1, + ACTIONS(106), 1, + anon_sym_PIPE, + ACTIONS(108), 1, + anon_sym_AMP, + STATE(23), 1, sym_array_bracket_expression, - ACTIONS(106), 23, + ACTIONS(92), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(94), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(90), 16, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_SEMI, + [409] = 5, + ACTIONS(98), 1, + anon_sym_SLASH, + STATE(23), 1, + sym_array_bracket_expression, + ACTIONS(92), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(94), 2, anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(90), 19, + anon_sym_COLON, + anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -2912,7 +2896,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -2920,23 +2903,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [451] = 4, - ACTIONS(104), 1, + [445] = 7, + ACTIONS(96), 1, + anon_sym_CARET, + ACTIONS(98), 1, anon_sym_SLASH, - STATE(19), 1, + ACTIONS(106), 1, + anon_sym_PIPE, + STATE(23), 1, sym_array_bracket_expression, - ACTIONS(96), 2, + ACTIONS(92), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(94), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(90), 21, + ACTIONS(90), 17, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, @@ -2977,10 +2963,46 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [514] = 2, + [514] = 11, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(114), 1, + sym_number, ACTIONS(116), 1, + anon_sym_reg, + STATE(28), 1, + sym_global_identifier, + STATE(64), 1, + aux_sym_assign_to_repeat1, + STATE(90), 1, + sym_declaration, + ACTIONS(11), 2, + anon_sym_state, + anon_sym_gen, + STATE(92), 2, + sym_array_type, + sym__type, + STATE(34), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(13), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [561] = 2, + ACTIONS(120), 1, anon_sym_SLASH, - ACTIONS(114), 23, + ACTIONS(118), 23, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, @@ -3004,10 +3026,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [543] = 2, - ACTIONS(120), 1, + [590] = 2, + ACTIONS(124), 1, anon_sym_SLASH, - ACTIONS(118), 23, + ACTIONS(122), 23, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, @@ -3031,10 +3053,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [572] = 2, - ACTIONS(124), 1, + [619] = 2, + ACTIONS(128), 1, anon_sym_SLASH, - ACTIONS(122), 23, + ACTIONS(126), 23, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, @@ -3058,10 +3080,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [601] = 2, - ACTIONS(128), 1, + [648] = 2, + ACTIONS(132), 1, anon_sym_SLASH, - ACTIONS(126), 23, + ACTIONS(130), 23, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, @@ -3085,42 +3107,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [630] = 11, - ACTIONS(39), 1, - sym_identifier, - ACTIONS(47), 1, - anon_sym_LPAREN, - ACTIONS(130), 1, - sym_number, - ACTIONS(132), 1, - anon_sym_reg, - STATE(28), 1, - sym_global_identifier, - STATE(64), 1, - aux_sym_assign_to_repeat1, - STATE(96), 1, - sym_declaration, - ACTIONS(43), 2, - anon_sym_state, - anon_sym_gen, - STATE(90), 2, - sym_array_type, - sym__type, - STATE(34), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(45), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, [677] = 2, ACTIONS(136), 1, anon_sym_SLASH, @@ -3176,20 +3162,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_SEMI, [735] = 9, - ACTIONS(39), 1, + ACTIONS(7), 1, sym_identifier, - ACTIONS(47), 1, + ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(130), 1, + ACTIONS(114), 1, sym_number, STATE(28), 1, sym_global_identifier, - STATE(96), 1, + STATE(90), 1, sym_declaration, - ACTIONS(43), 2, + ACTIONS(11), 2, anon_sym_state, anon_sym_gen, - STATE(90), 2, + STATE(92), 2, sym_array_type, sym__type, STATE(34), 6, @@ -3199,7 +3185,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(45), 7, + ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3208,22 +3194,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, [776] = 10, + ACTIONS(96), 1, + anon_sym_CARET, ACTIONS(98), 1, + anon_sym_SLASH, + ACTIONS(106), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(108), 1, anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, ACTIONS(146), 1, anon_sym_LBRACK, - STATE(19), 1, + STATE(23), 1, sym_array_bracket_expression, - ACTIONS(94), 2, + ACTIONS(92), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, + ACTIONS(94), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(142), 6, @@ -3316,49 +3302,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [905] = 3, - ACTIONS(165), 1, - anon_sym_else, - ACTIONS(161), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(163), 11, - sym_number, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, + [905] = 10, + ACTIONS(96), 1, anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [931] = 10, ACTIONS(98), 1, + anon_sym_SLASH, + ACTIONS(106), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(108), 1, anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, ACTIONS(146), 1, anon_sym_LBRACK, - STATE(19), 1, + STATE(23), 1, sym_array_bracket_expression, - ACTIONS(94), 2, + ACTIONS(92), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, + ACTIONS(94), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(167), 3, + ACTIONS(161), 3, anon_sym_COMMA, anon_sym_EQ, anon_sym_SEMI, @@ -3369,29 +3332,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [971] = 12, + [945] = 12, + ACTIONS(96), 1, + anon_sym_CARET, ACTIONS(98), 1, + anon_sym_SLASH, + ACTIONS(106), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(108), 1, anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, ACTIONS(146), 1, anon_sym_LBRACK, - ACTIONS(169), 1, + ACTIONS(163), 1, anon_sym_COMMA, - ACTIONS(171), 1, + ACTIONS(165), 1, anon_sym_RPAREN, - STATE(19), 1, + STATE(23), 1, sym_array_bracket_expression, - STATE(95), 1, + STATE(96), 1, aux_sym_parenthesis_expression_list_repeat1, - ACTIONS(94), 2, + ACTIONS(92), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, + ACTIONS(94), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(144), 6, @@ -3401,23 +3364,46 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1015] = 10, - ACTIONS(98), 1, + [989] = 3, + ACTIONS(171), 1, + anon_sym_else, + ACTIONS(167), 7, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(169), 11, + sym_number, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, - ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(102), 1, anon_sym_CARET, - ACTIONS(104), 1, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1015] = 10, + ACTIONS(96), 1, + anon_sym_CARET, + ACTIONS(98), 1, anon_sym_SLASH, + ACTIONS(106), 1, + anon_sym_PIPE, + ACTIONS(108), 1, + anon_sym_AMP, ACTIONS(146), 1, anon_sym_LBRACK, - STATE(19), 1, + STATE(23), 1, sym_array_bracket_expression, - ACTIONS(94), 2, + ACTIONS(92), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, + ACTIONS(94), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(173), 3, @@ -3452,25 +3438,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1078] = 7, - ACTIONS(47), 1, - anon_sym_LPAREN, - ACTIONS(179), 1, + [1078] = 2, + ACTIONS(179), 7, sym_identifier, - ACTIONS(181), 1, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(181), 11, sym_number, - STATE(9), 1, - sym_global_identifier, - STATE(98), 1, - sym_range, - STATE(62), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(45), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3478,23 +3456,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1111] = 10, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1101] = 10, + ACTIONS(96), 1, + anon_sym_CARET, ACTIONS(98), 1, + anon_sym_SLASH, + ACTIONS(106), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(108), 1, anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, ACTIONS(146), 1, anon_sym_LBRACK, - STATE(19), 1, + STATE(23), 1, sym_array_bracket_expression, - ACTIONS(94), 2, + ACTIONS(92), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, + ACTIONS(94), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(183), 2, @@ -3507,7 +3488,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1150] = 2, + [1140] = 2, ACTIONS(185), 7, sym_identifier, anon_sym_state, @@ -3528,29 +3509,38 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1173] = 2, - ACTIONS(189), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(191), 11, - sym_number, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, + [1163] = 11, + ACTIONS(96), 1, + anon_sym_CARET, + ACTIONS(98), 1, + anon_sym_SLASH, + ACTIONS(106), 1, anon_sym_PIPE, + ACTIONS(108), 1, anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, + ACTIONS(146), 1, + anon_sym_LBRACK, + ACTIONS(189), 1, anon_sym_LBRACE, - anon_sym_RBRACE, - [1196] = 2, - ACTIONS(193), 7, + STATE(23), 1, + sym_array_bracket_expression, + STATE(40), 1, + sym_block, + ACTIONS(92), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(94), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(144), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [1204] = 2, + ACTIONS(191), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -3558,7 +3548,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(195), 11, + ACTIONS(193), 11, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -3570,25 +3560,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1219] = 7, - ACTIONS(47), 1, + [1227] = 7, + ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(179), 1, + ACTIONS(195), 1, sym_identifier, ACTIONS(197), 1, sym_number, ACTIONS(199), 1, anon_sym_RPAREN, - STATE(9), 1, + STATE(10), 1, sym_global_identifier, - STATE(33), 6, + STATE(32), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(45), 7, + ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3596,27 +3586,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1252] = 11, + [1260] = 11, + ACTIONS(96), 1, + anon_sym_CARET, ACTIONS(98), 1, + anon_sym_SLASH, + ACTIONS(106), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(108), 1, anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, ACTIONS(146), 1, anon_sym_LBRACK, - ACTIONS(201), 1, + ACTIONS(189), 1, anon_sym_LBRACE, - STATE(19), 1, + STATE(23), 1, sym_array_bracket_expression, - STATE(31), 1, + STATE(33), 1, sym_block, - ACTIONS(94), 2, + ACTIONS(92), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, + ACTIONS(94), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(144), 6, @@ -3626,23 +3616,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1293] = 6, - ACTIONS(47), 1, + [1301] = 6, + ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(179), 1, + ACTIONS(195), 1, sym_identifier, - ACTIONS(203), 1, + ACTIONS(201), 1, sym_number, - STATE(9), 1, + STATE(10), 1, sym_global_identifier, - STATE(13), 6, + STATE(16), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(45), 7, + ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3650,23 +3640,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1323] = 6, - ACTIONS(47), 1, + [1331] = 6, + ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(179), 1, + ACTIONS(195), 1, sym_identifier, - ACTIONS(205), 1, + ACTIONS(203), 1, sym_number, - STATE(9), 1, + STATE(10), 1, sym_global_identifier, - STATE(16), 6, + STATE(11), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(45), 7, + ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3674,23 +3664,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1353] = 6, - ACTIONS(47), 1, + [1361] = 6, + ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(179), 1, + ACTIONS(195), 1, sym_identifier, - ACTIONS(207), 1, + ACTIONS(205), 1, sym_number, - STATE(9), 1, + STATE(10), 1, sym_global_identifier, - STATE(50), 6, + STATE(47), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(45), 7, + ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3698,14 +3688,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1383] = 6, - ACTIONS(47), 1, + [1391] = 6, + ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(179), 1, + ACTIONS(195), 1, sym_identifier, - ACTIONS(209), 1, + ACTIONS(207), 1, sym_number, - STATE(9), 1, + STATE(10), 1, sym_global_identifier, STATE(48), 6, sym_unary_op, @@ -3714,7 +3704,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(45), 7, + ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3722,77 +3712,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1413] = 6, - ACTIONS(47), 1, - anon_sym_LPAREN, - ACTIONS(179), 1, - sym_identifier, - ACTIONS(211), 1, - sym_number, - STATE(9), 1, - sym_global_identifier, - STATE(42), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(45), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, + [1421] = 10, + ACTIONS(96), 1, anon_sym_CARET, - [1443] = 10, ACTIONS(98), 1, + anon_sym_SLASH, + ACTIONS(106), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(108), 1, anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, ACTIONS(146), 1, anon_sym_LBRACK, - ACTIONS(213), 1, + ACTIONS(209), 1, anon_sym_RBRACK, - STATE(19), 1, + STATE(23), 1, sym_array_bracket_expression, - ACTIONS(94), 2, + ACTIONS(92), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(144), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [1481] = 10, - ACTIONS(98), 1, - anon_sym_PIPE, - ACTIONS(100), 1, - anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, - ACTIONS(146), 1, - anon_sym_LBRACK, - ACTIONS(215), 1, - anon_sym_RPAREN, - STATE(19), 1, - sym_array_bracket_expression, ACTIONS(94), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(96), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(144), 6, @@ -3802,25 +3740,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1519] = 10, + [1459] = 10, + ACTIONS(96), 1, + anon_sym_CARET, ACTIONS(98), 1, + anon_sym_SLASH, + ACTIONS(106), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(108), 1, anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, ACTIONS(146), 1, anon_sym_LBRACK, - ACTIONS(217), 1, + ACTIONS(211), 1, anon_sym_RBRACK, - STATE(19), 1, + STATE(23), 1, sym_array_bracket_expression, - ACTIONS(94), 2, + ACTIONS(92), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, + ACTIONS(94), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(144), 6, @@ -3830,25 +3768,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1557] = 10, + [1497] = 10, + ACTIONS(96), 1, + anon_sym_CARET, ACTIONS(98), 1, + anon_sym_SLASH, + ACTIONS(106), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(108), 1, anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, ACTIONS(146), 1, anon_sym_LBRACK, - ACTIONS(219), 1, - anon_sym_LBRACE, - STATE(19), 1, + ACTIONS(213), 1, + anon_sym_RPAREN, + STATE(23), 1, sym_array_bracket_expression, - ACTIONS(94), 2, + ACTIONS(92), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, + ACTIONS(94), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(144), 6, @@ -3858,23 +3796,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1595] = 6, - ACTIONS(47), 1, + [1535] = 6, + ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(179), 1, + ACTIONS(195), 1, sym_identifier, - ACTIONS(221), 1, + ACTIONS(215), 1, sym_number, - STATE(9), 1, + STATE(10), 1, sym_global_identifier, - STATE(17), 6, + STATE(49), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(45), 7, + ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3882,23 +3820,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1625] = 6, - ACTIONS(47), 1, + [1565] = 6, + ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(179), 1, + ACTIONS(195), 1, sym_identifier, - ACTIONS(223), 1, + ACTIONS(217), 1, sym_number, - STATE(9), 1, + STATE(10), 1, sym_global_identifier, - STATE(11), 6, + STATE(60), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(45), 7, + ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3906,23 +3844,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1655] = 6, - ACTIONS(47), 1, + [1595] = 6, + ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(179), 1, + ACTIONS(195), 1, sym_identifier, - ACTIONS(225), 1, + ACTIONS(219), 1, sym_number, - STATE(9), 1, + STATE(10), 1, sym_global_identifier, - STATE(15), 6, + STATE(13), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(45), 7, + ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3930,14 +3868,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1685] = 6, - ACTIONS(47), 1, + [1625] = 6, + ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(179), 1, + ACTIONS(195), 1, sym_identifier, - ACTIONS(227), 1, + ACTIONS(221), 1, sym_number, - STATE(9), 1, + STATE(10), 1, sym_global_identifier, STATE(14), 6, sym_unary_op, @@ -3946,7 +3884,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(45), 7, + ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3954,23 +3892,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1715] = 6, - ACTIONS(47), 1, + [1655] = 6, + ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(179), 1, + ACTIONS(195), 1, sym_identifier, - ACTIONS(229), 1, + ACTIONS(223), 1, sym_number, - STATE(9), 1, + STATE(10), 1, sym_global_identifier, - STATE(27), 6, + STATE(42), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(45), 7, + ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3978,23 +3916,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1745] = 6, - ACTIONS(47), 1, + [1685] = 6, + ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(179), 1, + ACTIONS(195), 1, sym_identifier, - ACTIONS(231), 1, + ACTIONS(225), 1, sym_number, - STATE(9), 1, + STATE(10), 1, sym_global_identifier, - STATE(12), 6, + STATE(17), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(45), 7, + ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4002,23 +3940,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1775] = 6, - ACTIONS(47), 1, + [1715] = 6, + ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(179), 1, + ACTIONS(195), 1, sym_identifier, - ACTIONS(233), 1, + ACTIONS(227), 1, sym_number, - STATE(9), 1, + STATE(10), 1, sym_global_identifier, - STATE(49), 6, + STATE(39), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(45), 7, + ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4026,23 +3964,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1805] = 6, - ACTIONS(47), 1, + [1745] = 6, + ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(179), 1, + ACTIONS(195), 1, sym_identifier, - ACTIONS(235), 1, + ACTIONS(229), 1, sym_number, - STATE(9), 1, + STATE(10), 1, sym_global_identifier, - STATE(51), 6, + STATE(15), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(45), 7, + ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4050,23 +3988,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1835] = 6, - ACTIONS(47), 1, + [1775] = 6, + ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(179), 1, + ACTIONS(195), 1, sym_identifier, - ACTIONS(237), 1, + ACTIONS(231), 1, sym_number, - STATE(9), 1, + STATE(10), 1, sym_global_identifier, - STATE(63), 6, + STATE(27), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(45), 7, + ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4074,14 +4012,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1865] = 6, - ACTIONS(47), 1, + [1805] = 6, + ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(179), 1, + ACTIONS(195), 1, sym_identifier, - ACTIONS(239), 1, + ACTIONS(233), 1, sym_number, - STATE(9), 1, + STATE(10), 1, sym_global_identifier, STATE(37), 6, sym_unary_op, @@ -4090,7 +4028,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(45), 7, + ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4098,25 +4036,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1895] = 10, + [1835] = 10, + ACTIONS(96), 1, + anon_sym_CARET, ACTIONS(98), 1, + anon_sym_SLASH, + ACTIONS(106), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(108), 1, anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, ACTIONS(146), 1, anon_sym_LBRACK, - ACTIONS(241), 1, + ACTIONS(235), 1, anon_sym_COLON, - STATE(19), 1, + STATE(23), 1, sym_array_bracket_expression, - ACTIONS(94), 2, + ACTIONS(92), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, + ACTIONS(94), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(144), 6, @@ -4126,25 +4064,49 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1933] = 10, - ACTIONS(98), 1, + [1873] = 6, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(195), 1, + sym_identifier, + ACTIONS(237), 1, + sym_number, + STATE(10), 1, + sym_global_identifier, + STATE(62), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(13), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, - ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(102), 1, anon_sym_CARET, - ACTIONS(104), 1, + [1903] = 10, + ACTIONS(96), 1, + anon_sym_CARET, + ACTIONS(98), 1, anon_sym_SLASH, + ACTIONS(106), 1, + anon_sym_PIPE, + ACTIONS(108), 1, + anon_sym_AMP, ACTIONS(146), 1, anon_sym_LBRACK, - ACTIONS(243), 1, + ACTIONS(239), 1, anon_sym_SEMI, - STATE(19), 1, + STATE(23), 1, sym_array_bracket_expression, - ACTIONS(94), 2, + ACTIONS(92), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, + ACTIONS(94), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(144), 6, @@ -4154,16 +4116,40 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, + [1941] = 6, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(195), 1, + sym_identifier, + ACTIONS(241), 1, + sym_number, + STATE(10), 1, + sym_global_identifier, + STATE(12), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(13), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, [1971] = 4, - ACTIONS(249), 1, + ACTIONS(247), 1, anon_sym_reg, STATE(64), 1, aux_sym_assign_to_repeat1, - ACTIONS(245), 3, + ACTIONS(243), 3, sym_identifier, anon_sym_state, anon_sym_gen, - ACTIONS(247), 9, + ACTIONS(245), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -4174,101 +4160,101 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, anon_sym_LPAREN, [1994] = 7, - ACTIONS(252), 1, + ACTIONS(250), 1, sym_identifier, - ACTIONS(254), 1, + ACTIONS(252), 1, anon_sym_DASH_GT, - ACTIONS(256), 1, + ACTIONS(254), 1, anon_sym_LBRACE, - STATE(84), 1, + STATE(85), 1, sym_declaration, - STATE(102), 1, + STATE(98), 1, sym_declaration_list, - ACTIONS(43), 2, + ACTIONS(11), 2, anon_sym_state, anon_sym_gen, - STATE(90), 3, + STATE(92), 3, sym_global_identifier, sym_array_type, sym__type, - [2019] = 3, - ACTIONS(260), 1, - anon_sym_SQUOTE, - STATE(73), 1, - sym_latency_specifier, - ACTIONS(258), 6, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_SEMI, - [2034] = 3, - ACTIONS(260), 1, + [2019] = 5, + ACTIONS(250), 1, + sym_identifier, + STATE(85), 1, + sym_declaration, + STATE(106), 1, + sym_declaration_list, + ACTIONS(11), 2, + anon_sym_state, + anon_sym_gen, + STATE(92), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [2038] = 3, + ACTIONS(258), 1, anon_sym_SQUOTE, STATE(72), 1, sym_latency_specifier, - ACTIONS(262), 6, + ACTIONS(256), 6, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [2049] = 5, - ACTIONS(252), 1, + [2053] = 5, + ACTIONS(250), 1, sym_identifier, - STATE(84), 1, - sym_declaration, - STATE(110), 1, - sym_declaration_list, - ACTIONS(43), 2, - anon_sym_state, - anon_sym_gen, - STATE(90), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [2068] = 5, - ACTIONS(252), 1, - sym_identifier, - STATE(84), 1, + STATE(85), 1, sym_declaration, - STATE(107), 1, + STATE(104), 1, sym_declaration_list, - ACTIONS(43), 2, + ACTIONS(11), 2, anon_sym_state, anon_sym_gen, - STATE(90), 3, + STATE(92), 3, sym_global_identifier, sym_array_type, sym__type, + [2072] = 3, + ACTIONS(258), 1, + anon_sym_SQUOTE, + STATE(73), 1, + sym_latency_specifier, + ACTIONS(260), 6, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_SEMI, [2087] = 4, - ACTIONS(252), 1, + ACTIONS(250), 1, sym_identifier, - STATE(109), 1, + STATE(107), 1, sym_declaration, - ACTIONS(43), 2, + ACTIONS(11), 2, anon_sym_state, anon_sym_gen, - STATE(90), 3, + STATE(92), 3, sym_global_identifier, sym_array_type, sym__type, [2103] = 4, - ACTIONS(252), 1, + ACTIONS(250), 1, sym_identifier, - STATE(92), 1, + STATE(89), 1, sym_declaration, - ACTIONS(43), 2, + ACTIONS(11), 2, anon_sym_state, anon_sym_gen, - STATE(90), 3, + STATE(92), 3, sym_global_identifier, sym_array_type, sym__type, [2119] = 1, - ACTIONS(264), 6, + ACTIONS(262), 6, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, @@ -4276,238 +4262,233 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_SEMI, [2128] = 1, - ACTIONS(266), 6, + ACTIONS(264), 6, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [2137] = 2, - ACTIONS(268), 1, - sym_identifier, - STATE(93), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [2146] = 3, + [2137] = 3, + ACTIONS(266), 1, + anon_sym_COMMA, + STATE(82), 1, + aux_sym_assign_left_side_repeat1, + ACTIONS(268), 2, + anon_sym_EQ, + anon_sym_SEMI, + [2148] = 3, + ACTIONS(17), 1, + anon_sym_LBRACE, ACTIONS(270), 1, - ts_builtin_sym_end, - ACTIONS(272), 1, - anon_sym_module, - STATE(75), 2, - sym_module, - aux_sym_source_file_repeat1, - [2157] = 3, - ACTIONS(277), 1, + anon_sym_if, + STATE(35), 2, + sym_block, + sym_if_statement, + [2159] = 3, + ACTIONS(274), 1, anon_sym_COMMA, - STATE(81), 1, + STATE(84), 1, aux_sym_declaration_list_repeat1, - ACTIONS(275), 2, + ACTIONS(272), 2, anon_sym_DASH_GT, anon_sym_LBRACE, - [2168] = 3, - ACTIONS(279), 1, + [2170] = 3, + ACTIONS(5), 1, + anon_sym_module, + ACTIONS(276), 1, + ts_builtin_sym_end, + STATE(79), 2, + sym_module, + aux_sym_source_file_repeat1, + [2181] = 4, + ACTIONS(17), 1, + anon_sym_LBRACE, + ACTIONS(278), 1, + anon_sym_COLON, + STATE(99), 1, + sym_block, + STATE(100), 1, + sym_interface_ports, + [2194] = 3, + ACTIONS(280), 1, + ts_builtin_sym_end, + ACTIONS(282), 1, + anon_sym_module, + STATE(79), 2, + sym_module, + aux_sym_source_file_repeat1, + [2205] = 3, + ACTIONS(285), 1, anon_sym_COLON_COLON, - STATE(79), 1, + STATE(86), 1, aux_sym_global_identifier_repeat1, ACTIONS(78), 2, sym_identifier, anon_sym_LBRACK, - [2179] = 3, - ACTIONS(281), 1, + [2216] = 2, + ACTIONS(287), 1, + sym_identifier, + STATE(95), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [2225] = 3, + ACTIONS(266), 1, anon_sym_COMMA, - STATE(85), 1, + STATE(87), 1, aux_sym_assign_left_side_repeat1, - ACTIONS(283), 2, + ACTIONS(289), 2, anon_sym_EQ, anon_sym_SEMI, - [2190] = 3, - ACTIONS(279), 1, + [2236] = 3, + ACTIONS(291), 1, anon_sym_COLON_COLON, - STATE(86), 1, + STATE(83), 1, aux_sym_global_identifier_repeat1, - ACTIONS(74), 2, + ACTIONS(68), 2, sym_identifier, anon_sym_LBRACK, - [2201] = 3, - ACTIONS(5), 1, - anon_sym_module, - ACTIONS(285), 1, - ts_builtin_sym_end, - STATE(75), 2, - sym_module, - aux_sym_source_file_repeat1, - [2212] = 3, - ACTIONS(289), 1, + [2247] = 3, + ACTIONS(296), 1, anon_sym_COMMA, - STATE(81), 1, + STATE(84), 1, aux_sym_declaration_list_repeat1, - ACTIONS(287), 2, + ACTIONS(294), 2, anon_sym_DASH_GT, anon_sym_LBRACE, - [2223] = 3, - ACTIONS(49), 1, - anon_sym_LBRACE, - ACTIONS(292), 1, - anon_sym_if, - STATE(39), 2, - sym_block, - sym_if_statement, - [2234] = 4, - ACTIONS(49), 1, - anon_sym_LBRACE, - ACTIONS(294), 1, - anon_sym_COLON, - STATE(97), 1, - sym_interface_ports, - STATE(99), 1, - sym_block, - [2247] = 3, - ACTIONS(277), 1, + [2258] = 3, + ACTIONS(274), 1, anon_sym_COMMA, STATE(76), 1, aux_sym_declaration_list_repeat1, - ACTIONS(296), 2, + ACTIONS(299), 2, anon_sym_DASH_GT, anon_sym_LBRACE, - [2258] = 3, - ACTIONS(281), 1, - anon_sym_COMMA, - STATE(87), 1, - aux_sym_assign_left_side_repeat1, - ACTIONS(298), 2, - anon_sym_EQ, - anon_sym_SEMI, [2269] = 3, - ACTIONS(300), 1, + ACTIONS(285), 1, anon_sym_COLON_COLON, - STATE(86), 1, + STATE(83), 1, aux_sym_global_identifier_repeat1, - ACTIONS(68), 2, + ACTIONS(74), 2, sym_identifier, anon_sym_LBRACK, [2280] = 3, - ACTIONS(303), 1, + ACTIONS(301), 1, anon_sym_COMMA, STATE(87), 1, aux_sym_assign_left_side_repeat1, - ACTIONS(306), 2, + ACTIONS(304), 2, anon_sym_EQ, anon_sym_SEMI, [2291] = 1, - ACTIONS(308), 3, - anon_sym_COMMA, - anon_sym_EQ, - anon_sym_SEMI, - [2297] = 1, ACTIONS(82), 3, sym_identifier, anon_sym_COLON_COLON, anon_sym_LBRACK, - [2303] = 3, - ACTIONS(310), 1, - sym_identifier, + [2297] = 1, + ACTIONS(306), 3, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LBRACE, + [2303] = 1, + ACTIONS(308), 3, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_SEMI, + [2309] = 1, + ACTIONS(310), 3, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_SEMI, + [2315] = 3, ACTIONS(312), 1, + sym_identifier, + ACTIONS(314), 1, anon_sym_LBRACK, - STATE(103), 1, + STATE(102), 1, sym_array_bracket_expression, - [2313] = 3, - ACTIONS(314), 1, + [2325] = 3, + ACTIONS(316), 1, anon_sym_COMMA, - ACTIONS(317), 1, + ACTIONS(319), 1, anon_sym_RPAREN, - STATE(91), 1, + STATE(93), 1, aux_sym_parenthesis_expression_list_repeat1, - [2323] = 1, - ACTIONS(319), 3, - anon_sym_DASH_GT, + [2335] = 1, + ACTIONS(321), 3, anon_sym_COMMA, - anon_sym_LBRACE, - [2329] = 3, - ACTIONS(312), 1, + anon_sym_EQ, + anon_sym_SEMI, + [2341] = 3, + ACTIONS(314), 1, anon_sym_LBRACK, - ACTIONS(321), 1, + ACTIONS(323), 1, sym_identifier, - STATE(103), 1, + STATE(102), 1, sym_array_bracket_expression, - [2339] = 1, - ACTIONS(323), 3, - anon_sym_COMMA, - anon_sym_EQ, - anon_sym_SEMI, - [2345] = 3, + [2351] = 3, ACTIONS(325), 1, anon_sym_COMMA, ACTIONS(327), 1, anon_sym_RPAREN, - STATE(91), 1, + STATE(93), 1, aux_sym_parenthesis_expression_list_repeat1, - [2355] = 1, - ACTIONS(329), 3, - anon_sym_COMMA, - anon_sym_EQ, - anon_sym_SEMI, - [2361] = 2, - ACTIONS(49), 1, - anon_sym_LBRACE, - STATE(100), 1, - sym_block, - [2368] = 2, - ACTIONS(49), 1, - anon_sym_LBRACE, - STATE(40), 1, - sym_block, - [2375] = 1, - ACTIONS(331), 2, + [2361] = 1, + ACTIONS(329), 2, ts_builtin_sym_end, anon_sym_module, - [2380] = 1, - ACTIONS(333), 2, + [2366] = 2, + ACTIONS(331), 1, + anon_sym_DASH_GT, + ACTIONS(333), 1, + anon_sym_LBRACE, + [2373] = 1, + ACTIONS(335), 2, ts_builtin_sym_end, anon_sym_module, + [2378] = 2, + ACTIONS(17), 1, + anon_sym_LBRACE, + STATE(97), 1, + sym_block, [2385] = 1, ACTIONS(120), 2, sym_identifier, anon_sym_LBRACK, - [2390] = 2, - ACTIONS(335), 1, - anon_sym_DASH_GT, - ACTIONS(337), 1, - anon_sym_LBRACE, - [2397] = 1, - ACTIONS(339), 2, + [2390] = 1, + ACTIONS(337), 2, sym_identifier, anon_sym_LBRACK, - [2402] = 2, - ACTIONS(341), 1, + [2395] = 2, + ACTIONS(339), 1, anon_sym_EQ, - ACTIONS(343), 1, + ACTIONS(341), 1, anon_sym_SEMI, - [2409] = 1, + [2402] = 1, + ACTIONS(343), 1, + anon_sym_LBRACE, + [2406] = 1, ACTIONS(345), 1, sym_identifier, - [2413] = 1, - ACTIONS(343), 1, - anon_sym_SEMI, - [2417] = 1, + [2410] = 1, ACTIONS(347), 1, anon_sym_LBRACE, - [2421] = 1, + [2414] = 1, ACTIONS(349), 1, - sym_identifier, - [2425] = 1, - ACTIONS(351), 1, anon_sym_in, - [2429] = 1, + [2418] = 1, + ACTIONS(351), 1, + ts_builtin_sym_end, + [2422] = 1, ACTIONS(353), 1, - anon_sym_LBRACE, - [2433] = 1, + sym_identifier, + [2426] = 1, ACTIONS(355), 1, - ts_builtin_sym_end, - [2437] = 1, - ACTIONS(357), 1, sym_identifier, + [2430] = 1, + ACTIONS(341), 1, + anon_sym_SEMI, }; static const uint32_t ts_small_parse_table_map[] = { @@ -4516,20 +4497,20 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(7)] = 74, [SMALL_STATE(8)] = 111, [SMALL_STATE(9)] = 143, - [SMALL_STATE(10)] = 178, + [SMALL_STATE(10)] = 196, [SMALL_STATE(11)] = 231, - [SMALL_STATE(12)] = 263, - [SMALL_STATE(13)] = 305, - [SMALL_STATE(14)] = 341, - [SMALL_STATE(15)] = 381, - [SMALL_STATE(16)] = 419, - [SMALL_STATE(17)] = 451, + [SMALL_STATE(12)] = 269, + [SMALL_STATE(13)] = 301, + [SMALL_STATE(14)] = 335, + [SMALL_STATE(15)] = 367, + [SMALL_STATE(16)] = 409, + [SMALL_STATE(17)] = 445, [SMALL_STATE(18)] = 485, [SMALL_STATE(19)] = 514, - [SMALL_STATE(20)] = 543, - [SMALL_STATE(21)] = 572, - [SMALL_STATE(22)] = 601, - [SMALL_STATE(23)] = 630, + [SMALL_STATE(20)] = 561, + [SMALL_STATE(21)] = 590, + [SMALL_STATE(22)] = 619, + [SMALL_STATE(23)] = 648, [SMALL_STATE(24)] = 677, [SMALL_STATE(25)] = 706, [SMALL_STATE(26)] = 735, @@ -4538,26 +4519,26 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(29)] = 853, [SMALL_STATE(30)] = 879, [SMALL_STATE(31)] = 905, - [SMALL_STATE(32)] = 931, - [SMALL_STATE(33)] = 971, + [SMALL_STATE(32)] = 945, + [SMALL_STATE(33)] = 989, [SMALL_STATE(34)] = 1015, [SMALL_STATE(35)] = 1055, [SMALL_STATE(36)] = 1078, - [SMALL_STATE(37)] = 1111, - [SMALL_STATE(38)] = 1150, - [SMALL_STATE(39)] = 1173, - [SMALL_STATE(40)] = 1196, - [SMALL_STATE(41)] = 1219, - [SMALL_STATE(42)] = 1252, - [SMALL_STATE(43)] = 1293, - [SMALL_STATE(44)] = 1323, - [SMALL_STATE(45)] = 1353, - [SMALL_STATE(46)] = 1383, - [SMALL_STATE(47)] = 1413, - [SMALL_STATE(48)] = 1443, - [SMALL_STATE(49)] = 1481, - [SMALL_STATE(50)] = 1519, - [SMALL_STATE(51)] = 1557, + [SMALL_STATE(37)] = 1101, + [SMALL_STATE(38)] = 1140, + [SMALL_STATE(39)] = 1163, + [SMALL_STATE(40)] = 1204, + [SMALL_STATE(41)] = 1227, + [SMALL_STATE(42)] = 1260, + [SMALL_STATE(43)] = 1301, + [SMALL_STATE(44)] = 1331, + [SMALL_STATE(45)] = 1361, + [SMALL_STATE(46)] = 1391, + [SMALL_STATE(47)] = 1421, + [SMALL_STATE(48)] = 1459, + [SMALL_STATE(49)] = 1497, + [SMALL_STATE(50)] = 1535, + [SMALL_STATE(51)] = 1565, [SMALL_STATE(52)] = 1595, [SMALL_STATE(53)] = 1625, [SMALL_STATE(54)] = 1655, @@ -4567,29 +4548,29 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(58)] = 1775, [SMALL_STATE(59)] = 1805, [SMALL_STATE(60)] = 1835, - [SMALL_STATE(61)] = 1865, - [SMALL_STATE(62)] = 1895, - [SMALL_STATE(63)] = 1933, + [SMALL_STATE(61)] = 1873, + [SMALL_STATE(62)] = 1903, + [SMALL_STATE(63)] = 1941, [SMALL_STATE(64)] = 1971, [SMALL_STATE(65)] = 1994, [SMALL_STATE(66)] = 2019, - [SMALL_STATE(67)] = 2034, - [SMALL_STATE(68)] = 2049, - [SMALL_STATE(69)] = 2068, + [SMALL_STATE(67)] = 2038, + [SMALL_STATE(68)] = 2053, + [SMALL_STATE(69)] = 2072, [SMALL_STATE(70)] = 2087, [SMALL_STATE(71)] = 2103, [SMALL_STATE(72)] = 2119, [SMALL_STATE(73)] = 2128, [SMALL_STATE(74)] = 2137, - [SMALL_STATE(75)] = 2146, - [SMALL_STATE(76)] = 2157, - [SMALL_STATE(77)] = 2168, - [SMALL_STATE(78)] = 2179, - [SMALL_STATE(79)] = 2190, - [SMALL_STATE(80)] = 2201, - [SMALL_STATE(81)] = 2212, - [SMALL_STATE(82)] = 2223, - [SMALL_STATE(83)] = 2234, + [SMALL_STATE(75)] = 2148, + [SMALL_STATE(76)] = 2159, + [SMALL_STATE(77)] = 2170, + [SMALL_STATE(78)] = 2181, + [SMALL_STATE(79)] = 2194, + [SMALL_STATE(80)] = 2205, + [SMALL_STATE(81)] = 2216, + [SMALL_STATE(82)] = 2225, + [SMALL_STATE(83)] = 2236, [SMALL_STATE(84)] = 2247, [SMALL_STATE(85)] = 2258, [SMALL_STATE(86)] = 2269, @@ -4597,63 +4578,62 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(88)] = 2291, [SMALL_STATE(89)] = 2297, [SMALL_STATE(90)] = 2303, - [SMALL_STATE(91)] = 2313, - [SMALL_STATE(92)] = 2323, - [SMALL_STATE(93)] = 2329, - [SMALL_STATE(94)] = 2339, - [SMALL_STATE(95)] = 2345, - [SMALL_STATE(96)] = 2355, + [SMALL_STATE(91)] = 2309, + [SMALL_STATE(92)] = 2315, + [SMALL_STATE(93)] = 2325, + [SMALL_STATE(94)] = 2335, + [SMALL_STATE(95)] = 2341, + [SMALL_STATE(96)] = 2351, [SMALL_STATE(97)] = 2361, - [SMALL_STATE(98)] = 2368, - [SMALL_STATE(99)] = 2375, - [SMALL_STATE(100)] = 2380, + [SMALL_STATE(98)] = 2366, + [SMALL_STATE(99)] = 2373, + [SMALL_STATE(100)] = 2378, [SMALL_STATE(101)] = 2385, [SMALL_STATE(102)] = 2390, - [SMALL_STATE(103)] = 2397, + [SMALL_STATE(103)] = 2395, [SMALL_STATE(104)] = 2402, - [SMALL_STATE(105)] = 2409, - [SMALL_STATE(106)] = 2413, - [SMALL_STATE(107)] = 2417, - [SMALL_STATE(108)] = 2421, - [SMALL_STATE(109)] = 2425, - [SMALL_STATE(110)] = 2429, - [SMALL_STATE(111)] = 2433, - [SMALL_STATE(112)] = 2437, + [SMALL_STATE(105)] = 2406, + [SMALL_STATE(106)] = 2410, + [SMALL_STATE(107)] = 2414, + [SMALL_STATE(108)] = 2418, + [SMALL_STATE(109)] = 2422, + [SMALL_STATE(110)] = 2426, + [SMALL_STATE(111)] = 2430, }; 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}}, REDUCE(sym_source_file, 0), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [7] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(7), - [10] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(32), - [13] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(74), - [16] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(44), - [19] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(58), - [22] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(3), - [25] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), - [27] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(23), - [30] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(26), - [33] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(47), - [36] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(70), - [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74), - [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [53] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), - [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), - [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), - [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), - [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), + [29] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(7), + [32] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(31), + [35] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(81), + [38] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(63), + [41] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(50), + [44] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(2), + [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), + [49] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(19), + [52] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(26), + [55] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(54), + [58] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(70), + [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 14), - [65] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 14), SHIFT_REPEAT(112), + [65] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 14), SHIFT_REPEAT(109), [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 14), [70] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 7), - [72] = {.entry = {.count = 1, .reusable = false}}, SHIFT(112), + [72] = {.entry = {.count = 1, .reusable = false}}, SHIFT(109), [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 7), [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 2), [78] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 2), @@ -4663,136 +4643,135 @@ static const TSParseActionEntry ts_parse_actions[] = { [86] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), [88] = {.entry = {.count = 1, .reusable = false}}, SHIFT(41), [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 21), - [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 21), - [94] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), - [96] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), - [98] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), - [100] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), - [102] = {.entry = {.count = 1, .reusable = false}}, SHIFT(43), - [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [106] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 10), - [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 10), - [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 15), - [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 15), - [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 9), - [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 9), + [92] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), + [94] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), + [96] = {.entry = {.count = 1, .reusable = false}}, SHIFT(43), + [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 10), + [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 10), + [104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 21), + [106] = {.entry = {.count = 1, .reusable = false}}, SHIFT(44), + [108] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), + [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 25), + [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 25), + [114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [116] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64), [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 19), [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 19), [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 12), [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 12), - [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 26), - [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 26), - [130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [132] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64), - [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), - [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 19), - [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 19), + [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), + [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 9), + [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 9), + [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 19), + [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 19), + [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 15), + [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 15), [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 19), [144] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57), [146] = {.entry = {.count = 1, .reusable = false}}, SHIFT(46), [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type, 1), [150] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 13), - [155] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3, .production_id = 13), - [157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), - [161] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 20), - [163] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 20), - [165] = {.entry = {.count = 1, .reusable = false}}, SHIFT(82), - [167] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 4), - [169] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61), - [171] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18), + [153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [155] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), + [157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 13), + [159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3, .production_id = 13), + [161] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 4), + [163] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), + [165] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), + [167] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 20), + [169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 20), + [171] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), [173] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 11), - [175] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 2), - [177] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 2), - [179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [175] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 24), + [177] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 24), + [179] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), + [181] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), [183] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 15), - [185] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), - [187] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), - [189] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 24), - [191] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 24), - [193] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5, .production_id = 25), - [195] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5, .production_id = 25), - [197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [201] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3), - [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [213] = {.entry = {.count = 1, .reusable = false}}, SHIFT(20), - [215] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), - [217] = {.entry = {.count = 1, .reusable = false}}, SHIFT(101), - [219] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 3, .production_id = 27), - [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [241] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), - [243] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 22), - [245] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_assign_to_repeat1, 2), - [247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_to_repeat1, 2), - [249] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_assign_to_repeat1, 2), SHIFT_REPEAT(64), - [252] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), - [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 1), - [258] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 8), - [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 16), - [264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 23), - [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 18), - [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), - [272] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(108), - [275] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 7), - [277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 2), - [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 14), - [289] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 14), SHIFT_REPEAT(71), - [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 2), - [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 7), - [300] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 14), SHIFT_REPEAT(105), - [303] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 14), SHIFT_REPEAT(10), - [306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 14), - [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 15), - [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [314] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 14), SHIFT_REPEAT(61), - [317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 14), - [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 15), - [321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 4), - [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 11), - [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 1), - [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 5), - [335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 3), - [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 9), - [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [185] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 2), + [187] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 2), + [189] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2), + [191] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 26), + [193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 26), + [195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [209] = {.entry = {.count = 1, .reusable = false}}, SHIFT(101), + [211] = {.entry = {.count = 1, .reusable = false}}, SHIFT(20), + [213] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24), + [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [235] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), + [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [239] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 22), + [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [243] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_assign_to_repeat1, 2), + [245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_to_repeat1, 2), + [247] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_assign_to_repeat1, 2), SHIFT_REPEAT(64), + [250] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80), + [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [254] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 1), + [256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 16), + [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 8), + [262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 23), + [264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 18), + [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 2), + [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 7), + [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), + [282] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(105), + [285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 7), + [291] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 14), SHIFT_REPEAT(110), + [294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 14), + [296] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 14), SHIFT_REPEAT(71), + [299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 2), + [301] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 14), SHIFT_REPEAT(9), + [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 14), + [306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 15), + [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 11), + [310] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 4), + [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [316] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 14), SHIFT_REPEAT(59), + [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 14), + [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 15), + [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 5), + [331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 3), + [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 1), + [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 9), + [339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 17), + [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 6), - [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 17), - [355] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [351] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), }; #ifdef __cplusplus From e53bc621e9d8f450be51d1a6f1f309928343c831 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Sat, 6 Apr 2024 01:50:04 +0200 Subject: [PATCH 17/49] Fix array precedence and extract write_modifiers --- grammar.js | 19 +- src/grammar.json | 84 +- src/node-types.json | 34 +- src/parser.c | 2487 ++++++++++++++++++++++--------------------- 4 files changed, 1380 insertions(+), 1244 deletions(-) diff --git a/grammar.js b/grammar.js index 3861cf1..02b82db 100644 --- a/grammar.js +++ b/grammar.js @@ -15,7 +15,8 @@ const PREC = { additive: 6, multiplicative: 7, unary: 8, - namespace_path : 9 + array_index : 9, + namespace_path : 10 } module.exports = grammar({ @@ -94,10 +95,10 @@ module.exports = grammar({ )))); }, - array_op: $ => seq( + array_op: $ => prec(PREC.array_index, seq( field('arr', $._expression), field('arr_idx', $.array_bracket_expression) - ), + )), func_call: $ => seq( field('name', $.global_identifier), @@ -138,11 +139,13 @@ module.exports = grammar({ '}' ), + write_modifiers: $ => choice( + repeat1(field('item', 'reg')), + field('item', 'initial') + ), + assign_to: $ => seq( - optional(field('write_modifiers', choice( - repeat1('reg'), - 'initial' - ))), + optional(field('write_modifiers', $.write_modifiers)), field('expr_or_decl', choice( $._expression, $.declaration @@ -176,7 +179,7 @@ module.exports = grammar({ field('for_decl', $.declaration), 'in', field('from', $._expression), - ':', + '..', field('to', $._expression), field('block', $.block) ), diff --git a/src/grammar.json b/src/grammar.json index 938da84..e5ecaeb 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -143,7 +143,7 @@ }, "global_identifier": { "type": "PREC_LEFT", - "value": 9, + "value": 10, "content": { "type": "SEQ", "members": [ @@ -606,25 +606,29 @@ ] }, "array_op": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "arr", - "content": { - "type": "SYMBOL", - "name": "_expression" - } - }, - { - "type": "FIELD", - "name": "arr_idx", - "content": { - "type": "SYMBOL", - "name": "array_bracket_expression" + "type": "PREC", + "value": 9, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "arr", + "content": { + "type": "SYMBOL", + "name": "_expression" + } + }, + { + "type": "FIELD", + "name": "arr_idx", + "content": { + "type": "SYMBOL", + "name": "array_bracket_expression" + } } - } - ] + ] + } }, "func_call": { "type": "SEQ", @@ -800,6 +804,30 @@ } ] }, + "write_modifiers": { + "type": "CHOICE", + "members": [ + { + "type": "REPEAT1", + "content": { + "type": "FIELD", + "name": "item", + "content": { + "type": "STRING", + "value": "reg" + } + } + }, + { + "type": "FIELD", + "name": "item", + "content": { + "type": "STRING", + "value": "initial" + } + } + ] + }, "assign_to": { "type": "SEQ", "members": [ @@ -810,20 +838,8 @@ "type": "FIELD", "name": "write_modifiers", "content": { - "type": "CHOICE", - "members": [ - { - "type": "REPEAT1", - "content": { - "type": "STRING", - "value": "reg" - } - }, - { - "type": "STRING", - "value": "initial" - } - ] + "type": "SYMBOL", + "name": "write_modifiers" } }, { @@ -996,7 +1012,7 @@ }, { "type": "STRING", - "value": ":" + "value": ".." }, { "type": "FIELD", diff --git a/src/node-types.json b/src/node-types.json index 4aa7e5e..3900922 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -178,16 +178,12 @@ ] }, "write_modifiers": { - "multiple": true, + "multiple": false, "required": false, "types": [ { - "type": "initial", - "named": false - }, - { - "type": "reg", - "named": false + "type": "write_modifiers", + "named": true } ] } @@ -956,6 +952,26 @@ } } }, + { + "type": "write_modifiers", + "named": true, + "fields": { + "item": { + "multiple": true, + "required": true, + "types": [ + { + "type": "initial", + "named": false + }, + { + "type": "reg", + "named": false + } + ] + } + } + }, { "type": "!", "named": false @@ -1004,6 +1020,10 @@ "type": "->", "named": false }, + { + "type": "..", + "named": false + }, { "type": "/", "named": false diff --git a/src/parser.c b/src/parser.c index 1943150..636b553 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,15 +6,15 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 112 +#define STATE_COUNT 114 #define LARGE_STATE_COUNT 5 -#define SYMBOL_COUNT 71 +#define SYMBOL_COUNT 73 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 40 +#define TOKEN_COUNT 41 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 26 #define MAX_ALIAS_SEQUENCE_LENGTH 7 -#define PRODUCTION_ID_COUNT 27 +#define PRODUCTION_ID_COUNT 28 enum { sym_identifier = 1, @@ -55,38 +55,40 @@ enum { anon_sym_else = 36, anon_sym_for = 37, anon_sym_in = 38, - anon_sym_SEMI = 39, - sym_source_file = 40, - sym_interface_ports = 41, - sym_declaration_list = 42, - sym_module = 43, - sym_global_identifier = 44, - sym_array_type = 45, - sym__type = 46, - sym_latency_specifier = 47, - sym_declaration = 48, - sym_unary_op = 49, - sym_binary_op = 50, - sym_array_op = 51, - sym_func_call = 52, - sym_parenthesis_expression_list = 53, - sym_parenthesis_expression = 54, - sym_array_bracket_expression = 55, - sym__expression = 56, - sym_block = 57, - sym_assign_to = 58, - sym_assign_left_side = 59, - sym_decl_assign_statement = 60, - sym_if_statement = 61, - sym_for_statement = 62, - sym__statement = 63, - aux_sym_source_file_repeat1 = 64, - aux_sym_declaration_list_repeat1 = 65, - aux_sym_global_identifier_repeat1 = 66, - aux_sym_parenthesis_expression_list_repeat1 = 67, - aux_sym_block_repeat1 = 68, - aux_sym_assign_to_repeat1 = 69, - aux_sym_assign_left_side_repeat1 = 70, + anon_sym_DOT_DOT = 39, + anon_sym_SEMI = 40, + sym_source_file = 41, + sym_interface_ports = 42, + sym_declaration_list = 43, + sym_module = 44, + sym_global_identifier = 45, + sym_array_type = 46, + sym__type = 47, + sym_latency_specifier = 48, + sym_declaration = 49, + sym_unary_op = 50, + sym_binary_op = 51, + sym_array_op = 52, + sym_func_call = 53, + sym_parenthesis_expression_list = 54, + sym_parenthesis_expression = 55, + sym_array_bracket_expression = 56, + sym__expression = 57, + sym_block = 58, + sym_write_modifiers = 59, + sym_assign_to = 60, + sym_assign_left_side = 61, + sym_decl_assign_statement = 62, + sym_if_statement = 63, + sym_for_statement = 64, + sym__statement = 65, + aux_sym_source_file_repeat1 = 66, + aux_sym_declaration_list_repeat1 = 67, + aux_sym_global_identifier_repeat1 = 68, + aux_sym_parenthesis_expression_list_repeat1 = 69, + aux_sym_block_repeat1 = 70, + aux_sym_write_modifiers_repeat1 = 71, + aux_sym_assign_left_side_repeat1 = 72, }; static const char * const ts_symbol_names[] = { @@ -129,6 +131,7 @@ static const char * const ts_symbol_names[] = { [anon_sym_else] = "else", [anon_sym_for] = "for", [anon_sym_in] = "in", + [anon_sym_DOT_DOT] = "..", [anon_sym_SEMI] = ";", [sym_source_file] = "source_file", [sym_interface_ports] = "interface_ports", @@ -148,6 +151,7 @@ static const char * const ts_symbol_names[] = { [sym_array_bracket_expression] = "array_bracket_expression", [sym__expression] = "_expression", [sym_block] = "block", + [sym_write_modifiers] = "write_modifiers", [sym_assign_to] = "assign_to", [sym_assign_left_side] = "assign_left_side", [sym_decl_assign_statement] = "decl_assign_statement", @@ -159,7 +163,7 @@ static const char * const ts_symbol_names[] = { [aux_sym_global_identifier_repeat1] = "global_identifier_repeat1", [aux_sym_parenthesis_expression_list_repeat1] = "parenthesis_expression_list_repeat1", [aux_sym_block_repeat1] = "block_repeat1", - [aux_sym_assign_to_repeat1] = "assign_to_repeat1", + [aux_sym_write_modifiers_repeat1] = "write_modifiers_repeat1", [aux_sym_assign_left_side_repeat1] = "assign_left_side_repeat1", }; @@ -203,6 +207,7 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_else] = anon_sym_else, [anon_sym_for] = anon_sym_for, [anon_sym_in] = anon_sym_in, + [anon_sym_DOT_DOT] = anon_sym_DOT_DOT, [anon_sym_SEMI] = anon_sym_SEMI, [sym_source_file] = sym_source_file, [sym_interface_ports] = sym_interface_ports, @@ -222,6 +227,7 @@ static const TSSymbol ts_symbol_map[] = { [sym_array_bracket_expression] = sym_array_bracket_expression, [sym__expression] = sym__expression, [sym_block] = sym_block, + [sym_write_modifiers] = sym_write_modifiers, [sym_assign_to] = sym_assign_to, [sym_assign_left_side] = sym_assign_left_side, [sym_decl_assign_statement] = sym_decl_assign_statement, @@ -233,7 +239,7 @@ static const TSSymbol ts_symbol_map[] = { [aux_sym_global_identifier_repeat1] = aux_sym_global_identifier_repeat1, [aux_sym_parenthesis_expression_list_repeat1] = aux_sym_parenthesis_expression_list_repeat1, [aux_sym_block_repeat1] = aux_sym_block_repeat1, - [aux_sym_assign_to_repeat1] = aux_sym_assign_to_repeat1, + [aux_sym_write_modifiers_repeat1] = aux_sym_write_modifiers_repeat1, [aux_sym_assign_left_side_repeat1] = aux_sym_assign_left_side_repeat1, }; @@ -394,6 +400,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_DOT_DOT] = { + .visible = true, + .named = false, + }, [anon_sym_SEMI] = { .visible = true, .named = false, @@ -470,6 +480,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_write_modifiers] = { + .visible = true, + .named = true, + }, [sym_assign_to] = { .visible = true, .named = true, @@ -514,7 +528,7 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, - [aux_sym_assign_to_repeat1] = { + [aux_sym_write_modifiers_repeat1] = { .visible = false, .named = false, }, @@ -588,28 +602,29 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [2] = {.index = 2, .length = 1}, [3] = {.index = 3, .length = 1}, [4] = {.index = 4, .length = 1}, - [5] = {.index = 5, .length = 3}, - [6] = {.index = 8, .length = 1}, - [7] = {.index = 9, .length = 2}, - [8] = {.index = 11, .length = 2}, - [9] = {.index = 13, .length = 2}, - [10] = {.index = 15, .length = 2}, - [11] = {.index = 17, .length = 2}, - [12] = {.index = 19, .length = 2}, - [13] = {.index = 21, .length = 1}, - [14] = {.index = 22, .length = 2}, - [15] = {.index = 24, .length = 1}, - [16] = {.index = 25, .length = 3}, - [17] = {.index = 28, .length = 2}, - [18] = {.index = 30, .length = 3}, - [19] = {.index = 33, .length = 1}, - [20] = {.index = 34, .length = 2}, - [21] = {.index = 36, .length = 3}, - [22] = {.index = 39, .length = 2}, - [23] = {.index = 41, .length = 4}, - [24] = {.index = 45, .length = 3}, - [25] = {.index = 48, .length = 2}, - [26] = {.index = 50, .length = 4}, + [5] = {.index = 5, .length = 1}, + [6] = {.index = 6, .length = 3}, + [7] = {.index = 9, .length = 1}, + [8] = {.index = 10, .length = 2}, + [9] = {.index = 12, .length = 2}, + [10] = {.index = 14, .length = 2}, + [11] = {.index = 16, .length = 2}, + [12] = {.index = 18, .length = 2}, + [13] = {.index = 20, .length = 2}, + [14] = {.index = 22, .length = 1}, + [15] = {.index = 23, .length = 2}, + [16] = {.index = 25, .length = 1}, + [17] = {.index = 26, .length = 3}, + [18] = {.index = 29, .length = 2}, + [19] = {.index = 31, .length = 3}, + [20] = {.index = 34, .length = 1}, + [21] = {.index = 35, .length = 2}, + [22] = {.index = 37, .length = 3}, + [23] = {.index = 40, .length = 2}, + [24] = {.index = 42, .length = 4}, + [25] = {.index = 46, .length = 3}, + [26] = {.index = 49, .length = 2}, + [27] = {.index = 51, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -623,72 +638,74 @@ static const TSFieldMapEntry ts_field_map_entries[] = { [4] = {field_expr_or_decl, 0}, [5] = + {field_item, 0, .inherited = true}, + [6] = {field_block, 3}, {field_interface_ports, 2}, {field_name, 1}, - [8] = - {field_outputs, 2}, [9] = + {field_outputs, 2}, + [10] = {field_item, 0}, {field_item, 1, .inherited = true}, - [11] = + [12] = {field_name, 1}, {field_type, 0}, - [13] = + [14] = {field_arr, 0}, {field_arr_idx, 1}, - [15] = + [16] = {field_operator, 0}, {field_right, 1}, - [17] = - {field_expr_or_decl, 1}, - {field_write_modifiers, 0}, - [19] = + [18] = {field_arguments, 1}, {field_name, 0}, - [21] = - {field_item, 1, .inherited = true}, + [20] = + {field_expr_or_decl, 1}, + {field_write_modifiers, 0}, [22] = + {field_item, 1, .inherited = true}, + [23] = {field_item, 0, .inherited = true}, {field_item, 1, .inherited = true}, - [24] = - {field_item, 1}, [25] = + {field_item, 1}, + [26] = {field_declaration_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [28] = + [29] = {field_inputs, 1}, {field_outputs, 3}, - [30] = + [31] = {field_latency_specifier, 2}, {field_name, 1}, {field_type, 0}, - [33] = - {field_content, 1}, [34] = + {field_content, 1}, + [35] = {field_condition, 1}, {field_then_block, 2}, - [36] = + [37] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [39] = + [40] = {field_assign_left, 0}, {field_assign_value, 2}, - [41] = + [42] = {field_declaration_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [45] = + [46] = {field_condition, 1}, {field_else_block, 4}, {field_then_block, 2}, - [48] = + [49] = {field_item, 1}, {field_item, 2, .inherited = true}, - [50] = + [51] = {field_block, 6}, {field_for_decl, 1}, {field_from, 3}, @@ -750,10 +767,10 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [43] = 43, [44] = 44, [45] = 45, - [46] = 45, - [47] = 47, - [48] = 47, - [49] = 49, + [46] = 46, + [47] = 46, + [48] = 48, + [49] = 44, [50] = 50, [51] = 51, [52] = 52, @@ -782,30 +799,30 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [75] = 75, [76] = 76, [77] = 77, - [78] = 78, + [78] = 6, [79] = 79, [80] = 7, [81] = 81, [82] = 82, - [83] = 5, - [84] = 84, + [83] = 83, + [84] = 5, [85] = 85, - [86] = 6, + [86] = 86, [87] = 87, - [88] = 8, + [88] = 88, [89] = 89, [90] = 90, [91] = 91, [92] = 92, - [93] = 93, + [93] = 8, [94] = 94, [95] = 95, [96] = 96, [97] = 97, [98] = 98, [99] = 99, - [100] = 100, - [101] = 20, + [100] = 24, + [101] = 101, [102] = 102, [103] = 103, [104] = 104, @@ -814,8 +831,10 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [107] = 107, [108] = 108, [109] = 109, - [110] = 109, - [111] = 111, + [110] = 110, + [111] = 109, + [112] = 112, + [113] = 113, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -1851,235 +1870,277 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (eof) ADVANCE(12); - if (lookahead == '!') ADVANCE(25); - if (lookahead == '%') ADVANCE(36); - if (lookahead == '&') ADVANCE(27); - if (lookahead == '\'') ADVANCE(19); - if (lookahead == '(') ADVANCE(37); - if (lookahead == ')') ADVANCE(38); - if (lookahead == '*') ADVANCE(23); - if (lookahead == '+') ADVANCE(20); - if (lookahead == ',') ADVANCE(15); - if (lookahead == '-') ADVANCE(22); - if (lookahead == '/') SKIP(6) - if (lookahead == ':') ADVANCE(13); - if (lookahead == ';') ADVANCE(44); - if (lookahead == '<') ADVANCE(31); - if (lookahead == '=') ADVANCE(43); - if (lookahead == '>') ADVANCE(33); - if (lookahead == '[') ADVANCE(39); - if (lookahead == ']') ADVANCE(40); - if (lookahead == '^') ADVANCE(28); - if (lookahead == '{') ADVANCE(41); - if (lookahead == '|') ADVANCE(26); - if (lookahead == '}') ADVANCE(42); + if (eof) ADVANCE(19); + if (lookahead == '!') ADVANCE(33); + if (lookahead == '%') ADVANCE(44); + if (lookahead == '&') ADVANCE(35); + if (lookahead == '\'') ADVANCE(27); + if (lookahead == '(') ADVANCE(45); + if (lookahead == ')') ADVANCE(46); + if (lookahead == '*') ADVANCE(31); + if (lookahead == '+') ADVANCE(28); + if (lookahead == ',') ADVANCE(23); + if (lookahead == '-') ADVANCE(30); + if (lookahead == '.') ADVANCE(6); + if (lookahead == '/') SKIP(13) + if (lookahead == ':') ADVANCE(21); + if (lookahead == ';') ADVANCE(53); + if (lookahead == '<') ADVANCE(39); + if (lookahead == '=') ADVANCE(51); + if (lookahead == '>') ADVANCE(41); + if (lookahead == '[') ADVANCE(47); + if (lookahead == ']') ADVANCE(48); + if (lookahead == '^') ADVANCE(36); + if (lookahead == '{') ADVANCE(49); + if (lookahead == '|') ADVANCE(34); + if (lookahead == '}') ADVANCE(50); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(0) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(17); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(16); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(25); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(24); END_STATE(); case 1: - if (lookahead == '!') ADVANCE(2); - if (lookahead == '%') ADVANCE(36); - if (lookahead == '&') ADVANCE(27); - if (lookahead == '(') ADVANCE(37); - if (lookahead == ')') ADVANCE(38); - if (lookahead == '*') ADVANCE(23); - if (lookahead == '+') ADVANCE(20); - if (lookahead == ',') ADVANCE(15); - if (lookahead == '-') ADVANCE(22); - if (lookahead == '/') ADVANCE(35); - if (lookahead == ':') ADVANCE(13); - if (lookahead == ';') ADVANCE(44); - if (lookahead == '<') ADVANCE(31); - if (lookahead == '=') ADVANCE(43); - if (lookahead == '>') ADVANCE(33); - if (lookahead == '[') ADVANCE(39); - if (lookahead == ']') ADVANCE(40); - if (lookahead == '^') ADVANCE(28); - if (lookahead == '{') ADVANCE(41); - if (lookahead == '|') ADVANCE(26); + if (lookahead == '\n') SKIP(7) + if (lookahead != 0) SKIP(1) + END_STATE(); + case 2: + if (lookahead == '!') ADVANCE(9); + if (lookahead == '%') ADVANCE(44); + if (lookahead == '&') ADVANCE(35); + if (lookahead == '(') ADVANCE(45); + if (lookahead == ')') ADVANCE(46); + if (lookahead == '*') ADVANCE(31); + if (lookahead == '+') ADVANCE(28); + if (lookahead == ',') ADVANCE(23); + if (lookahead == '-') ADVANCE(30); + if (lookahead == '.') ADVANCE(6); + if (lookahead == '/') ADVANCE(43); + if (lookahead == ':') ADVANCE(8); + if (lookahead == ';') ADVANCE(53); + if (lookahead == '<') ADVANCE(39); + if (lookahead == '=') ADVANCE(51); + if (lookahead == '>') ADVANCE(41); + if (lookahead == '[') ADVANCE(47); + if (lookahead == ']') ADVANCE(48); + if (lookahead == '^') ADVANCE(36); + if (lookahead == '{') ADVANCE(49); + if (lookahead == '|') ADVANCE(34); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || - lookahead == ' ') SKIP(1) - if (sym_identifier_character_set_1(lookahead)) ADVANCE(16); - END_STATE(); - case 2: - if (lookahead == '=') ADVANCE(30); + lookahead == ' ') SKIP(2) + if (sym_identifier_character_set_1(lookahead)) ADVANCE(24); END_STATE(); case 3: - if (eof) ADVANCE(12); - if (lookahead == '\n') SKIP(0) - if (lookahead != 0) SKIP(3) + if (lookahead == '*') SKIP(5) + if (lookahead == '/') SKIP(1) END_STATE(); case 4: - if (eof) ADVANCE(12); - if (lookahead == '\n') SKIP(5) - if (lookahead != 0) SKIP(4) + if (lookahead == '*') SKIP(4) + if (lookahead == '/') SKIP(7) + if (lookahead != 0) SKIP(5) END_STATE(); case 5: - if (eof) ADVANCE(12); - if (lookahead == '!') ADVANCE(24); - if (lookahead == '&') ADVANCE(27); - if (lookahead == '(') ADVANCE(37); - if (lookahead == ')') ADVANCE(38); - if (lookahead == '*') ADVANCE(23); - if (lookahead == '+') ADVANCE(20); - if (lookahead == '-') ADVANCE(21); - if (lookahead == '/') SKIP(11) - if (lookahead == '^') ADVANCE(28); - if (lookahead == '{') ADVANCE(41); - if (lookahead == '|') ADVANCE(26); - if (lookahead == '}') ADVANCE(42); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(5) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(17); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(16); + if (lookahead == '*') SKIP(4) + if (lookahead != 0) SKIP(5) END_STATE(); case 6: - if (eof) ADVANCE(12); - if (lookahead == '*') SKIP(8) - if (lookahead == '/') SKIP(3) + if (lookahead == '.') ADVANCE(52); END_STATE(); case 7: - if (eof) ADVANCE(12); - if (lookahead == '*') SKIP(7) - if (lookahead == '/') SKIP(0) - if (lookahead != 0) SKIP(8) + if (lookahead == '/') SKIP(3) + if (lookahead == ':') ADVANCE(20); + if (lookahead == '{') ADVANCE(49); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(7) END_STATE(); case 8: - if (eof) ADVANCE(12); - if (lookahead == '*') SKIP(7) - if (lookahead != 0) SKIP(8) + if (lookahead == ':') ADVANCE(26); END_STATE(); case 9: - if (eof) ADVANCE(12); - if (lookahead == '*') SKIP(9) - if (lookahead == '/') SKIP(5) - if (lookahead != 0) SKIP(10) + if (lookahead == '=') ADVANCE(38); END_STATE(); case 10: - if (eof) ADVANCE(12); - if (lookahead == '*') SKIP(9) + if (eof) ADVANCE(19); + if (lookahead == '\n') SKIP(0) if (lookahead != 0) SKIP(10) END_STATE(); case 11: - if (eof) ADVANCE(12); - if (lookahead == '*') SKIP(10) - if (lookahead == '/') SKIP(4) + if (eof) ADVANCE(19); + if (lookahead == '\n') SKIP(12) + if (lookahead != 0) SKIP(11) END_STATE(); case 12: - ACCEPT_TOKEN(ts_builtin_sym_end); + if (eof) ADVANCE(19); + if (lookahead == '!') ADVANCE(32); + if (lookahead == '&') ADVANCE(35); + if (lookahead == '(') ADVANCE(45); + if (lookahead == ')') ADVANCE(46); + if (lookahead == '*') ADVANCE(31); + if (lookahead == '+') ADVANCE(28); + if (lookahead == '-') ADVANCE(29); + if (lookahead == '/') SKIP(18) + if (lookahead == ':') ADVANCE(8); + if (lookahead == '[') ADVANCE(47); + if (lookahead == '^') ADVANCE(36); + if (lookahead == '{') ADVANCE(49); + if (lookahead == '|') ADVANCE(34); + if (lookahead == '}') ADVANCE(50); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(12) + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(25); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(24); END_STATE(); case 13: - ACCEPT_TOKEN(anon_sym_COLON); - if (lookahead == ':') ADVANCE(18); + if (eof) ADVANCE(19); + if (lookahead == '*') SKIP(15) + if (lookahead == '/') SKIP(10) END_STATE(); case 14: - ACCEPT_TOKEN(anon_sym_DASH_GT); + if (eof) ADVANCE(19); + if (lookahead == '*') SKIP(14) + if (lookahead == '/') SKIP(0) + if (lookahead != 0) SKIP(15) END_STATE(); case 15: - ACCEPT_TOKEN(anon_sym_COMMA); + if (eof) ADVANCE(19); + if (lookahead == '*') SKIP(14) + if (lookahead != 0) SKIP(15) END_STATE(); case 16: - ACCEPT_TOKEN(sym_identifier); - if (sym_identifier_character_set_2(lookahead)) ADVANCE(16); + if (eof) ADVANCE(19); + if (lookahead == '*') SKIP(16) + if (lookahead == '/') SKIP(12) + if (lookahead != 0) SKIP(17) END_STATE(); case 17: + if (eof) ADVANCE(19); + if (lookahead == '*') SKIP(16) + if (lookahead != 0) SKIP(17) + END_STATE(); + case 18: + if (eof) ADVANCE(19); + if (lookahead == '*') SKIP(17) + if (lookahead == '/') SKIP(11) + END_STATE(); + case 19: + ACCEPT_TOKEN(ts_builtin_sym_end); + END_STATE(); + case 20: + ACCEPT_TOKEN(anon_sym_COLON); + END_STATE(); + case 21: + ACCEPT_TOKEN(anon_sym_COLON); + if (lookahead == ':') ADVANCE(26); + END_STATE(); + case 22: + ACCEPT_TOKEN(anon_sym_DASH_GT); + END_STATE(); + case 23: + ACCEPT_TOKEN(anon_sym_COMMA); + END_STATE(); + case 24: + ACCEPT_TOKEN(sym_identifier); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(24); + END_STATE(); + case 25: ACCEPT_TOKEN(sym_number); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(17); + lookahead == '_') ADVANCE(25); END_STATE(); - case 18: + case 26: ACCEPT_TOKEN(anon_sym_COLON_COLON); END_STATE(); - case 19: + case 27: ACCEPT_TOKEN(anon_sym_SQUOTE); END_STATE(); - case 20: + case 28: ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); - case 21: + case 29: ACCEPT_TOKEN(anon_sym_DASH); END_STATE(); - case 22: + case 30: ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '>') ADVANCE(14); + if (lookahead == '>') ADVANCE(22); END_STATE(); - case 23: + case 31: ACCEPT_TOKEN(anon_sym_STAR); END_STATE(); - case 24: + case 32: ACCEPT_TOKEN(anon_sym_BANG); END_STATE(); - case 25: + case 33: ACCEPT_TOKEN(anon_sym_BANG); - if (lookahead == '=') ADVANCE(30); + if (lookahead == '=') ADVANCE(38); END_STATE(); - case 26: + case 34: ACCEPT_TOKEN(anon_sym_PIPE); END_STATE(); - case 27: + case 35: ACCEPT_TOKEN(anon_sym_AMP); END_STATE(); - case 28: + case 36: ACCEPT_TOKEN(anon_sym_CARET); END_STATE(); - case 29: + case 37: ACCEPT_TOKEN(anon_sym_EQ_EQ); END_STATE(); - case 30: + case 38: ACCEPT_TOKEN(anon_sym_BANG_EQ); END_STATE(); - case 31: + case 39: ACCEPT_TOKEN(anon_sym_LT); - if (lookahead == '=') ADVANCE(32); + if (lookahead == '=') ADVANCE(40); END_STATE(); - case 32: + case 40: ACCEPT_TOKEN(anon_sym_LT_EQ); END_STATE(); - case 33: + case 41: ACCEPT_TOKEN(anon_sym_GT); - if (lookahead == '=') ADVANCE(34); + if (lookahead == '=') ADVANCE(42); END_STATE(); - case 34: + case 42: ACCEPT_TOKEN(anon_sym_GT_EQ); END_STATE(); - case 35: + case 43: ACCEPT_TOKEN(anon_sym_SLASH); END_STATE(); - case 36: + case 44: ACCEPT_TOKEN(anon_sym_PERCENT); END_STATE(); - case 37: + case 45: ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); - case 38: + case 46: ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); - case 39: + case 47: ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); - case 40: + case 48: ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); - case 41: + case 49: ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); - case 42: + case 50: ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); - case 43: + case 51: ACCEPT_TOKEN(anon_sym_EQ); - if (lookahead == '=') ADVANCE(29); + if (lookahead == '=') ADVANCE(37); END_STATE(); - case 44: + case 52: + ACCEPT_TOKEN(anon_sym_DOT_DOT); + END_STATE(); + case 53: ACCEPT_TOKEN(anon_sym_SEMI); END_STATE(); default: @@ -2237,71 +2298,71 @@ 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 = 5}, - [3] = {.lex_state = 5}, - [4] = {.lex_state = 5}, - [5] = {.lex_state = 1}, - [6] = {.lex_state = 1}, - [7] = {.lex_state = 1}, - [8] = {.lex_state = 1}, - [9] = {.lex_state = 5}, - [10] = {.lex_state = 1}, - [11] = {.lex_state = 1}, - [12] = {.lex_state = 1}, - [13] = {.lex_state = 1}, - [14] = {.lex_state = 1}, - [15] = {.lex_state = 1}, - [16] = {.lex_state = 1}, - [17] = {.lex_state = 1}, - [18] = {.lex_state = 1}, - [19] = {.lex_state = 5}, - [20] = {.lex_state = 1}, - [21] = {.lex_state = 1}, - [22] = {.lex_state = 1}, - [23] = {.lex_state = 1}, - [24] = {.lex_state = 1}, - [25] = {.lex_state = 1}, - [26] = {.lex_state = 5}, - [27] = {.lex_state = 1}, - [28] = {.lex_state = 1}, - [29] = {.lex_state = 5}, - [30] = {.lex_state = 5}, - [31] = {.lex_state = 1}, - [32] = {.lex_state = 1}, - [33] = {.lex_state = 5}, - [34] = {.lex_state = 1}, - [35] = {.lex_state = 5}, - [36] = {.lex_state = 5}, - [37] = {.lex_state = 1}, - [38] = {.lex_state = 5}, - [39] = {.lex_state = 1}, - [40] = {.lex_state = 5}, - [41] = {.lex_state = 5}, - [42] = {.lex_state = 1}, - [43] = {.lex_state = 5}, - [44] = {.lex_state = 5}, - [45] = {.lex_state = 5}, - [46] = {.lex_state = 5}, - [47] = {.lex_state = 1}, - [48] = {.lex_state = 1}, - [49] = {.lex_state = 1}, - [50] = {.lex_state = 5}, - [51] = {.lex_state = 5}, - [52] = {.lex_state = 5}, - [53] = {.lex_state = 5}, - [54] = {.lex_state = 5}, - [55] = {.lex_state = 5}, - [56] = {.lex_state = 5}, - [57] = {.lex_state = 5}, - [58] = {.lex_state = 5}, - [59] = {.lex_state = 5}, - [60] = {.lex_state = 1}, - [61] = {.lex_state = 5}, - [62] = {.lex_state = 1}, - [63] = {.lex_state = 5}, - [64] = {.lex_state = 5}, - [65] = {.lex_state = 0}, - [66] = {.lex_state = 0}, + [2] = {.lex_state = 12}, + [3] = {.lex_state = 12}, + [4] = {.lex_state = 12}, + [5] = {.lex_state = 2}, + [6] = {.lex_state = 2}, + [7] = {.lex_state = 2}, + [8] = {.lex_state = 2}, + [9] = {.lex_state = 12}, + [10] = {.lex_state = 2}, + [11] = {.lex_state = 2}, + [12] = {.lex_state = 2}, + [13] = {.lex_state = 2}, + [14] = {.lex_state = 2}, + [15] = {.lex_state = 2}, + [16] = {.lex_state = 2}, + [17] = {.lex_state = 2}, + [18] = {.lex_state = 2}, + [19] = {.lex_state = 2}, + [20] = {.lex_state = 2}, + [21] = {.lex_state = 2}, + [22] = {.lex_state = 2}, + [23] = {.lex_state = 2}, + [24] = {.lex_state = 2}, + [25] = {.lex_state = 12}, + [26] = {.lex_state = 2}, + [27] = {.lex_state = 2}, + [28] = {.lex_state = 12}, + [29] = {.lex_state = 12}, + [30] = {.lex_state = 12}, + [31] = {.lex_state = 2}, + [32] = {.lex_state = 2}, + [33] = {.lex_state = 2}, + [34] = {.lex_state = 12}, + [35] = {.lex_state = 12}, + [36] = {.lex_state = 12}, + [37] = {.lex_state = 2}, + [38] = {.lex_state = 12}, + [39] = {.lex_state = 2}, + [40] = {.lex_state = 2}, + [41] = {.lex_state = 12}, + [42] = {.lex_state = 12}, + [43] = {.lex_state = 12}, + [44] = {.lex_state = 2}, + [45] = {.lex_state = 12}, + [46] = {.lex_state = 12}, + [47] = {.lex_state = 12}, + [48] = {.lex_state = 12}, + [49] = {.lex_state = 2}, + [50] = {.lex_state = 2}, + [51] = {.lex_state = 12}, + [52] = {.lex_state = 12}, + [53] = {.lex_state = 12}, + [54] = {.lex_state = 12}, + [55] = {.lex_state = 12}, + [56] = {.lex_state = 12}, + [57] = {.lex_state = 12}, + [58] = {.lex_state = 12}, + [59] = {.lex_state = 12}, + [60] = {.lex_state = 2}, + [61] = {.lex_state = 2}, + [62] = {.lex_state = 12}, + [63] = {.lex_state = 12}, + [64] = {.lex_state = 12}, + [65] = {.lex_state = 12}, + [66] = {.lex_state = 12}, [67] = {.lex_state = 0}, [68] = {.lex_state = 0}, [69] = {.lex_state = 0}, @@ -2313,13 +2374,13 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [75] = {.lex_state = 0}, [76] = {.lex_state = 0}, [77] = {.lex_state = 0}, - [78] = {.lex_state = 0}, + [78] = {.lex_state = 12}, [79] = {.lex_state = 0}, - [80] = {.lex_state = 0}, + [80] = {.lex_state = 12}, [81] = {.lex_state = 0}, - [82] = {.lex_state = 0}, + [82] = {.lex_state = 7}, [83] = {.lex_state = 0}, - [84] = {.lex_state = 0}, + [84] = {.lex_state = 12}, [85] = {.lex_state = 0}, [86] = {.lex_state = 0}, [87] = {.lex_state = 0}, @@ -2328,7 +2389,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [90] = {.lex_state = 0}, [91] = {.lex_state = 0}, [92] = {.lex_state = 0}, - [93] = {.lex_state = 0}, + [93] = {.lex_state = 12}, [94] = {.lex_state = 0}, [95] = {.lex_state = 0}, [96] = {.lex_state = 0}, @@ -2347,6 +2408,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [109] = {.lex_state = 0}, [110] = {.lex_state = 0}, [111] = {.lex_state = 0}, + [112] = {.lex_state = 0}, + [113] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -2389,35 +2452,37 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_else] = ACTIONS(1), [anon_sym_for] = ACTIONS(1), [anon_sym_in] = ACTIONS(1), + [anon_sym_DOT_DOT] = ACTIONS(1), [anon_sym_SEMI] = ACTIONS(1), }, [1] = { - [sym_source_file] = STATE(108), - [sym_module] = STATE(77), - [aux_sym_source_file_repeat1] = STATE(77), + [sym_source_file] = STATE(110), + [sym_module] = STATE(85), + [aux_sym_source_file_repeat1] = STATE(85), [ts_builtin_sym_end] = ACTIONS(3), [anon_sym_module] = ACTIONS(5), }, [2] = { - [sym_global_identifier] = STATE(28), - [sym_array_type] = STATE(92), - [sym__type] = STATE(92), - [sym_declaration] = STATE(91), + [sym_global_identifier] = STATE(27), + [sym_array_type] = STATE(91), + [sym__type] = STATE(91), + [sym_declaration] = STATE(97), [sym_unary_op] = STATE(31), [sym_binary_op] = STATE(31), [sym_array_op] = STATE(31), [sym_func_call] = STATE(31), [sym_parenthesis_expression] = STATE(31), [sym__expression] = STATE(31), - [sym_block] = STATE(38), - [sym_assign_to] = STATE(74), + [sym_block] = STATE(34), + [sym_write_modifiers] = STATE(25), + [sym_assign_to] = STATE(79), [sym_assign_left_side] = STATE(103), - [sym_decl_assign_statement] = STATE(111), - [sym_if_statement] = STATE(38), - [sym_for_statement] = STATE(38), - [sym__statement] = STATE(38), - [aux_sym_block_repeat1] = STATE(4), - [aux_sym_assign_to_repeat1] = STATE(19), + [sym_decl_assign_statement] = STATE(106), + [sym_if_statement] = STATE(34), + [sym_for_statement] = STATE(34), + [sym__statement] = STATE(34), + [aux_sym_block_repeat1] = STATE(3), + [aux_sym_write_modifiers_repeat1] = STATE(64), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), [anon_sym_state] = ACTIONS(11), @@ -2438,64 +2503,26 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_for] = ACTIONS(27), }, [3] = { - [sym_global_identifier] = STATE(28), - [sym_array_type] = STATE(92), - [sym__type] = STATE(92), - [sym_declaration] = STATE(91), - [sym_unary_op] = STATE(31), - [sym_binary_op] = STATE(31), - [sym_array_op] = STATE(31), - [sym_func_call] = STATE(31), - [sym_parenthesis_expression] = STATE(31), - [sym__expression] = STATE(31), - [sym_block] = STATE(38), - [sym_assign_to] = STATE(74), - [sym_assign_left_side] = STATE(103), - [sym_decl_assign_statement] = STATE(111), - [sym_if_statement] = STATE(38), - [sym_for_statement] = STATE(38), - [sym__statement] = STATE(38), - [aux_sym_block_repeat1] = STATE(3), - [aux_sym_assign_to_repeat1] = STATE(19), - [sym_identifier] = ACTIONS(29), - [sym_number] = ACTIONS(32), - [anon_sym_state] = ACTIONS(35), - [anon_sym_gen] = ACTIONS(35), - [anon_sym_PLUS] = ACTIONS(38), - [anon_sym_DASH] = ACTIONS(38), - [anon_sym_STAR] = ACTIONS(38), - [anon_sym_BANG] = ACTIONS(38), - [anon_sym_PIPE] = ACTIONS(38), - [anon_sym_AMP] = ACTIONS(38), - [anon_sym_CARET] = ACTIONS(38), - [anon_sym_LPAREN] = ACTIONS(41), - [anon_sym_LBRACE] = ACTIONS(44), - [anon_sym_RBRACE] = ACTIONS(47), - [anon_sym_reg] = ACTIONS(49), - [anon_sym_initial] = ACTIONS(52), - [anon_sym_if] = ACTIONS(55), - [anon_sym_for] = ACTIONS(58), - }, - [4] = { - [sym_global_identifier] = STATE(28), - [sym_array_type] = STATE(92), - [sym__type] = STATE(92), - [sym_declaration] = STATE(91), + [sym_global_identifier] = STATE(27), + [sym_array_type] = STATE(91), + [sym__type] = STATE(91), + [sym_declaration] = STATE(97), [sym_unary_op] = STATE(31), [sym_binary_op] = STATE(31), [sym_array_op] = STATE(31), [sym_func_call] = STATE(31), [sym_parenthesis_expression] = STATE(31), [sym__expression] = STATE(31), - [sym_block] = STATE(38), - [sym_assign_to] = STATE(74), + [sym_block] = STATE(34), + [sym_write_modifiers] = STATE(25), + [sym_assign_to] = STATE(79), [sym_assign_left_side] = STATE(103), - [sym_decl_assign_statement] = STATE(111), - [sym_if_statement] = STATE(38), - [sym_for_statement] = STATE(38), - [sym__statement] = STATE(38), - [aux_sym_block_repeat1] = STATE(3), - [aux_sym_assign_to_repeat1] = STATE(19), + [sym_decl_assign_statement] = STATE(106), + [sym_if_statement] = STATE(34), + [sym_for_statement] = STATE(34), + [sym__statement] = STATE(34), + [aux_sym_block_repeat1] = STATE(4), + [aux_sym_write_modifiers_repeat1] = STATE(64), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), [anon_sym_state] = ACTIONS(11), @@ -2509,12 +2536,52 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_CARET] = ACTIONS(13), [anon_sym_LPAREN] = ACTIONS(15), [anon_sym_LBRACE] = ACTIONS(17), - [anon_sym_RBRACE] = ACTIONS(61), + [anon_sym_RBRACE] = ACTIONS(29), [anon_sym_reg] = ACTIONS(21), [anon_sym_initial] = ACTIONS(23), [anon_sym_if] = ACTIONS(25), [anon_sym_for] = ACTIONS(27), }, + [4] = { + [sym_global_identifier] = STATE(27), + [sym_array_type] = STATE(91), + [sym__type] = STATE(91), + [sym_declaration] = STATE(97), + [sym_unary_op] = STATE(31), + [sym_binary_op] = STATE(31), + [sym_array_op] = STATE(31), + [sym_func_call] = STATE(31), + [sym_parenthesis_expression] = STATE(31), + [sym__expression] = STATE(31), + [sym_block] = STATE(34), + [sym_write_modifiers] = STATE(25), + [sym_assign_to] = STATE(79), + [sym_assign_left_side] = STATE(103), + [sym_decl_assign_statement] = STATE(106), + [sym_if_statement] = STATE(34), + [sym_for_statement] = STATE(34), + [sym__statement] = STATE(34), + [aux_sym_block_repeat1] = STATE(4), + [aux_sym_write_modifiers_repeat1] = STATE(64), + [sym_identifier] = ACTIONS(31), + [sym_number] = ACTIONS(34), + [anon_sym_state] = ACTIONS(37), + [anon_sym_gen] = ACTIONS(37), + [anon_sym_PLUS] = ACTIONS(40), + [anon_sym_DASH] = ACTIONS(40), + [anon_sym_STAR] = ACTIONS(40), + [anon_sym_BANG] = ACTIONS(40), + [anon_sym_PIPE] = ACTIONS(40), + [anon_sym_AMP] = ACTIONS(40), + [anon_sym_CARET] = ACTIONS(40), + [anon_sym_LPAREN] = ACTIONS(43), + [anon_sym_LBRACE] = ACTIONS(46), + [anon_sym_RBRACE] = ACTIONS(49), + [anon_sym_reg] = ACTIONS(51), + [anon_sym_initial] = ACTIONS(54), + [anon_sym_if] = ACTIONS(57), + [anon_sym_for] = ACTIONS(60), + }, }; static const uint16_t ts_small_parse_table[] = { @@ -2526,7 +2593,6 @@ static const uint16_t ts_small_parse_table[] = { STATE(5), 1, aux_sym_global_identifier_repeat1, ACTIONS(63), 25, - anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, sym_identifier, @@ -2550,6 +2616,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, + anon_sym_DOT_DOT, anon_sym_SEMI, [37] = 4, ACTIONS(72), 1, @@ -2559,7 +2626,6 @@ static const uint16_t ts_small_parse_table[] = { STATE(5), 1, aux_sym_global_identifier_repeat1, ACTIONS(70), 25, - anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, sym_identifier, @@ -2583,6 +2649,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, + anon_sym_DOT_DOT, anon_sym_SEMI, [74] = 4, ACTIONS(72), 1, @@ -2592,7 +2659,6 @@ static const uint16_t ts_small_parse_table[] = { STATE(6), 1, aux_sym_global_identifier_repeat1, ACTIONS(76), 25, - anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, sym_identifier, @@ -2616,12 +2682,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, + anon_sym_DOT_DOT, anon_sym_SEMI, [111] = 2, ACTIONS(82), 1, anon_sym_SLASH, ACTIONS(80), 26, - anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, sym_identifier, @@ -2646,8 +2712,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, + anon_sym_DOT_DOT, anon_sym_SEMI, - [143] = 13, + [143] = 14, ACTIONS(7), 1, sym_identifier, ACTIONS(9), 1, @@ -2658,18 +2725,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_reg, ACTIONS(23), 1, anon_sym_initial, - STATE(19), 1, - aux_sym_assign_to_repeat1, - STATE(28), 1, + STATE(25), 1, + sym_write_modifiers, + STATE(27), 1, sym_global_identifier, - STATE(91), 1, - sym_declaration, - STATE(94), 1, + STATE(64), 1, + aux_sym_write_modifiers_repeat1, + STATE(90), 1, sym_assign_to, + STATE(97), 1, + sym_declaration, ACTIONS(11), 2, anon_sym_state, anon_sym_gen, - STATE(92), 2, + STATE(91), 2, sym_array_type, sym__type, STATE(31), 6, @@ -2687,15 +2756,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [196] = 4, + [199] = 4, ACTIONS(86), 1, anon_sym_SLASH, ACTIONS(88), 1, anon_sym_LPAREN, - STATE(21), 1, + STATE(19), 1, sym_parenthesis_expression_list, ACTIONS(84), 23, - anon_sym_COLON, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -2717,13 +2785,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, + anon_sym_DOT_DOT, anon_sym_SEMI, - [231] = 6, + [234] = 7, ACTIONS(96), 1, anon_sym_CARET, ACTIONS(98), 1, anon_sym_SLASH, - STATE(23), 1, + ACTIONS(100), 1, + anon_sym_LBRACK, + STATE(20), 1, sym_array_bracket_expression, ACTIONS(92), 2, anon_sym_PLUS, @@ -2731,8 +2802,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(94), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(90), 18, - anon_sym_COLON, + ACTIONS(90), 17, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PIPE, @@ -2744,19 +2814,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, + anon_sym_DOT_DOT, anon_sym_SEMI, - [269] = 3, - ACTIONS(102), 1, + [274] = 4, + ACTIONS(100), 1, + anon_sym_LBRACK, + ACTIONS(104), 1, anon_sym_SLASH, - STATE(23), 1, + STATE(20), 1, sym_array_bracket_expression, - ACTIONS(100), 23, - anon_sym_COLON, + ACTIONS(102), 22, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -2773,22 +2844,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, + anon_sym_DOT_DOT, anon_sym_SEMI, - [301] = 4, + [308] = 5, ACTIONS(98), 1, anon_sym_SLASH, - STATE(23), 1, + ACTIONS(100), 1, + anon_sym_LBRACK, + STATE(20), 1, sym_array_bracket_expression, ACTIONS(94), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(90), 21, - anon_sym_COLON, + ACTIONS(90), 20, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -2803,19 +2875,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, + anon_sym_DOT_DOT, anon_sym_SEMI, - [335] = 3, - ACTIONS(104), 1, + [344] = 4, + ACTIONS(100), 1, + anon_sym_LBRACK, + ACTIONS(106), 1, anon_sym_SLASH, - STATE(23), 1, + STATE(20), 1, sym_array_bracket_expression, - ACTIONS(90), 23, - anon_sym_COLON, + ACTIONS(90), 22, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -2832,22 +2905,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, + anon_sym_DOT_DOT, anon_sym_SEMI, - [367] = 8, + [378] = 9, ACTIONS(96), 1, anon_sym_CARET, ACTIONS(98), 1, anon_sym_SLASH, - ACTIONS(106), 1, - anon_sym_PIPE, + ACTIONS(100), 1, + anon_sym_LBRACK, ACTIONS(108), 1, + anon_sym_PIPE, + ACTIONS(110), 1, anon_sym_AMP, - STATE(23), 1, + STATE(20), 1, sym_array_bracket_expression, ACTIONS(92), 2, anon_sym_PLUS, @@ -2855,8 +2930,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(94), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(90), 16, - anon_sym_COLON, + ACTIONS(90), 15, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_EQ_EQ, @@ -2866,16 +2940,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, + anon_sym_DOT_DOT, anon_sym_SEMI, - [409] = 5, + [422] = 6, ACTIONS(98), 1, anon_sym_SLASH, - STATE(23), 1, + ACTIONS(100), 1, + anon_sym_LBRACK, + STATE(20), 1, sym_array_bracket_expression, ACTIONS(92), 2, anon_sym_PLUS, @@ -2883,8 +2959,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(94), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(90), 19, - anon_sym_COLON, + ACTIONS(90), 18, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PIPE, @@ -2897,20 +2972,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, + anon_sym_DOT_DOT, anon_sym_SEMI, - [445] = 7, + [460] = 8, ACTIONS(96), 1, anon_sym_CARET, ACTIONS(98), 1, anon_sym_SLASH, - ACTIONS(106), 1, + ACTIONS(100), 1, + anon_sym_LBRACK, + ACTIONS(108), 1, anon_sym_PIPE, - STATE(23), 1, + STATE(20), 1, sym_array_bracket_expression, ACTIONS(92), 2, anon_sym_PLUS, @@ -2918,8 +2995,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(94), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(90), 17, - anon_sym_COLON, + ACTIONS(90), 16, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_AMP, @@ -2930,17 +3006,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, + anon_sym_DOT_DOT, anon_sym_SEMI, - [485] = 2, - ACTIONS(112), 1, + [502] = 2, + ACTIONS(114), 1, anon_sym_SLASH, - ACTIONS(110), 23, - anon_sym_COLON, + ACTIONS(112), 23, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -2962,48 +3037,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, + anon_sym_DOT_DOT, anon_sym_SEMI, - [514] = 11, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(15), 1, - anon_sym_LPAREN, - ACTIONS(114), 1, - sym_number, - ACTIONS(116), 1, - anon_sym_reg, - STATE(28), 1, - sym_global_identifier, - STATE(64), 1, - aux_sym_assign_to_repeat1, - STATE(90), 1, - sym_declaration, - ACTIONS(11), 2, - anon_sym_state, - anon_sym_gen, - STATE(92), 2, - sym_array_type, - sym__type, - STATE(34), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(13), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [561] = 2, - ACTIONS(120), 1, + [531] = 2, + ACTIONS(118), 1, anon_sym_SLASH, - ACTIONS(118), 23, - anon_sym_COLON, + ACTIONS(116), 23, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -3025,12 +3064,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, + anon_sym_DOT_DOT, anon_sym_SEMI, - [590] = 2, - ACTIONS(124), 1, + [560] = 2, + ACTIONS(122), 1, anon_sym_SLASH, - ACTIONS(122), 23, - anon_sym_COLON, + ACTIONS(120), 23, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -3052,12 +3091,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, + anon_sym_DOT_DOT, anon_sym_SEMI, - [619] = 2, - ACTIONS(128), 1, + [589] = 2, + ACTIONS(126), 1, anon_sym_SLASH, - ACTIONS(126), 23, - anon_sym_COLON, + ACTIONS(124), 23, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -3079,12 +3118,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, + anon_sym_DOT_DOT, anon_sym_SEMI, - [648] = 2, - ACTIONS(132), 1, + [618] = 2, + ACTIONS(130), 1, anon_sym_SLASH, - ACTIONS(130), 23, - anon_sym_COLON, + ACTIONS(128), 23, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -3106,12 +3145,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, + anon_sym_DOT_DOT, anon_sym_SEMI, - [677] = 2, - ACTIONS(136), 1, + [647] = 2, + ACTIONS(134), 1, anon_sym_SLASH, - ACTIONS(134), 23, - anon_sym_COLON, + ACTIONS(132), 23, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -3133,12 +3172,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, + anon_sym_DOT_DOT, anon_sym_SEMI, - [706] = 2, - ACTIONS(140), 1, + [676] = 2, + ACTIONS(138), 1, anon_sym_SLASH, - ACTIONS(138), 23, - anon_sym_COLON, + ACTIONS(136), 23, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -3160,25 +3199,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, + anon_sym_DOT_DOT, anon_sym_SEMI, - [735] = 9, + [705] = 9, ACTIONS(7), 1, sym_identifier, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(114), 1, + ACTIONS(140), 1, sym_number, - STATE(28), 1, + STATE(27), 1, sym_global_identifier, - STATE(90), 1, + STATE(96), 1, sym_declaration, ACTIONS(11), 2, anon_sym_state, anon_sym_gen, - STATE(92), 2, + STATE(91), 2, sym_array_type, sym__type, - STATE(34), 6, + STATE(32), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -3193,18 +3233,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [776] = 10, + [746] = 10, ACTIONS(96), 1, anon_sym_CARET, ACTIONS(98), 1, anon_sym_SLASH, - ACTIONS(106), 1, - anon_sym_PIPE, + ACTIONS(100), 1, + anon_sym_LBRACK, ACTIONS(108), 1, + anon_sym_PIPE, + ACTIONS(110), 1, anon_sym_AMP, - ACTIONS(146), 1, - anon_sym_LBRACK, - STATE(23), 1, + STATE(20), 1, sym_array_bracket_expression, ACTIONS(92), 2, anon_sym_PLUS, @@ -3226,16 +3266,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [819] = 6, + [789] = 6, ACTIONS(86), 1, anon_sym_SLASH, ACTIONS(88), 1, anon_sym_LPAREN, - ACTIONS(148), 1, + ACTIONS(146), 1, sym_identifier, - ACTIONS(150), 1, + ACTIONS(148), 1, anon_sym_LBRACK, - STATE(21), 1, + STATE(19), 1, sym_parenthesis_expression_list, ACTIONS(84), 16, anon_sym_COMMA, @@ -3254,8 +3294,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_EQ, anon_sym_SEMI, - [853] = 2, - ACTIONS(155), 9, + [823] = 2, + ACTIONS(153), 9, anon_sym_module, sym_identifier, anon_sym_state, @@ -3265,7 +3305,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_else, anon_sym_for, - ACTIONS(153), 12, + ACTIONS(151), 12, ts_builtin_sym_end, sym_number, anon_sym_PLUS, @@ -3278,8 +3318,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [879] = 2, - ACTIONS(159), 9, + [849] = 2, + ACTIONS(157), 9, anon_sym_module, sym_identifier, anon_sym_state, @@ -3289,7 +3329,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_else, anon_sym_for, - ACTIONS(157), 12, + ACTIONS(155), 12, ts_builtin_sym_end, sym_number, anon_sym_PLUS, @@ -3302,26 +3342,49 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [905] = 10, - ACTIONS(96), 1, - anon_sym_CARET, - ACTIONS(98), 1, - anon_sym_SLASH, - ACTIONS(106), 1, - anon_sym_PIPE, - ACTIONS(108), 1, - anon_sym_AMP, - ACTIONS(146), 1, - anon_sym_LBRACK, - STATE(23), 1, - sym_array_bracket_expression, + [875] = 3, + ACTIONS(163), 1, + anon_sym_else, + ACTIONS(159), 7, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(161), 11, + sym_number, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [901] = 10, + ACTIONS(96), 1, + anon_sym_CARET, + ACTIONS(98), 1, + anon_sym_SLASH, + ACTIONS(100), 1, + anon_sym_LBRACK, + ACTIONS(108), 1, + anon_sym_PIPE, + ACTIONS(110), 1, + anon_sym_AMP, + STATE(20), 1, + sym_array_bracket_expression, ACTIONS(92), 2, anon_sym_PLUS, anon_sym_DASH, ACTIONS(94), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(161), 3, + ACTIONS(165), 3, anon_sym_COMMA, anon_sym_EQ, anon_sym_SEMI, @@ -3332,24 +3395,54 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [945] = 12, + [941] = 10, ACTIONS(96), 1, anon_sym_CARET, ACTIONS(98), 1, anon_sym_SLASH, - ACTIONS(106), 1, - anon_sym_PIPE, + ACTIONS(100), 1, + anon_sym_LBRACK, ACTIONS(108), 1, + anon_sym_PIPE, + ACTIONS(110), 1, anon_sym_AMP, - ACTIONS(146), 1, + STATE(20), 1, + sym_array_bracket_expression, + ACTIONS(92), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(94), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(167), 3, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_SEMI, + ACTIONS(144), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [981] = 12, + ACTIONS(96), 1, + anon_sym_CARET, + ACTIONS(98), 1, + anon_sym_SLASH, + ACTIONS(100), 1, anon_sym_LBRACK, - ACTIONS(163), 1, + ACTIONS(108), 1, + anon_sym_PIPE, + ACTIONS(110), 1, + anon_sym_AMP, + ACTIONS(169), 1, anon_sym_COMMA, - ACTIONS(165), 1, + ACTIONS(171), 1, anon_sym_RPAREN, - STATE(23), 1, + STATE(20), 1, sym_array_bracket_expression, - STATE(96), 1, + STATE(95), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(92), 2, anon_sym_PLUS, @@ -3364,10 +3457,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [989] = 3, - ACTIONS(171), 1, - anon_sym_else, - ACTIONS(167), 7, + [1025] = 2, + ACTIONS(173), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -3375,7 +3466,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(169), 11, + ACTIONS(175), 11, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -3387,38 +3478,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1015] = 10, - ACTIONS(96), 1, - anon_sym_CARET, - ACTIONS(98), 1, - anon_sym_SLASH, - ACTIONS(106), 1, - anon_sym_PIPE, - ACTIONS(108), 1, - anon_sym_AMP, - ACTIONS(146), 1, - anon_sym_LBRACK, - STATE(23), 1, - sym_array_bracket_expression, - ACTIONS(92), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(94), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(173), 3, - anon_sym_COMMA, - anon_sym_EQ, - anon_sym_SEMI, - ACTIONS(144), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [1055] = 2, - ACTIONS(175), 7, + [1048] = 2, + ACTIONS(177), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -3426,7 +3487,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(177), 11, + ACTIONS(179), 11, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -3438,8 +3499,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1078] = 2, - ACTIONS(179), 7, + [1071] = 2, + ACTIONS(181), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -3447,7 +3508,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(181), 11, + ACTIONS(183), 11, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -3459,18 +3520,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1101] = 10, + [1094] = 10, ACTIONS(96), 1, anon_sym_CARET, ACTIONS(98), 1, anon_sym_SLASH, - ACTIONS(106), 1, - anon_sym_PIPE, + ACTIONS(100), 1, + anon_sym_LBRACK, ACTIONS(108), 1, + anon_sym_PIPE, + ACTIONS(110), 1, anon_sym_AMP, - ACTIONS(146), 1, - anon_sym_LBRACK, - STATE(23), 1, + STATE(20), 1, sym_array_bracket_expression, ACTIONS(92), 2, anon_sym_PLUS, @@ -3478,7 +3539,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(94), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(183), 2, + ACTIONS(185), 2, anon_sym_COMMA, anon_sym_RPAREN, ACTIONS(144), 6, @@ -3488,17 +3549,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1140] = 2, - ACTIONS(185), 7, + [1133] = 7, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(187), 1, sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(187), 11, + ACTIONS(189), 1, sym_number, + ACTIONS(191), 1, + anon_sym_RPAREN, + STATE(10), 1, + sym_global_identifier, + STATE(33), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3506,25 +3575,52 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1163] = 11, + [1166] = 11, ACTIONS(96), 1, anon_sym_CARET, ACTIONS(98), 1, anon_sym_SLASH, - ACTIONS(106), 1, - anon_sym_PIPE, + ACTIONS(100), 1, + anon_sym_LBRACK, ACTIONS(108), 1, + anon_sym_PIPE, + ACTIONS(110), 1, anon_sym_AMP, - ACTIONS(146), 1, + ACTIONS(193), 1, + anon_sym_LBRACE, + STATE(20), 1, + sym_array_bracket_expression, + STATE(30), 1, + sym_block, + ACTIONS(92), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(94), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(144), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [1207] = 11, + ACTIONS(96), 1, + anon_sym_CARET, + ACTIONS(98), 1, + anon_sym_SLASH, + ACTIONS(100), 1, anon_sym_LBRACK, - ACTIONS(189), 1, + ACTIONS(108), 1, + anon_sym_PIPE, + ACTIONS(110), 1, + anon_sym_AMP, + ACTIONS(193), 1, anon_sym_LBRACE, - STATE(23), 1, + STATE(20), 1, sym_array_bracket_expression, - STATE(40), 1, + STATE(41), 1, sym_block, ACTIONS(92), 2, anon_sym_PLUS, @@ -3539,8 +3635,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1204] = 2, - ACTIONS(191), 7, + [1248] = 2, + ACTIONS(195), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -3548,7 +3644,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(193), 11, + ACTIONS(197), 11, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -3560,18 +3656,40 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1227] = 7, + [1271] = 6, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(187), 1, sym_identifier, - ACTIONS(197), 1, - sym_number, ACTIONS(199), 1, - anon_sym_RPAREN, + sym_number, STATE(10), 1, sym_global_identifier, - STATE(32), 6, + STATE(16), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(13), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [1301] = 6, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(187), 1, + sym_identifier, + ACTIONS(201), 1, + sym_number, + STATE(10), 1, + sym_global_identifier, + STATE(12), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -3586,23 +3704,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1260] = 11, + [1331] = 10, ACTIONS(96), 1, anon_sym_CARET, ACTIONS(98), 1, anon_sym_SLASH, - ACTIONS(106), 1, - anon_sym_PIPE, + ACTIONS(100), 1, + anon_sym_LBRACK, ACTIONS(108), 1, + anon_sym_PIPE, + ACTIONS(110), 1, anon_sym_AMP, - ACTIONS(146), 1, - anon_sym_LBRACK, - ACTIONS(189), 1, - anon_sym_LBRACE, - STATE(23), 1, + ACTIONS(203), 1, + anon_sym_RBRACK, + STATE(20), 1, sym_array_bracket_expression, - STATE(33), 1, - sym_block, ACTIONS(92), 2, anon_sym_PLUS, anon_sym_DASH, @@ -3616,16 +3732,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1301] = 6, + [1369] = 6, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(187), 1, sym_identifier, - ACTIONS(201), 1, + ACTIONS(205), 1, sym_number, STATE(10), 1, sym_global_identifier, - STATE(16), 6, + STATE(26), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -3640,16 +3756,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1331] = 6, + [1399] = 6, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(187), 1, sym_identifier, - ACTIONS(203), 1, + ACTIONS(207), 1, sym_number, STATE(10), 1, sym_global_identifier, - STATE(11), 6, + STATE(44), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -3664,16 +3780,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1361] = 6, + [1429] = 6, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(187), 1, sym_identifier, - ACTIONS(205), 1, + ACTIONS(209), 1, sym_number, STATE(10), 1, sym_global_identifier, - STATE(47), 6, + STATE(49), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -3688,16 +3804,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1391] = 6, + [1459] = 6, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(187), 1, sym_identifier, - ACTIONS(207), 1, + ACTIONS(211), 1, sym_number, STATE(10), 1, sym_global_identifier, - STATE(48), 6, + STATE(39), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -3712,48 +3828,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1421] = 10, + [1489] = 10, ACTIONS(96), 1, anon_sym_CARET, ACTIONS(98), 1, anon_sym_SLASH, - ACTIONS(106), 1, - anon_sym_PIPE, - ACTIONS(108), 1, - anon_sym_AMP, - ACTIONS(146), 1, + ACTIONS(100), 1, anon_sym_LBRACK, - ACTIONS(209), 1, - anon_sym_RBRACK, - STATE(23), 1, - sym_array_bracket_expression, - ACTIONS(92), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(94), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(144), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [1459] = 10, - ACTIONS(96), 1, - anon_sym_CARET, - ACTIONS(98), 1, - anon_sym_SLASH, - ACTIONS(106), 1, - anon_sym_PIPE, ACTIONS(108), 1, + anon_sym_PIPE, + ACTIONS(110), 1, anon_sym_AMP, - ACTIONS(146), 1, - anon_sym_LBRACK, - ACTIONS(211), 1, + ACTIONS(213), 1, anon_sym_RBRACK, - STATE(23), 1, + STATE(20), 1, sym_array_bracket_expression, ACTIONS(92), 2, anon_sym_PLUS, @@ -3768,20 +3856,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1497] = 10, + [1527] = 10, ACTIONS(96), 1, anon_sym_CARET, ACTIONS(98), 1, anon_sym_SLASH, - ACTIONS(106), 1, - anon_sym_PIPE, + ACTIONS(100), 1, + anon_sym_LBRACK, ACTIONS(108), 1, + anon_sym_PIPE, + ACTIONS(110), 1, anon_sym_AMP, - ACTIONS(146), 1, - anon_sym_LBRACK, - ACTIONS(213), 1, + ACTIONS(215), 1, anon_sym_RPAREN, - STATE(23), 1, + STATE(20), 1, sym_array_bracket_expression, ACTIONS(92), 2, anon_sym_PLUS, @@ -3796,16 +3884,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1535] = 6, + [1565] = 6, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(187), 1, sym_identifier, - ACTIONS(215), 1, + ACTIONS(217), 1, sym_number, STATE(10), 1, sym_global_identifier, - STATE(49), 6, + STATE(60), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -3820,16 +3908,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1565] = 6, + [1595] = 6, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(187), 1, sym_identifier, - ACTIONS(217), 1, + ACTIONS(219), 1, sym_number, STATE(10), 1, sym_global_identifier, - STATE(60), 6, + STATE(13), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -3844,40 +3932,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1595] = 6, + [1625] = 6, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(187), 1, sym_identifier, - ACTIONS(219), 1, + ACTIONS(221), 1, sym_number, STATE(10), 1, sym_global_identifier, - STATE(13), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(13), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [1625] = 6, - ACTIONS(15), 1, - anon_sym_LPAREN, - ACTIONS(195), 1, - sym_identifier, - ACTIONS(221), 1, - sym_number, - STATE(10), 1, - sym_global_identifier, - STATE(14), 6, + STATE(14), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -3895,13 +3959,13 @@ static const uint16_t ts_small_parse_table[] = { [1655] = 6, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(187), 1, sym_identifier, ACTIONS(223), 1, sym_number, STATE(10), 1, sym_global_identifier, - STATE(42), 6, + STATE(11), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -3919,7 +3983,7 @@ static const uint16_t ts_small_parse_table[] = { [1685] = 6, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(187), 1, sym_identifier, ACTIONS(225), 1, sym_number, @@ -3943,13 +4007,13 @@ static const uint16_t ts_small_parse_table[] = { [1715] = 6, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(187), 1, sym_identifier, ACTIONS(227), 1, sym_number, STATE(10), 1, sym_global_identifier, - STATE(39), 6, + STATE(50), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -3967,7 +4031,7 @@ static const uint16_t ts_small_parse_table[] = { [1745] = 6, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(187), 1, sym_identifier, ACTIONS(229), 1, sym_number, @@ -3991,13 +4055,13 @@ static const uint16_t ts_small_parse_table[] = { [1775] = 6, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(187), 1, sym_identifier, ACTIONS(231), 1, sym_number, STATE(10), 1, sym_global_identifier, - STATE(27), 6, + STATE(40), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -4015,7 +4079,7 @@ static const uint16_t ts_small_parse_table[] = { [1805] = 6, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(187), 1, sym_identifier, ACTIONS(233), 1, sym_number, @@ -4041,15 +4105,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, ACTIONS(98), 1, anon_sym_SLASH, - ACTIONS(106), 1, - anon_sym_PIPE, + ACTIONS(100), 1, + anon_sym_LBRACK, ACTIONS(108), 1, + anon_sym_PIPE, + ACTIONS(110), 1, anon_sym_AMP, - ACTIONS(146), 1, - anon_sym_LBRACK, ACTIONS(235), 1, - anon_sym_COLON, - STATE(23), 1, + anon_sym_DOT_DOT, + STATE(20), 1, sym_array_bracket_expression, ACTIONS(92), 2, anon_sym_PLUS, @@ -4064,44 +4128,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1873] = 6, - ACTIONS(15), 1, - anon_sym_LPAREN, - ACTIONS(195), 1, - sym_identifier, - ACTIONS(237), 1, - sym_number, - STATE(10), 1, - sym_global_identifier, - STATE(62), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(13), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [1903] = 10, + [1873] = 10, ACTIONS(96), 1, anon_sym_CARET, ACTIONS(98), 1, anon_sym_SLASH, - ACTIONS(106), 1, - anon_sym_PIPE, + ACTIONS(100), 1, + anon_sym_LBRACK, ACTIONS(108), 1, + anon_sym_PIPE, + ACTIONS(110), 1, anon_sym_AMP, - ACTIONS(146), 1, - anon_sym_LBRACK, - ACTIONS(239), 1, + ACTIONS(237), 1, anon_sym_SEMI, - STATE(23), 1, + STATE(20), 1, sym_array_bracket_expression, ACTIONS(92), 2, anon_sym_PLUS, @@ -4116,16 +4156,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1941] = 6, + [1911] = 6, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(187), 1, sym_identifier, - ACTIONS(241), 1, + ACTIONS(239), 1, sym_number, STATE(10), 1, sym_global_identifier, - STATE(12), 6, + STATE(61), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -4140,16 +4180,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1971] = 4, - ACTIONS(247), 1, + [1941] = 4, + ACTIONS(245), 1, anon_sym_reg, - STATE(64), 1, - aux_sym_assign_to_repeat1, - ACTIONS(243), 3, + STATE(63), 1, + aux_sym_write_modifiers_repeat1, + ACTIONS(241), 3, + sym_identifier, + anon_sym_state, + anon_sym_gen, + ACTIONS(243), 9, + sym_number, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + [1964] = 4, + ACTIONS(21), 1, + anon_sym_reg, + STATE(63), 1, + aux_sym_write_modifiers_repeat1, + ACTIONS(248), 3, sym_identifier, anon_sym_state, anon_sym_gen, - ACTIONS(245), 9, + ACTIONS(250), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -4159,336 +4218,367 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [1994] = 7, - ACTIONS(250), 1, + [1987] = 2, + ACTIONS(252), 4, sym_identifier, - ACTIONS(252), 1, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + ACTIONS(254), 9, + sym_number, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + [2005] = 2, + ACTIONS(256), 3, + sym_identifier, + anon_sym_state, + anon_sym_gen, + ACTIONS(258), 9, + sym_number, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + [2022] = 7, + ACTIONS(260), 1, + sym_identifier, + ACTIONS(262), 1, anon_sym_DASH_GT, - ACTIONS(254), 1, + ACTIONS(264), 1, anon_sym_LBRACE, - STATE(85), 1, + STATE(87), 1, sym_declaration, - STATE(98), 1, + STATE(101), 1, sym_declaration_list, ACTIONS(11), 2, anon_sym_state, anon_sym_gen, - STATE(92), 3, + STATE(91), 3, sym_global_identifier, sym_array_type, sym__type, - [2019] = 5, - ACTIONS(250), 1, + [2047] = 5, + ACTIONS(260), 1, sym_identifier, - STATE(85), 1, + STATE(87), 1, sym_declaration, - STATE(106), 1, + STATE(108), 1, sym_declaration_list, ACTIONS(11), 2, anon_sym_state, anon_sym_gen, - STATE(92), 3, + STATE(91), 3, sym_global_identifier, sym_array_type, sym__type, - [2038] = 3, - ACTIONS(258), 1, - anon_sym_SQUOTE, - STATE(72), 1, - sym_latency_specifier, - ACTIONS(256), 6, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_SEMI, - [2053] = 5, - ACTIONS(250), 1, + [2066] = 5, + ACTIONS(260), 1, sym_identifier, - STATE(85), 1, + STATE(87), 1, sym_declaration, - STATE(104), 1, + STATE(113), 1, sym_declaration_list, ACTIONS(11), 2, anon_sym_state, anon_sym_gen, - STATE(92), 3, + STATE(91), 3, sym_global_identifier, sym_array_type, sym__type, - [2072] = 3, - ACTIONS(258), 1, + [2085] = 3, + ACTIONS(268), 1, anon_sym_SQUOTE, - STATE(73), 1, + STATE(74), 1, sym_latency_specifier, - ACTIONS(260), 6, + ACTIONS(266), 6, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [2087] = 4, - ACTIONS(250), 1, + [2100] = 3, + ACTIONS(268), 1, + anon_sym_SQUOTE, + STATE(75), 1, + sym_latency_specifier, + ACTIONS(270), 6, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_SEMI, + [2115] = 4, + ACTIONS(260), 1, sym_identifier, - STATE(107), 1, + STATE(94), 1, sym_declaration, ACTIONS(11), 2, anon_sym_state, anon_sym_gen, - STATE(92), 3, + STATE(91), 3, sym_global_identifier, sym_array_type, sym__type, - [2103] = 4, - ACTIONS(250), 1, + [2131] = 4, + ACTIONS(260), 1, sym_identifier, - STATE(89), 1, + STATE(112), 1, sym_declaration, ACTIONS(11), 2, anon_sym_state, anon_sym_gen, - STATE(92), 3, + STATE(91), 3, sym_global_identifier, sym_array_type, sym__type, - [2119] = 1, - ACTIONS(262), 6, + [2147] = 1, + ACTIONS(272), 6, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [2128] = 1, - ACTIONS(264), 6, + [2156] = 1, + ACTIONS(274), 6, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [2137] = 3, - ACTIONS(266), 1, - anon_sym_COMMA, - STATE(82), 1, - aux_sym_assign_left_side_repeat1, - ACTIONS(268), 2, - anon_sym_EQ, - anon_sym_SEMI, - [2148] = 3, + [2165] = 3, ACTIONS(17), 1, anon_sym_LBRACE, - ACTIONS(270), 1, + ACTIONS(276), 1, anon_sym_if, STATE(35), 2, sym_block, sym_if_statement, - [2159] = 3, - ACTIONS(274), 1, + [2176] = 3, + ACTIONS(278), 1, anon_sym_COMMA, + STATE(89), 1, + aux_sym_assign_left_side_repeat1, + ACTIONS(280), 2, + anon_sym_EQ, + anon_sym_SEMI, + [2187] = 3, + ACTIONS(282), 1, + anon_sym_COLON_COLON, STATE(84), 1, - aux_sym_declaration_list_repeat1, - ACTIONS(272), 2, - anon_sym_DASH_GT, - anon_sym_LBRACE, - [2170] = 3, - ACTIONS(5), 1, - anon_sym_module, - ACTIONS(276), 1, - ts_builtin_sym_end, - STATE(79), 2, - sym_module, - aux_sym_source_file_repeat1, - [2181] = 4, - ACTIONS(17), 1, - anon_sym_LBRACE, + aux_sym_global_identifier_repeat1, + ACTIONS(74), 2, + sym_identifier, + anon_sym_LBRACK, + [2198] = 3, ACTIONS(278), 1, - anon_sym_COLON, - STATE(99), 1, - sym_block, - STATE(100), 1, - sym_interface_ports, - [2194] = 3, - ACTIONS(280), 1, - ts_builtin_sym_end, + anon_sym_COMMA, + STATE(77), 1, + aux_sym_assign_left_side_repeat1, + ACTIONS(284), 2, + anon_sym_EQ, + anon_sym_SEMI, + [2209] = 3, ACTIONS(282), 1, - anon_sym_module, - STATE(79), 2, - sym_module, - aux_sym_source_file_repeat1, - [2205] = 3, - ACTIONS(285), 1, anon_sym_COLON_COLON, - STATE(86), 1, + STATE(78), 1, aux_sym_global_identifier_repeat1, ACTIONS(78), 2, sym_identifier, anon_sym_LBRACK, - [2216] = 2, - ACTIONS(287), 1, + [2220] = 2, + ACTIONS(286), 1, sym_identifier, - STATE(95), 3, + STATE(92), 3, sym_global_identifier, sym_array_type, sym__type, - [2225] = 3, - ACTIONS(266), 1, + [2229] = 4, + ACTIONS(17), 1, + anon_sym_LBRACE, + ACTIONS(288), 1, + anon_sym_COLON, + STATE(104), 1, + sym_block, + STATE(105), 1, + sym_interface_ports, + [2242] = 3, + ACTIONS(292), 1, anon_sym_COMMA, - STATE(87), 1, - aux_sym_assign_left_side_repeat1, - ACTIONS(289), 2, - anon_sym_EQ, - anon_sym_SEMI, - [2236] = 3, - ACTIONS(291), 1, + STATE(86), 1, + aux_sym_declaration_list_repeat1, + ACTIONS(290), 2, + anon_sym_DASH_GT, + anon_sym_LBRACE, + [2253] = 3, + ACTIONS(294), 1, anon_sym_COLON_COLON, - STATE(83), 1, + STATE(84), 1, aux_sym_global_identifier_repeat1, ACTIONS(68), 2, sym_identifier, anon_sym_LBRACK, - [2247] = 3, - ACTIONS(296), 1, + [2264] = 3, + ACTIONS(5), 1, + anon_sym_module, + ACTIONS(297), 1, + ts_builtin_sym_end, + STATE(88), 2, + sym_module, + aux_sym_source_file_repeat1, + [2275] = 3, + ACTIONS(301), 1, anon_sym_COMMA, - STATE(84), 1, + STATE(86), 1, aux_sym_declaration_list_repeat1, - ACTIONS(294), 2, + ACTIONS(299), 2, anon_sym_DASH_GT, anon_sym_LBRACE, - [2258] = 3, - ACTIONS(274), 1, + [2286] = 3, + ACTIONS(292), 1, anon_sym_COMMA, - STATE(76), 1, + STATE(83), 1, aux_sym_declaration_list_repeat1, - ACTIONS(299), 2, + ACTIONS(304), 2, anon_sym_DASH_GT, anon_sym_LBRACE, - [2269] = 3, - ACTIONS(285), 1, - anon_sym_COLON_COLON, - STATE(83), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(74), 2, - sym_identifier, - anon_sym_LBRACK, - [2280] = 3, - ACTIONS(301), 1, + [2297] = 3, + ACTIONS(306), 1, + ts_builtin_sym_end, + ACTIONS(308), 1, + anon_sym_module, + STATE(88), 2, + sym_module, + aux_sym_source_file_repeat1, + [2308] = 3, + ACTIONS(311), 1, anon_sym_COMMA, - STATE(87), 1, + STATE(89), 1, aux_sym_assign_left_side_repeat1, - ACTIONS(304), 2, + ACTIONS(314), 2, anon_sym_EQ, anon_sym_SEMI, - [2291] = 1, + [2319] = 1, + ACTIONS(316), 3, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_SEMI, + [2325] = 3, + ACTIONS(318), 1, + sym_identifier, + ACTIONS(320), 1, + anon_sym_LBRACK, + STATE(102), 1, + sym_array_bracket_expression, + [2335] = 3, + ACTIONS(320), 1, + anon_sym_LBRACK, + ACTIONS(322), 1, + sym_identifier, + STATE(102), 1, + sym_array_bracket_expression, + [2345] = 1, ACTIONS(82), 3, sym_identifier, anon_sym_COLON_COLON, anon_sym_LBRACK, - [2297] = 1, - ACTIONS(306), 3, + [2351] = 1, + ACTIONS(324), 3, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, - [2303] = 1, - ACTIONS(308), 3, + [2357] = 3, + ACTIONS(326), 1, anon_sym_COMMA, - anon_sym_EQ, - anon_sym_SEMI, - [2309] = 1, - ACTIONS(310), 3, + ACTIONS(328), 1, + anon_sym_RPAREN, + STATE(98), 1, + aux_sym_parenthesis_expression_list_repeat1, + [2367] = 1, + ACTIONS(330), 3, anon_sym_COMMA, anon_sym_EQ, anon_sym_SEMI, - [2315] = 3, - ACTIONS(312), 1, - sym_identifier, - ACTIONS(314), 1, - anon_sym_LBRACK, - STATE(102), 1, - sym_array_bracket_expression, - [2325] = 3, - ACTIONS(316), 1, - anon_sym_COMMA, - ACTIONS(319), 1, - anon_sym_RPAREN, - STATE(93), 1, - aux_sym_parenthesis_expression_list_repeat1, - [2335] = 1, - ACTIONS(321), 3, + [2373] = 1, + ACTIONS(332), 3, anon_sym_COMMA, anon_sym_EQ, anon_sym_SEMI, - [2341] = 3, - ACTIONS(314), 1, - anon_sym_LBRACK, - ACTIONS(323), 1, - sym_identifier, - STATE(102), 1, - sym_array_bracket_expression, - [2351] = 3, - ACTIONS(325), 1, + [2379] = 3, + ACTIONS(334), 1, anon_sym_COMMA, - ACTIONS(327), 1, + ACTIONS(337), 1, anon_sym_RPAREN, - STATE(93), 1, + STATE(98), 1, aux_sym_parenthesis_expression_list_repeat1, - [2361] = 1, - ACTIONS(329), 2, + [2389] = 1, + ACTIONS(339), 2, ts_builtin_sym_end, anon_sym_module, - [2366] = 2, - ACTIONS(331), 1, - anon_sym_DASH_GT, - ACTIONS(333), 1, - anon_sym_LBRACE, - [2373] = 1, - ACTIONS(335), 2, - ts_builtin_sym_end, - anon_sym_module, - [2378] = 2, - ACTIONS(17), 1, - anon_sym_LBRACE, - STATE(97), 1, - sym_block, - [2385] = 1, - ACTIONS(120), 2, + [2394] = 1, + ACTIONS(138), 2, sym_identifier, anon_sym_LBRACK, - [2390] = 1, - ACTIONS(337), 2, - sym_identifier, - anon_sym_LBRACK, - [2395] = 2, - ACTIONS(339), 1, - anon_sym_EQ, + [2399] = 2, ACTIONS(341), 1, - anon_sym_SEMI, - [2402] = 1, + anon_sym_DASH_GT, ACTIONS(343), 1, anon_sym_LBRACE, [2406] = 1, - ACTIONS(345), 1, + ACTIONS(345), 2, sym_identifier, - [2410] = 1, + anon_sym_LBRACK, + [2411] = 2, ACTIONS(347), 1, - anon_sym_LBRACE, - [2414] = 1, + anon_sym_EQ, ACTIONS(349), 1, - anon_sym_in, + anon_sym_SEMI, [2418] = 1, - ACTIONS(351), 1, + ACTIONS(351), 2, ts_builtin_sym_end, - [2422] = 1, + anon_sym_module, + [2423] = 2, + ACTIONS(17), 1, + anon_sym_LBRACE, + STATE(99), 1, + sym_block, + [2430] = 1, + ACTIONS(349), 1, + anon_sym_SEMI, + [2434] = 1, ACTIONS(353), 1, sym_identifier, - [2426] = 1, + [2438] = 1, ACTIONS(355), 1, + anon_sym_LBRACE, + [2442] = 1, + ACTIONS(357), 1, sym_identifier, - [2430] = 1, - ACTIONS(341), 1, - anon_sym_SEMI, + [2446] = 1, + ACTIONS(359), 1, + ts_builtin_sym_end, + [2450] = 1, + ACTIONS(361), 1, + sym_identifier, + [2454] = 1, + ACTIONS(363), 1, + anon_sym_in, + [2458] = 1, + ACTIONS(365), 1, + anon_sym_LBRACE, }; static const uint32_t ts_small_parse_table_map[] = { @@ -4497,47 +4587,47 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(7)] = 74, [SMALL_STATE(8)] = 111, [SMALL_STATE(9)] = 143, - [SMALL_STATE(10)] = 196, - [SMALL_STATE(11)] = 231, - [SMALL_STATE(12)] = 269, - [SMALL_STATE(13)] = 301, - [SMALL_STATE(14)] = 335, - [SMALL_STATE(15)] = 367, - [SMALL_STATE(16)] = 409, - [SMALL_STATE(17)] = 445, - [SMALL_STATE(18)] = 485, - [SMALL_STATE(19)] = 514, - [SMALL_STATE(20)] = 561, - [SMALL_STATE(21)] = 590, - [SMALL_STATE(22)] = 619, - [SMALL_STATE(23)] = 648, - [SMALL_STATE(24)] = 677, - [SMALL_STATE(25)] = 706, - [SMALL_STATE(26)] = 735, - [SMALL_STATE(27)] = 776, - [SMALL_STATE(28)] = 819, - [SMALL_STATE(29)] = 853, - [SMALL_STATE(30)] = 879, - [SMALL_STATE(31)] = 905, - [SMALL_STATE(32)] = 945, - [SMALL_STATE(33)] = 989, - [SMALL_STATE(34)] = 1015, - [SMALL_STATE(35)] = 1055, - [SMALL_STATE(36)] = 1078, - [SMALL_STATE(37)] = 1101, - [SMALL_STATE(38)] = 1140, - [SMALL_STATE(39)] = 1163, - [SMALL_STATE(40)] = 1204, - [SMALL_STATE(41)] = 1227, - [SMALL_STATE(42)] = 1260, + [SMALL_STATE(10)] = 199, + [SMALL_STATE(11)] = 234, + [SMALL_STATE(12)] = 274, + [SMALL_STATE(13)] = 308, + [SMALL_STATE(14)] = 344, + [SMALL_STATE(15)] = 378, + [SMALL_STATE(16)] = 422, + [SMALL_STATE(17)] = 460, + [SMALL_STATE(18)] = 502, + [SMALL_STATE(19)] = 531, + [SMALL_STATE(20)] = 560, + [SMALL_STATE(21)] = 589, + [SMALL_STATE(22)] = 618, + [SMALL_STATE(23)] = 647, + [SMALL_STATE(24)] = 676, + [SMALL_STATE(25)] = 705, + [SMALL_STATE(26)] = 746, + [SMALL_STATE(27)] = 789, + [SMALL_STATE(28)] = 823, + [SMALL_STATE(29)] = 849, + [SMALL_STATE(30)] = 875, + [SMALL_STATE(31)] = 901, + [SMALL_STATE(32)] = 941, + [SMALL_STATE(33)] = 981, + [SMALL_STATE(34)] = 1025, + [SMALL_STATE(35)] = 1048, + [SMALL_STATE(36)] = 1071, + [SMALL_STATE(37)] = 1094, + [SMALL_STATE(38)] = 1133, + [SMALL_STATE(39)] = 1166, + [SMALL_STATE(40)] = 1207, + [SMALL_STATE(41)] = 1248, + [SMALL_STATE(42)] = 1271, [SMALL_STATE(43)] = 1301, [SMALL_STATE(44)] = 1331, - [SMALL_STATE(45)] = 1361, - [SMALL_STATE(46)] = 1391, - [SMALL_STATE(47)] = 1421, + [SMALL_STATE(45)] = 1369, + [SMALL_STATE(46)] = 1399, + [SMALL_STATE(47)] = 1429, [SMALL_STATE(48)] = 1459, - [SMALL_STATE(49)] = 1497, - [SMALL_STATE(50)] = 1535, + [SMALL_STATE(49)] = 1489, + [SMALL_STATE(50)] = 1527, [SMALL_STATE(51)] = 1565, [SMALL_STATE(52)] = 1595, [SMALL_STATE(53)] = 1625, @@ -4549,229 +4639,236 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(59)] = 1805, [SMALL_STATE(60)] = 1835, [SMALL_STATE(61)] = 1873, - [SMALL_STATE(62)] = 1903, + [SMALL_STATE(62)] = 1911, [SMALL_STATE(63)] = 1941, - [SMALL_STATE(64)] = 1971, - [SMALL_STATE(65)] = 1994, - [SMALL_STATE(66)] = 2019, - [SMALL_STATE(67)] = 2038, - [SMALL_STATE(68)] = 2053, - [SMALL_STATE(69)] = 2072, - [SMALL_STATE(70)] = 2087, - [SMALL_STATE(71)] = 2103, - [SMALL_STATE(72)] = 2119, - [SMALL_STATE(73)] = 2128, - [SMALL_STATE(74)] = 2137, - [SMALL_STATE(75)] = 2148, - [SMALL_STATE(76)] = 2159, - [SMALL_STATE(77)] = 2170, - [SMALL_STATE(78)] = 2181, - [SMALL_STATE(79)] = 2194, - [SMALL_STATE(80)] = 2205, - [SMALL_STATE(81)] = 2216, - [SMALL_STATE(82)] = 2225, - [SMALL_STATE(83)] = 2236, - [SMALL_STATE(84)] = 2247, - [SMALL_STATE(85)] = 2258, - [SMALL_STATE(86)] = 2269, - [SMALL_STATE(87)] = 2280, - [SMALL_STATE(88)] = 2291, - [SMALL_STATE(89)] = 2297, - [SMALL_STATE(90)] = 2303, - [SMALL_STATE(91)] = 2309, - [SMALL_STATE(92)] = 2315, - [SMALL_STATE(93)] = 2325, - [SMALL_STATE(94)] = 2335, - [SMALL_STATE(95)] = 2341, - [SMALL_STATE(96)] = 2351, - [SMALL_STATE(97)] = 2361, - [SMALL_STATE(98)] = 2366, - [SMALL_STATE(99)] = 2373, - [SMALL_STATE(100)] = 2378, - [SMALL_STATE(101)] = 2385, - [SMALL_STATE(102)] = 2390, - [SMALL_STATE(103)] = 2395, - [SMALL_STATE(104)] = 2402, - [SMALL_STATE(105)] = 2406, - [SMALL_STATE(106)] = 2410, - [SMALL_STATE(107)] = 2414, - [SMALL_STATE(108)] = 2418, - [SMALL_STATE(109)] = 2422, - [SMALL_STATE(110)] = 2426, - [SMALL_STATE(111)] = 2430, + [SMALL_STATE(64)] = 1964, + [SMALL_STATE(65)] = 1987, + [SMALL_STATE(66)] = 2005, + [SMALL_STATE(67)] = 2022, + [SMALL_STATE(68)] = 2047, + [SMALL_STATE(69)] = 2066, + [SMALL_STATE(70)] = 2085, + [SMALL_STATE(71)] = 2100, + [SMALL_STATE(72)] = 2115, + [SMALL_STATE(73)] = 2131, + [SMALL_STATE(74)] = 2147, + [SMALL_STATE(75)] = 2156, + [SMALL_STATE(76)] = 2165, + [SMALL_STATE(77)] = 2176, + [SMALL_STATE(78)] = 2187, + [SMALL_STATE(79)] = 2198, + [SMALL_STATE(80)] = 2209, + [SMALL_STATE(81)] = 2220, + [SMALL_STATE(82)] = 2229, + [SMALL_STATE(83)] = 2242, + [SMALL_STATE(84)] = 2253, + [SMALL_STATE(85)] = 2264, + [SMALL_STATE(86)] = 2275, + [SMALL_STATE(87)] = 2286, + [SMALL_STATE(88)] = 2297, + [SMALL_STATE(89)] = 2308, + [SMALL_STATE(90)] = 2319, + [SMALL_STATE(91)] = 2325, + [SMALL_STATE(92)] = 2335, + [SMALL_STATE(93)] = 2345, + [SMALL_STATE(94)] = 2351, + [SMALL_STATE(95)] = 2357, + [SMALL_STATE(96)] = 2367, + [SMALL_STATE(97)] = 2373, + [SMALL_STATE(98)] = 2379, + [SMALL_STATE(99)] = 2389, + [SMALL_STATE(100)] = 2394, + [SMALL_STATE(101)] = 2399, + [SMALL_STATE(102)] = 2406, + [SMALL_STATE(103)] = 2411, + [SMALL_STATE(104)] = 2418, + [SMALL_STATE(105)] = 2423, + [SMALL_STATE(106)] = 2430, + [SMALL_STATE(107)] = 2434, + [SMALL_STATE(108)] = 2438, + [SMALL_STATE(109)] = 2442, + [SMALL_STATE(110)] = 2446, + [SMALL_STATE(111)] = 2450, + [SMALL_STATE(112)] = 2454, + [SMALL_STATE(113)] = 2458, }; 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}}, REDUCE(sym_source_file, 0), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7), [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), - [29] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(7), - [32] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(31), - [35] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(81), - [38] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(63), - [41] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(50), - [44] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(2), - [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), - [49] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(19), - [52] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(26), - [55] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(54), - [58] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 14), SHIFT_REPEAT(70), - [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 14), - [65] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 14), SHIFT_REPEAT(109), - [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 14), - [70] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 7), - [72] = {.entry = {.count = 1, .reusable = false}}, SHIFT(109), - [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 7), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(48), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), + [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [31] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(7), + [34] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(31), + [37] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(81), + [40] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(43), + [43] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(56), + [46] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(2), + [49] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), + [51] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(65), + [54] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(66), + [57] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(48), + [60] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(73), + [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 15), + [65] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 15), SHIFT_REPEAT(111), + [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 15), + [70] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 8), + [72] = {.entry = {.count = 1, .reusable = false}}, SHIFT(111), + [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 8), [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 2), [78] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 2), - [80] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 15), - [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 15), + [80] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 16), + [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 16), [84] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), [86] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [88] = {.entry = {.count = 1, .reusable = false}}, SHIFT(41), - [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 21), + [88] = {.entry = {.count = 1, .reusable = false}}, SHIFT(38), + [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 22), [92] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), [94] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), - [96] = {.entry = {.count = 1, .reusable = false}}, SHIFT(43), + [96] = {.entry = {.count = 1, .reusable = false}}, SHIFT(42), [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 10), - [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 10), - [104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 21), - [106] = {.entry = {.count = 1, .reusable = false}}, SHIFT(44), - [108] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), - [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 25), - [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 25), - [114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [116] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64), - [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 19), - [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 19), - [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 12), - [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 12), - [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), - [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 9), - [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 9), - [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 19), - [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 19), - [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 15), - [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 15), - [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 19), + [100] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), + [102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 11), + [104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 11), + [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 22), + [108] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), + [110] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), + [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 26), + [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 26), + [116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 12), + [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 12), + [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 10), + [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 10), + [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), + [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 16), + [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 16), + [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 20), + [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 20), + [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 20), + [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 20), + [140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 20), [144] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57), - [146] = {.entry = {.count = 1, .reusable = false}}, SHIFT(46), - [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type, 1), - [150] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [155] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), - [157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 13), - [159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3, .production_id = 13), - [161] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 4), - [163] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), - [165] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), - [167] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 20), - [169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 20), - [171] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), - [173] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 11), - [175] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 24), - [177] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 24), - [179] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), - [181] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), - [183] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 15), - [185] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 2), - [187] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 2), - [189] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2), - [191] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 26), - [193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 26), - [195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [209] = {.entry = {.count = 1, .reusable = false}}, SHIFT(101), - [211] = {.entry = {.count = 1, .reusable = false}}, SHIFT(20), + [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type, 1), + [148] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), + [151] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 14), + [153] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3, .production_id = 14), + [155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), + [159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 21), + [161] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 21), + [163] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), + [165] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 4), + [167] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 13), + [169] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), + [171] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), + [173] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 2), + [175] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 2), + [177] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 25), + [179] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 25), + [181] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), + [183] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), + [185] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 16), + [187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [193] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2), + [195] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 27), + [197] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 27), + [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [203] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), + [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), [213] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24), - [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [215] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), [217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), [219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [235] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), - [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [239] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 22), - [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [243] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_assign_to_repeat1, 2), - [245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_to_repeat1, 2), - [247] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_assign_to_repeat1, 2), SHIFT_REPEAT(64), - [250] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80), - [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [254] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 1), - [256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 16), - [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 8), - [262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 23), - [264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 18), - [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 2), - [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 7), - [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), - [282] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(105), - [285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), - [287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 7), - [291] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 14), SHIFT_REPEAT(110), - [294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 14), - [296] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 14), SHIFT_REPEAT(71), - [299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 2), - [301] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 14), SHIFT_REPEAT(9), - [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 14), - [306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 15), - [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 11), - [310] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 4), - [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [316] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 14), SHIFT_REPEAT(59), - [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 14), - [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 15), - [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 5), - [331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 3), - [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 1), - [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 9), - [339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 17), - [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 6), - [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [351] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [235] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), + [237] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 23), + [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [241] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 15), + [243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 15), + [245] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 15), SHIFT_REPEAT(65), + [248] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 5), + [250] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 5), + [252] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 2), + [254] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 2), + [256] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 2), + [258] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 2), + [260] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80), + [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 1), + [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 17), + [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 9), + [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 24), + [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 19), + [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 8), + [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 2), + [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 8), + [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [294] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 15), SHIFT_REPEAT(109), + [297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 15), + [301] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 15), SHIFT_REPEAT(72), + [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 2), + [306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), + [308] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(107), + [311] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 15), SHIFT_REPEAT(9), + [314] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 15), + [316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 16), + [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 16), + [326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 13), + [332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 4), + [334] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 15), SHIFT_REPEAT(59), + [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 15), + [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 6), + [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 3), + [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 10), + [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 1), + [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 18), + [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [359] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 7), }; #ifdef __cplusplus From a3fe892f72d758b90e9e44099a3978349d35d245 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Sun, 7 Apr 2024 01:24:53 +0200 Subject: [PATCH 18/49] Equalize func_call and array precedence. Fix alphanumeric for identifiers --- grammar.js | 14 +- src/grammar.json | 44 +- src/node-types.json | 24 + src/parser.c | 5303 +++++++++++++++++++++++++------------------ 4 files changed, 3162 insertions(+), 2223 deletions(-) diff --git a/grammar.js b/grammar.js index 02b82db..937b0cc 100644 --- a/grammar.js +++ b/grammar.js @@ -15,7 +15,7 @@ const PREC = { additive: 6, multiplicative: 7, unary: 8, - array_index : 9, + array_or_func_call : 9, namespace_path : 10 } @@ -41,10 +41,10 @@ module.exports = grammar({ optional(field('interface_ports', $.interface_ports)), field('block', $.block) ), - identifier: $ => /[\p{L}_][\p{L}_\d]*/, + identifier: $ => /[\p{Alphabetic}_][\p{Alphabetic}_\p{Decimal_Number}]*/, number: $ => /\d[\d_]*/, - global_identifier: $ => prec.left(PREC.namespace_path, seq( + global_identifier: $ => prec(PREC.namespace_path, seq( //optional('::'), sepSeq1(field('item', $.identifier), '::') )), @@ -95,15 +95,15 @@ module.exports = grammar({ )))); }, - array_op: $ => prec(PREC.array_index, seq( + array_op: $ => prec(PREC.array_or_func_call, seq( field('arr', $._expression), field('arr_idx', $.array_bracket_expression) )), - func_call: $ => seq( - field('name', $.global_identifier), + func_call: $ => prec(PREC.array_or_func_call, seq( + field('name', $._expression), field('arguments', $.parenthesis_expression_list) - ), + )), parenthesis_expression_list: $ => seq( '(', diff --git a/src/grammar.json b/src/grammar.json index e5ecaeb..f3896e2 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -135,14 +135,14 @@ }, "identifier": { "type": "PATTERN", - "value": "[\\p{L}_][\\p{L}_\\d]*" + "value": "[\\p{Alphabetic}_][\\p{Alphabetic}_\\p{Decimal_Number}]*" }, "number": { "type": "PATTERN", "value": "\\d[\\d_]*" }, "global_identifier": { - "type": "PREC_LEFT", + "type": "PREC", "value": 10, "content": { "type": "SEQ", @@ -631,25 +631,29 @@ } }, "func_call": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "global_identifier" - } - }, - { - "type": "FIELD", - "name": "arguments", - "content": { - "type": "SYMBOL", - "name": "parenthesis_expression_list" + "type": "PREC", + "value": 9, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "_expression" + } + }, + { + "type": "FIELD", + "name": "arguments", + "content": { + "type": "SYMBOL", + "name": "parenthesis_expression_list" + } } - } - ] + ] + } }, "parenthesis_expression_list": { "type": "SEQ", diff --git a/src/node-types.json b/src/node-types.json index 3900922..c9e7cfd 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -593,9 +593,33 @@ "multiple": false, "required": true, "types": [ + { + "type": "array_op", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "func_call", + "named": true + }, { "type": "global_identifier", "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "parenthesis_expression", + "named": true + }, + { + "type": "unary_op", + "named": true } ] } diff --git a/src/parser.c b/src/parser.c index 636b553..5a8cae3 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,7 +6,7 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 114 +#define STATE_COUNT 113 #define LARGE_STATE_COUNT 5 #define SYMBOL_COUNT 73 #define ALIAS_COUNT 0 @@ -757,7 +757,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [33] = 33, [34] = 34, [35] = 35, - [36] = 36, + [36] = 35, [37] = 37, [38] = 38, [39] = 39, @@ -768,9 +768,9 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [44] = 44, [45] = 45, [46] = 46, - [47] = 46, + [47] = 47, [48] = 48, - [49] = 44, + [49] = 49, [50] = 50, [51] = 51, [52] = 52, @@ -779,7 +779,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [55] = 55, [56] = 56, [57] = 57, - [58] = 58, + [58] = 46, [59] = 59, [60] = 60, [61] = 61, @@ -799,13 +799,13 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [75] = 75, [76] = 76, [77] = 77, - [78] = 6, - [79] = 79, - [80] = 7, - [81] = 81, + [78] = 78, + [79] = 6, + [80] = 5, + [81] = 7, [82] = 82, [83] = 83, - [84] = 5, + [84] = 84, [85] = 85, [86] = 86, [87] = 87, @@ -814,15 +814,15 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [90] = 90, [91] = 91, [92] = 92, - [93] = 8, + [93] = 93, [94] = 94, - [95] = 95, + [95] = 9, [96] = 96, [97] = 97, [98] = 98, [99] = 99, - [100] = 24, - [101] = 101, + [100] = 100, + [101] = 18, [102] = 102, [103] = 103, [104] = 104, @@ -832,1037 +832,1918 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [108] = 108, [109] = 109, [110] = 110, - [111] = 109, - [112] = 112, - [113] = 113, + [111] = 111, + [112] = 105, }; static inline bool sym_identifier_character_set_1(int32_t c) { - return (c < 6656 - ? (c < 2979 - ? (c < 2308 - ? (c < 1376 - ? (c < 880 - ? (c < 192 - ? (c < 170 - ? (c < '_' - ? (c >= 'A' && c <= 'Z') - : (c <= '_' || (c >= 'a' && c <= 'z'))) - : (c <= 170 || (c < 186 - ? c == 181 - : c <= 186))) - : (c <= 214 || (c < 736 - ? (c < 248 - ? (c >= 216 && c <= 246) - : (c <= 705 || (c >= 710 && c <= 721))) - : (c <= 740 || (c < 750 - ? c == 748 - : c <= 750))))) - : (c <= 884 || (c < 910 - ? (c < 902 - ? (c < 890 - ? (c >= 886 && c <= 887) - : (c <= 893 || c == 895)) - : (c <= 902 || (c < 908 - ? (c >= 904 && c <= 906) - : c <= 908))) - : (c <= 929 || (c < 1162 - ? (c < 1015 - ? (c >= 931 && c <= 1013) - : c <= 1153) - : (c <= 1327 || (c < 1369 - ? (c >= 1329 && c <= 1366) - : c <= 1369))))))) - : (c <= 1416 || (c < 1969 - ? (c < 1765 - ? (c < 1646 - ? (c < 1519 - ? (c >= 1488 && c <= 1514) - : (c <= 1522 || (c >= 1568 && c <= 1610))) - : (c <= 1647 || (c < 1749 - ? (c >= 1649 && c <= 1747) - : c <= 1749))) - : (c <= 1766 || (c < 1808 - ? (c < 1786 - ? (c >= 1774 && c <= 1775) - : (c <= 1788 || c == 1791)) - : (c <= 1808 || (c < 1869 - ? (c >= 1810 && c <= 1839) - : c <= 1957))))) - : (c <= 1969 || (c < 2088 - ? (c < 2048 - ? (c < 2036 - ? (c >= 1994 && c <= 2026) - : (c <= 2037 || c == 2042)) - : (c <= 2069 || (c < 2084 - ? c == 2074 - : c <= 2084))) - : (c <= 2088 || (c < 2160 - ? (c < 2144 - ? (c >= 2112 && c <= 2136) - : c <= 2154) - : (c <= 2183 || (c < 2208 - ? (c >= 2185 && c <= 2190) - : c <= 2249))))))))) - : (c <= 2361 || (c < 2693 - ? (c < 2527 - ? (c < 2451 - ? (c < 2417 - ? (c < 2384 - ? c == 2365 - : (c <= 2384 || (c >= 2392 && c <= 2401))) - : (c <= 2432 || (c < 2447 - ? (c >= 2437 && c <= 2444) - : c <= 2448))) - : (c <= 2472 || (c < 2493 - ? (c < 2482 - ? (c >= 2474 && c <= 2480) - : (c <= 2482 || (c >= 2486 && c <= 2489))) - : (c <= 2493 || (c < 2524 - ? c == 2510 - : c <= 2525))))) - : (c <= 2529 || (c < 2610 - ? (c < 2575 - ? (c < 2556 - ? (c >= 2544 && c <= 2545) - : (c <= 2556 || (c >= 2565 && c <= 2570))) - : (c <= 2576 || (c < 2602 - ? (c >= 2579 && c <= 2600) - : c <= 2608))) - : (c <= 2611 || (c < 2649 - ? (c < 2616 - ? (c >= 2613 && c <= 2614) - : c <= 2617) - : (c <= 2652 || (c < 2674 - ? c == 2654 - : c <= 2676))))))) - : (c <= 2701 || (c < 2866 - ? (c < 2768 - ? (c < 2738 - ? (c < 2707 - ? (c >= 2703 && c <= 2705) - : (c <= 2728 || (c >= 2730 && c <= 2736))) - : (c <= 2739 || (c < 2749 - ? (c >= 2741 && c <= 2745) - : c <= 2749))) - : (c <= 2768 || (c < 2831 + return (c < 42994 + ? (c < 3585 + ? (c < 2649 + ? (c < 1869 + ? (c < 931 + ? (c < 748 + ? (c < 186 + ? (c < 'a' + ? (c < '_' + ? (c >= 'A' && c <= 'Z') + : c <= '_') + : (c <= 'z' || (c < 181 + ? c == 170 + : c <= 181))) + : (c <= 186 || (c < 248 + ? (c < 216 + ? (c >= 192 && c <= 214) + : c <= 246) + : (c <= 705 || (c < 736 + ? (c >= 710 && c <= 721) + : c <= 740))))) + : (c <= 748 || (c < 895 + ? (c < 880 + ? (c < 837 + ? c == 750 + : c <= 837) + : (c <= 884 || (c < 890 + ? (c >= 886 && c <= 887) + : c <= 893))) + : (c <= 895 || (c < 908 + ? (c < 904 + ? c == 902 + : c <= 906) + : (c <= 908 || (c >= 910 && c <= 929))))))) + : (c <= 1013 || (c < 1519 + ? (c < 1456 + ? (c < 1329 + ? (c < 1162 + ? (c >= 1015 && c <= 1153) + : c <= 1327) + : (c <= 1366 || (c < 1376 + ? c == 1369 + : c <= 1416))) + : (c <= 1469 || (c < 1476 + ? (c < 1473 + ? c == 1471 + : c <= 1474) + : (c <= 1477 || (c < 1488 + ? c == 1479 + : c <= 1514))))) + : (c <= 1522 || (c < 1761 + ? (c < 1625 + ? (c < 1568 + ? (c >= 1552 && c <= 1562) + : c <= 1623) + : (c <= 1631 || (c < 1749 + ? (c >= 1646 && c <= 1747) + : c <= 1756))) + : (c <= 1768 || (c < 1791 + ? (c < 1786 + ? (c >= 1773 && c <= 1775) + : c <= 1788) + : (c <= 1791 || (c >= 1808 && c <= 1855))))))))) + : (c <= 1969 || (c < 2486 + ? (c < 2275 + ? (c < 2112 + ? (c < 2042 + ? (c < 2036 + ? (c >= 1994 && c <= 2026) + : c <= 2037) + : (c <= 2042 || (c < 2074 + ? (c >= 2048 && c <= 2071) + : c <= 2092))) + : (c <= 2136 || (c < 2185 + ? (c < 2160 + ? (c >= 2144 && c <= 2154) + : c <= 2183) + : (c <= 2190 || (c < 2260 + ? (c >= 2208 && c <= 2249) + : c <= 2271))))) + : (c <= 2281 || (c < 2437 + ? (c < 2382 + ? (c < 2365 + ? (c >= 2288 && c <= 2363) + : c <= 2380) + : (c <= 2384 || (c < 2417 + ? (c >= 2389 && c <= 2403) + : c <= 2435))) + : (c <= 2444 || (c < 2474 + ? (c < 2451 + ? (c >= 2447 && c <= 2448) + : c <= 2472) + : (c <= 2480 || c == 2482)))))) + : (c <= 2489 || (c < 2565 + ? (c < 2524 + ? (c < 2507 + ? (c < 2503 + ? (c >= 2493 && c <= 2500) + : c <= 2504) + : (c <= 2508 || (c < 2519 + ? c == 2510 + : c <= 2519))) + : (c <= 2525 || (c < 2556 + ? (c < 2544 + ? (c >= 2527 && c <= 2531) + : c <= 2545) + : (c <= 2556 || (c >= 2561 && c <= 2563))))) + : (c <= 2570 || (c < 2616 + ? (c < 2602 + ? (c < 2579 + ? (c >= 2575 && c <= 2576) + : c <= 2600) + : (c <= 2608 || (c < 2613 + ? (c >= 2610 && c <= 2611) + : c <= 2614))) + : (c <= 2617 || (c < 2635 + ? (c < 2631 + ? (c >= 2622 && c <= 2626) + : c <= 2632) + : (c <= 2636 || c == 2641)))))))))) + : (c <= 2652 || (c < 3072 + ? (c < 2877 + ? (c < 2763 + ? (c < 2707 + ? (c < 2689 + ? (c < 2672 + ? c == 2654 + : c <= 2677) + : (c <= 2691 || (c < 2703 + ? (c >= 2693 && c <= 2701) + : c <= 2705))) + : (c <= 2728 || (c < 2741 + ? (c < 2738 + ? (c >= 2730 && c <= 2736) + : c <= 2739) + : (c <= 2745 || (c < 2759 + ? (c >= 2749 && c <= 2757) + : c <= 2761))))) + : (c <= 2764 || (c < 2831 ? (c < 2809 - ? (c >= 2784 && c <= 2785) - : (c <= 2809 || (c >= 2821 && c <= 2828))) - : (c <= 2832 || (c < 2858 - ? (c >= 2835 && c <= 2856) - : c <= 2864))))) - : (c <= 2867 || (c < 2949 - ? (c < 2911 - ? (c < 2877 - ? (c >= 2869 && c <= 2873) - : (c <= 2877 || (c >= 2908 && c <= 2909))) - : (c <= 2913 || (c < 2947 - ? c == 2929 - : c <= 2947))) - : (c <= 2954 || (c < 2969 - ? (c < 2962 - ? (c >= 2958 && c <= 2960) - : c <= 2965) - : (c <= 2970 || (c < 2974 - ? c == 2972 - : c <= 2975))))))))))) - : (c <= 2980 || (c < 4159 - ? (c < 3412 - ? (c < 3214 - ? (c < 3114 - ? (c < 3077 - ? (c < 2990 - ? (c >= 2984 && c <= 2986) - : (c <= 3001 || c == 3024)) - : (c <= 3084 || (c < 3090 - ? (c >= 3086 && c <= 3088) - : c <= 3112))) - : (c <= 3129 || (c < 3168 - ? (c < 3160 - ? c == 3133 - : (c <= 3162 || c == 3165)) - : (c <= 3169 || (c < 3205 - ? c == 3200 - : c <= 3212))))) - : (c <= 3216 || (c < 3313 - ? (c < 3261 - ? (c < 3242 - ? (c >= 3218 && c <= 3240) - : (c <= 3251 || (c >= 3253 && c <= 3257))) - : (c <= 3261 || (c < 3296 - ? (c >= 3293 && c <= 3294) - : c <= 3297))) - : (c <= 3314 || (c < 3346 + ? (c < 2784 + ? c == 2768 + : c <= 2787) + : (c <= 2812 || (c < 2821 + ? (c >= 2817 && c <= 2819) + : c <= 2828))) + : (c <= 2832 || (c < 2866 + ? (c < 2858 + ? (c >= 2835 && c <= 2856) + : c <= 2864) + : (c <= 2867 || (c >= 2869 && c <= 2873))))))) + : (c <= 2884 || (c < 2969 + ? (c < 2929 + ? (c < 2902 + ? (c < 2891 + ? (c >= 2887 && c <= 2888) + : c <= 2892) + : (c <= 2903 || (c < 2911 + ? (c >= 2908 && c <= 2909) + : c <= 2915))) + : (c <= 2929 || (c < 2958 + ? (c < 2949 + ? (c >= 2946 && c <= 2947) + : c <= 2954) + : (c <= 2960 || (c >= 2962 && c <= 2965))))) + : (c <= 2970 || (c < 3006 + ? (c < 2979 + ? (c < 2974 + ? c == 2972 + : c <= 2975) + : (c <= 2980 || (c < 2990 + ? (c >= 2984 && c <= 2986) + : c <= 3001))) + : (c <= 3010 || (c < 3024 + ? (c < 3018 + ? (c >= 3014 && c <= 3016) + : c <= 3020) + : (c <= 3024 || c == 3031)))))))) + : (c <= 3075 || (c < 3296 + ? (c < 3200 + ? (c < 3142 + ? (c < 3090 + ? (c < 3086 + ? (c >= 3077 && c <= 3084) + : c <= 3088) + : (c <= 3112 || (c < 3133 + ? (c >= 3114 && c <= 3129) + : c <= 3140))) + : (c <= 3144 || (c < 3160 + ? (c < 3157 + ? (c >= 3146 && c <= 3148) + : c <= 3158) + : (c <= 3162 || (c < 3168 + ? c == 3165 + : c <= 3171))))) + : (c <= 3203 || (c < 3261 + ? (c < 3218 + ? (c < 3214 + ? (c >= 3205 && c <= 3212) + : c <= 3216) + : (c <= 3240 || (c < 3253 + ? (c >= 3242 && c <= 3251) + : c <= 3257))) + : (c <= 3268 || (c < 3285 + ? (c < 3274 + ? (c >= 3270 && c <= 3272) + : c <= 3276) + : (c <= 3286 || (c >= 3293 && c <= 3294))))))) + : (c <= 3299 || (c < 3450 + ? (c < 3398 ? (c < 3342 - ? (c >= 3332 && c <= 3340) - : c <= 3344) - : (c <= 3386 || (c < 3406 - ? c == 3389 - : c <= 3406))))))) - : (c <= 3414 || (c < 3724 - ? (c < 3520 - ? (c < 3482 - ? (c < 3450 - ? (c >= 3423 && c <= 3425) - : (c <= 3455 || (c >= 3461 && c <= 3478))) - : (c <= 3505 || (c < 3517 - ? (c >= 3507 && c <= 3515) - : c <= 3517))) - : (c <= 3526 || (c < 3713 - ? (c < 3634 - ? (c >= 3585 && c <= 3632) - : (c <= 3635 || (c >= 3648 && c <= 3654))) - : (c <= 3714 || (c < 3718 - ? c == 3716 - : c <= 3722))))) - : (c <= 3747 || (c < 3804 - ? (c < 3773 - ? (c < 3751 - ? c == 3749 - : (c <= 3760 || (c >= 3762 && c <= 3763))) - : (c <= 3773 || (c < 3782 - ? (c >= 3776 && c <= 3780) - : c <= 3782))) - : (c <= 3807 || (c < 3913 + ? (c < 3328 + ? (c >= 3313 && c <= 3314) + : c <= 3340) + : (c <= 3344 || (c < 3389 + ? (c >= 3346 && c <= 3386) + : c <= 3396))) + : (c <= 3400 || (c < 3412 + ? (c < 3406 + ? (c >= 3402 && c <= 3404) + : c <= 3406) + : (c <= 3415 || (c >= 3423 && c <= 3427))))) + : (c <= 3455 || (c < 3520 + ? (c < 3482 + ? (c < 3461 + ? (c >= 3457 && c <= 3459) + : c <= 3478) + : (c <= 3505 || (c < 3517 + ? (c >= 3507 && c <= 3515) + : c <= 3517))) + : (c <= 3526 || (c < 3544 + ? (c < 3542 + ? (c >= 3535 && c <= 3540) + : c <= 3542) + : (c <= 3551 || (c >= 3570 && c <= 3571))))))))))))) + : (c <= 3642 || (c < 7357 + ? (c < 5024 + ? (c < 4176 + ? (c < 3789 + ? (c < 3724 + ? (c < 3713 + ? (c < 3661 + ? (c >= 3648 && c <= 3654) + : c <= 3661) + : (c <= 3714 || (c < 3718 + ? c == 3716 + : c <= 3722))) + : (c <= 3747 || (c < 3771 + ? (c < 3751 + ? c == 3749 + : c <= 3769) + : (c <= 3773 || (c < 3782 + ? (c >= 3776 && c <= 3780) + : c <= 3782))))) + : (c <= 3789 || (c < 3976 ? (c < 3904 - ? c == 3840 - : c <= 3911) - : (c <= 3948 || (c < 4096 - ? (c >= 3976 && c <= 3980) - : c <= 4138))))))))) - : (c <= 4159 || (c < 4888 - ? (c < 4688 - ? (c < 4238 - ? (c < 4197 - ? (c < 4186 - ? (c >= 4176 && c <= 4181) - : (c <= 4189 || c == 4193)) - : (c <= 4198 || (c < 4213 - ? (c >= 4206 && c <= 4208) - : c <= 4225))) - : (c <= 4238 || (c < 4304 + ? (c < 3840 + ? (c >= 3804 && c <= 3807) + : c <= 3840) + : (c <= 3911 || (c < 3953 + ? (c >= 3913 && c <= 3948) + : c <= 3969))) + : (c <= 3991 || (c < 4152 + ? (c < 4096 + ? (c >= 3993 && c <= 4028) + : c <= 4150) + : (c <= 4152 || (c >= 4155 && c <= 4159))))))) + : (c <= 4239 || (c < 4746 + ? (c < 4348 ? (c < 4295 - ? (c >= 4256 && c <= 4293) - : (c <= 4295 || c == 4301)) - : (c <= 4346 || (c < 4682 - ? (c >= 4348 && c <= 4680) - : c <= 4685))))) - : (c <= 4694 || (c < 4792 - ? (c < 4746 - ? (c < 4698 - ? c == 4696 - : (c <= 4701 || (c >= 4704 && c <= 4744))) - : (c <= 4749 || (c < 4786 - ? (c >= 4752 && c <= 4784) - : c <= 4789))) - : (c <= 4798 || (c < 4808 - ? (c < 4802 - ? c == 4800 - : c <= 4805) - : (c <= 4822 || (c < 4882 - ? (c >= 4824 && c <= 4880) - : c <= 4885))))))) - : (c <= 4954 || (c < 6016 - ? (c < 5792 - ? (c < 5121 - ? (c < 5024 - ? (c >= 4992 && c <= 5007) - : (c <= 5109 || (c >= 5112 && c <= 5117))) - : (c <= 5740 || (c < 5761 - ? (c >= 5743 && c <= 5759) - : c <= 5786))) - : (c <= 5866 || (c < 5952 - ? (c < 5888 - ? (c >= 5873 && c <= 5880) - : (c <= 5905 || (c >= 5919 && c <= 5937))) - : (c <= 5969 || (c < 5998 - ? (c >= 5984 && c <= 5996) - : c <= 6000))))) - : (c <= 6067 || (c < 6320 - ? (c < 6272 - ? (c < 6108 - ? c == 6103 - : (c <= 6108 || (c >= 6176 && c <= 6264))) - : (c <= 6276 || (c < 6314 - ? (c >= 6279 && c <= 6312) - : c <= 6314))) - : (c <= 6389 || (c < 6512 - ? (c < 6480 - ? (c >= 6400 && c <= 6430) - : c <= 6509) - : (c <= 6516 || (c < 6576 - ? (c >= 6528 && c <= 6571) - : c <= 6601))))))))))))) - : (c <= 6678 || (c < 43259 - ? (c < 8579 - ? (c < 8031 - ? (c < 7401 - ? (c < 7098 - ? (c < 6981 - ? (c < 6823 - ? (c >= 6688 && c <= 6740) - : (c <= 6823 || (c >= 6917 && c <= 6963))) - : (c <= 6988 || (c < 7086 - ? (c >= 7043 && c <= 7072) - : c <= 7087))) - : (c <= 7141 || (c < 7296 - ? (c < 7245 - ? (c >= 7168 && c <= 7203) - : (c <= 7247 || (c >= 7258 && c <= 7293))) - : (c <= 7304 || (c < 7357 - ? (c >= 7312 && c <= 7354) - : c <= 7359))))) - : (c <= 7404 || (c < 7968 - ? (c < 7424 + ? (c < 4256 + ? (c >= 4250 && c <= 4253) + : c <= 4293) + : (c <= 4295 || (c < 4304 + ? c == 4301 + : c <= 4346))) + : (c <= 4680 || (c < 4696 + ? (c < 4688 + ? (c >= 4682 && c <= 4685) + : c <= 4694) + : (c <= 4696 || (c < 4704 + ? (c >= 4698 && c <= 4701) + : c <= 4744))))) + : (c <= 4749 || (c < 4808 + ? (c < 4792 + ? (c < 4786 + ? (c >= 4752 && c <= 4784) + : c <= 4789) + : (c <= 4798 || (c < 4802 + ? c == 4800 + : c <= 4805))) + : (c <= 4822 || (c < 4888 + ? (c < 4882 + ? (c >= 4824 && c <= 4880) + : c <= 4885) + : (c <= 4954 || (c >= 4992 && c <= 5007))))))))) + : (c <= 5109 || (c < 6480 + ? (c < 6002 + ? (c < 5870 + ? (c < 5743 + ? (c < 5121 + ? (c >= 5112 && c <= 5117) + : c <= 5740) + : (c <= 5759 || (c < 5792 + ? (c >= 5761 && c <= 5786) + : c <= 5866))) + : (c <= 5880 || (c < 5952 + ? (c < 5919 + ? (c >= 5888 && c <= 5907) + : c <= 5939) + : (c <= 5971 || (c < 5998 + ? (c >= 5984 && c <= 5996) + : c <= 6000))))) + : (c <= 6003 || (c < 6272 + ? (c < 6103 + ? (c < 6070 + ? (c >= 6016 && c <= 6067) + : c <= 6088) + : (c <= 6103 || (c < 6176 + ? c == 6108 + : c <= 6264))) + : (c <= 6314 || (c < 6432 + ? (c < 6400 + ? (c >= 6320 && c <= 6389) + : c <= 6430) + : (c <= 6443 || (c >= 6448 && c <= 6456))))))) + : (c <= 6509 || (c < 6965 + ? (c < 6753 + ? (c < 6576 + ? (c < 6528 + ? (c >= 6512 && c <= 6516) + : c <= 6571) + : (c <= 6601 || (c < 6688 + ? (c >= 6656 && c <= 6683) + : c <= 6750))) + : (c <= 6772 || (c < 6860 + ? (c < 6847 + ? c == 6823 + : c <= 6848) + : (c <= 6862 || (c >= 6912 && c <= 6963))))) + : (c <= 6979 || (c < 7168 + ? (c < 7084 + ? (c < 7040 + ? (c >= 6981 && c <= 6988) + : c <= 7081) + : (c <= 7087 || (c < 7143 + ? (c >= 7098 && c <= 7141) + : c <= 7153))) + : (c <= 7222 || (c < 7296 + ? (c < 7258 + ? (c >= 7245 && c <= 7247) + : c <= 7293) + : (c <= 7304 || (c >= 7312 && c <= 7354))))))))))) + : (c <= 7359 || (c < 11499 + ? (c < 8160 + ? (c < 8025 + ? (c < 7655 ? (c < 7413 - ? (c >= 7406 && c <= 7411) - : (c <= 7414 || c == 7418)) - : (c <= 7615 || (c < 7960 - ? (c >= 7680 && c <= 7957) - : c <= 7965))) - : (c <= 8005 || (c < 8025 - ? (c < 8016 - ? (c >= 8008 && c <= 8013) - : c <= 8023) - : (c <= 8025 || (c < 8029 - ? c == 8027 - : c <= 8029))))))) - : (c <= 8061 || (c < 8450 - ? (c < 8150 - ? (c < 8130 - ? (c < 8118 - ? (c >= 8064 && c <= 8116) - : (c <= 8124 || c == 8126)) - : (c <= 8132 || (c < 8144 - ? (c >= 8134 && c <= 8140) - : c <= 8147))) - : (c <= 8155 || (c < 8305 - ? (c < 8178 - ? (c >= 8160 && c <= 8172) - : (c <= 8180 || (c >= 8182 && c <= 8188))) - : (c <= 8305 || (c < 8336 - ? c == 8319 - : c <= 8348))))) - : (c <= 8450 || (c < 8488 - ? (c < 8473 - ? (c < 8458 - ? c == 8455 - : (c <= 8467 || c == 8469)) - : (c <= 8477 || (c < 8486 - ? c == 8484 - : c <= 8486))) - : (c <= 8488 || (c < 8508 - ? (c < 8495 - ? (c >= 8490 && c <= 8493) - : c <= 8505) - : (c <= 8511 || (c < 8526 - ? (c >= 8517 && c <= 8521) - : c <= 8526))))))))) - : (c <= 8580 || (c < 12593 - ? (c < 11712 - ? (c < 11568 - ? (c < 11520 - ? (c < 11499 - ? (c >= 11264 && c <= 11492) - : (c <= 11502 || (c >= 11506 && c <= 11507))) - : (c <= 11557 || (c < 11565 - ? c == 11559 - : c <= 11565))) - : (c <= 11623 || (c < 11688 - ? (c < 11648 - ? c == 11631 - : (c <= 11670 || (c >= 11680 && c <= 11686))) - : (c <= 11694 || (c < 11704 - ? (c >= 11696 && c <= 11702) - : c <= 11710))))) - : (c <= 11718 || (c < 12347 - ? (c < 11823 - ? (c < 11728 - ? (c >= 11720 && c <= 11726) - : (c <= 11734 || (c >= 11736 && c <= 11742))) - : (c <= 11823 || (c < 12337 - ? (c >= 12293 && c <= 12294) - : c <= 12341))) - : (c <= 12348 || (c < 12449 - ? (c < 12445 - ? (c >= 12353 && c <= 12438) - : c <= 12447) - : (c <= 12538 || (c < 12549 - ? (c >= 12540 && c <= 12543) - : c <= 12591))))))) - : (c <= 12686 || (c < 42775 - ? (c < 42192 - ? (c < 19903 - ? (c < 12784 - ? (c >= 12704 && c <= 12735) - : (c <= 12799 || c == 13312)) - : (c <= 19903 || (c < 40959 - ? c == 19968 - : c <= 42124))) - : (c <= 42237 || (c < 42560 - ? (c < 42512 - ? (c >= 42240 && c <= 42508) - : (c <= 42527 || (c >= 42538 && c <= 42539))) - : (c <= 42606 || (c < 42656 - ? (c >= 42623 && c <= 42653) - : c <= 42725))))) - : (c <= 42783 || (c < 43011 - ? (c < 42963 - ? (c < 42891 - ? (c >= 42786 && c <= 42888) - : (c <= 42954 || (c >= 42960 && c <= 42961))) - : (c <= 42963 || (c < 42994 - ? (c >= 42965 && c <= 42969) - : c <= 43009))) - : (c <= 43013 || (c < 43072 - ? (c < 43020 - ? (c >= 43015 && c <= 43018) - : c <= 43042) - : (c <= 43123 || (c < 43250 - ? (c >= 43138 && c <= 43187) - : c <= 43255))))))))))) - : (c <= 43259 || (c < 65313 - ? (c < 43808 - ? (c < 43642 - ? (c < 43488 - ? (c < 43360 - ? (c < 43274 - ? (c >= 43261 && c <= 43262) - : (c <= 43301 || (c >= 43312 && c <= 43334))) - : (c <= 43388 || (c < 43471 - ? (c >= 43396 && c <= 43442) - : c <= 43471))) - : (c <= 43492 || (c < 43584 + ? (c < 7406 + ? (c >= 7401 && c <= 7404) + : c <= 7411) + : (c <= 7414 || (c < 7424 + ? c == 7418 + : c <= 7615))) + : (c <= 7668 || (c < 7968 + ? (c < 7960 + ? (c >= 7680 && c <= 7957) + : c <= 7965) + : (c <= 8005 || (c < 8016 + ? (c >= 8008 && c <= 8013) + : c <= 8023))))) + : (c <= 8025 || (c < 8126 + ? (c < 8031 + ? (c < 8029 + ? c == 8027 + : c <= 8029) + : (c <= 8061 || (c < 8118 + ? (c >= 8064 && c <= 8116) + : c <= 8124))) + : (c <= 8126 || (c < 8144 + ? (c < 8134 + ? (c >= 8130 && c <= 8132) + : c <= 8140) + : (c <= 8147 || (c >= 8150 && c <= 8155))))))) + : (c <= 8172 || (c < 8484 + ? (c < 8450 + ? (c < 8305 + ? (c < 8182 + ? (c >= 8178 && c <= 8180) + : c <= 8188) + : (c <= 8305 || (c < 8336 + ? c == 8319 + : c <= 8348))) + : (c <= 8450 || (c < 8469 + ? (c < 8458 + ? c == 8455 + : c <= 8467) + : (c <= 8469 || (c >= 8473 && c <= 8477))))) + : (c <= 8484 || (c < 8517 + ? (c < 8490 + ? (c < 8488 + ? c == 8486 + : c <= 8488) + : (c <= 8493 || (c < 8508 + ? (c >= 8495 && c <= 8505) + : c <= 8511))) + : (c <= 8521 || (c < 9398 + ? (c < 8544 + ? c == 8526 + : c <= 8584) + : (c <= 9449 || (c >= 11264 && c <= 11492))))))))) + : (c <= 11502 || (c < 12445 + ? (c < 11712 + ? (c < 11631 + ? (c < 11559 + ? (c < 11520 + ? (c >= 11506 && c <= 11507) + : c <= 11557) + : (c <= 11559 || (c < 11568 + ? c == 11565 + : c <= 11623))) + : (c <= 11631 || (c < 11688 + ? (c < 11680 + ? (c >= 11648 && c <= 11670) + : c <= 11686) + : (c <= 11694 || (c < 11704 + ? (c >= 11696 && c <= 11702) + : c <= 11710))))) + : (c <= 11718 || (c < 12293 + ? (c < 11736 + ? (c < 11728 + ? (c >= 11720 && c <= 11726) + : c <= 11734) + : (c <= 11742 || (c < 11823 + ? (c >= 11744 && c <= 11775) + : c <= 11823))) + : (c <= 12295 || (c < 12344 + ? (c < 12337 + ? (c >= 12321 && c <= 12329) + : c <= 12341) + : (c <= 12348 || (c >= 12353 && c <= 12438))))))) + : (c <= 12447 || (c < 42512 + ? (c < 12784 + ? (c < 12549 + ? (c < 12540 + ? (c >= 12449 && c <= 12538) + : c <= 12543) + : (c <= 12591 || (c < 12704 + ? (c >= 12593 && c <= 12686) + : c <= 12735))) + : (c <= 12799 || (c < 42192 + ? (c < 19968 + ? (c >= 13312 && c <= 19903) + : c <= 42124) + : (c <= 42237 || (c >= 42240 && c <= 42508))))) + : (c <= 42527 || (c < 42786 + ? (c < 42612 + ? (c < 42560 + ? (c >= 42538 && c <= 42539) + : c <= 42606) + : (c <= 42619 || (c < 42775 + ? (c >= 42623 && c <= 42735) + : c <= 42783))) + : (c <= 42888 || (c < 42963 + ? (c < 42960 + ? (c >= 42891 && c <= 42954) + : c <= 42961) + : (c <= 42963 || (c >= 42965 && c <= 42969))))))))))))))) + : (c <= 43013 || (c < 71096 + ? (c < 67392 + ? (c < 64326 + ? (c < 43744 + ? (c < 43444 + ? (c < 43259 + ? (c < 43136 + ? (c < 43072 + ? (c >= 43015 && c <= 43047) + : c <= 43123) + : (c <= 43203 || (c < 43250 + ? c == 43205 + : c <= 43255))) + : (c <= 43259 || (c < 43312 + ? (c < 43274 + ? (c >= 43261 && c <= 43263) + : c <= 43306) + : (c <= 43346 || (c < 43392 + ? (c >= 43360 && c <= 43388) + : c <= 43442))))) + : (c <= 43455 || (c < 43616 ? (c < 43514 - ? (c >= 43494 && c <= 43503) - : (c <= 43518 || (c >= 43520 && c <= 43560))) - : (c <= 43586 || (c < 43616 - ? (c >= 43588 && c <= 43595) - : c <= 43638))))) - : (c <= 43642 || (c < 43739 - ? (c < 43705 - ? (c < 43697 - ? (c >= 43646 && c <= 43695) - : (c <= 43697 || (c >= 43701 && c <= 43702))) - : (c <= 43709 || (c < 43714 - ? c == 43712 - : c <= 43714))) - : (c <= 43741 || (c < 43777 - ? (c < 43762 - ? (c >= 43744 && c <= 43754) - : c <= 43764) - : (c <= 43782 || (c < 43793 - ? (c >= 43785 && c <= 43790) - : c <= 43798))))))) - : (c <= 43814 || (c < 64287 - ? (c < 55216 - ? (c < 43888 - ? (c < 43824 - ? (c >= 43816 && c <= 43822) - : (c <= 43866 || (c >= 43868 && c <= 43881))) - : (c <= 44002 || (c < 55203 - ? c == 44032 - : c <= 55203))) - : (c <= 55238 || (c < 64256 - ? (c < 63744 - ? (c >= 55243 && c <= 55291) - : (c <= 64109 || (c >= 64112 && c <= 64217))) - : (c <= 64262 || (c < 64285 - ? (c >= 64275 && c <= 64279) - : c <= 64285))))) - : (c <= 64296 || (c < 64467 - ? (c < 64320 - ? (c < 64312 - ? (c >= 64298 && c <= 64310) - : (c <= 64316 || c == 64318)) - : (c <= 64321 || (c < 64326 - ? (c >= 64323 && c <= 64324) - : c <= 64433))) - : (c <= 64829 || (c < 65008 + ? (c < 43488 + ? c == 43471 + : c <= 43503) + : (c <= 43518 || (c < 43584 + ? (c >= 43520 && c <= 43574) + : c <= 43597))) + : (c <= 43638 || (c < 43714 + ? (c < 43712 + ? (c >= 43642 && c <= 43710) + : c <= 43712) + : (c <= 43714 || (c >= 43739 && c <= 43741))))))) + : (c <= 43759 || (c < 55243 + ? (c < 43816 + ? (c < 43785 + ? (c < 43777 + ? (c >= 43762 && c <= 43765) + : c <= 43782) + : (c <= 43790 || (c < 43808 + ? (c >= 43793 && c <= 43798) + : c <= 43814))) + : (c <= 43822 || (c < 43888 + ? (c < 43868 + ? (c >= 43824 && c <= 43866) + : c <= 43881) + : (c <= 44010 || (c < 55216 + ? (c >= 44032 && c <= 55203) + : c <= 55238))))) + : (c <= 55291 || (c < 64298 + ? (c < 64256 + ? (c < 64112 + ? (c >= 63744 && c <= 64109) + : c <= 64217) + : (c <= 64262 || (c < 64285 + ? (c >= 64275 && c <= 64279) + : c <= 64296))) + : (c <= 64310 || (c < 64320 + ? (c < 64318 + ? (c >= 64312 && c <= 64316) + : c <= 64318) + : (c <= 64321 || (c >= 64323 && c <= 64324))))))))) + : (c <= 64433 || (c < 66208 + ? (c < 65490 + ? (c < 65142 ? (c < 64914 - ? (c >= 64848 && c <= 64911) - : c <= 64967) - : (c <= 65019 || (c < 65142 - ? (c >= 65136 && c <= 65140) - : c <= 65276))))))))) - : (c <= 65338 || (c < 66864 - ? (c < 66176 - ? (c < 65536 - ? (c < 65482 - ? (c < 65382 - ? (c >= 65345 && c <= 65370) - : (c <= 65470 || (c >= 65474 && c <= 65479))) - : (c <= 65487 || (c < 65498 - ? (c >= 65490 && c <= 65495) - : c <= 65500))) - : (c <= 65547 || (c < 65599 - ? (c < 65576 - ? (c >= 65549 && c <= 65574) - : (c <= 65594 || (c >= 65596 && c <= 65597))) - : (c <= 65613 || (c < 65664 - ? (c >= 65616 && c <= 65629) - : c <= 65786))))) - : (c <= 66204 || (c < 66464 - ? (c < 66370 - ? (c < 66304 - ? (c >= 66208 && c <= 66256) - : (c <= 66335 || (c >= 66349 && c <= 66368))) - : (c <= 66377 || (c < 66432 - ? (c >= 66384 && c <= 66421) - : c <= 66461))) - : (c <= 66499 || (c < 66736 - ? (c < 66560 - ? (c >= 66504 && c <= 66511) - : c <= 66717) - : (c <= 66771 || (c < 66816 - ? (c >= 66776 && c <= 66811) - : c <= 66855))))))) - : (c <= 66915 || (c < 67506 - ? (c < 66995 - ? (c < 66964 + ? (c < 64848 + ? (c >= 64467 && c <= 64829) + : c <= 64911) + : (c <= 64967 || (c < 65136 + ? (c >= 65008 && c <= 65019) + : c <= 65140))) + : (c <= 65276 || (c < 65382 + ? (c < 65345 + ? (c >= 65313 && c <= 65338) + : c <= 65370) + : (c <= 65470 || (c < 65482 + ? (c >= 65474 && c <= 65479) + : c <= 65487))))) + : (c <= 65495 || (c < 65599 + ? (c < 65549 + ? (c < 65536 + ? (c >= 65498 && c <= 65500) + : c <= 65547) + : (c <= 65574 || (c < 65596 + ? (c >= 65576 && c <= 65594) + : c <= 65597))) + : (c <= 65613 || (c < 65856 + ? (c < 65664 + ? (c >= 65616 && c <= 65629) + : c <= 65786) + : (c <= 65908 || (c >= 66176 && c <= 66204))))))) + : (c <= 66256 || (c < 66816 + ? (c < 66504 + ? (c < 66384 + ? (c < 66349 + ? (c >= 66304 && c <= 66335) + : c <= 66378) + : (c <= 66426 || (c < 66464 + ? (c >= 66432 && c <= 66461) + : c <= 66499))) + : (c <= 66511 || (c < 66736 + ? (c < 66560 + ? (c >= 66513 && c <= 66517) + : c <= 66717) + : (c <= 66771 || (c >= 66776 && c <= 66811))))) + : (c <= 66855 || (c < 66967 ? (c < 66940 - ? (c >= 66928 && c <= 66938) - : (c <= 66954 || (c >= 66956 && c <= 66962))) - : (c <= 66965 || (c < 66979 - ? (c >= 66967 && c <= 66977) - : c <= 66993))) - : (c <= 67001 || (c < 67424 - ? (c < 67072 - ? (c >= 67003 && c <= 67004) - : (c <= 67382 || (c >= 67392 && c <= 67413))) - : (c <= 67431 || (c < 67463 - ? (c >= 67456 && c <= 67461) - : c <= 67504))))) - : (c <= 67514 || (c < 67680 - ? (c < 67639 - ? (c < 67592 - ? (c >= 67584 && c <= 67589) - : (c <= 67592 || (c >= 67594 && c <= 67637))) - : (c <= 67640 || (c < 67647 - ? c == 67644 - : c <= 67669))) - : (c <= 67702 || (c < 67828 - ? (c < 67808 - ? (c >= 67712 && c <= 67742) - : c <= 67826) - : (c <= 67829 || (c < 67872 - ? (c >= 67840 && c <= 67861) - : c <= 67883))))))))))))))); + ? (c < 66928 + ? (c >= 66864 && c <= 66915) + : c <= 66938) + : (c <= 66954 || (c < 66964 + ? (c >= 66956 && c <= 66962) + : c <= 66965))) + : (c <= 66977 || (c < 67003 + ? (c < 66995 + ? (c >= 66979 && c <= 66993) + : c <= 67001) + : (c <= 67004 || (c >= 67072 && c <= 67382))))))))))) + : (c <= 67413 || (c < 69632 + ? (c < 68121 + ? (c < 67712 + ? (c < 67592 + ? (c < 67463 + ? (c < 67456 + ? (c >= 67424 && c <= 67431) + : c <= 67461) + : (c <= 67504 || (c < 67584 + ? (c >= 67506 && c <= 67514) + : c <= 67589))) + : (c <= 67592 || (c < 67644 + ? (c < 67639 + ? (c >= 67594 && c <= 67637) + : c <= 67640) + : (c <= 67644 || (c < 67680 + ? (c >= 67647 && c <= 67669) + : c <= 67702))))) + : (c <= 67742 || (c < 68030 + ? (c < 67840 + ? (c < 67828 + ? (c >= 67808 && c <= 67826) + : c <= 67829) + : (c <= 67861 || (c < 67968 + ? (c >= 67872 && c <= 67897) + : c <= 68023))) + : (c <= 68031 || (c < 68108 + ? (c < 68101 + ? (c >= 68096 && c <= 68099) + : c <= 68102) + : (c <= 68115 || (c >= 68117 && c <= 68119))))))) + : (c <= 68149 || (c < 68800 + ? (c < 68416 + ? (c < 68288 + ? (c < 68224 + ? (c >= 68192 && c <= 68220) + : c <= 68252) + : (c <= 68295 || (c < 68352 + ? (c >= 68297 && c <= 68324) + : c <= 68405))) + : (c <= 68437 || (c < 68608 + ? (c < 68480 + ? (c >= 68448 && c <= 68466) + : c <= 68497) + : (c <= 68680 || (c >= 68736 && c <= 68786))))) + : (c <= 68850 || (c < 69415 + ? (c < 69291 + ? (c < 69248 + ? (c >= 68864 && c <= 68903) + : c <= 69289) + : (c <= 69292 || (c < 69376 + ? (c >= 69296 && c <= 69297) + : c <= 69404))) + : (c <= 69415 || (c < 69552 + ? (c < 69488 + ? (c >= 69424 && c <= 69445) + : c <= 69505) + : (c <= 69572 || (c >= 69600 && c <= 69622))))))))) + : (c <= 69701 || (c < 70320 + ? (c < 70106 + ? (c < 69956 + ? (c < 69826 + ? (c < 69762 + ? (c >= 69745 && c <= 69749) + : c <= 69816) + : (c <= 69826 || (c < 69888 + ? (c >= 69840 && c <= 69864) + : c <= 69938))) + : (c <= 69959 || (c < 70016 + ? (c < 70006 + ? (c >= 69968 && c <= 70002) + : c <= 70006) + : (c <= 70079 || (c < 70094 + ? (c >= 70081 && c <= 70084) + : c <= 70095))))) + : (c <= 70106 || (c < 70272 + ? (c < 70163 + ? (c < 70144 + ? c == 70108 + : c <= 70161) + : (c <= 70196 || (c < 70206 + ? c == 70199 + : c <= 70206))) + : (c <= 70278 || (c < 70287 + ? (c < 70282 + ? c == 70280 + : c <= 70285) + : (c <= 70301 || (c >= 70303 && c <= 70312))))))) + : (c <= 70376 || (c < 70480 + ? (c < 70450 + ? (c < 70415 + ? (c < 70405 + ? (c >= 70400 && c <= 70403) + : c <= 70412) + : (c <= 70416 || (c < 70442 + ? (c >= 70419 && c <= 70440) + : c <= 70448))) + : (c <= 70451 || (c < 70471 + ? (c < 70461 + ? (c >= 70453 && c <= 70457) + : c <= 70468) + : (c <= 70472 || (c >= 70475 && c <= 70476))))) + : (c <= 70480 || (c < 70751 + ? (c < 70656 + ? (c < 70493 + ? c == 70487 + : c <= 70499) + : (c <= 70721 || (c < 70727 + ? (c >= 70723 && c <= 70725) + : c <= 70730))) + : (c <= 70753 || (c < 70855 + ? (c < 70852 + ? (c >= 70784 && c <= 70849) + : c <= 70853) + : (c <= 70855 || (c >= 71040 && c <= 71093))))))))))))) + : (c <= 71102 || (c < 119966 + ? (c < 73063 + ? (c < 72161 + ? (c < 71935 + ? (c < 71352 + ? (c < 71232 + ? (c < 71168 + ? (c >= 71128 && c <= 71133) + : c <= 71230) + : (c <= 71232 || (c < 71296 + ? c == 71236 + : c <= 71349))) + : (c <= 71352 || (c < 71488 + ? (c < 71453 + ? (c >= 71424 && c <= 71450) + : c <= 71466) + : (c <= 71494 || (c < 71840 + ? (c >= 71680 && c <= 71736) + : c <= 71903))))) + : (c <= 71942 || (c < 71995 + ? (c < 71957 + ? (c < 71948 + ? c == 71945 + : c <= 71955) + : (c <= 71958 || (c < 71991 + ? (c >= 71960 && c <= 71989) + : c <= 71992))) + : (c <= 71996 || (c < 72106 + ? (c < 72096 + ? (c >= 71999 && c <= 72002) + : c <= 72103) + : (c <= 72151 || (c >= 72154 && c <= 72159))))))) + : (c <= 72161 || (c < 72850 + ? (c < 72368 + ? (c < 72245 + ? (c < 72192 + ? (c >= 72163 && c <= 72164) + : c <= 72242) + : (c <= 72254 || (c < 72349 + ? (c >= 72272 && c <= 72343) + : c <= 72349))) + : (c <= 72440 || (c < 72760 + ? (c < 72714 + ? (c >= 72704 && c <= 72712) + : c <= 72758) + : (c <= 72766 || (c < 72818 + ? c == 72768 + : c <= 72847))))) + : (c <= 72871 || (c < 73020 + ? (c < 72968 + ? (c < 72960 + ? (c >= 72873 && c <= 72886) + : c <= 72966) + : (c <= 72969 || (c < 73018 + ? (c >= 72971 && c <= 73014) + : c <= 73018))) + : (c <= 73021 || (c < 73030 + ? (c < 73027 + ? (c >= 73023 && c <= 73025) + : c <= 73027) + : (c <= 73031 || (c >= 73056 && c <= 73061))))))))) + : (c <= 73064 || (c < 94031 + ? (c < 82944 + ? (c < 73648 + ? (c < 73107 + ? (c < 73104 + ? (c >= 73066 && c <= 73102) + : c <= 73105) + : (c <= 73110 || (c < 73440 + ? c == 73112 + : c <= 73462))) + : (c <= 73648 || (c < 74880 + ? (c < 74752 + ? (c >= 73728 && c <= 74649) + : c <= 74862) + : (c <= 75075 || (c < 77824 + ? (c >= 77712 && c <= 77808) + : c <= 78894))))) + : (c <= 83526 || (c < 92992 + ? (c < 92784 + ? (c < 92736 + ? (c >= 92160 && c <= 92728) + : c <= 92766) + : (c <= 92862 || (c < 92928 + ? (c >= 92880 && c <= 92909) + : c <= 92975))) + : (c <= 92995 || (c < 93760 + ? (c < 93053 + ? (c >= 93027 && c <= 93047) + : c <= 93071) + : (c <= 93823 || (c >= 93952 && c <= 94026))))))) + : (c <= 94087 || (c < 110592 + ? (c < 100352 + ? (c < 94179 + ? (c < 94176 + ? (c >= 94095 && c <= 94111) + : c <= 94177) + : (c <= 94179 || (c < 94208 + ? (c >= 94192 && c <= 94193) + : c <= 100343))) + : (c <= 101589 || (c < 110581 + ? (c < 110576 + ? (c >= 101632 && c <= 101640) + : c <= 110579) + : (c <= 110587 || (c >= 110589 && c <= 110590))))) + : (c <= 110882 || (c < 113792 + ? (c < 110960 + ? (c < 110948 + ? (c >= 110928 && c <= 110930) + : c <= 110951) + : (c <= 111355 || (c < 113776 + ? (c >= 113664 && c <= 113770) + : c <= 113788))) + : (c <= 113800 || (c < 119808 + ? (c < 113822 + ? (c >= 113808 && c <= 113817) + : c <= 113822) + : (c <= 119892 || (c >= 119894 && c <= 119964))))))))))) + : (c <= 119967 || (c < 125255 + ? (c < 120656 + ? (c < 120123 + ? (c < 119997 + ? (c < 119977 + ? (c < 119973 + ? c == 119970 + : c <= 119974) + : (c <= 119980 || (c < 119995 + ? (c >= 119982 && c <= 119993) + : c <= 119995))) + : (c <= 120003 || (c < 120077 + ? (c < 120071 + ? (c >= 120005 && c <= 120069) + : c <= 120074) + : (c <= 120084 || (c < 120094 + ? (c >= 120086 && c <= 120092) + : c <= 120121))))) + : (c <= 120126 || (c < 120514 + ? (c < 120138 + ? (c < 120134 + ? (c >= 120128 && c <= 120132) + : c <= 120134) + : (c <= 120144 || (c < 120488 + ? (c >= 120146 && c <= 120485) + : c <= 120512))) + : (c <= 120538 || (c < 120598 + ? (c < 120572 + ? (c >= 120540 && c <= 120570) + : c <= 120596) + : (c <= 120628 || (c >= 120630 && c <= 120654))))))) + : (c <= 120686 || (c < 123136 + ? (c < 122880 + ? (c < 120746 + ? (c < 120714 + ? (c >= 120688 && c <= 120712) + : c <= 120744) + : (c <= 120770 || (c < 122624 + ? (c >= 120772 && c <= 120779) + : c <= 122654))) + : (c <= 122886 || (c < 122915 + ? (c < 122907 + ? (c >= 122888 && c <= 122904) + : c <= 122913) + : (c <= 122916 || (c >= 122918 && c <= 122922))))) + : (c <= 123180 || (c < 124904 + ? (c < 123536 + ? (c < 123214 + ? (c >= 123191 && c <= 123197) + : c <= 123214) + : (c <= 123565 || (c < 124896 + ? (c >= 123584 && c <= 123627) + : c <= 124902))) + : (c <= 124907 || (c < 124928 + ? (c < 124912 + ? (c >= 124909 && c <= 124910) + : c <= 124926) + : (c <= 125124 || (c >= 125184 && c <= 125251))))))))) + : (c <= 125255 || (c < 126561 + ? (c < 126535 + ? (c < 126503 + ? (c < 126469 + ? (c < 126464 + ? c == 125259 + : c <= 126467) + : (c <= 126495 || (c < 126500 + ? (c >= 126497 && c <= 126498) + : c <= 126500))) + : (c <= 126503 || (c < 126521 + ? (c < 126516 + ? (c >= 126505 && c <= 126514) + : c <= 126519) + : (c <= 126521 || (c < 126530 + ? c == 126523 + : c <= 126530))))) + : (c <= 126535 || (c < 126551 + ? (c < 126541 + ? (c < 126539 + ? c == 126537 + : c <= 126539) + : (c <= 126543 || (c < 126548 + ? (c >= 126545 && c <= 126546) + : c <= 126548))) + : (c <= 126551 || (c < 126557 + ? (c < 126555 + ? c == 126553 + : c <= 126555) + : (c <= 126557 || c == 126559)))))) + : (c <= 126562 || (c < 126635 + ? (c < 126590 + ? (c < 126572 + ? (c < 126567 + ? c == 126564 + : c <= 126570) + : (c <= 126578 || (c < 126585 + ? (c >= 126580 && c <= 126583) + : c <= 126588))) + : (c <= 126590 || (c < 126625 + ? (c < 126603 + ? (c >= 126592 && c <= 126601) + : c <= 126619) + : (c <= 126627 || (c >= 126629 && c <= 126633))))) + : (c <= 126651 || (c < 177984 + ? (c < 127344 + ? (c < 127312 + ? (c >= 127280 && c <= 127305) + : c <= 127337) + : (c <= 127369 || (c < 173824 + ? (c >= 131072 && c <= 173791) + : c <= 177976))) + : (c <= 178205 || (c < 194560 + ? (c < 183984 + ? (c >= 178208 && c <= 183969) + : c <= 191456) + : (c <= 195101 || (c >= 196608 && c <= 201546))))))))))))))))); } static inline bool sym_identifier_character_set_2(int32_t c) { - return (c < 6656 - ? (c < 2979 - ? (c < 2308 - ? (c < 1376 - ? (c < 750 - ? (c < 186 - ? (c < 'a' - ? (c < 'A' - ? (c >= '0' && c <= '9') - : (c <= 'Z' || c == '_')) - : (c <= 'z' || (c < 181 - ? c == 170 - : c <= 181))) - : (c <= 186 || (c < 710 - ? (c < 216 - ? (c >= 192 && c <= 214) - : (c <= 246 || (c >= 248 && c <= 705))) - : (c <= 721 || (c < 748 - ? (c >= 736 && c <= 740) - : c <= 748))))) - : (c <= 750 || (c < 908 - ? (c < 895 - ? (c < 886 - ? (c >= 880 && c <= 884) - : (c <= 887 || (c >= 890 && c <= 893))) - : (c <= 895 || (c < 904 - ? c == 902 - : c <= 906))) - : (c <= 908 || (c < 1162 - ? (c < 931 - ? (c >= 910 && c <= 929) - : (c <= 1013 || (c >= 1015 && c <= 1153))) - : (c <= 1327 || (c < 1369 - ? (c >= 1329 && c <= 1366) - : c <= 1369))))))) - : (c <= 1416 || (c < 1969 - ? (c < 1765 - ? (c < 1646 - ? (c < 1519 - ? (c >= 1488 && c <= 1514) - : (c <= 1522 || (c >= 1568 && c <= 1610))) - : (c <= 1647 || (c < 1749 - ? (c >= 1649 && c <= 1747) - : c <= 1749))) - : (c <= 1766 || (c < 1808 - ? (c < 1786 - ? (c >= 1774 && c <= 1775) - : (c <= 1788 || c == 1791)) - : (c <= 1808 || (c < 1869 - ? (c >= 1810 && c <= 1839) - : c <= 1957))))) - : (c <= 1969 || (c < 2088 - ? (c < 2048 - ? (c < 2036 - ? (c >= 1994 && c <= 2026) - : (c <= 2037 || c == 2042)) - : (c <= 2069 || (c < 2084 - ? c == 2074 - : c <= 2084))) - : (c <= 2088 || (c < 2160 - ? (c < 2144 - ? (c >= 2112 && c <= 2136) - : c <= 2154) - : (c <= 2183 || (c < 2208 - ? (c >= 2185 && c <= 2190) - : c <= 2249))))))))) - : (c <= 2361 || (c < 2693 - ? (c < 2527 - ? (c < 2451 - ? (c < 2417 - ? (c < 2384 - ? c == 2365 - : (c <= 2384 || (c >= 2392 && c <= 2401))) - : (c <= 2432 || (c < 2447 - ? (c >= 2437 && c <= 2444) - : c <= 2448))) - : (c <= 2472 || (c < 2493 - ? (c < 2482 - ? (c >= 2474 && c <= 2480) - : (c <= 2482 || (c >= 2486 && c <= 2489))) - : (c <= 2493 || (c < 2524 - ? c == 2510 - : c <= 2525))))) - : (c <= 2529 || (c < 2610 - ? (c < 2575 - ? (c < 2556 - ? (c >= 2544 && c <= 2545) - : (c <= 2556 || (c >= 2565 && c <= 2570))) - : (c <= 2576 || (c < 2602 - ? (c >= 2579 && c <= 2600) - : c <= 2608))) - : (c <= 2611 || (c < 2649 - ? (c < 2616 - ? (c >= 2613 && c <= 2614) - : c <= 2617) - : (c <= 2652 || (c < 2674 - ? c == 2654 - : c <= 2676))))))) - : (c <= 2701 || (c < 2866 + return (c < 42786 + ? (c < 3544 + ? (c < 2654 + ? (c < 1984 + ? (c < 931 + ? (c < 736 + ? (c < 181 + ? (c < '_' + ? (c < 'A' + ? (c >= '0' && c <= '9') + : c <= 'Z') + : (c <= '_' || (c < 170 + ? (c >= 'a' && c <= 'z') + : c <= 170))) + : (c <= 181 || (c < 216 + ? (c < 192 + ? c == 186 + : c <= 214) + : (c <= 246 || (c < 710 + ? (c >= 248 && c <= 705) + : c <= 721))))) + : (c <= 740 || (c < 890 + ? (c < 837 + ? (c < 750 + ? c == 748 + : c <= 750) + : (c <= 837 || (c < 886 + ? (c >= 880 && c <= 884) + : c <= 887))) + : (c <= 893 || (c < 904 + ? (c < 902 + ? c == 895 + : c <= 902) + : (c <= 906 || (c < 910 + ? c == 908 + : c <= 929))))))) + : (c <= 1013 || (c < 1519 + ? (c < 1456 + ? (c < 1329 + ? (c < 1162 + ? (c >= 1015 && c <= 1153) + : c <= 1327) + : (c <= 1366 || (c < 1376 + ? c == 1369 + : c <= 1416))) + : (c <= 1469 || (c < 1476 + ? (c < 1473 + ? c == 1471 + : c <= 1474) + : (c <= 1477 || (c < 1488 + ? c == 1479 + : c <= 1514))))) + : (c <= 1522 || (c < 1761 + ? (c < 1625 + ? (c < 1568 + ? (c >= 1552 && c <= 1562) + : c <= 1623) + : (c <= 1641 || (c < 1749 + ? (c >= 1646 && c <= 1747) + : c <= 1756))) + : (c <= 1768 || (c < 1808 + ? (c < 1791 + ? (c >= 1773 && c <= 1788) + : c <= 1791) + : (c <= 1855 || (c >= 1869 && c <= 1969))))))))) + : (c <= 2026 || (c < 2486 + ? (c < 2288 + ? (c < 2144 + ? (c < 2048 + ? (c < 2042 + ? (c >= 2036 && c <= 2037) + : c <= 2042) + : (c <= 2071 || (c < 2112 + ? (c >= 2074 && c <= 2092) + : c <= 2136))) + : (c <= 2154 || (c < 2208 + ? (c < 2185 + ? (c >= 2160 && c <= 2183) + : c <= 2190) + : (c <= 2249 || (c < 2275 + ? (c >= 2260 && c <= 2271) + : c <= 2281))))) + : (c <= 2363 || (c < 2437 + ? (c < 2389 + ? (c < 2382 + ? (c >= 2365 && c <= 2380) + : c <= 2384) + : (c <= 2403 || (c < 2417 + ? (c >= 2406 && c <= 2415) + : c <= 2435))) + : (c <= 2444 || (c < 2474 + ? (c < 2451 + ? (c >= 2447 && c <= 2448) + : c <= 2472) + : (c <= 2480 || c == 2482)))))) + : (c <= 2489 || (c < 2575 + ? (c < 2524 + ? (c < 2507 + ? (c < 2503 + ? (c >= 2493 && c <= 2500) + : c <= 2504) + : (c <= 2508 || (c < 2519 + ? c == 2510 + : c <= 2519))) + : (c <= 2525 || (c < 2556 + ? (c < 2534 + ? (c >= 2527 && c <= 2531) + : c <= 2545) + : (c <= 2556 || (c < 2565 + ? (c >= 2561 && c <= 2563) + : c <= 2570))))) + : (c <= 2576 || (c < 2622 + ? (c < 2610 + ? (c < 2602 + ? (c >= 2579 && c <= 2600) + : c <= 2608) + : (c <= 2611 || (c < 2616 + ? (c >= 2613 && c <= 2614) + : c <= 2617))) + : (c <= 2626 || (c < 2641 + ? (c < 2635 + ? (c >= 2631 && c <= 2632) + : c <= 2636) + : (c <= 2641 || (c >= 2649 && c <= 2652))))))))))) + : (c <= 2654 || (c < 3072 + ? (c < 2887 ? (c < 2768 - ? (c < 2738 - ? (c < 2707 - ? (c >= 2703 && c <= 2705) - : (c <= 2728 || (c >= 2730 && c <= 2736))) - : (c <= 2739 || (c < 2749 - ? (c >= 2741 && c <= 2745) - : c <= 2749))) + ? (c < 2730 + ? (c < 2693 + ? (c < 2689 + ? (c >= 2662 && c <= 2677) + : c <= 2691) + : (c <= 2701 || (c < 2707 + ? (c >= 2703 && c <= 2705) + : c <= 2728))) + : (c <= 2736 || (c < 2749 + ? (c < 2741 + ? (c >= 2738 && c <= 2739) + : c <= 2745) + : (c <= 2757 || (c < 2763 + ? (c >= 2759 && c <= 2761) + : c <= 2764))))) : (c <= 2768 || (c < 2831 ? (c < 2809 - ? (c >= 2784 && c <= 2785) - : (c <= 2809 || (c >= 2821 && c <= 2828))) - : (c <= 2832 || (c < 2858 - ? (c >= 2835 && c <= 2856) - : c <= 2864))))) - : (c <= 2867 || (c < 2949 - ? (c < 2911 - ? (c < 2877 - ? (c >= 2869 && c <= 2873) - : (c <= 2877 || (c >= 2908 && c <= 2909))) - : (c <= 2913 || (c < 2947 - ? c == 2929 - : c <= 2947))) - : (c <= 2954 || (c < 2969 - ? (c < 2962 - ? (c >= 2958 && c <= 2960) - : c <= 2965) - : (c <= 2970 || (c < 2974 - ? c == 2972 - : c <= 2975))))))))))) - : (c <= 2980 || (c < 4159 - ? (c < 3412 - ? (c < 3214 - ? (c < 3114 - ? (c < 3077 - ? (c < 2990 - ? (c >= 2984 && c <= 2986) - : (c <= 3001 || c == 3024)) - : (c <= 3084 || (c < 3090 - ? (c >= 3086 && c <= 3088) - : c <= 3112))) - : (c <= 3129 || (c < 3168 - ? (c < 3160 - ? c == 3133 - : (c <= 3162 || c == 3165)) - : (c <= 3169 || (c < 3205 - ? c == 3200 - : c <= 3212))))) - : (c <= 3216 || (c < 3313 - ? (c < 3261 - ? (c < 3242 - ? (c >= 3218 && c <= 3240) - : (c <= 3251 || (c >= 3253 && c <= 3257))) - : (c <= 3261 || (c < 3296 - ? (c >= 3293 && c <= 3294) - : c <= 3297))) - : (c <= 3314 || (c < 3346 - ? (c < 3342 - ? (c >= 3332 && c <= 3340) - : c <= 3344) - : (c <= 3386 || (c < 3406 - ? c == 3389 - : c <= 3406))))))) - : (c <= 3414 || (c < 3724 - ? (c < 3520 - ? (c < 3482 - ? (c < 3450 - ? (c >= 3423 && c <= 3425) - : (c <= 3455 || (c >= 3461 && c <= 3478))) - : (c <= 3505 || (c < 3517 - ? (c >= 3507 && c <= 3515) - : c <= 3517))) - : (c <= 3526 || (c < 3713 - ? (c < 3634 - ? (c >= 3585 && c <= 3632) - : (c <= 3635 || (c >= 3648 && c <= 3654))) - : (c <= 3714 || (c < 3718 - ? c == 3716 - : c <= 3722))))) - : (c <= 3747 || (c < 3804 - ? (c < 3773 - ? (c < 3751 - ? c == 3749 - : (c <= 3760 || (c >= 3762 && c <= 3763))) - : (c <= 3773 || (c < 3782 - ? (c >= 3776 && c <= 3780) - : c <= 3782))) - : (c <= 3807 || (c < 3913 - ? (c < 3904 - ? c == 3840 - : c <= 3911) - : (c <= 3948 || (c < 4096 - ? (c >= 3976 && c <= 3980) - : c <= 4138))))))))) - : (c <= 4159 || (c < 4888 - ? (c < 4688 - ? (c < 4238 - ? (c < 4197 - ? (c < 4186 - ? (c >= 4176 && c <= 4181) - : (c <= 4189 || c == 4193)) - : (c <= 4198 || (c < 4213 - ? (c >= 4206 && c <= 4208) - : c <= 4225))) - : (c <= 4238 || (c < 4304 - ? (c < 4295 - ? (c >= 4256 && c <= 4293) - : (c <= 4295 || c == 4301)) - : (c <= 4346 || (c < 4682 - ? (c >= 4348 && c <= 4680) - : c <= 4685))))) - : (c <= 4694 || (c < 4792 - ? (c < 4746 - ? (c < 4698 - ? c == 4696 - : (c <= 4701 || (c >= 4704 && c <= 4744))) - : (c <= 4749 || (c < 4786 - ? (c >= 4752 && c <= 4784) - : c <= 4789))) - : (c <= 4798 || (c < 4808 - ? (c < 4802 - ? c == 4800 - : c <= 4805) - : (c <= 4822 || (c < 4882 - ? (c >= 4824 && c <= 4880) - : c <= 4885))))))) - : (c <= 4954 || (c < 6016 - ? (c < 5792 + ? (c < 2790 + ? (c >= 2784 && c <= 2787) + : c <= 2799) + : (c <= 2812 || (c < 2821 + ? (c >= 2817 && c <= 2819) + : c <= 2828))) + : (c <= 2832 || (c < 2866 + ? (c < 2858 + ? (c >= 2835 && c <= 2856) + : c <= 2864) + : (c <= 2867 || (c < 2877 + ? (c >= 2869 && c <= 2873) + : c <= 2884))))))) + : (c <= 2888 || (c < 2972 + ? (c < 2929 + ? (c < 2908 + ? (c < 2902 + ? (c >= 2891 && c <= 2892) + : c <= 2903) + : (c <= 2909 || (c < 2918 + ? (c >= 2911 && c <= 2915) + : c <= 2927))) + : (c <= 2929 || (c < 2958 + ? (c < 2949 + ? (c >= 2946 && c <= 2947) + : c <= 2954) + : (c <= 2960 || (c < 2969 + ? (c >= 2962 && c <= 2965) + : c <= 2970))))) + : (c <= 2972 || (c < 3014 + ? (c < 2984 + ? (c < 2979 + ? (c >= 2974 && c <= 2975) + : c <= 2980) + : (c <= 2986 || (c < 3006 + ? (c >= 2990 && c <= 3001) + : c <= 3010))) + : (c <= 3016 || (c < 3031 + ? (c < 3024 + ? (c >= 3018 && c <= 3020) + : c <= 3024) + : (c <= 3031 || (c >= 3046 && c <= 3055))))))))) + : (c <= 3075 || (c < 3293 + ? (c < 3174 + ? (c < 3142 + ? (c < 3090 + ? (c < 3086 + ? (c >= 3077 && c <= 3084) + : c <= 3088) + : (c <= 3112 || (c < 3133 + ? (c >= 3114 && c <= 3129) + : c <= 3140))) + : (c <= 3144 || (c < 3160 + ? (c < 3157 + ? (c >= 3146 && c <= 3148) + : c <= 3158) + : (c <= 3162 || (c < 3168 + ? c == 3165 + : c <= 3171))))) + : (c <= 3183 || (c < 3253 + ? (c < 3214 + ? (c < 3205 + ? (c >= 3200 && c <= 3203) + : c <= 3212) + : (c <= 3216 || (c < 3242 + ? (c >= 3218 && c <= 3240) + : c <= 3251))) + : (c <= 3257 || (c < 3274 + ? (c < 3270 + ? (c >= 3261 && c <= 3268) + : c <= 3272) + : (c <= 3276 || (c >= 3285 && c <= 3286))))))) + : (c <= 3294 || (c < 3423 + ? (c < 3346 + ? (c < 3313 + ? (c < 3302 + ? (c >= 3296 && c <= 3299) + : c <= 3311) + : (c <= 3314 || (c < 3342 + ? (c >= 3328 && c <= 3340) + : c <= 3344))) + : (c <= 3386 || (c < 3402 + ? (c < 3398 + ? (c >= 3389 && c <= 3396) + : c <= 3400) + : (c <= 3404 || (c < 3412 + ? c == 3406 + : c <= 3415))))) + : (c <= 3427 || (c < 3507 + ? (c < 3457 + ? (c < 3450 + ? (c >= 3430 && c <= 3439) + : c <= 3455) + : (c <= 3459 || (c < 3482 + ? (c >= 3461 && c <= 3478) + : c <= 3505))) + : (c <= 3515 || (c < 3535 + ? (c < 3520 + ? c == 3517 + : c <= 3526) + : (c <= 3540 || c == 3542)))))))))))) + : (c <= 3551 || (c < 7040 + ? (c < 4824 + ? (c < 3976 + ? (c < 3751 + ? (c < 3664 + ? (c < 3585 + ? (c < 3570 + ? (c >= 3558 && c <= 3567) + : c <= 3571) + : (c <= 3642 || (c < 3661 + ? (c >= 3648 && c <= 3654) + : c <= 3661))) + : (c <= 3673 || (c < 3718 + ? (c < 3716 + ? (c >= 3713 && c <= 3714) + : c <= 3716) + : (c <= 3722 || (c < 3749 + ? (c >= 3724 && c <= 3747) + : c <= 3749))))) + : (c <= 3769 || (c < 3804 + ? (c < 3782 + ? (c < 3776 + ? (c >= 3771 && c <= 3773) + : c <= 3780) + : (c <= 3782 || (c < 3792 + ? c == 3789 + : c <= 3801))) + : (c <= 3807 || (c < 3904 + ? (c < 3872 + ? c == 3840 + : c <= 3881) + : (c <= 3911 || (c < 3953 + ? (c >= 3913 && c <= 3948) + : c <= 3969))))))) + : (c <= 3991 || (c < 4688 + ? (c < 4256 + ? (c < 4152 + ? (c < 4096 + ? (c >= 3993 && c <= 4028) + : c <= 4150) + : (c <= 4152 || (c < 4176 + ? (c >= 4155 && c <= 4169) + : c <= 4253))) + : (c <= 4293 || (c < 4304 + ? (c < 4301 + ? c == 4295 + : c <= 4301) + : (c <= 4346 || (c < 4682 + ? (c >= 4348 && c <= 4680) + : c <= 4685))))) + : (c <= 4694 || (c < 4786 + ? (c < 4704 + ? (c < 4698 + ? c == 4696 + : c <= 4701) + : (c <= 4744 || (c < 4752 + ? (c >= 4746 && c <= 4749) + : c <= 4784))) + : (c <= 4789 || (c < 4802 + ? (c < 4800 + ? (c >= 4792 && c <= 4798) + : c <= 4800) + : (c <= 4805 || (c >= 4808 && c <= 4822))))))))) + : (c <= 4880 || (c < 6176 + ? (c < 5919 ? (c < 5121 - ? (c < 5024 - ? (c >= 4992 && c <= 5007) - : (c <= 5109 || (c >= 5112 && c <= 5117))) - : (c <= 5740 || (c < 5761 - ? (c >= 5743 && c <= 5759) - : c <= 5786))) - : (c <= 5866 || (c < 5952 - ? (c < 5888 - ? (c >= 5873 && c <= 5880) - : (c <= 5905 || (c >= 5919 && c <= 5937))) - : (c <= 5969 || (c < 5998 - ? (c >= 5984 && c <= 5996) - : c <= 6000))))) - : (c <= 6067 || (c < 6320 - ? (c < 6272 - ? (c < 6108 - ? c == 6103 - : (c <= 6108 || (c >= 6176 && c <= 6264))) - : (c <= 6276 || (c < 6314 - ? (c >= 6279 && c <= 6312) - : c <= 6314))) - : (c <= 6389 || (c < 6512 - ? (c < 6480 - ? (c >= 6400 && c <= 6430) - : c <= 6509) - : (c <= 6516 || (c < 6576 - ? (c >= 6528 && c <= 6571) - : c <= 6601))))))))))))) - : (c <= 6678 || (c < 43259 - ? (c < 8579 - ? (c < 8031 - ? (c < 7401 - ? (c < 7098 - ? (c < 6981 - ? (c < 6823 - ? (c >= 6688 && c <= 6740) - : (c <= 6823 || (c >= 6917 && c <= 6963))) - : (c <= 6988 || (c < 7086 - ? (c >= 7043 && c <= 7072) - : c <= 7087))) - : (c <= 7141 || (c < 7296 - ? (c < 7245 - ? (c >= 7168 && c <= 7203) - : (c <= 7247 || (c >= 7258 && c <= 7293))) - : (c <= 7304 || (c < 7357 - ? (c >= 7312 && c <= 7354) - : c <= 7359))))) - : (c <= 7404 || (c < 7968 - ? (c < 7424 - ? (c < 7413 - ? (c >= 7406 && c <= 7411) - : (c <= 7414 || c == 7418)) - : (c <= 7615 || (c < 7960 - ? (c >= 7680 && c <= 7957) - : c <= 7965))) - : (c <= 8005 || (c < 8025 - ? (c < 8016 - ? (c >= 8008 && c <= 8013) - : c <= 8023) - : (c <= 8025 || (c < 8029 - ? c == 8027 - : c <= 8029))))))) - : (c <= 8061 || (c < 8450 - ? (c < 8150 - ? (c < 8130 - ? (c < 8118 - ? (c >= 8064 && c <= 8116) - : (c <= 8124 || c == 8126)) - : (c <= 8132 || (c < 8144 - ? (c >= 8134 && c <= 8140) - : c <= 8147))) - : (c <= 8155 || (c < 8305 - ? (c < 8178 - ? (c >= 8160 && c <= 8172) - : (c <= 8180 || (c >= 8182 && c <= 8188))) - : (c <= 8305 || (c < 8336 - ? c == 8319 - : c <= 8348))))) - : (c <= 8450 || (c < 8488 - ? (c < 8473 - ? (c < 8458 - ? c == 8455 - : (c <= 8467 || c == 8469)) - : (c <= 8477 || (c < 8486 - ? c == 8484 - : c <= 8486))) - : (c <= 8488 || (c < 8508 - ? (c < 8495 - ? (c >= 8490 && c <= 8493) - : c <= 8505) - : (c <= 8511 || (c < 8526 - ? (c >= 8517 && c <= 8521) - : c <= 8526))))))))) - : (c <= 8580 || (c < 12593 - ? (c < 11712 + ? (c < 4992 + ? (c < 4888 + ? (c >= 4882 && c <= 4885) + : c <= 4954) + : (c <= 5007 || (c < 5112 + ? (c >= 5024 && c <= 5109) + : c <= 5117))) + : (c <= 5740 || (c < 5792 + ? (c < 5761 + ? (c >= 5743 && c <= 5759) + : c <= 5786) + : (c <= 5866 || (c < 5888 + ? (c >= 5870 && c <= 5880) + : c <= 5907))))) + : (c <= 5939 || (c < 6070 + ? (c < 5998 + ? (c < 5984 + ? (c >= 5952 && c <= 5971) + : c <= 5996) + : (c <= 6000 || (c < 6016 + ? (c >= 6002 && c <= 6003) + : c <= 6067))) + : (c <= 6088 || (c < 6112 + ? (c < 6108 + ? c == 6103 + : c <= 6108) + : (c <= 6121 || (c >= 6160 && c <= 6169))))))) + : (c <= 6264 || (c < 6688 + ? (c < 6470 + ? (c < 6400 + ? (c < 6320 + ? (c >= 6272 && c <= 6314) + : c <= 6389) + : (c <= 6430 || (c < 6448 + ? (c >= 6432 && c <= 6443) + : c <= 6456))) + : (c <= 6509 || (c < 6576 + ? (c < 6528 + ? (c >= 6512 && c <= 6516) + : c <= 6571) + : (c <= 6601 || (c < 6656 + ? (c >= 6608 && c <= 6617) + : c <= 6683))))) + : (c <= 6750 || (c < 6860 + ? (c < 6800 + ? (c < 6784 + ? (c >= 6753 && c <= 6772) + : c <= 6793) + : (c <= 6809 || (c < 6847 + ? c == 6823 + : c <= 6848))) + : (c <= 6862 || (c < 6981 + ? (c < 6965 + ? (c >= 6912 && c <= 6963) + : c <= 6979) + : (c <= 6988 || (c >= 6992 && c <= 7001))))))))))) + : (c <= 7081 || (c < 8495 + ? (c < 8031 + ? (c < 7418 + ? (c < 7296 + ? (c < 7168 + ? (c < 7143 + ? (c >= 7084 && c <= 7141) + : c <= 7153) + : (c <= 7222 || (c < 7245 + ? (c >= 7232 && c <= 7241) + : c <= 7293))) + : (c <= 7304 || (c < 7401 + ? (c < 7357 + ? (c >= 7312 && c <= 7354) + : c <= 7359) + : (c <= 7404 || (c < 7413 + ? (c >= 7406 && c <= 7411) + : c <= 7414))))) + : (c <= 7418 || (c < 8008 + ? (c < 7680 + ? (c < 7655 + ? (c >= 7424 && c <= 7615) + : c <= 7668) + : (c <= 7957 || (c < 7968 + ? (c >= 7960 && c <= 7965) + : c <= 8005))) + : (c <= 8013 || (c < 8027 + ? (c < 8025 + ? (c >= 8016 && c <= 8023) + : c <= 8025) + : (c <= 8027 || c == 8029)))))) + : (c <= 8061 || (c < 8319 + ? (c < 8144 + ? (c < 8126 + ? (c < 8118 + ? (c >= 8064 && c <= 8116) + : c <= 8124) + : (c <= 8126 || (c < 8134 + ? (c >= 8130 && c <= 8132) + : c <= 8140))) + : (c <= 8147 || (c < 8178 + ? (c < 8160 + ? (c >= 8150 && c <= 8155) + : c <= 8172) + : (c <= 8180 || (c < 8305 + ? (c >= 8182 && c <= 8188) + : c <= 8305))))) + : (c <= 8319 || (c < 8473 + ? (c < 8455 + ? (c < 8450 + ? (c >= 8336 && c <= 8348) + : c <= 8450) + : (c <= 8455 || (c < 8469 + ? (c >= 8458 && c <= 8467) + : c <= 8469))) + : (c <= 8477 || (c < 8488 + ? (c < 8486 + ? c == 8484 + : c <= 8486) + : (c <= 8488 || (c >= 8490 && c <= 8493))))))))) + : (c <= 8505 || (c < 11744 ? (c < 11568 - ? (c < 11520 - ? (c < 11499 - ? (c >= 11264 && c <= 11492) - : (c <= 11502 || (c >= 11506 && c <= 11507))) - : (c <= 11557 || (c < 11565 - ? c == 11559 - : c <= 11565))) - : (c <= 11623 || (c < 11688 - ? (c < 11648 - ? c == 11631 - : (c <= 11670 || (c >= 11680 && c <= 11686))) - : (c <= 11694 || (c < 11704 - ? (c >= 11696 && c <= 11702) - : c <= 11710))))) - : (c <= 11718 || (c < 12347 - ? (c < 11823 - ? (c < 11728 - ? (c >= 11720 && c <= 11726) - : (c <= 11734 || (c >= 11736 && c <= 11742))) - : (c <= 11823 || (c < 12337 - ? (c >= 12293 && c <= 12294) - : c <= 12341))) - : (c <= 12348 || (c < 12449 - ? (c < 12445 - ? (c >= 12353 && c <= 12438) - : c <= 12447) - : (c <= 12538 || (c < 12549 - ? (c >= 12540 && c <= 12543) - : c <= 12591))))))) - : (c <= 12686 || (c < 42775 - ? (c < 42192 - ? (c < 19903 - ? (c < 12784 - ? (c >= 12704 && c <= 12735) - : (c <= 12799 || c == 13312)) - : (c <= 19903 || (c < 40959 - ? c == 19968 - : c <= 42124))) - : (c <= 42237 || (c < 42560 - ? (c < 42512 - ? (c >= 42240 && c <= 42508) - : (c <= 42527 || (c >= 42538 && c <= 42539))) - : (c <= 42606 || (c < 42656 - ? (c >= 42623 && c <= 42653) - : c <= 42725))))) - : (c <= 42783 || (c < 43011 - ? (c < 42963 - ? (c < 42891 - ? (c >= 42786 && c <= 42888) - : (c <= 42954 || (c >= 42960 && c <= 42961))) - : (c <= 42963 || (c < 42994 - ? (c >= 42965 && c <= 42969) - : c <= 43009))) - : (c <= 43013 || (c < 43072 - ? (c < 43020 - ? (c >= 43015 && c <= 43018) - : c <= 43042) - : (c <= 43123 || (c < 43250 - ? (c >= 43138 && c <= 43187) - : c <= 43255))))))))))) - : (c <= 43259 || (c < 65313 - ? (c < 43808 + ? (c < 11264 + ? (c < 8526 + ? (c < 8517 + ? (c >= 8508 && c <= 8511) + : c <= 8521) + : (c <= 8526 || (c < 9398 + ? (c >= 8544 && c <= 8584) + : c <= 9449))) + : (c <= 11492 || (c < 11520 + ? (c < 11506 + ? (c >= 11499 && c <= 11502) + : c <= 11507) + : (c <= 11557 || (c < 11565 + ? c == 11559 + : c <= 11565))))) + : (c <= 11623 || (c < 11704 + ? (c < 11680 + ? (c < 11648 + ? c == 11631 + : c <= 11670) + : (c <= 11686 || (c < 11696 + ? (c >= 11688 && c <= 11694) + : c <= 11702))) + : (c <= 11710 || (c < 11728 + ? (c < 11720 + ? (c >= 11712 && c <= 11718) + : c <= 11726) + : (c <= 11734 || (c >= 11736 && c <= 11742))))))) + : (c <= 11775 || (c < 12704 + ? (c < 12353 + ? (c < 12321 + ? (c < 12293 + ? c == 11823 + : c <= 12295) + : (c <= 12329 || (c < 12344 + ? (c >= 12337 && c <= 12341) + : c <= 12348))) + : (c <= 12438 || (c < 12540 + ? (c < 12449 + ? (c >= 12445 && c <= 12447) + : c <= 12538) + : (c <= 12543 || (c < 12593 + ? (c >= 12549 && c <= 12591) + : c <= 12686))))) + : (c <= 12735 || (c < 42512 + ? (c < 19968 + ? (c < 13312 + ? (c >= 12784 && c <= 12799) + : c <= 19903) + : (c <= 42124 || (c < 42240 + ? (c >= 42192 && c <= 42237) + : c <= 42508))) + : (c <= 42539 || (c < 42623 + ? (c < 42612 + ? (c >= 42560 && c <= 42606) + : c <= 42619) + : (c <= 42735 || (c >= 42775 && c <= 42783))))))))))))))) + : (c <= 42888 || (c < 70784 + ? (c < 66964 + ? (c < 64298 ? (c < 43642 - ? (c < 43488 - ? (c < 43360 - ? (c < 43274 - ? (c >= 43261 && c <= 43262) - : (c <= 43301 || (c >= 43312 && c <= 43334))) - : (c <= 43388 || (c < 43471 - ? (c >= 43396 && c <= 43442) - : c <= 43471))) - : (c <= 43492 || (c < 43584 - ? (c < 43514 - ? (c >= 43494 && c <= 43503) - : (c <= 43518 || (c >= 43520 && c <= 43560))) - : (c <= 43586 || (c < 43616 - ? (c >= 43588 && c <= 43595) - : c <= 43638))))) - : (c <= 43642 || (c < 43739 - ? (c < 43705 - ? (c < 43697 - ? (c >= 43646 && c <= 43695) - : (c <= 43697 || (c >= 43701 && c <= 43702))) - : (c <= 43709 || (c < 43714 - ? c == 43712 - : c <= 43714))) - : (c <= 43741 || (c < 43777 - ? (c < 43762 - ? (c >= 43744 && c <= 43754) - : c <= 43764) - : (c <= 43782 || (c < 43793 - ? (c >= 43785 && c <= 43790) - : c <= 43798))))))) - : (c <= 43814 || (c < 64287 - ? (c < 55216 - ? (c < 43888 - ? (c < 43824 - ? (c >= 43816 && c <= 43822) - : (c <= 43866 || (c >= 43868 && c <= 43881))) - : (c <= 44002 || (c < 55203 - ? c == 44032 - : c <= 55203))) - : (c <= 55238 || (c < 64256 - ? (c < 63744 - ? (c >= 55243 && c <= 55291) - : (c <= 64109 || (c >= 64112 && c <= 64217))) - : (c <= 64262 || (c < 64285 - ? (c >= 64275 && c <= 64279) - : c <= 64285))))) - : (c <= 64296 || (c < 64467 - ? (c < 64320 - ? (c < 64312 - ? (c >= 64298 && c <= 64310) - : (c <= 64316 || c == 64318)) - : (c <= 64321 || (c < 64326 - ? (c >= 64323 && c <= 64324) - : c <= 64433))) - : (c <= 64829 || (c < 65008 - ? (c < 64914 - ? (c >= 64848 && c <= 64911) - : c <= 64967) - : (c <= 65019 || (c < 65142 - ? (c >= 65136 && c <= 65140) - : c <= 65276))))))))) - : (c <= 65338 || (c < 66864 - ? (c < 66176 - ? (c < 65536 - ? (c < 65482 + ? (c < 43259 + ? (c < 43015 + ? (c < 42963 + ? (c < 42960 + ? (c >= 42891 && c <= 42954) + : c <= 42961) + : (c <= 42963 || (c < 42994 + ? (c >= 42965 && c <= 42969) + : c <= 43013))) + : (c <= 43047 || (c < 43205 + ? (c < 43136 + ? (c >= 43072 && c <= 43123) + : c <= 43203) + : (c <= 43205 || (c < 43250 + ? (c >= 43216 && c <= 43225) + : c <= 43255))))) + : (c <= 43259 || (c < 43471 + ? (c < 43360 + ? (c < 43312 + ? (c >= 43261 && c <= 43306) + : c <= 43346) + : (c <= 43388 || (c < 43444 + ? (c >= 43392 && c <= 43442) + : c <= 43455))) + : (c <= 43481 || (c < 43584 + ? (c < 43520 + ? (c >= 43488 && c <= 43518) + : c <= 43574) + : (c <= 43597 || (c < 43616 + ? (c >= 43600 && c <= 43609) + : c <= 43638))))))) + : (c <= 43710 || (c < 43868 + ? (c < 43777 + ? (c < 43739 + ? (c < 43714 + ? c == 43712 + : c <= 43714) + : (c <= 43741 || (c < 43762 + ? (c >= 43744 && c <= 43759) + : c <= 43765))) + : (c <= 43782 || (c < 43808 + ? (c < 43793 + ? (c >= 43785 && c <= 43790) + : c <= 43798) + : (c <= 43814 || (c < 43824 + ? (c >= 43816 && c <= 43822) + : c <= 43866))))) + : (c <= 43881 || (c < 63744 + ? (c < 44032 + ? (c < 44016 + ? (c >= 43888 && c <= 44010) + : c <= 44025) + : (c <= 55203 || (c < 55243 + ? (c >= 55216 && c <= 55238) + : c <= 55291))) + : (c <= 64109 || (c < 64275 + ? (c < 64256 + ? (c >= 64112 && c <= 64217) + : c <= 64262) + : (c <= 64279 || (c >= 64285 && c <= 64296))))))))) + : (c <= 64310 || (c < 65596 + ? (c < 65296 + ? (c < 64467 + ? (c < 64320 + ? (c < 64318 + ? (c >= 64312 && c <= 64316) + : c <= 64318) + : (c <= 64321 || (c < 64326 + ? (c >= 64323 && c <= 64324) + : c <= 64433))) + : (c <= 64829 || (c < 65008 + ? (c < 64914 + ? (c >= 64848 && c <= 64911) + : c <= 64967) + : (c <= 65019 || (c < 65142 + ? (c >= 65136 && c <= 65140) + : c <= 65276))))) + : (c <= 65305 || (c < 65490 ? (c < 65382 - ? (c >= 65345 && c <= 65370) - : (c <= 65470 || (c >= 65474 && c <= 65479))) - : (c <= 65487 || (c < 65498 - ? (c >= 65490 && c <= 65495) - : c <= 65500))) - : (c <= 65547 || (c < 65599 - ? (c < 65576 - ? (c >= 65549 && c <= 65574) - : (c <= 65594 || (c >= 65596 && c <= 65597))) - : (c <= 65613 || (c < 65664 - ? (c >= 65616 && c <= 65629) - : c <= 65786))))) - : (c <= 66204 || (c < 66464 - ? (c < 66370 - ? (c < 66304 - ? (c >= 66208 && c <= 66256) - : (c <= 66335 || (c >= 66349 && c <= 66368))) - : (c <= 66377 || (c < 66432 - ? (c >= 66384 && c <= 66421) - : c <= 66461))) - : (c <= 66499 || (c < 66736 - ? (c < 66560 - ? (c >= 66504 && c <= 66511) - : c <= 66717) - : (c <= 66771 || (c < 66816 - ? (c >= 66776 && c <= 66811) - : c <= 66855))))))) - : (c <= 66915 || (c < 67506 - ? (c < 66995 - ? (c < 66964 - ? (c < 66940 - ? (c >= 66928 && c <= 66938) - : (c <= 66954 || (c >= 66956 && c <= 66962))) - : (c <= 66965 || (c < 66979 - ? (c >= 66967 && c <= 66977) - : c <= 66993))) - : (c <= 67001 || (c < 67424 - ? (c < 67072 - ? (c >= 67003 && c <= 67004) - : (c <= 67382 || (c >= 67392 && c <= 67413))) - : (c <= 67431 || (c < 67463 - ? (c >= 67456 && c <= 67461) - : c <= 67504))))) - : (c <= 67514 || (c < 67680 - ? (c < 67639 - ? (c < 67592 - ? (c >= 67584 && c <= 67589) - : (c <= 67592 || (c >= 67594 && c <= 67637))) - : (c <= 67640 || (c < 67647 - ? c == 67644 - : c <= 67669))) - : (c <= 67702 || (c < 67828 - ? (c < 67808 - ? (c >= 67712 && c <= 67742) - : c <= 67826) - : (c <= 67829 || (c < 67872 - ? (c >= 67840 && c <= 67861) - : c <= 67883))))))))))))))); + ? (c < 65345 + ? (c >= 65313 && c <= 65338) + : c <= 65370) + : (c <= 65470 || (c < 65482 + ? (c >= 65474 && c <= 65479) + : c <= 65487))) + : (c <= 65495 || (c < 65549 + ? (c < 65536 + ? (c >= 65498 && c <= 65500) + : c <= 65547) + : (c <= 65574 || (c >= 65576 && c <= 65594))))))) + : (c <= 65597 || (c < 66504 + ? (c < 66208 + ? (c < 65664 + ? (c < 65616 + ? (c >= 65599 && c <= 65613) + : c <= 65629) + : (c <= 65786 || (c < 66176 + ? (c >= 65856 && c <= 65908) + : c <= 66204))) + : (c <= 66256 || (c < 66384 + ? (c < 66349 + ? (c >= 66304 && c <= 66335) + : c <= 66378) + : (c <= 66426 || (c < 66464 + ? (c >= 66432 && c <= 66461) + : c <= 66499))))) + : (c <= 66511 || (c < 66816 + ? (c < 66720 + ? (c < 66560 + ? (c >= 66513 && c <= 66517) + : c <= 66717) + : (c <= 66729 || (c < 66776 + ? (c >= 66736 && c <= 66771) + : c <= 66811))) + : (c <= 66855 || (c < 66940 + ? (c < 66928 + ? (c >= 66864 && c <= 66915) + : c <= 66938) + : (c <= 66954 || (c >= 66956 && c <= 66962))))))))))) + : (c <= 66965 || (c < 69415 + ? (c < 67968 + ? (c < 67592 + ? (c < 67392 + ? (c < 66995 + ? (c < 66979 + ? (c >= 66967 && c <= 66977) + : c <= 66993) + : (c <= 67001 || (c < 67072 + ? (c >= 67003 && c <= 67004) + : c <= 67382))) + : (c <= 67413 || (c < 67463 + ? (c < 67456 + ? (c >= 67424 && c <= 67431) + : c <= 67461) + : (c <= 67504 || (c < 67584 + ? (c >= 67506 && c <= 67514) + : c <= 67589))))) + : (c <= 67592 || (c < 67712 + ? (c < 67644 + ? (c < 67639 + ? (c >= 67594 && c <= 67637) + : c <= 67640) + : (c <= 67644 || (c < 67680 + ? (c >= 67647 && c <= 67669) + : c <= 67702))) + : (c <= 67742 || (c < 67840 + ? (c < 67828 + ? (c >= 67808 && c <= 67826) + : c <= 67829) + : (c <= 67861 || (c >= 67872 && c <= 67897))))))) + : (c <= 68023 || (c < 68416 + ? (c < 68121 + ? (c < 68101 + ? (c < 68096 + ? (c >= 68030 && c <= 68031) + : c <= 68099) + : (c <= 68102 || (c < 68117 + ? (c >= 68108 && c <= 68115) + : c <= 68119))) + : (c <= 68149 || (c < 68288 + ? (c < 68224 + ? (c >= 68192 && c <= 68220) + : c <= 68252) + : (c <= 68295 || (c < 68352 + ? (c >= 68297 && c <= 68324) + : c <= 68405))))) + : (c <= 68437 || (c < 68864 + ? (c < 68608 + ? (c < 68480 + ? (c >= 68448 && c <= 68466) + : c <= 68497) + : (c <= 68680 || (c < 68800 + ? (c >= 68736 && c <= 68786) + : c <= 68850))) + : (c <= 68903 || (c < 69296 + ? (c < 69291 + ? (c >= 69248 && c <= 69289) + : c <= 69292) + : (c <= 69297 || (c >= 69376 && c <= 69404))))))))) + : (c <= 69415 || (c < 70272 + ? (c < 69968 + ? (c < 69745 + ? (c < 69552 + ? (c < 69488 + ? (c >= 69424 && c <= 69445) + : c <= 69505) + : (c <= 69572 || (c < 69632 + ? (c >= 69600 && c <= 69622) + : c <= 69701))) + : (c <= 69749 || (c < 69840 + ? (c < 69826 + ? (c >= 69762 && c <= 69816) + : c <= 69826) + : (c <= 69864 || (c < 69956 + ? (c >= 69888 && c <= 69938) + : c <= 69959))))) + : (c <= 70002 || (c < 70108 + ? (c < 70081 + ? (c < 70016 + ? c == 70006 + : c <= 70079) + : (c <= 70084 || (c < 70106 + ? (c >= 70094 && c <= 70095) + : c <= 70106))) + : (c <= 70108 || (c < 70199 + ? (c < 70163 + ? (c >= 70144 && c <= 70161) + : c <= 70196) + : (c <= 70199 || c == 70206)))))) + : (c <= 70278 || (c < 70453 + ? (c < 70400 + ? (c < 70287 + ? (c < 70282 + ? c == 70280 + : c <= 70285) + : (c <= 70301 || (c < 70320 + ? (c >= 70303 && c <= 70312) + : c <= 70376))) + : (c <= 70403 || (c < 70419 + ? (c < 70415 + ? (c >= 70405 && c <= 70412) + : c <= 70416) + : (c <= 70440 || (c < 70450 + ? (c >= 70442 && c <= 70448) + : c <= 70451))))) + : (c <= 70457 || (c < 70493 + ? (c < 70475 + ? (c < 70471 + ? (c >= 70461 && c <= 70468) + : c <= 70472) + : (c <= 70476 || (c < 70487 + ? c == 70480 + : c <= 70487))) + : (c <= 70499 || (c < 70727 + ? (c < 70723 + ? (c >= 70656 && c <= 70721) + : c <= 70725) + : (c <= 70730 || (c >= 70751 && c <= 70753))))))))))))) + : (c <= 70849 || (c < 119808 + ? (c < 73027 + ? (c < 72096 + ? (c < 71453 + ? (c < 71168 + ? (c < 71040 + ? (c < 70855 + ? (c >= 70852 && c <= 70853) + : c <= 70855) + : (c <= 71093 || (c < 71128 + ? (c >= 71096 && c <= 71102) + : c <= 71133))) + : (c <= 71230 || (c < 71296 + ? (c < 71236 + ? c == 71232 + : c <= 71236) + : (c <= 71349 || (c < 71424 + ? c == 71352 + : c <= 71450))))) + : (c <= 71466 || (c < 71948 + ? (c < 71840 + ? (c < 71680 + ? (c >= 71488 && c <= 71494) + : c <= 71736) + : (c <= 71903 || (c < 71945 + ? (c >= 71935 && c <= 71942) + : c <= 71945))) + : (c <= 71955 || (c < 71991 + ? (c < 71960 + ? (c >= 71957 && c <= 71958) + : c <= 71989) + : (c <= 71992 || (c < 71999 + ? (c >= 71995 && c <= 71996) + : c <= 72002))))))) + : (c <= 72103 || (c < 72760 + ? (c < 72245 + ? (c < 72161 + ? (c < 72154 + ? (c >= 72106 && c <= 72151) + : c <= 72159) + : (c <= 72161 || (c < 72192 + ? (c >= 72163 && c <= 72164) + : c <= 72242))) + : (c <= 72254 || (c < 72368 + ? (c < 72349 + ? (c >= 72272 && c <= 72343) + : c <= 72349) + : (c <= 72440 || (c < 72714 + ? (c >= 72704 && c <= 72712) + : c <= 72758))))) + : (c <= 72766 || (c < 72968 + ? (c < 72850 + ? (c < 72818 + ? c == 72768 + : c <= 72847) + : (c <= 72871 || (c < 72960 + ? (c >= 72873 && c <= 72886) + : c <= 72966))) + : (c <= 72969 || (c < 73020 + ? (c < 73018 + ? (c >= 72971 && c <= 73014) + : c <= 73018) + : (c <= 73021 || (c >= 73023 && c <= 73025))))))))) + : (c <= 73027 || (c < 93053 + ? (c < 74880 + ? (c < 73107 + ? (c < 73063 + ? (c < 73056 + ? (c >= 73030 && c <= 73031) + : c <= 73061) + : (c <= 73064 || (c < 73104 + ? (c >= 73066 && c <= 73102) + : c <= 73105))) + : (c <= 73110 || (c < 73648 + ? (c < 73440 + ? c == 73112 + : c <= 73462) + : (c <= 73648 || (c < 74752 + ? (c >= 73728 && c <= 74649) + : c <= 74862))))) + : (c <= 75075 || (c < 92784 + ? (c < 82944 + ? (c < 77824 + ? (c >= 77712 && c <= 77808) + : c <= 78894) + : (c <= 83526 || (c < 92736 + ? (c >= 92160 && c <= 92728) + : c <= 92766))) + : (c <= 92862 || (c < 92992 + ? (c < 92928 + ? (c >= 92880 && c <= 92909) + : c <= 92975) + : (c <= 92995 || (c >= 93027 && c <= 93047))))))) + : (c <= 93071 || (c < 110581 + ? (c < 94179 + ? (c < 94031 + ? (c < 93952 + ? (c >= 93760 && c <= 93823) + : c <= 94026) + : (c <= 94087 || (c < 94176 + ? (c >= 94095 && c <= 94111) + : c <= 94177))) + : (c <= 94179 || (c < 100352 + ? (c < 94208 + ? (c >= 94192 && c <= 94193) + : c <= 100343) + : (c <= 101589 || (c < 110576 + ? (c >= 101632 && c <= 101640) + : c <= 110579))))) + : (c <= 110587 || (c < 113664 + ? (c < 110928 + ? (c < 110592 + ? (c >= 110589 && c <= 110590) + : c <= 110882) + : (c <= 110930 || (c < 110960 + ? (c >= 110948 && c <= 110951) + : c <= 111355))) + : (c <= 113770 || (c < 113808 + ? (c < 113792 + ? (c >= 113776 && c <= 113788) + : c <= 113800) + : (c <= 113817 || c == 113822)))))))))) + : (c <= 119892 || (c < 125184 + ? (c < 120598 + ? (c < 120086 + ? (c < 119982 + ? (c < 119970 + ? (c < 119966 + ? (c >= 119894 && c <= 119964) + : c <= 119967) + : (c <= 119970 || (c < 119977 + ? (c >= 119973 && c <= 119974) + : c <= 119980))) + : (c <= 119993 || (c < 120005 + ? (c < 119997 + ? c == 119995 + : c <= 120003) + : (c <= 120069 || (c < 120077 + ? (c >= 120071 && c <= 120074) + : c <= 120084))))) + : (c <= 120092 || (c < 120146 + ? (c < 120128 + ? (c < 120123 + ? (c >= 120094 && c <= 120121) + : c <= 120126) + : (c <= 120132 || (c < 120138 + ? c == 120134 + : c <= 120144))) + : (c <= 120485 || (c < 120540 + ? (c < 120514 + ? (c >= 120488 && c <= 120512) + : c <= 120538) + : (c <= 120570 || (c >= 120572 && c <= 120596))))))) + : (c <= 120628 || (c < 122918 + ? (c < 120772 + ? (c < 120688 + ? (c < 120656 + ? (c >= 120630 && c <= 120654) + : c <= 120686) + : (c <= 120712 || (c < 120746 + ? (c >= 120714 && c <= 120744) + : c <= 120770))) + : (c <= 120779 || (c < 122888 + ? (c < 122880 + ? (c >= 122624 && c <= 122654) + : c <= 122886) + : (c <= 122904 || (c < 122915 + ? (c >= 122907 && c <= 122913) + : c <= 122916))))) + : (c <= 122922 || (c < 124896 + ? (c < 123214 + ? (c < 123191 + ? (c >= 123136 && c <= 123180) + : c <= 123197) + : (c <= 123214 || (c < 123584 + ? (c >= 123536 && c <= 123565) + : c <= 123627))) + : (c <= 124902 || (c < 124912 + ? (c < 124909 + ? (c >= 124904 && c <= 124907) + : c <= 124910) + : (c <= 124926 || (c >= 124928 && c <= 125124))))))))) + : (c <= 125251 || (c < 126559 + ? (c < 126530 + ? (c < 126500 + ? (c < 126464 + ? (c < 125259 + ? c == 125255 + : c <= 125259) + : (c <= 126467 || (c < 126497 + ? (c >= 126469 && c <= 126495) + : c <= 126498))) + : (c <= 126500 || (c < 126516 + ? (c < 126505 + ? c == 126503 + : c <= 126514) + : (c <= 126519 || (c < 126523 + ? c == 126521 + : c <= 126523))))) + : (c <= 126530 || (c < 126548 + ? (c < 126539 + ? (c < 126537 + ? c == 126535 + : c <= 126537) + : (c <= 126539 || (c < 126545 + ? (c >= 126541 && c <= 126543) + : c <= 126546))) + : (c <= 126548 || (c < 126555 + ? (c < 126553 + ? c == 126551 + : c <= 126553) + : (c <= 126555 || c == 126557)))))) + : (c <= 126559 || (c < 126635 + ? (c < 126585 + ? (c < 126567 + ? (c < 126564 + ? (c >= 126561 && c <= 126562) + : c <= 126564) + : (c <= 126570 || (c < 126580 + ? (c >= 126572 && c <= 126578) + : c <= 126583))) + : (c <= 126588 || (c < 126603 + ? (c < 126592 + ? c == 126590 + : c <= 126601) + : (c <= 126619 || (c < 126629 + ? (c >= 126625 && c <= 126627) + : c <= 126633))))) + : (c <= 126651 || (c < 177984 + ? (c < 127344 + ? (c < 127312 + ? (c >= 127280 && c <= 127305) + : c <= 127337) + : (c <= 127369 || (c < 173824 + ? (c >= 131072 && c <= 173791) + : c <= 177976))) + : (c <= 178205 || (c < 194560 + ? (c < 183984 + ? (c >= 178208 && c <= 183969) + : c <= 191456) + : (c <= 195101 || (c >= 196608 && c <= 201546))))))))))))))))); } static bool ts_lex(TSLexer *lexer, TSStateId state) { @@ -2305,14 +3186,14 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [6] = {.lex_state = 2}, [7] = {.lex_state = 2}, [8] = {.lex_state = 2}, - [9] = {.lex_state = 12}, + [9] = {.lex_state = 2}, [10] = {.lex_state = 2}, [11] = {.lex_state = 2}, [12] = {.lex_state = 2}, [13] = {.lex_state = 2}, [14] = {.lex_state = 2}, [15] = {.lex_state = 2}, - [16] = {.lex_state = 2}, + [16] = {.lex_state = 12}, [17] = {.lex_state = 2}, [18] = {.lex_state = 2}, [19] = {.lex_state = 2}, @@ -2326,27 +3207,27 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [27] = {.lex_state = 2}, [28] = {.lex_state = 12}, [29] = {.lex_state = 12}, - [30] = {.lex_state = 12}, + [30] = {.lex_state = 2}, [31] = {.lex_state = 2}, [32] = {.lex_state = 2}, [33] = {.lex_state = 2}, - [34] = {.lex_state = 12}, - [35] = {.lex_state = 12}, - [36] = {.lex_state = 12}, - [37] = {.lex_state = 2}, - [38] = {.lex_state = 12}, + [34] = {.lex_state = 2}, + [35] = {.lex_state = 2}, + [36] = {.lex_state = 2}, + [37] = {.lex_state = 12}, + [38] = {.lex_state = 2}, [39] = {.lex_state = 2}, [40] = {.lex_state = 2}, [41] = {.lex_state = 12}, [42] = {.lex_state = 12}, [43] = {.lex_state = 12}, - [44] = {.lex_state = 2}, + [44] = {.lex_state = 12}, [45] = {.lex_state = 12}, [46] = {.lex_state = 12}, [47] = {.lex_state = 12}, [48] = {.lex_state = 12}, - [49] = {.lex_state = 2}, - [50] = {.lex_state = 2}, + [49] = {.lex_state = 12}, + [50] = {.lex_state = 12}, [51] = {.lex_state = 12}, [52] = {.lex_state = 12}, [53] = {.lex_state = 12}, @@ -2356,13 +3237,13 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [57] = {.lex_state = 12}, [58] = {.lex_state = 12}, [59] = {.lex_state = 12}, - [60] = {.lex_state = 2}, - [61] = {.lex_state = 2}, + [60] = {.lex_state = 12}, + [61] = {.lex_state = 12}, [62] = {.lex_state = 12}, [63] = {.lex_state = 12}, [64] = {.lex_state = 12}, [65] = {.lex_state = 12}, - [66] = {.lex_state = 12}, + [66] = {.lex_state = 0}, [67] = {.lex_state = 0}, [68] = {.lex_state = 0}, [69] = {.lex_state = 0}, @@ -2374,14 +3255,14 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [75] = {.lex_state = 0}, [76] = {.lex_state = 0}, [77] = {.lex_state = 0}, - [78] = {.lex_state = 12}, - [79] = {.lex_state = 0}, + [78] = {.lex_state = 0}, + [79] = {.lex_state = 12}, [80] = {.lex_state = 12}, - [81] = {.lex_state = 0}, - [82] = {.lex_state = 7}, + [81] = {.lex_state = 12}, + [82] = {.lex_state = 0}, [83] = {.lex_state = 0}, - [84] = {.lex_state = 12}, - [85] = {.lex_state = 0}, + [84] = {.lex_state = 0}, + [85] = {.lex_state = 7}, [86] = {.lex_state = 0}, [87] = {.lex_state = 0}, [88] = {.lex_state = 0}, @@ -2389,9 +3270,9 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [90] = {.lex_state = 0}, [91] = {.lex_state = 0}, [92] = {.lex_state = 0}, - [93] = {.lex_state = 12}, + [93] = {.lex_state = 0}, [94] = {.lex_state = 0}, - [95] = {.lex_state = 0}, + [95] = {.lex_state = 12}, [96] = {.lex_state = 0}, [97] = {.lex_state = 0}, [98] = {.lex_state = 0}, @@ -2409,7 +3290,6 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [110] = {.lex_state = 0}, [111] = {.lex_state = 0}, [112] = {.lex_state = 0}, - [113] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -2456,33 +3336,33 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_SEMI] = ACTIONS(1), }, [1] = { - [sym_source_file] = STATE(110), - [sym_module] = STATE(85), - [aux_sym_source_file_repeat1] = STATE(85), + [sym_source_file] = STATE(111), + [sym_module] = STATE(83), + [aux_sym_source_file_repeat1] = STATE(83), [ts_builtin_sym_end] = ACTIONS(3), [anon_sym_module] = ACTIONS(5), }, [2] = { - [sym_global_identifier] = STATE(27), - [sym_array_type] = STATE(91), - [sym__type] = STATE(91), - [sym_declaration] = STATE(97), - [sym_unary_op] = STATE(31), - [sym_binary_op] = STATE(31), - [sym_array_op] = STATE(31), - [sym_func_call] = STATE(31), - [sym_parenthesis_expression] = STATE(31), - [sym__expression] = STATE(31), - [sym_block] = STATE(34), + [sym_global_identifier] = STATE(32), + [sym_array_type] = STATE(94), + [sym__type] = STATE(94), + [sym_declaration] = STATE(96), + [sym_unary_op] = STATE(27), + [sym_binary_op] = STATE(27), + [sym_array_op] = STATE(27), + [sym_func_call] = STATE(27), + [sym_parenthesis_expression] = STATE(27), + [sym__expression] = STATE(27), + [sym_block] = STATE(42), [sym_write_modifiers] = STATE(25), - [sym_assign_to] = STATE(79), - [sym_assign_left_side] = STATE(103), - [sym_decl_assign_statement] = STATE(106), - [sym_if_statement] = STATE(34), - [sym_for_statement] = STATE(34), - [sym__statement] = STATE(34), - [aux_sym_block_repeat1] = STATE(3), - [aux_sym_write_modifiers_repeat1] = STATE(64), + [sym_assign_to] = STATE(82), + [sym_assign_left_side] = STATE(102), + [sym_decl_assign_statement] = STATE(107), + [sym_if_statement] = STATE(42), + [sym_for_statement] = STATE(42), + [sym__statement] = STATE(42), + [aux_sym_block_repeat1] = STATE(4), + [aux_sym_write_modifiers_repeat1] = STATE(62), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), [anon_sym_state] = ACTIONS(11), @@ -2503,26 +3383,66 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_for] = ACTIONS(27), }, [3] = { - [sym_global_identifier] = STATE(27), - [sym_array_type] = STATE(91), - [sym__type] = STATE(91), - [sym_declaration] = STATE(97), - [sym_unary_op] = STATE(31), - [sym_binary_op] = STATE(31), - [sym_array_op] = STATE(31), - [sym_func_call] = STATE(31), - [sym_parenthesis_expression] = STATE(31), - [sym__expression] = STATE(31), - [sym_block] = STATE(34), + [sym_global_identifier] = STATE(32), + [sym_array_type] = STATE(94), + [sym__type] = STATE(94), + [sym_declaration] = STATE(96), + [sym_unary_op] = STATE(27), + [sym_binary_op] = STATE(27), + [sym_array_op] = STATE(27), + [sym_func_call] = STATE(27), + [sym_parenthesis_expression] = STATE(27), + [sym__expression] = STATE(27), + [sym_block] = STATE(42), [sym_write_modifiers] = STATE(25), - [sym_assign_to] = STATE(79), - [sym_assign_left_side] = STATE(103), - [sym_decl_assign_statement] = STATE(106), - [sym_if_statement] = STATE(34), - [sym_for_statement] = STATE(34), - [sym__statement] = STATE(34), - [aux_sym_block_repeat1] = STATE(4), - [aux_sym_write_modifiers_repeat1] = STATE(64), + [sym_assign_to] = STATE(82), + [sym_assign_left_side] = STATE(102), + [sym_decl_assign_statement] = STATE(107), + [sym_if_statement] = STATE(42), + [sym_for_statement] = STATE(42), + [sym__statement] = STATE(42), + [aux_sym_block_repeat1] = STATE(3), + [aux_sym_write_modifiers_repeat1] = STATE(62), + [sym_identifier] = ACTIONS(29), + [sym_number] = ACTIONS(32), + [anon_sym_state] = ACTIONS(35), + [anon_sym_gen] = ACTIONS(35), + [anon_sym_PLUS] = ACTIONS(38), + [anon_sym_DASH] = ACTIONS(38), + [anon_sym_STAR] = ACTIONS(38), + [anon_sym_BANG] = ACTIONS(38), + [anon_sym_PIPE] = ACTIONS(38), + [anon_sym_AMP] = ACTIONS(38), + [anon_sym_CARET] = ACTIONS(38), + [anon_sym_LPAREN] = ACTIONS(41), + [anon_sym_LBRACE] = ACTIONS(44), + [anon_sym_RBRACE] = ACTIONS(47), + [anon_sym_reg] = ACTIONS(49), + [anon_sym_initial] = ACTIONS(52), + [anon_sym_if] = ACTIONS(55), + [anon_sym_for] = ACTIONS(58), + }, + [4] = { + [sym_global_identifier] = STATE(32), + [sym_array_type] = STATE(94), + [sym__type] = STATE(94), + [sym_declaration] = STATE(96), + [sym_unary_op] = STATE(27), + [sym_binary_op] = STATE(27), + [sym_array_op] = STATE(27), + [sym_func_call] = STATE(27), + [sym_parenthesis_expression] = STATE(27), + [sym__expression] = STATE(27), + [sym_block] = STATE(42), + [sym_write_modifiers] = STATE(25), + [sym_assign_to] = STATE(82), + [sym_assign_left_side] = STATE(102), + [sym_decl_assign_statement] = STATE(107), + [sym_if_statement] = STATE(42), + [sym_for_statement] = STATE(42), + [sym__statement] = STATE(42), + [aux_sym_block_repeat1] = STATE(3), + [aux_sym_write_modifiers_repeat1] = STATE(62), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), [anon_sym_state] = ACTIONS(11), @@ -2536,52 +3456,12 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_CARET] = ACTIONS(13), [anon_sym_LPAREN] = ACTIONS(15), [anon_sym_LBRACE] = ACTIONS(17), - [anon_sym_RBRACE] = ACTIONS(29), + [anon_sym_RBRACE] = ACTIONS(61), [anon_sym_reg] = ACTIONS(21), [anon_sym_initial] = ACTIONS(23), [anon_sym_if] = ACTIONS(25), [anon_sym_for] = ACTIONS(27), }, - [4] = { - [sym_global_identifier] = STATE(27), - [sym_array_type] = STATE(91), - [sym__type] = STATE(91), - [sym_declaration] = STATE(97), - [sym_unary_op] = STATE(31), - [sym_binary_op] = STATE(31), - [sym_array_op] = STATE(31), - [sym_func_call] = STATE(31), - [sym_parenthesis_expression] = STATE(31), - [sym__expression] = STATE(31), - [sym_block] = STATE(34), - [sym_write_modifiers] = STATE(25), - [sym_assign_to] = STATE(79), - [sym_assign_left_side] = STATE(103), - [sym_decl_assign_statement] = STATE(106), - [sym_if_statement] = STATE(34), - [sym_for_statement] = STATE(34), - [sym__statement] = STATE(34), - [aux_sym_block_repeat1] = STATE(4), - [aux_sym_write_modifiers_repeat1] = STATE(64), - [sym_identifier] = ACTIONS(31), - [sym_number] = ACTIONS(34), - [anon_sym_state] = ACTIONS(37), - [anon_sym_gen] = ACTIONS(37), - [anon_sym_PLUS] = ACTIONS(40), - [anon_sym_DASH] = ACTIONS(40), - [anon_sym_STAR] = ACTIONS(40), - [anon_sym_BANG] = ACTIONS(40), - [anon_sym_PIPE] = ACTIONS(40), - [anon_sym_AMP] = ACTIONS(40), - [anon_sym_CARET] = ACTIONS(40), - [anon_sym_LPAREN] = ACTIONS(43), - [anon_sym_LBRACE] = ACTIONS(46), - [anon_sym_RBRACE] = ACTIONS(49), - [anon_sym_reg] = ACTIONS(51), - [anon_sym_initial] = ACTIONS(54), - [anon_sym_if] = ACTIONS(57), - [anon_sym_for] = ACTIONS(60), - }, }; static const uint16_t ts_small_parse_table[] = { @@ -2684,14 +3564,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [111] = 2, + [111] = 6, ACTIONS(82), 1, anon_sym_SLASH, - ACTIONS(80), 26, + ACTIONS(84), 1, + anon_sym_LPAREN, + ACTIONS(86), 1, + anon_sym_LBRACK, + STATE(17), 1, + sym_array_bracket_expression, + STATE(23), 1, + sym_parenthesis_expression_list, + ACTIONS(80), 22, anon_sym_DASH_GT, anon_sym_COMMA, - sym_identifier, - anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -2705,67 +3591,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [143] = 14, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(9), 1, - sym_number, - ACTIONS(15), 1, - anon_sym_LPAREN, - ACTIONS(21), 1, - anon_sym_reg, - ACTIONS(23), 1, - anon_sym_initial, - STATE(25), 1, - sym_write_modifiers, - STATE(27), 1, - sym_global_identifier, - STATE(64), 1, - aux_sym_write_modifiers_repeat1, - STATE(90), 1, - sym_assign_to, - STATE(97), 1, - sym_declaration, - ACTIONS(11), 2, - anon_sym_state, - anon_sym_gen, - STATE(91), 2, - sym_array_type, - sym__type, - STATE(31), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(13), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [199] = 4, - ACTIONS(86), 1, + [151] = 2, + ACTIONS(90), 1, anon_sym_SLASH, - ACTIONS(88), 1, - anon_sym_LPAREN, - STATE(19), 1, - sym_parenthesis_expression_list, - ACTIONS(84), 23, + ACTIONS(88), 26, anon_sym_DASH_GT, anon_sym_COMMA, + sym_identifier, + anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -2779,6 +3619,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -2787,26 +3628,32 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [234] = 7, - ACTIONS(96), 1, - anon_sym_CARET, + [183] = 11, + ACTIONS(84), 1, + anon_sym_LPAREN, + ACTIONS(86), 1, + anon_sym_LBRACK, ACTIONS(98), 1, - anon_sym_SLASH, + anon_sym_PIPE, ACTIONS(100), 1, - anon_sym_LBRACK, - STATE(20), 1, + anon_sym_AMP, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, + anon_sym_SLASH, + STATE(17), 1, sym_array_bracket_expression, - ACTIONS(92), 2, + STATE(23), 1, + sym_parenthesis_expression_list, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(94), 2, + ACTIONS(96), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(90), 17, + ACTIONS(92), 15, anon_sym_DASH_GT, anon_sym_COMMA, - anon_sym_PIPE, - anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, @@ -2820,19 +3667,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [274] = 4, - ACTIONS(100), 1, + [233] = 8, + ACTIONS(84), 1, + anon_sym_LPAREN, + ACTIONS(86), 1, anon_sym_LBRACK, ACTIONS(104), 1, anon_sym_SLASH, - STATE(20), 1, + STATE(17), 1, sym_array_bracket_expression, - ACTIONS(102), 22, - anon_sym_DASH_GT, - anon_sym_COMMA, + STATE(23), 1, + sym_parenthesis_expression_list, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(96), 2, anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(92), 18, + anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -2842,7 +3696,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_LBRACE, @@ -2850,24 +3703,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [308] = 5, + [277] = 10, + ACTIONS(84), 1, + anon_sym_LPAREN, + ACTIONS(86), 1, + anon_sym_LBRACK, ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, anon_sym_SLASH, - ACTIONS(100), 1, - anon_sym_LBRACK, - STATE(20), 1, + STATE(17), 1, sym_array_bracket_expression, + STATE(23), 1, + sym_parenthesis_expression_list, ACTIONS(94), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(96), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(90), 20, + ACTIONS(92), 16, anon_sym_DASH_GT, anon_sym_COMMA, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, @@ -2881,29 +3741,36 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [344] = 4, - ACTIONS(100), 1, + [325] = 9, + ACTIONS(84), 1, + anon_sym_LPAREN, + ACTIONS(86), 1, anon_sym_LBRACK, - ACTIONS(106), 1, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, anon_sym_SLASH, - STATE(20), 1, + STATE(17), 1, sym_array_bracket_expression, - ACTIONS(90), 22, - anon_sym_DASH_GT, - anon_sym_COMMA, + STATE(23), 1, + sym_parenthesis_expression_list, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(96), 2, anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(92), 17, + anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_LBRACE, @@ -2911,34 +3778,33 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [378] = 9, - ACTIONS(96), 1, - anon_sym_CARET, - ACTIONS(98), 1, - anon_sym_SLASH, - ACTIONS(100), 1, + [371] = 6, + ACTIONS(84), 1, + anon_sym_LPAREN, + ACTIONS(86), 1, anon_sym_LBRACK, - ACTIONS(108), 1, - anon_sym_PIPE, - ACTIONS(110), 1, - anon_sym_AMP, - STATE(20), 1, + ACTIONS(106), 1, + anon_sym_SLASH, + STATE(17), 1, sym_array_bracket_expression, - ACTIONS(92), 2, + STATE(23), 1, + sym_parenthesis_expression_list, + ACTIONS(92), 22, + anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(94), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(90), 15, - anon_sym_DASH_GT, - anon_sym_COMMA, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_LBRACE, @@ -2946,22 +3812,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [422] = 6, - ACTIONS(98), 1, - anon_sym_SLASH, - ACTIONS(100), 1, + [411] = 7, + ACTIONS(84), 1, + anon_sym_LPAREN, + ACTIONS(86), 1, anon_sym_LBRACK, - STATE(20), 1, + ACTIONS(104), 1, + anon_sym_SLASH, + STATE(17), 1, sym_array_bracket_expression, - ACTIONS(92), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(94), 2, + STATE(23), 1, + sym_parenthesis_expression_list, + ACTIONS(96), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(90), 18, + ACTIONS(92), 20, anon_sym_DASH_GT, anon_sym_COMMA, + anon_sym_PLUS, + anon_sym_DASH, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -2978,44 +3847,80 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [460] = 8, - ACTIONS(96), 1, - anon_sym_CARET, - ACTIONS(98), 1, - anon_sym_SLASH, - ACTIONS(100), 1, - anon_sym_LBRACK, - ACTIONS(108), 1, - anon_sym_PIPE, - STATE(20), 1, - sym_array_bracket_expression, - ACTIONS(92), 2, + [453] = 14, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(9), 1, + sym_number, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(21), 1, + anon_sym_reg, + ACTIONS(23), 1, + anon_sym_initial, + STATE(25), 1, + sym_write_modifiers, + STATE(32), 1, + sym_global_identifier, + STATE(62), 1, + aux_sym_write_modifiers_repeat1, + STATE(89), 1, + sym_assign_to, + STATE(96), 1, + sym_declaration, + ACTIONS(11), 2, + anon_sym_state, + anon_sym_gen, + STATE(94), 2, + sym_array_type, + sym__type, + STATE(27), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(94), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(90), 16, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + [509] = 2, + ACTIONS(110), 1, + anon_sym_SLASH, + ACTIONS(108), 24, anon_sym_DASH_GT, anon_sym_COMMA, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [502] = 2, + [539] = 2, ACTIONS(114), 1, anon_sym_SLASH, - ACTIONS(112), 23, + ACTIONS(112), 24, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -3031,6 +3936,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -3039,10 +3945,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [531] = 2, + [569] = 2, ACTIONS(118), 1, anon_sym_SLASH, - ACTIONS(116), 23, + ACTIONS(116), 24, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -3058,6 +3964,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -3066,10 +3973,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [560] = 2, + [599] = 2, ACTIONS(122), 1, anon_sym_SLASH, - ACTIONS(120), 23, + ACTIONS(120), 24, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -3085,6 +3992,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -3093,10 +4001,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [589] = 2, + [629] = 2, ACTIONS(126), 1, anon_sym_SLASH, - ACTIONS(124), 23, + ACTIONS(124), 24, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -3112,6 +4020,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -3120,10 +4029,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [618] = 2, + [659] = 2, ACTIONS(130), 1, anon_sym_SLASH, - ACTIONS(128), 23, + ACTIONS(128), 24, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -3139,6 +4048,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -3147,10 +4057,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [647] = 2, + [689] = 2, ACTIONS(134), 1, anon_sym_SLASH, - ACTIONS(132), 23, + ACTIONS(132), 24, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -3166,6 +4076,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, @@ -3174,51 +4085,61 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [676] = 2, - ACTIONS(138), 1, + [719] = 12, + ACTIONS(84), 1, + anon_sym_LPAREN, + ACTIONS(86), 1, + anon_sym_LBRACK, + ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, + anon_sym_AMP, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, anon_sym_SLASH, - ACTIONS(136), 23, - anon_sym_DASH_GT, - anon_sym_COMMA, + STATE(17), 1, + sym_array_bracket_expression, + STATE(23), 1, + sym_parenthesis_expression_list, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(96), 2, anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, + anon_sym_PERCENT, + ACTIONS(136), 6, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_SEMI, + ACTIONS(138), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_RPAREN, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_DOT_DOT, - anon_sym_SEMI, - [705] = 9, + [768] = 9, ACTIONS(7), 1, sym_identifier, ACTIONS(15), 1, anon_sym_LPAREN, ACTIONS(140), 1, sym_number, - STATE(27), 1, + STATE(32), 1, sym_global_identifier, - STATE(96), 1, + STATE(93), 1, sym_declaration, ACTIONS(11), 2, anon_sym_state, anon_sym_gen, - STATE(91), 2, + STATE(94), 2, sym_array_type, sym__type, - STATE(32), 6, + STATE(26), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -3233,69 +4154,76 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [746] = 10, - ACTIONS(96), 1, - anon_sym_CARET, - ACTIONS(98), 1, - anon_sym_SLASH, - ACTIONS(100), 1, + [809] = 12, + ACTIONS(84), 1, + anon_sym_LPAREN, + ACTIONS(86), 1, anon_sym_LBRACK, - ACTIONS(108), 1, + ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(110), 1, + ACTIONS(100), 1, anon_sym_AMP, - STATE(20), 1, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, + anon_sym_SLASH, + STATE(17), 1, sym_array_bracket_expression, - ACTIONS(92), 2, + STATE(23), 1, + sym_parenthesis_expression_list, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(94), 2, + ACTIONS(96), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(142), 6, - anon_sym_DASH_GT, + ACTIONS(142), 3, anon_sym_COMMA, - anon_sym_LBRACE, anon_sym_EQ, - anon_sym_in, anon_sym_SEMI, - ACTIONS(144), 6, + ACTIONS(138), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [789] = 6, - ACTIONS(86), 1, - anon_sym_SLASH, - ACTIONS(88), 1, + [855] = 12, + ACTIONS(84), 1, anon_sym_LPAREN, - ACTIONS(146), 1, - sym_identifier, - ACTIONS(148), 1, + ACTIONS(86), 1, anon_sym_LBRACK, - STATE(19), 1, + ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, + anon_sym_AMP, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, + anon_sym_SLASH, + STATE(17), 1, + sym_array_bracket_expression, + STATE(23), 1, sym_parenthesis_expression_list, - ACTIONS(84), 16, - anon_sym_COMMA, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(96), 2, anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, + anon_sym_PERCENT, + ACTIONS(144), 3, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_SEMI, + ACTIONS(138), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_EQ, - anon_sym_SEMI, - [823] = 2, - ACTIONS(153), 9, + [901] = 2, + ACTIONS(148), 9, anon_sym_module, sym_identifier, anon_sym_state, @@ -3305,7 +4233,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_else, anon_sym_for, - ACTIONS(151), 12, + ACTIONS(146), 12, ts_builtin_sym_end, sym_number, anon_sym_PLUS, @@ -3318,8 +4246,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [849] = 2, - ACTIONS(157), 9, + [927] = 2, + ACTIONS(152), 9, anon_sym_module, sym_identifier, anon_sym_state, @@ -3329,7 +4257,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_else, anon_sym_for, - ACTIONS(155), 12, + ACTIONS(150), 12, ts_builtin_sym_end, sym_number, anon_sym_PLUS, @@ -3342,165 +4270,236 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [875] = 3, - ACTIONS(163), 1, - anon_sym_else, - ACTIONS(159), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(161), 11, - sym_number, + [953] = 14, + ACTIONS(84), 1, + anon_sym_LPAREN, + ACTIONS(86), 1, + anon_sym_LBRACK, + ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, + anon_sym_AMP, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, + anon_sym_SLASH, + ACTIONS(154), 1, + anon_sym_COMMA, + ACTIONS(156), 1, + anon_sym_RPAREN, + STATE(17), 1, + sym_array_bracket_expression, + STATE(23), 1, + sym_parenthesis_expression_list, + STATE(97), 1, + aux_sym_parenthesis_expression_list_repeat1, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(96), 2, anon_sym_STAR, - anon_sym_BANG, + anon_sym_PERCENT, + ACTIONS(138), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [1003] = 13, + ACTIONS(84), 1, + anon_sym_LPAREN, + ACTIONS(86), 1, + anon_sym_LBRACK, + ACTIONS(98), 1, anon_sym_PIPE, + ACTIONS(100), 1, anon_sym_AMP, + ACTIONS(102), 1, anon_sym_CARET, - anon_sym_LPAREN, + ACTIONS(104), 1, + anon_sym_SLASH, + ACTIONS(158), 1, anon_sym_LBRACE, - anon_sym_RBRACE, - [901] = 10, - ACTIONS(96), 1, - anon_sym_CARET, - ACTIONS(98), 1, + STATE(17), 1, + sym_array_bracket_expression, + STATE(23), 1, + sym_parenthesis_expression_list, + STATE(37), 1, + sym_block, + ACTIONS(94), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(96), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(138), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [1050] = 4, + ACTIONS(160), 1, + sym_identifier, + ACTIONS(164), 1, anon_sym_SLASH, - ACTIONS(100), 1, + ACTIONS(166), 1, anon_sym_LBRACK, - ACTIONS(108), 1, + ACTIONS(162), 17, + anon_sym_COMMA, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, anon_sym_PIPE, - ACTIONS(110), 1, anon_sym_AMP, - STATE(20), 1, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_EQ, + anon_sym_SEMI, + [1079] = 13, + ACTIONS(84), 1, + anon_sym_LPAREN, + ACTIONS(86), 1, + anon_sym_LBRACK, + ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, + anon_sym_AMP, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, + anon_sym_SLASH, + ACTIONS(158), 1, + anon_sym_LBRACE, + STATE(17), 1, sym_array_bracket_expression, - ACTIONS(92), 2, + STATE(23), 1, + sym_parenthesis_expression_list, + STATE(41), 1, + sym_block, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(94), 2, + ACTIONS(96), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(165), 3, - anon_sym_COMMA, - anon_sym_EQ, - anon_sym_SEMI, - ACTIONS(144), 6, + ACTIONS(138), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [941] = 10, - ACTIONS(96), 1, - anon_sym_CARET, - ACTIONS(98), 1, - anon_sym_SLASH, - ACTIONS(100), 1, + [1126] = 12, + ACTIONS(84), 1, + anon_sym_LPAREN, + ACTIONS(86), 1, anon_sym_LBRACK, - ACTIONS(108), 1, + ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(110), 1, + ACTIONS(100), 1, anon_sym_AMP, - STATE(20), 1, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, + anon_sym_SLASH, + STATE(17), 1, sym_array_bracket_expression, - ACTIONS(92), 2, + STATE(23), 1, + sym_parenthesis_expression_list, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(94), 2, + ACTIONS(96), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(167), 3, + ACTIONS(169), 2, anon_sym_COMMA, - anon_sym_EQ, - anon_sym_SEMI, - ACTIONS(144), 6, + anon_sym_RPAREN, + ACTIONS(138), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [981] = 12, - ACTIONS(96), 1, - anon_sym_CARET, - ACTIONS(98), 1, - anon_sym_SLASH, - ACTIONS(100), 1, + [1171] = 12, + ACTIONS(84), 1, + anon_sym_LPAREN, + ACTIONS(86), 1, anon_sym_LBRACK, - ACTIONS(108), 1, + ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(110), 1, + ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(169), 1, - anon_sym_COMMA, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, + anon_sym_SLASH, ACTIONS(171), 1, - anon_sym_RPAREN, - STATE(20), 1, + anon_sym_RBRACK, + STATE(17), 1, sym_array_bracket_expression, - STATE(95), 1, - aux_sym_parenthesis_expression_list_repeat1, - ACTIONS(92), 2, + STATE(23), 1, + sym_parenthesis_expression_list, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(94), 2, + ACTIONS(96), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(144), 6, + ACTIONS(138), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1025] = 2, - ACTIONS(173), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(175), 11, - sym_number, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, + [1215] = 12, + ACTIONS(84), 1, + anon_sym_LPAREN, + ACTIONS(86), 1, + anon_sym_LBRACK, + ACTIONS(98), 1, anon_sym_PIPE, + ACTIONS(100), 1, anon_sym_AMP, + ACTIONS(102), 1, anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1048] = 2, - ACTIONS(177), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(179), 11, - sym_number, + ACTIONS(104), 1, + anon_sym_SLASH, + ACTIONS(173), 1, + anon_sym_RBRACK, + STATE(17), 1, + sym_array_bracket_expression, + STATE(23), 1, + sym_parenthesis_expression_list, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(96), 2, anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1071] = 2, - ACTIONS(181), 7, + anon_sym_PERCENT, + ACTIONS(138), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [1259] = 3, + ACTIONS(179), 1, + anon_sym_else, + ACTIONS(175), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -3508,7 +4507,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(183), 11, + ACTIONS(177), 11, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -3520,123 +4519,104 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1094] = 10, - ACTIONS(96), 1, - anon_sym_CARET, - ACTIONS(98), 1, - anon_sym_SLASH, - ACTIONS(100), 1, + [1285] = 12, + ACTIONS(84), 1, + anon_sym_LPAREN, + ACTIONS(86), 1, anon_sym_LBRACK, - ACTIONS(108), 1, + ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(110), 1, + ACTIONS(100), 1, anon_sym_AMP, - STATE(20), 1, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, + anon_sym_SLASH, + ACTIONS(181), 1, + anon_sym_DOT_DOT, + STATE(17), 1, sym_array_bracket_expression, - ACTIONS(92), 2, + STATE(23), 1, + sym_parenthesis_expression_list, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(94), 2, + ACTIONS(96), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(185), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - ACTIONS(144), 6, + ACTIONS(138), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1133] = 7, - ACTIONS(15), 1, + [1329] = 12, + ACTIONS(84), 1, anon_sym_LPAREN, - ACTIONS(187), 1, - sym_identifier, - ACTIONS(189), 1, - sym_number, - ACTIONS(191), 1, - anon_sym_RPAREN, - STATE(10), 1, - sym_global_identifier, - STATE(33), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(13), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, + ACTIONS(86), 1, + anon_sym_LBRACK, + ACTIONS(98), 1, anon_sym_PIPE, + ACTIONS(100), 1, anon_sym_AMP, + ACTIONS(102), 1, anon_sym_CARET, - [1166] = 11, - ACTIONS(96), 1, - anon_sym_CARET, - ACTIONS(98), 1, + ACTIONS(104), 1, anon_sym_SLASH, - ACTIONS(100), 1, - anon_sym_LBRACK, - ACTIONS(108), 1, - anon_sym_PIPE, - ACTIONS(110), 1, - anon_sym_AMP, - ACTIONS(193), 1, - anon_sym_LBRACE, - STATE(20), 1, + ACTIONS(183), 1, + anon_sym_SEMI, + STATE(17), 1, sym_array_bracket_expression, - STATE(30), 1, - sym_block, - ACTIONS(92), 2, + STATE(23), 1, + sym_parenthesis_expression_list, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(94), 2, + ACTIONS(96), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(144), 6, + ACTIONS(138), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1207] = 11, - ACTIONS(96), 1, - anon_sym_CARET, - ACTIONS(98), 1, - anon_sym_SLASH, - ACTIONS(100), 1, + [1373] = 12, + ACTIONS(84), 1, + anon_sym_LPAREN, + ACTIONS(86), 1, anon_sym_LBRACK, - ACTIONS(108), 1, + ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(110), 1, + ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(193), 1, - anon_sym_LBRACE, - STATE(20), 1, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, + anon_sym_SLASH, + ACTIONS(185), 1, + anon_sym_RPAREN, + STATE(17), 1, sym_array_bracket_expression, - STATE(41), 1, - sym_block, - ACTIONS(92), 2, + STATE(23), 1, + sym_parenthesis_expression_list, + ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(94), 2, + ACTIONS(96), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(144), 6, + ACTIONS(138), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1248] = 2, - ACTIONS(195), 7, + [1417] = 2, + ACTIONS(187), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -3644,7 +4624,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(197), 11, + ACTIONS(189), 11, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -3656,23 +4636,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1271] = 6, - ACTIONS(15), 1, - anon_sym_LPAREN, - ACTIONS(187), 1, + [1440] = 2, + ACTIONS(191), 7, sym_identifier, - ACTIONS(199), 1, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(193), 11, sym_number, - STATE(10), 1, - sym_global_identifier, - STATE(16), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3680,23 +4654,45 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1301] = 6, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1463] = 6, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(187), 1, + ACTIONS(195), 1, sym_identifier, - ACTIONS(201), 1, + ACTIONS(197), 1, sym_number, - STATE(10), 1, + ACTIONS(199), 1, + anon_sym_RPAREN, + ACTIONS(13), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(30), 7, sym_global_identifier, - STATE(12), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(13), 7, + [1494] = 2, + ACTIONS(201), 7, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(203), 11, + sym_number, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3704,50 +4700,60 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1331] = 10, - ACTIONS(96), 1, - anon_sym_CARET, - ACTIONS(98), 1, - anon_sym_SLASH, - ACTIONS(100), 1, - anon_sym_LBRACK, - ACTIONS(108), 1, - anon_sym_PIPE, - ACTIONS(110), 1, - anon_sym_AMP, - ACTIONS(203), 1, - anon_sym_RBRACK, - STATE(20), 1, - sym_array_bracket_expression, - ACTIONS(92), 2, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1517] = 2, + ACTIONS(205), 7, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(207), 11, + sym_number, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(94), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(144), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [1369] = 6, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1540] = 5, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(187), 1, + ACTIONS(195), 1, sym_identifier, - ACTIONS(205), 1, + ACTIONS(209), 1, sym_number, - STATE(10), 1, + ACTIONS(13), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(36), 7, sym_global_identifier, - STATE(26), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, + [1568] = 5, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(195), 1, + sym_identifier, + ACTIONS(211), 1, + sym_number, ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, @@ -3756,22 +4762,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1399] = 6, - ACTIONS(15), 1, - anon_sym_LPAREN, - ACTIONS(187), 1, - sym_identifier, - ACTIONS(207), 1, - sym_number, - STATE(10), 1, + STATE(24), 7, sym_global_identifier, - STATE(44), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, + [1596] = 5, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(195), 1, + sym_identifier, + ACTIONS(213), 1, + sym_number, ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, @@ -3780,22 +4785,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1429] = 6, - ACTIONS(15), 1, - anon_sym_LPAREN, - ACTIONS(187), 1, - sym_identifier, - ACTIONS(209), 1, - sym_number, - STATE(10), 1, + STATE(8), 7, sym_global_identifier, - STATE(49), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, + [1624] = 5, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(195), 1, + sym_identifier, + ACTIONS(215), 1, + sym_number, ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, @@ -3804,22 +4808,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1459] = 6, - ACTIONS(15), 1, - anon_sym_LPAREN, - ACTIONS(187), 1, - sym_identifier, - ACTIONS(211), 1, - sym_number, - STATE(10), 1, + STATE(15), 7, sym_global_identifier, - STATE(39), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, + [1652] = 5, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(195), 1, + sym_identifier, + ACTIONS(217), 1, + sym_number, ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, @@ -3828,78 +4831,44 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1489] = 10, - ACTIONS(96), 1, - anon_sym_CARET, - ACTIONS(98), 1, - anon_sym_SLASH, - ACTIONS(100), 1, - anon_sym_LBRACK, - ACTIONS(108), 1, - anon_sym_PIPE, - ACTIONS(110), 1, - anon_sym_AMP, - ACTIONS(213), 1, - anon_sym_RBRACK, - STATE(20), 1, - sym_array_bracket_expression, - ACTIONS(92), 2, + STATE(14), 7, + sym_global_identifier, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + [1680] = 5, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(195), 1, + sym_identifier, + ACTIONS(219), 1, + sym_number, + ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(94), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(144), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [1527] = 10, - ACTIONS(96), 1, - anon_sym_CARET, - ACTIONS(98), 1, - anon_sym_SLASH, - ACTIONS(100), 1, - anon_sym_LBRACK, - ACTIONS(108), 1, + anon_sym_BANG, anon_sym_PIPE, - ACTIONS(110), 1, anon_sym_AMP, - ACTIONS(215), 1, - anon_sym_RPAREN, - STATE(20), 1, - sym_array_bracket_expression, - ACTIONS(92), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(94), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(144), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [1565] = 6, - ACTIONS(15), 1, - anon_sym_LPAREN, - ACTIONS(187), 1, - sym_identifier, - ACTIONS(217), 1, - sym_number, - STATE(10), 1, + anon_sym_CARET, + STATE(13), 7, sym_global_identifier, - STATE(60), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, + [1708] = 5, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(195), 1, + sym_identifier, + ACTIONS(221), 1, + sym_number, ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, @@ -3908,22 +4877,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1595] = 6, - ACTIONS(15), 1, - anon_sym_LPAREN, - ACTIONS(187), 1, - sym_identifier, - ACTIONS(219), 1, - sym_number, - STATE(10), 1, + STATE(12), 7, sym_global_identifier, - STATE(13), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, + [1736] = 5, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(195), 1, + sym_identifier, + ACTIONS(223), 1, + sym_number, ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, @@ -3932,22 +4900,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1625] = 6, - ACTIONS(15), 1, - anon_sym_LPAREN, - ACTIONS(187), 1, - sym_identifier, - ACTIONS(221), 1, - sym_number, - STATE(10), 1, + STATE(11), 7, sym_global_identifier, - STATE(14), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, + [1764] = 5, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(195), 1, + sym_identifier, + ACTIONS(225), 1, + sym_number, ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, @@ -3956,22 +4923,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1655] = 6, - ACTIONS(15), 1, - anon_sym_LPAREN, - ACTIONS(187), 1, - sym_identifier, - ACTIONS(223), 1, - sym_number, - STATE(10), 1, + STATE(10), 7, sym_global_identifier, - STATE(11), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, + [1792] = 5, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(195), 1, + sym_identifier, + ACTIONS(227), 1, + sym_number, ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, @@ -3980,22 +4946,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1685] = 6, - ACTIONS(15), 1, - anon_sym_LPAREN, - ACTIONS(187), 1, - sym_identifier, - ACTIONS(225), 1, - sym_number, - STATE(10), 1, + STATE(34), 7, sym_global_identifier, - STATE(17), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, + [1820] = 5, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(195), 1, + sym_identifier, + ACTIONS(229), 1, + sym_number, ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, @@ -4004,22 +4969,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1715] = 6, - ACTIONS(15), 1, - anon_sym_LPAREN, - ACTIONS(187), 1, - sym_identifier, - ACTIONS(227), 1, - sym_number, - STATE(10), 1, + STATE(33), 7, sym_global_identifier, - STATE(50), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, + [1848] = 5, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(195), 1, + sym_identifier, + ACTIONS(231), 1, + sym_number, ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, @@ -4028,22 +4992,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1745] = 6, - ACTIONS(15), 1, - anon_sym_LPAREN, - ACTIONS(187), 1, - sym_identifier, - ACTIONS(229), 1, - sym_number, - STATE(10), 1, + STATE(38), 7, sym_global_identifier, - STATE(15), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, + [1876] = 5, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(195), 1, + sym_identifier, + ACTIONS(233), 1, + sym_number, ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, @@ -4052,22 +5015,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1775] = 6, - ACTIONS(15), 1, - anon_sym_LPAREN, - ACTIONS(187), 1, - sym_identifier, - ACTIONS(231), 1, - sym_number, - STATE(10), 1, + STATE(35), 7, sym_global_identifier, - STATE(40), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, + [1904] = 5, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(195), 1, + sym_identifier, + ACTIONS(235), 1, + sym_number, ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, @@ -4076,22 +5038,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1805] = 6, - ACTIONS(15), 1, - anon_sym_LPAREN, - ACTIONS(187), 1, - sym_identifier, - ACTIONS(233), 1, - sym_number, - STATE(10), 1, + STATE(31), 7, sym_global_identifier, - STATE(37), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, + [1932] = 5, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(195), 1, + sym_identifier, + ACTIONS(237), 1, + sym_number, ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, @@ -4100,78 +5061,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1835] = 10, - ACTIONS(96), 1, - anon_sym_CARET, - ACTIONS(98), 1, - anon_sym_SLASH, - ACTIONS(100), 1, - anon_sym_LBRACK, - ACTIONS(108), 1, - anon_sym_PIPE, - ACTIONS(110), 1, - anon_sym_AMP, - ACTIONS(235), 1, - anon_sym_DOT_DOT, - STATE(20), 1, - sym_array_bracket_expression, - ACTIONS(92), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(94), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(144), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [1873] = 10, - ACTIONS(96), 1, - anon_sym_CARET, - ACTIONS(98), 1, - anon_sym_SLASH, - ACTIONS(100), 1, - anon_sym_LBRACK, - ACTIONS(108), 1, - anon_sym_PIPE, - ACTIONS(110), 1, - anon_sym_AMP, - ACTIONS(237), 1, - anon_sym_SEMI, - STATE(20), 1, - sym_array_bracket_expression, - ACTIONS(92), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(94), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(144), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [1911] = 6, - ACTIONS(15), 1, - anon_sym_LPAREN, - ACTIONS(187), 1, - sym_identifier, - ACTIONS(239), 1, - sym_number, - STATE(10), 1, + STATE(39), 7, sym_global_identifier, - STATE(61), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, + [1960] = 5, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(195), 1, + sym_identifier, + ACTIONS(239), 1, + sym_number, ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, @@ -4180,8 +5084,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1941] = 4, - ACTIONS(245), 1, + STATE(40), 7, + sym_global_identifier, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + [1988] = 4, + ACTIONS(21), 1, anon_sym_reg, STATE(63), 1, aux_sym_write_modifiers_repeat1, @@ -4199,16 +5111,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [1964] = 4, - ACTIONS(21), 1, + [2011] = 4, + ACTIONS(249), 1, anon_sym_reg, STATE(63), 1, aux_sym_write_modifiers_repeat1, - ACTIONS(248), 3, + ACTIONS(245), 3, sym_identifier, anon_sym_state, anon_sym_gen, - ACTIONS(250), 9, + ACTIONS(247), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -4218,7 +5130,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [1987] = 2, + [2034] = 2, ACTIONS(252), 4, sym_identifier, anon_sym_state, @@ -4234,7 +5146,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2005] = 2, + [2052] = 2, ACTIONS(256), 3, sym_identifier, anon_sym_state, @@ -4249,53 +5161,53 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2022] = 7, + [2069] = 7, ACTIONS(260), 1, sym_identifier, ACTIONS(262), 1, anon_sym_DASH_GT, ACTIONS(264), 1, anon_sym_LBRACE, - STATE(87), 1, + STATE(77), 1, sym_declaration, - STATE(101), 1, + STATE(99), 1, sym_declaration_list, ACTIONS(11), 2, anon_sym_state, anon_sym_gen, - STATE(91), 3, + STATE(94), 3, sym_global_identifier, sym_array_type, sym__type, - [2047] = 5, + [2094] = 5, ACTIONS(260), 1, sym_identifier, - STATE(87), 1, + STATE(77), 1, sym_declaration, STATE(108), 1, sym_declaration_list, ACTIONS(11), 2, anon_sym_state, anon_sym_gen, - STATE(91), 3, + STATE(94), 3, sym_global_identifier, sym_array_type, sym__type, - [2066] = 5, + [2113] = 5, ACTIONS(260), 1, sym_identifier, - STATE(87), 1, + STATE(77), 1, sym_declaration, - STATE(113), 1, + STATE(106), 1, sym_declaration_list, ACTIONS(11), 2, anon_sym_state, anon_sym_gen, - STATE(91), 3, + STATE(94), 3, sym_global_identifier, sym_array_type, sym__type, - [2085] = 3, + [2132] = 3, ACTIONS(268), 1, anon_sym_SQUOTE, STATE(74), 1, @@ -4307,10 +5219,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [2100] = 3, + [2147] = 3, ACTIONS(268), 1, anon_sym_SQUOTE, - STATE(75), 1, + STATE(73), 1, sym_latency_specifier, ACTIONS(270), 6, anon_sym_DASH_GT, @@ -4319,31 +5231,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [2115] = 4, + [2162] = 4, ACTIONS(260), 1, sym_identifier, - STATE(94), 1, + STATE(109), 1, sym_declaration, ACTIONS(11), 2, anon_sym_state, anon_sym_gen, - STATE(91), 3, + STATE(94), 3, sym_global_identifier, sym_array_type, sym__type, - [2131] = 4, + [2178] = 4, ACTIONS(260), 1, sym_identifier, - STATE(112), 1, + STATE(91), 1, sym_declaration, ACTIONS(11), 2, anon_sym_state, anon_sym_gen, - STATE(91), 3, + STATE(94), 3, sym_global_identifier, sym_array_type, sym__type, - [2147] = 1, + [2194] = 1, ACTIONS(272), 6, anon_sym_DASH_GT, anon_sym_COMMA, @@ -4351,7 +5263,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [2156] = 1, + [2203] = 1, ACTIONS(274), 6, anon_sym_DASH_GT, anon_sym_COMMA, @@ -4359,226 +5271,226 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [2165] = 3, - ACTIONS(17), 1, - anon_sym_LBRACE, + [2212] = 2, ACTIONS(276), 1, - anon_sym_if, - STATE(35), 2, - sym_block, - sym_if_statement, - [2176] = 3, + sym_identifier, + STATE(90), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [2221] = 3, ACTIONS(278), 1, + ts_builtin_sym_end, + ACTIONS(280), 1, + anon_sym_module, + STATE(76), 2, + sym_module, + aux_sym_source_file_repeat1, + [2232] = 3, + ACTIONS(285), 1, anon_sym_COMMA, - STATE(89), 1, + STATE(87), 1, + aux_sym_declaration_list_repeat1, + ACTIONS(283), 2, + anon_sym_DASH_GT, + anon_sym_LBRACE, + [2243] = 3, + ACTIONS(287), 1, + anon_sym_COMMA, + STATE(88), 1, aux_sym_assign_left_side_repeat1, - ACTIONS(280), 2, + ACTIONS(289), 2, anon_sym_EQ, anon_sym_SEMI, - [2187] = 3, - ACTIONS(282), 1, + [2254] = 3, + ACTIONS(291), 1, anon_sym_COLON_COLON, - STATE(84), 1, + STATE(80), 1, aux_sym_global_identifier_repeat1, ACTIONS(74), 2, sym_identifier, anon_sym_LBRACK, - [2198] = 3, - ACTIONS(278), 1, - anon_sym_COMMA, - STATE(77), 1, - aux_sym_assign_left_side_repeat1, - ACTIONS(284), 2, - anon_sym_EQ, - anon_sym_SEMI, - [2209] = 3, - ACTIONS(282), 1, + [2265] = 3, + ACTIONS(293), 1, anon_sym_COLON_COLON, - STATE(78), 1, + STATE(80), 1, aux_sym_global_identifier_repeat1, - ACTIONS(78), 2, + ACTIONS(68), 2, sym_identifier, anon_sym_LBRACK, - [2220] = 2, - ACTIONS(286), 1, - sym_identifier, - STATE(92), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [2229] = 4, - ACTIONS(17), 1, - anon_sym_LBRACE, - ACTIONS(288), 1, - anon_sym_COLON, - STATE(104), 1, - sym_block, - STATE(105), 1, - sym_interface_ports, - [2242] = 3, - ACTIONS(292), 1, - anon_sym_COMMA, - STATE(86), 1, - aux_sym_declaration_list_repeat1, - ACTIONS(290), 2, - anon_sym_DASH_GT, - anon_sym_LBRACE, - [2253] = 3, - ACTIONS(294), 1, + [2276] = 3, + ACTIONS(291), 1, anon_sym_COLON_COLON, - STATE(84), 1, + STATE(79), 1, aux_sym_global_identifier_repeat1, - ACTIONS(68), 2, + ACTIONS(78), 2, sym_identifier, anon_sym_LBRACK, - [2264] = 3, + [2287] = 3, + ACTIONS(287), 1, + anon_sym_COMMA, + STATE(78), 1, + aux_sym_assign_left_side_repeat1, + ACTIONS(296), 2, + anon_sym_EQ, + anon_sym_SEMI, + [2298] = 3, ACTIONS(5), 1, anon_sym_module, - ACTIONS(297), 1, + ACTIONS(298), 1, ts_builtin_sym_end, - STATE(88), 2, + STATE(76), 2, sym_module, aux_sym_source_file_repeat1, - [2275] = 3, - ACTIONS(301), 1, + [2309] = 3, + ACTIONS(17), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_if, + STATE(44), 2, + sym_block, + sym_if_statement, + [2320] = 4, + ACTIONS(17), 1, + anon_sym_LBRACE, + ACTIONS(302), 1, + anon_sym_COLON, + STATE(103), 1, + sym_interface_ports, + STATE(104), 1, + sym_block, + [2333] = 3, + ACTIONS(306), 1, anon_sym_COMMA, STATE(86), 1, aux_sym_declaration_list_repeat1, - ACTIONS(299), 2, + ACTIONS(304), 2, anon_sym_DASH_GT, anon_sym_LBRACE, - [2286] = 3, - ACTIONS(292), 1, + [2344] = 3, + ACTIONS(285), 1, anon_sym_COMMA, - STATE(83), 1, + STATE(86), 1, aux_sym_declaration_list_repeat1, - ACTIONS(304), 2, + ACTIONS(309), 2, anon_sym_DASH_GT, anon_sym_LBRACE, - [2297] = 3, - ACTIONS(306), 1, - ts_builtin_sym_end, - ACTIONS(308), 1, - anon_sym_module, - STATE(88), 2, - sym_module, - aux_sym_source_file_repeat1, - [2308] = 3, + [2355] = 3, ACTIONS(311), 1, anon_sym_COMMA, - STATE(89), 1, + STATE(88), 1, aux_sym_assign_left_side_repeat1, ACTIONS(314), 2, anon_sym_EQ, anon_sym_SEMI, - [2319] = 1, + [2366] = 1, ACTIONS(316), 3, anon_sym_COMMA, anon_sym_EQ, anon_sym_SEMI, - [2325] = 3, + [2372] = 3, ACTIONS(318), 1, sym_identifier, ACTIONS(320), 1, anon_sym_LBRACK, - STATE(102), 1, + STATE(100), 1, sym_array_bracket_expression, - [2335] = 3, - ACTIONS(320), 1, - anon_sym_LBRACK, - ACTIONS(322), 1, - sym_identifier, - STATE(102), 1, - sym_array_bracket_expression, - [2345] = 1, - ACTIONS(82), 3, - sym_identifier, - anon_sym_COLON_COLON, - anon_sym_LBRACK, - [2351] = 1, - ACTIONS(324), 3, + [2382] = 1, + ACTIONS(322), 3, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, - [2357] = 3, - ACTIONS(326), 1, + [2388] = 3, + ACTIONS(324), 1, anon_sym_COMMA, - ACTIONS(328), 1, + ACTIONS(327), 1, anon_sym_RPAREN, - STATE(98), 1, + STATE(92), 1, aux_sym_parenthesis_expression_list_repeat1, - [2367] = 1, - ACTIONS(330), 3, + [2398] = 1, + ACTIONS(329), 3, anon_sym_COMMA, anon_sym_EQ, anon_sym_SEMI, - [2373] = 1, - ACTIONS(332), 3, + [2404] = 3, + ACTIONS(320), 1, + anon_sym_LBRACK, + ACTIONS(331), 1, + sym_identifier, + STATE(100), 1, + sym_array_bracket_expression, + [2414] = 1, + ACTIONS(90), 3, + sym_identifier, + anon_sym_COLON_COLON, + anon_sym_LBRACK, + [2420] = 1, + ACTIONS(333), 3, anon_sym_COMMA, anon_sym_EQ, anon_sym_SEMI, - [2379] = 3, - ACTIONS(334), 1, + [2426] = 3, + ACTIONS(335), 1, anon_sym_COMMA, ACTIONS(337), 1, anon_sym_RPAREN, - STATE(98), 1, + STATE(92), 1, aux_sym_parenthesis_expression_list_repeat1, - [2389] = 1, + [2436] = 1, ACTIONS(339), 2, ts_builtin_sym_end, anon_sym_module, - [2394] = 1, - ACTIONS(138), 2, - sym_identifier, - anon_sym_LBRACK, - [2399] = 2, + [2441] = 2, ACTIONS(341), 1, anon_sym_DASH_GT, ACTIONS(343), 1, anon_sym_LBRACE, - [2406] = 1, + [2448] = 1, ACTIONS(345), 2, sym_identifier, anon_sym_LBRACK, - [2411] = 2, + [2453] = 1, + ACTIONS(114), 2, + sym_identifier, + anon_sym_LBRACK, + [2458] = 2, ACTIONS(347), 1, anon_sym_EQ, ACTIONS(349), 1, anon_sym_SEMI, - [2418] = 1, - ACTIONS(351), 2, - ts_builtin_sym_end, - anon_sym_module, - [2423] = 2, + [2465] = 2, ACTIONS(17), 1, anon_sym_LBRACE, - STATE(99), 1, + STATE(98), 1, sym_block, - [2430] = 1, - ACTIONS(349), 1, - anon_sym_SEMI, - [2434] = 1, + [2472] = 1, + ACTIONS(351), 2, + ts_builtin_sym_end, + anon_sym_module, + [2477] = 1, ACTIONS(353), 1, sym_identifier, - [2438] = 1, + [2481] = 1, ACTIONS(355), 1, anon_sym_LBRACE, - [2442] = 1, + [2485] = 1, + ACTIONS(349), 1, + anon_sym_SEMI, + [2489] = 1, ACTIONS(357), 1, - sym_identifier, - [2446] = 1, + anon_sym_LBRACE, + [2493] = 1, ACTIONS(359), 1, - ts_builtin_sym_end, - [2450] = 1, + anon_sym_in, + [2497] = 1, ACTIONS(361), 1, sym_identifier, - [2454] = 1, + [2501] = 1, ACTIONS(363), 1, - anon_sym_in, - [2458] = 1, + ts_builtin_sym_end, + [2505] = 1, ACTIONS(365), 1, - anon_sym_LBRACE, + sym_identifier, }; static const uint32_t ts_small_parse_table_map[] = { @@ -4586,289 +5498,288 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(6)] = 37, [SMALL_STATE(7)] = 74, [SMALL_STATE(8)] = 111, - [SMALL_STATE(9)] = 143, - [SMALL_STATE(10)] = 199, - [SMALL_STATE(11)] = 234, - [SMALL_STATE(12)] = 274, - [SMALL_STATE(13)] = 308, - [SMALL_STATE(14)] = 344, - [SMALL_STATE(15)] = 378, - [SMALL_STATE(16)] = 422, - [SMALL_STATE(17)] = 460, - [SMALL_STATE(18)] = 502, - [SMALL_STATE(19)] = 531, - [SMALL_STATE(20)] = 560, - [SMALL_STATE(21)] = 589, - [SMALL_STATE(22)] = 618, - [SMALL_STATE(23)] = 647, - [SMALL_STATE(24)] = 676, - [SMALL_STATE(25)] = 705, - [SMALL_STATE(26)] = 746, - [SMALL_STATE(27)] = 789, - [SMALL_STATE(28)] = 823, - [SMALL_STATE(29)] = 849, - [SMALL_STATE(30)] = 875, - [SMALL_STATE(31)] = 901, - [SMALL_STATE(32)] = 941, - [SMALL_STATE(33)] = 981, - [SMALL_STATE(34)] = 1025, - [SMALL_STATE(35)] = 1048, - [SMALL_STATE(36)] = 1071, - [SMALL_STATE(37)] = 1094, - [SMALL_STATE(38)] = 1133, - [SMALL_STATE(39)] = 1166, - [SMALL_STATE(40)] = 1207, - [SMALL_STATE(41)] = 1248, - [SMALL_STATE(42)] = 1271, - [SMALL_STATE(43)] = 1301, - [SMALL_STATE(44)] = 1331, - [SMALL_STATE(45)] = 1369, - [SMALL_STATE(46)] = 1399, - [SMALL_STATE(47)] = 1429, - [SMALL_STATE(48)] = 1459, - [SMALL_STATE(49)] = 1489, - [SMALL_STATE(50)] = 1527, - [SMALL_STATE(51)] = 1565, - [SMALL_STATE(52)] = 1595, - [SMALL_STATE(53)] = 1625, - [SMALL_STATE(54)] = 1655, - [SMALL_STATE(55)] = 1685, - [SMALL_STATE(56)] = 1715, - [SMALL_STATE(57)] = 1745, - [SMALL_STATE(58)] = 1775, - [SMALL_STATE(59)] = 1805, - [SMALL_STATE(60)] = 1835, - [SMALL_STATE(61)] = 1873, - [SMALL_STATE(62)] = 1911, - [SMALL_STATE(63)] = 1941, - [SMALL_STATE(64)] = 1964, - [SMALL_STATE(65)] = 1987, - [SMALL_STATE(66)] = 2005, - [SMALL_STATE(67)] = 2022, - [SMALL_STATE(68)] = 2047, - [SMALL_STATE(69)] = 2066, - [SMALL_STATE(70)] = 2085, - [SMALL_STATE(71)] = 2100, - [SMALL_STATE(72)] = 2115, - [SMALL_STATE(73)] = 2131, - [SMALL_STATE(74)] = 2147, - [SMALL_STATE(75)] = 2156, - [SMALL_STATE(76)] = 2165, - [SMALL_STATE(77)] = 2176, - [SMALL_STATE(78)] = 2187, - [SMALL_STATE(79)] = 2198, - [SMALL_STATE(80)] = 2209, - [SMALL_STATE(81)] = 2220, - [SMALL_STATE(82)] = 2229, - [SMALL_STATE(83)] = 2242, - [SMALL_STATE(84)] = 2253, - [SMALL_STATE(85)] = 2264, - [SMALL_STATE(86)] = 2275, - [SMALL_STATE(87)] = 2286, - [SMALL_STATE(88)] = 2297, - [SMALL_STATE(89)] = 2308, - [SMALL_STATE(90)] = 2319, - [SMALL_STATE(91)] = 2325, - [SMALL_STATE(92)] = 2335, - [SMALL_STATE(93)] = 2345, - [SMALL_STATE(94)] = 2351, - [SMALL_STATE(95)] = 2357, - [SMALL_STATE(96)] = 2367, - [SMALL_STATE(97)] = 2373, - [SMALL_STATE(98)] = 2379, - [SMALL_STATE(99)] = 2389, - [SMALL_STATE(100)] = 2394, - [SMALL_STATE(101)] = 2399, - [SMALL_STATE(102)] = 2406, - [SMALL_STATE(103)] = 2411, - [SMALL_STATE(104)] = 2418, - [SMALL_STATE(105)] = 2423, - [SMALL_STATE(106)] = 2430, - [SMALL_STATE(107)] = 2434, - [SMALL_STATE(108)] = 2438, - [SMALL_STATE(109)] = 2442, - [SMALL_STATE(110)] = 2446, - [SMALL_STATE(111)] = 2450, - [SMALL_STATE(112)] = 2454, - [SMALL_STATE(113)] = 2458, + [SMALL_STATE(9)] = 151, + [SMALL_STATE(10)] = 183, + [SMALL_STATE(11)] = 233, + [SMALL_STATE(12)] = 277, + [SMALL_STATE(13)] = 325, + [SMALL_STATE(14)] = 371, + [SMALL_STATE(15)] = 411, + [SMALL_STATE(16)] = 453, + [SMALL_STATE(17)] = 509, + [SMALL_STATE(18)] = 539, + [SMALL_STATE(19)] = 569, + [SMALL_STATE(20)] = 599, + [SMALL_STATE(21)] = 629, + [SMALL_STATE(22)] = 659, + [SMALL_STATE(23)] = 689, + [SMALL_STATE(24)] = 719, + [SMALL_STATE(25)] = 768, + [SMALL_STATE(26)] = 809, + [SMALL_STATE(27)] = 855, + [SMALL_STATE(28)] = 901, + [SMALL_STATE(29)] = 927, + [SMALL_STATE(30)] = 953, + [SMALL_STATE(31)] = 1003, + [SMALL_STATE(32)] = 1050, + [SMALL_STATE(33)] = 1079, + [SMALL_STATE(34)] = 1126, + [SMALL_STATE(35)] = 1171, + [SMALL_STATE(36)] = 1215, + [SMALL_STATE(37)] = 1259, + [SMALL_STATE(38)] = 1285, + [SMALL_STATE(39)] = 1329, + [SMALL_STATE(40)] = 1373, + [SMALL_STATE(41)] = 1417, + [SMALL_STATE(42)] = 1440, + [SMALL_STATE(43)] = 1463, + [SMALL_STATE(44)] = 1494, + [SMALL_STATE(45)] = 1517, + [SMALL_STATE(46)] = 1540, + [SMALL_STATE(47)] = 1568, + [SMALL_STATE(48)] = 1596, + [SMALL_STATE(49)] = 1624, + [SMALL_STATE(50)] = 1652, + [SMALL_STATE(51)] = 1680, + [SMALL_STATE(52)] = 1708, + [SMALL_STATE(53)] = 1736, + [SMALL_STATE(54)] = 1764, + [SMALL_STATE(55)] = 1792, + [SMALL_STATE(56)] = 1820, + [SMALL_STATE(57)] = 1848, + [SMALL_STATE(58)] = 1876, + [SMALL_STATE(59)] = 1904, + [SMALL_STATE(60)] = 1932, + [SMALL_STATE(61)] = 1960, + [SMALL_STATE(62)] = 1988, + [SMALL_STATE(63)] = 2011, + [SMALL_STATE(64)] = 2034, + [SMALL_STATE(65)] = 2052, + [SMALL_STATE(66)] = 2069, + [SMALL_STATE(67)] = 2094, + [SMALL_STATE(68)] = 2113, + [SMALL_STATE(69)] = 2132, + [SMALL_STATE(70)] = 2147, + [SMALL_STATE(71)] = 2162, + [SMALL_STATE(72)] = 2178, + [SMALL_STATE(73)] = 2194, + [SMALL_STATE(74)] = 2203, + [SMALL_STATE(75)] = 2212, + [SMALL_STATE(76)] = 2221, + [SMALL_STATE(77)] = 2232, + [SMALL_STATE(78)] = 2243, + [SMALL_STATE(79)] = 2254, + [SMALL_STATE(80)] = 2265, + [SMALL_STATE(81)] = 2276, + [SMALL_STATE(82)] = 2287, + [SMALL_STATE(83)] = 2298, + [SMALL_STATE(84)] = 2309, + [SMALL_STATE(85)] = 2320, + [SMALL_STATE(86)] = 2333, + [SMALL_STATE(87)] = 2344, + [SMALL_STATE(88)] = 2355, + [SMALL_STATE(89)] = 2366, + [SMALL_STATE(90)] = 2372, + [SMALL_STATE(91)] = 2382, + [SMALL_STATE(92)] = 2388, + [SMALL_STATE(93)] = 2398, + [SMALL_STATE(94)] = 2404, + [SMALL_STATE(95)] = 2414, + [SMALL_STATE(96)] = 2420, + [SMALL_STATE(97)] = 2426, + [SMALL_STATE(98)] = 2436, + [SMALL_STATE(99)] = 2441, + [SMALL_STATE(100)] = 2448, + [SMALL_STATE(101)] = 2453, + [SMALL_STATE(102)] = 2458, + [SMALL_STATE(103)] = 2465, + [SMALL_STATE(104)] = 2472, + [SMALL_STATE(105)] = 2477, + [SMALL_STATE(106)] = 2481, + [SMALL_STATE(107)] = 2485, + [SMALL_STATE(108)] = 2489, + [SMALL_STATE(109)] = 2493, + [SMALL_STATE(110)] = 2497, + [SMALL_STATE(111)] = 2501, + [SMALL_STATE(112)] = 2505, }; 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}}, REDUCE(sym_source_file, 0), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(48), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), - [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [31] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(7), - [34] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(31), - [37] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(81), - [40] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(43), - [43] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(56), - [46] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(2), - [49] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), - [51] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(65), - [54] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(66), - [57] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(48), - [60] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(73), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), + [29] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(7), + [32] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(27), + [35] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(75), + [38] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(48), + [41] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(61), + [44] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(2), + [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), + [49] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(64), + [52] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(65), + [55] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(59), + [58] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(71), + [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 15), - [65] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 15), SHIFT_REPEAT(111), + [65] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 15), SHIFT_REPEAT(112), [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 15), [70] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 8), - [72] = {.entry = {.count = 1, .reusable = false}}, SHIFT(111), + [72] = {.entry = {.count = 1, .reusable = false}}, SHIFT(112), [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 8), [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 2), [78] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 2), - [80] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 16), - [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 16), - [84] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [86] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [88] = {.entry = {.count = 1, .reusable = false}}, SHIFT(38), - [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 22), - [92] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), - [94] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), - [96] = {.entry = {.count = 1, .reusable = false}}, SHIFT(42), - [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [100] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), - [102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 11), - [104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 11), + [80] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 11), + [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 11), + [84] = {.entry = {.count = 1, .reusable = false}}, SHIFT(43), + [86] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), + [88] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 16), + [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 16), + [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 22), + [94] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49), + [96] = {.entry = {.count = 1, .reusable = false}}, SHIFT(50), + [98] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51), + [100] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), + [102] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), + [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 22), - [108] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), - [110] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), - [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 26), - [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 26), - [116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 12), - [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 12), - [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 10), - [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 10), - [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), - [128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 16), - [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 16), - [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 20), - [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 20), - [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 20), - [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 20), - [140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 20), - [144] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57), - [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type, 1), - [148] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [151] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 14), - [153] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3, .production_id = 14), - [155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), - [159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 21), - [161] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 21), - [163] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), - [165] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 4), - [167] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 13), - [169] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), - [171] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), - [173] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 2), - [175] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 2), - [177] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 25), - [179] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 25), - [181] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), - [183] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), - [185] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 16), - [187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [193] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2), - [195] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 27), - [197] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 27), - [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [203] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), - [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [213] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24), - [215] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), - [217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 10), + [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 10), + [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 20), + [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 20), + [116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), + [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 16), + [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 16), + [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 26), + [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 26), + [128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 20), + [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 20), + [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 12), + [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 12), + [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 20), + [138] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), + [140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 13), + [144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 4), + [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), + [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 14), + [152] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3, .production_id = 14), + [154] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), + [156] = {.entry = {.count = 1, .reusable = false}}, SHIFT(20), + [158] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2), + [160] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type, 1), + [162] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [166] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), + [169] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 16), + [171] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18), + [173] = {.entry = {.count = 1, .reusable = false}}, SHIFT(101), + [175] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 21), + [177] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 21), + [179] = {.entry = {.count = 1, .reusable = false}}, SHIFT(84), + [181] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), + [183] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 23), + [185] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), + [187] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 27), + [189] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 27), + [191] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 2), + [193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 2), + [195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [201] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 25), + [203] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 25), + [205] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), + [207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), + [209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), [219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [235] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), - [237] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 23), - [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [241] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 15), - [243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 15), - [245] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 15), SHIFT_REPEAT(65), - [248] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 5), - [250] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 5), + [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [241] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 5), + [243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 5), + [245] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 15), + [247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 15), + [249] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 15), SHIFT_REPEAT(64), [252] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 2), [254] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 2), [256] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 2), [258] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 2), - [260] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80), - [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [260] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), + [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), [264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 1), [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 17), - [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), [270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 9), - [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 24), - [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 19), - [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 8), - [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 2), - [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 8), - [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [294] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 15), SHIFT_REPEAT(109), - [297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 15), - [301] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 15), SHIFT_REPEAT(72), - [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 2), - [306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), - [308] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(107), - [311] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 15), SHIFT_REPEAT(9), + [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 19), + [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 24), + [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), + [280] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(110), + [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 2), + [285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 8), + [291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [293] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 15), SHIFT_REPEAT(105), + [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 2), + [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 15), + [306] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 15), SHIFT_REPEAT(72), + [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 8), + [311] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 15), SHIFT_REPEAT(16), [314] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 15), [316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 16), - [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 16), - [326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 13), - [332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 4), - [334] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 15), SHIFT_REPEAT(59), - [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 15), + [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 16), + [324] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 15), SHIFT_REPEAT(55), + [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 15), + [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 13), + [331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 4), + [335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 6), - [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 3), [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 10), - [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 1), - [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 18), - [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [359] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 7), + [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 7), + [357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 18), + [359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [363] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), }; #ifdef __cplusplus From 8e80dd69f0525278bb7db9a18cc1235f859fd0d1 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Sun, 7 Apr 2024 15:03:11 +0200 Subject: [PATCH 19/49] Add 'item' field to source_file --- grammar.js | 2 +- src/grammar.json | 8 +- src/node-types.json | 21 +- src/parser.c | 1734 ++++++++++++++++++++++--------------------- 4 files changed, 890 insertions(+), 875 deletions(-) diff --git a/grammar.js b/grammar.js index 937b0cc..7f3daa8 100644 --- a/grammar.js +++ b/grammar.js @@ -23,7 +23,7 @@ module.exports = grammar({ name: 'sus', rules: { - source_file: $ => repeat($.module), + source_file: $ => repeat(field('item', $.module)), interface_ports : $ => seq( ':', diff --git a/src/grammar.json b/src/grammar.json index f3896e2..0ed2933 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -5,8 +5,12 @@ "source_file": { "type": "REPEAT", "content": { - "type": "SYMBOL", - "name": "module" + "type": "FIELD", + "name": "item", + "content": { + "type": "SYMBOL", + "name": "module" + } } }, "interface_ports": { diff --git a/src/node-types.json b/src/node-types.json index c9e7cfd..fc65287 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -890,16 +890,17 @@ { "type": "source_file", "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "module", - "named": true - } - ] + "fields": { + "item": { + "multiple": true, + "required": false, + "types": [ + { + "type": "module", + "named": true + } + ] + } } }, { diff --git a/src/parser.c b/src/parser.c index 5a8cae3..c6cca6e 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,7 +6,7 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 113 +#define STATE_COUNT 114 #define LARGE_STATE_COUNT 5 #define SYMBOL_COUNT 73 #define ALIAS_COUNT 0 @@ -598,21 +598,21 @@ static const char * const ts_field_names[] = { }; static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { - [1] = {.index = 0, .length = 2}, - [2] = {.index = 2, .length = 1}, - [3] = {.index = 3, .length = 1}, - [4] = {.index = 4, .length = 1}, - [5] = {.index = 5, .length = 1}, - [6] = {.index = 6, .length = 3}, - [7] = {.index = 9, .length = 1}, - [8] = {.index = 10, .length = 2}, + [1] = {.index = 0, .length = 1}, + [2] = {.index = 1, .length = 1}, + [3] = {.index = 2, .length = 2}, + [4] = {.index = 4, .length = 2}, + [5] = {.index = 6, .length = 1}, + [6] = {.index = 7, .length = 1}, + [7] = {.index = 8, .length = 3}, + [8] = {.index = 11, .length = 1}, [9] = {.index = 12, .length = 2}, [10] = {.index = 14, .length = 2}, [11] = {.index = 16, .length = 2}, [12] = {.index = 18, .length = 2}, [13] = {.index = 20, .length = 2}, - [14] = {.index = 22, .length = 1}, - [15] = {.index = 23, .length = 2}, + [14] = {.index = 22, .length = 2}, + [15] = {.index = 24, .length = 1}, [16] = {.index = 25, .length = 1}, [17] = {.index = 26, .length = 3}, [18] = {.index = 29, .length = 2}, @@ -629,44 +629,44 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { static const TSFieldMapEntry ts_field_map_entries[] = { [0] = + {field_item, 0}, + [1] = + {field_item, 0, .inherited = true}, + [2] = + {field_item, 0, .inherited = true}, + {field_item, 1, .inherited = true}, + [4] = {field_block, 2}, {field_name, 1}, - [2] = - {field_item, 0}, - [3] = + [6] = {field_inputs, 1}, - [4] = + [7] = {field_expr_or_decl, 0}, - [5] = - {field_item, 0, .inherited = true}, - [6] = + [8] = {field_block, 3}, {field_interface_ports, 2}, {field_name, 1}, - [9] = + [11] = {field_outputs, 2}, - [10] = + [12] = {field_item, 0}, {field_item, 1, .inherited = true}, - [12] = + [14] = {field_name, 1}, {field_type, 0}, - [14] = + [16] = {field_arr, 0}, {field_arr_idx, 1}, - [16] = + [18] = {field_operator, 0}, {field_right, 1}, - [18] = + [20] = {field_arguments, 1}, {field_name, 0}, - [20] = + [22] = {field_expr_or_decl, 1}, {field_write_modifiers, 0}, - [22] = - {field_item, 1, .inherited = true}, - [23] = - {field_item, 0, .inherited = true}, + [24] = {field_item, 1, .inherited = true}, [25] = {field_item, 1}, @@ -757,9 +757,9 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [33] = 33, [34] = 34, [35] = 35, - [36] = 35, + [36] = 36, [37] = 37, - [38] = 38, + [38] = 36, [39] = 39, [40] = 40, [41] = 41, @@ -779,9 +779,9 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [55] = 55, [56] = 56, [57] = 57, - [58] = 46, + [58] = 58, [59] = 59, - [60] = 60, + [60] = 57, [61] = 61, [62] = 62, [63] = 63, @@ -800,29 +800,29 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [76] = 76, [77] = 77, [78] = 78, - [79] = 6, - [80] = 5, - [81] = 7, + [79] = 5, + [80] = 80, + [81] = 81, [82] = 82, - [83] = 83, + [83] = 6, [84] = 84, - [85] = 85, + [85] = 7, [86] = 86, [87] = 87, [88] = 88, [89] = 89, [90] = 90, - [91] = 91, + [91] = 16, [92] = 92, [93] = 93, [94] = 94, - [95] = 9, + [95] = 95, [96] = 96, [97] = 97, [98] = 98, [99] = 99, - [100] = 100, - [101] = 18, + [100] = 20, + [101] = 101, [102] = 102, [103] = 103, [104] = 104, @@ -833,7 +833,8 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [109] = 109, [110] = 110, [111] = 111, - [112] = 105, + [112] = 107, + [113] = 113, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -3192,8 +3193,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [12] = {.lex_state = 2}, [13] = {.lex_state = 2}, [14] = {.lex_state = 2}, - [15] = {.lex_state = 2}, - [16] = {.lex_state = 12}, + [15] = {.lex_state = 12}, + [16] = {.lex_state = 2}, [17] = {.lex_state = 2}, [18] = {.lex_state = 2}, [19] = {.lex_state = 2}, @@ -3204,9 +3205,9 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [24] = {.lex_state = 2}, [25] = {.lex_state = 12}, [26] = {.lex_state = 2}, - [27] = {.lex_state = 2}, + [27] = {.lex_state = 12}, [28] = {.lex_state = 12}, - [29] = {.lex_state = 12}, + [29] = {.lex_state = 2}, [30] = {.lex_state = 2}, [31] = {.lex_state = 2}, [32] = {.lex_state = 2}, @@ -3257,22 +3258,22 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [77] = {.lex_state = 0}, [78] = {.lex_state = 0}, [79] = {.lex_state = 12}, - [80] = {.lex_state = 12}, - [81] = {.lex_state = 12}, + [80] = {.lex_state = 7}, + [81] = {.lex_state = 0}, [82] = {.lex_state = 0}, - [83] = {.lex_state = 0}, + [83] = {.lex_state = 12}, [84] = {.lex_state = 0}, - [85] = {.lex_state = 7}, + [85] = {.lex_state = 12}, [86] = {.lex_state = 0}, [87] = {.lex_state = 0}, [88] = {.lex_state = 0}, [89] = {.lex_state = 0}, [90] = {.lex_state = 0}, - [91] = {.lex_state = 0}, + [91] = {.lex_state = 12}, [92] = {.lex_state = 0}, [93] = {.lex_state = 0}, [94] = {.lex_state = 0}, - [95] = {.lex_state = 12}, + [95] = {.lex_state = 0}, [96] = {.lex_state = 0}, [97] = {.lex_state = 0}, [98] = {.lex_state = 0}, @@ -3290,6 +3291,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [110] = {.lex_state = 0}, [111] = {.lex_state = 0}, [112] = {.lex_state = 0}, + [113] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -3337,31 +3339,31 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { }, [1] = { [sym_source_file] = STATE(111), - [sym_module] = STATE(83), - [aux_sym_source_file_repeat1] = STATE(83), + [sym_module] = STATE(104), + [aux_sym_source_file_repeat1] = STATE(78), [ts_builtin_sym_end] = ACTIONS(3), [anon_sym_module] = ACTIONS(5), }, [2] = { [sym_global_identifier] = STATE(32), - [sym_array_type] = STATE(94), - [sym__type] = STATE(94), - [sym_declaration] = STATE(96), - [sym_unary_op] = STATE(27), - [sym_binary_op] = STATE(27), - [sym_array_op] = STATE(27), - [sym_func_call] = STATE(27), - [sym_parenthesis_expression] = STATE(27), - [sym__expression] = STATE(27), - [sym_block] = STATE(42), + [sym_array_type] = STATE(93), + [sym__type] = STATE(93), + [sym_declaration] = STATE(90), + [sym_unary_op] = STATE(26), + [sym_binary_op] = STATE(26), + [sym_array_op] = STATE(26), + [sym_func_call] = STATE(26), + [sym_parenthesis_expression] = STATE(26), + [sym__expression] = STATE(26), + [sym_block] = STATE(44), [sym_write_modifiers] = STATE(25), - [sym_assign_to] = STATE(82), - [sym_assign_left_side] = STATE(102), - [sym_decl_assign_statement] = STATE(107), - [sym_if_statement] = STATE(42), - [sym_for_statement] = STATE(42), - [sym__statement] = STATE(42), - [aux_sym_block_repeat1] = STATE(4), + [sym_assign_to] = STATE(77), + [sym_assign_left_side] = STATE(105), + [sym_decl_assign_statement] = STATE(109), + [sym_if_statement] = STATE(44), + [sym_for_statement] = STATE(44), + [sym__statement] = STATE(44), + [aux_sym_block_repeat1] = STATE(3), [aux_sym_write_modifiers_repeat1] = STATE(62), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), @@ -3384,64 +3386,24 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { }, [3] = { [sym_global_identifier] = STATE(32), - [sym_array_type] = STATE(94), - [sym__type] = STATE(94), - [sym_declaration] = STATE(96), - [sym_unary_op] = STATE(27), - [sym_binary_op] = STATE(27), - [sym_array_op] = STATE(27), - [sym_func_call] = STATE(27), - [sym_parenthesis_expression] = STATE(27), - [sym__expression] = STATE(27), - [sym_block] = STATE(42), - [sym_write_modifiers] = STATE(25), - [sym_assign_to] = STATE(82), - [sym_assign_left_side] = STATE(102), - [sym_decl_assign_statement] = STATE(107), - [sym_if_statement] = STATE(42), - [sym_for_statement] = STATE(42), - [sym__statement] = STATE(42), - [aux_sym_block_repeat1] = STATE(3), - [aux_sym_write_modifiers_repeat1] = STATE(62), - [sym_identifier] = ACTIONS(29), - [sym_number] = ACTIONS(32), - [anon_sym_state] = ACTIONS(35), - [anon_sym_gen] = ACTIONS(35), - [anon_sym_PLUS] = ACTIONS(38), - [anon_sym_DASH] = ACTIONS(38), - [anon_sym_STAR] = ACTIONS(38), - [anon_sym_BANG] = ACTIONS(38), - [anon_sym_PIPE] = ACTIONS(38), - [anon_sym_AMP] = ACTIONS(38), - [anon_sym_CARET] = ACTIONS(38), - [anon_sym_LPAREN] = ACTIONS(41), - [anon_sym_LBRACE] = ACTIONS(44), - [anon_sym_RBRACE] = ACTIONS(47), - [anon_sym_reg] = ACTIONS(49), - [anon_sym_initial] = ACTIONS(52), - [anon_sym_if] = ACTIONS(55), - [anon_sym_for] = ACTIONS(58), - }, - [4] = { - [sym_global_identifier] = STATE(32), - [sym_array_type] = STATE(94), - [sym__type] = STATE(94), - [sym_declaration] = STATE(96), - [sym_unary_op] = STATE(27), - [sym_binary_op] = STATE(27), - [sym_array_op] = STATE(27), - [sym_func_call] = STATE(27), - [sym_parenthesis_expression] = STATE(27), - [sym__expression] = STATE(27), - [sym_block] = STATE(42), + [sym_array_type] = STATE(93), + [sym__type] = STATE(93), + [sym_declaration] = STATE(90), + [sym_unary_op] = STATE(26), + [sym_binary_op] = STATE(26), + [sym_array_op] = STATE(26), + [sym_func_call] = STATE(26), + [sym_parenthesis_expression] = STATE(26), + [sym__expression] = STATE(26), + [sym_block] = STATE(44), [sym_write_modifiers] = STATE(25), - [sym_assign_to] = STATE(82), - [sym_assign_left_side] = STATE(102), - [sym_decl_assign_statement] = STATE(107), - [sym_if_statement] = STATE(42), - [sym_for_statement] = STATE(42), - [sym__statement] = STATE(42), - [aux_sym_block_repeat1] = STATE(3), + [sym_assign_to] = STATE(77), + [sym_assign_left_side] = STATE(105), + [sym_decl_assign_statement] = STATE(109), + [sym_if_statement] = STATE(44), + [sym_for_statement] = STATE(44), + [sym__statement] = STATE(44), + [aux_sym_block_repeat1] = STATE(4), [aux_sym_write_modifiers_repeat1] = STATE(62), [sym_identifier] = ACTIONS(7), [sym_number] = ACTIONS(9), @@ -3456,12 +3418,52 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_CARET] = ACTIONS(13), [anon_sym_LPAREN] = ACTIONS(15), [anon_sym_LBRACE] = ACTIONS(17), - [anon_sym_RBRACE] = ACTIONS(61), + [anon_sym_RBRACE] = ACTIONS(29), [anon_sym_reg] = ACTIONS(21), [anon_sym_initial] = ACTIONS(23), [anon_sym_if] = ACTIONS(25), [anon_sym_for] = ACTIONS(27), }, + [4] = { + [sym_global_identifier] = STATE(32), + [sym_array_type] = STATE(93), + [sym__type] = STATE(93), + [sym_declaration] = STATE(90), + [sym_unary_op] = STATE(26), + [sym_binary_op] = STATE(26), + [sym_array_op] = STATE(26), + [sym_func_call] = STATE(26), + [sym_parenthesis_expression] = STATE(26), + [sym__expression] = STATE(26), + [sym_block] = STATE(44), + [sym_write_modifiers] = STATE(25), + [sym_assign_to] = STATE(77), + [sym_assign_left_side] = STATE(105), + [sym_decl_assign_statement] = STATE(109), + [sym_if_statement] = STATE(44), + [sym_for_statement] = STATE(44), + [sym__statement] = STATE(44), + [aux_sym_block_repeat1] = STATE(4), + [aux_sym_write_modifiers_repeat1] = STATE(62), + [sym_identifier] = ACTIONS(31), + [sym_number] = ACTIONS(34), + [anon_sym_state] = ACTIONS(37), + [anon_sym_gen] = ACTIONS(37), + [anon_sym_PLUS] = ACTIONS(40), + [anon_sym_DASH] = ACTIONS(40), + [anon_sym_STAR] = ACTIONS(40), + [anon_sym_BANG] = ACTIONS(40), + [anon_sym_PIPE] = ACTIONS(40), + [anon_sym_AMP] = ACTIONS(40), + [anon_sym_CARET] = ACTIONS(40), + [anon_sym_LPAREN] = ACTIONS(43), + [anon_sym_LBRACE] = ACTIONS(46), + [anon_sym_RBRACE] = ACTIONS(49), + [anon_sym_reg] = ACTIONS(51), + [anon_sym_initial] = ACTIONS(54), + [anon_sym_if] = ACTIONS(57), + [anon_sym_for] = ACTIONS(60), + }, }; static const uint16_t ts_small_parse_table[] = { @@ -3564,102 +3566,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [111] = 6, - ACTIONS(82), 1, + [111] = 11, + ACTIONS(86), 1, + anon_sym_PIPE, + ACTIONS(88), 1, + anon_sym_AMP, + ACTIONS(90), 1, + anon_sym_CARET, + ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(84), 1, + ACTIONS(94), 1, anon_sym_LPAREN, - ACTIONS(86), 1, + ACTIONS(96), 1, anon_sym_LBRACK, - STATE(17), 1, + STATE(21), 1, sym_array_bracket_expression, - STATE(23), 1, + STATE(22), 1, sym_parenthesis_expression_list, - ACTIONS(80), 22, - anon_sym_DASH_GT, - anon_sym_COMMA, + ACTIONS(82), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(84), 2, anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, anon_sym_PERCENT, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_DOT_DOT, - anon_sym_SEMI, - [151] = 2, - ACTIONS(90), 1, - anon_sym_SLASH, - ACTIONS(88), 26, + ACTIONS(80), 15, anon_sym_DASH_GT, anon_sym_COMMA, - sym_identifier, - anon_sym_COLON_COLON, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [183] = 11, - ACTIONS(84), 1, + [161] = 6, + ACTIONS(94), 1, anon_sym_LPAREN, - ACTIONS(86), 1, + ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(98), 1, - anon_sym_PIPE, ACTIONS(100), 1, - anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(104), 1, anon_sym_SLASH, - STATE(17), 1, + STATE(21), 1, sym_array_bracket_expression, - STATE(23), 1, + STATE(22), 1, sym_parenthesis_expression_list, - ACTIONS(94), 2, + ACTIONS(98), 22, + anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(92), 15, - anon_sym_DASH_GT, - anon_sym_COMMA, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_LBRACE, @@ -3667,24 +3639,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [233] = 8, - ACTIONS(84), 1, + [201] = 8, + ACTIONS(92), 1, + anon_sym_SLASH, + ACTIONS(94), 1, anon_sym_LPAREN, - ACTIONS(86), 1, + ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(104), 1, - anon_sym_SLASH, - STATE(17), 1, + STATE(21), 1, sym_array_bracket_expression, - STATE(23), 1, + STATE(22), 1, sym_parenthesis_expression_list, - ACTIONS(94), 2, + ACTIONS(82), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, + ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(92), 18, + ACTIONS(80), 18, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PIPE, @@ -3703,28 +3675,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [277] = 10, - ACTIONS(84), 1, - anon_sym_LPAREN, + [245] = 10, ACTIONS(86), 1, - anon_sym_LBRACK, - ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(102), 1, + ACTIONS(90), 1, anon_sym_CARET, - ACTIONS(104), 1, + ACTIONS(92), 1, anon_sym_SLASH, - STATE(17), 1, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, + anon_sym_LBRACK, + STATE(21), 1, sym_array_bracket_expression, - STATE(23), 1, + STATE(22), 1, sym_parenthesis_expression_list, - ACTIONS(94), 2, + ACTIONS(82), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, + ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(92), 16, + ACTIONS(80), 16, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_AMP, @@ -3741,26 +3713,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [325] = 9, - ACTIONS(84), 1, - anon_sym_LPAREN, - ACTIONS(86), 1, - anon_sym_LBRACK, - ACTIONS(102), 1, + [293] = 9, + ACTIONS(90), 1, anon_sym_CARET, - ACTIONS(104), 1, + ACTIONS(92), 1, anon_sym_SLASH, - STATE(17), 1, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, + anon_sym_LBRACK, + STATE(21), 1, sym_array_bracket_expression, - STATE(23), 1, + STATE(22), 1, sym_parenthesis_expression_list, - ACTIONS(94), 2, + ACTIONS(82), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, + ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(92), 17, + ACTIONS(80), 17, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PIPE, @@ -3778,18 +3750,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [371] = 6, - ACTIONS(84), 1, + [339] = 6, + ACTIONS(94), 1, anon_sym_LPAREN, - ACTIONS(86), 1, + ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(106), 1, + ACTIONS(102), 1, anon_sym_SLASH, - STATE(17), 1, + STATE(21), 1, sym_array_bracket_expression, - STATE(23), 1, + STATE(22), 1, sym_parenthesis_expression_list, - ACTIONS(92), 22, + ACTIONS(80), 22, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -3812,21 +3784,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [411] = 7, - ACTIONS(84), 1, + [379] = 7, + ACTIONS(92), 1, + anon_sym_SLASH, + ACTIONS(94), 1, anon_sym_LPAREN, - ACTIONS(86), 1, + ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(104), 1, - anon_sym_SLASH, - STATE(17), 1, + STATE(21), 1, sym_array_bracket_expression, - STATE(23), 1, + STATE(22), 1, sym_parenthesis_expression_list, - ACTIONS(96), 2, + ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(92), 20, + ACTIONS(80), 20, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -3847,7 +3819,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [453] = 14, + [421] = 14, ACTIONS(7), 1, sym_identifier, ACTIONS(9), 1, @@ -3864,17 +3836,17 @@ static const uint16_t ts_small_parse_table[] = { sym_global_identifier, STATE(62), 1, aux_sym_write_modifiers_repeat1, - STATE(89), 1, - sym_assign_to, - STATE(96), 1, + STATE(90), 1, sym_declaration, + STATE(96), 1, + sym_assign_to, ACTIONS(11), 2, anon_sym_state, anon_sym_gen, - STATE(94), 2, + STATE(93), 2, sym_array_type, sym__type, - STATE(27), 6, + STATE(26), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -3889,6 +3861,36 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, + [477] = 2, + ACTIONS(106), 1, + anon_sym_SLASH, + ACTIONS(104), 26, + anon_sym_DASH_GT, + anon_sym_COMMA, + sym_identifier, + anon_sym_COLON_COLON, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_DOT_DOT, + anon_sym_SEMI, [509] = 2, ACTIONS(110), 1, anon_sym_SLASH, @@ -4086,26 +4088,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DOT_DOT, anon_sym_SEMI, [719] = 12, - ACTIONS(84), 1, - anon_sym_LPAREN, ACTIONS(86), 1, - anon_sym_LBRACK, - ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(88), 1, anon_sym_AMP, - ACTIONS(102), 1, + ACTIONS(90), 1, anon_sym_CARET, - ACTIONS(104), 1, + ACTIONS(92), 1, anon_sym_SLASH, - STATE(17), 1, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, + anon_sym_LBRACK, + STATE(21), 1, sym_array_bracket_expression, - STATE(23), 1, + STATE(22), 1, sym_parenthesis_expression_list, - ACTIONS(94), 2, + ACTIONS(82), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, + ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(136), 6, @@ -4131,15 +4133,15 @@ static const uint16_t ts_small_parse_table[] = { sym_number, STATE(32), 1, sym_global_identifier, - STATE(93), 1, + STATE(94), 1, sym_declaration, ACTIONS(11), 2, anon_sym_state, anon_sym_gen, - STATE(94), 2, + STATE(93), 2, sym_array_type, sym__type, - STATE(26), 6, + STATE(29), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -4155,63 +4157,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, [809] = 12, - ACTIONS(84), 1, - anon_sym_LPAREN, ACTIONS(86), 1, - anon_sym_LBRACK, - ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(88), 1, anon_sym_AMP, - ACTIONS(102), 1, + ACTIONS(90), 1, anon_sym_CARET, - ACTIONS(104), 1, + ACTIONS(92), 1, anon_sym_SLASH, - STATE(17), 1, - sym_array_bracket_expression, - STATE(23), 1, - sym_parenthesis_expression_list, - ACTIONS(94), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(96), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(142), 3, - anon_sym_COMMA, - anon_sym_EQ, - anon_sym_SEMI, - ACTIONS(138), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [855] = 12, - ACTIONS(84), 1, + ACTIONS(94), 1, anon_sym_LPAREN, - ACTIONS(86), 1, + ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(98), 1, - anon_sym_PIPE, - ACTIONS(100), 1, - anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, - STATE(17), 1, + STATE(21), 1, sym_array_bracket_expression, - STATE(23), 1, + STATE(22), 1, sym_parenthesis_expression_list, - ACTIONS(94), 2, + ACTIONS(82), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, + ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(144), 3, + ACTIONS(142), 3, anon_sym_COMMA, anon_sym_EQ, anon_sym_SEMI, @@ -4222,8 +4190,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [901] = 2, - ACTIONS(148), 9, + [855] = 2, + ACTIONS(146), 9, anon_sym_module, sym_identifier, anon_sym_state, @@ -4233,7 +4201,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_else, anon_sym_for, - ACTIONS(146), 12, + ACTIONS(144), 12, ts_builtin_sym_end, sym_number, anon_sym_PLUS, @@ -4246,8 +4214,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [927] = 2, - ACTIONS(152), 9, + [881] = 2, + ACTIONS(150), 9, anon_sym_module, sym_identifier, anon_sym_state, @@ -4257,7 +4225,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_else, anon_sym_for, - ACTIONS(150), 12, + ACTIONS(148), 12, ts_builtin_sym_end, sym_number, anon_sym_PLUS, @@ -4270,33 +4238,67 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [953] = 14, - ACTIONS(84), 1, - anon_sym_LPAREN, + [907] = 12, ACTIONS(86), 1, + anon_sym_PIPE, + ACTIONS(88), 1, + anon_sym_AMP, + ACTIONS(90), 1, + anon_sym_CARET, + ACTIONS(92), 1, + anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(98), 1, + STATE(21), 1, + sym_array_bracket_expression, + STATE(22), 1, + sym_parenthesis_expression_list, + ACTIONS(82), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(84), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(152), 3, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_SEMI, + ACTIONS(138), 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_LT_EQ, + anon_sym_GT, + anon_sym_GT_EQ, + [953] = 14, + ACTIONS(86), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(88), 1, anon_sym_AMP, - ACTIONS(102), 1, + ACTIONS(90), 1, anon_sym_CARET, - ACTIONS(104), 1, + ACTIONS(92), 1, anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, + anon_sym_LBRACK, ACTIONS(154), 1, anon_sym_COMMA, ACTIONS(156), 1, anon_sym_RPAREN, - STATE(17), 1, + STATE(21), 1, sym_array_bracket_expression, - STATE(23), 1, + STATE(22), 1, sym_parenthesis_expression_list, - STATE(97), 1, + STATE(95), 1, aux_sym_parenthesis_expression_list_repeat1, - ACTIONS(94), 2, + ACTIONS(82), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, + ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(138), 6, @@ -4306,33 +4308,32 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1003] = 13, - ACTIONS(84), 1, - anon_sym_LPAREN, + [1003] = 12, ACTIONS(86), 1, - anon_sym_LBRACK, - ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(88), 1, anon_sym_AMP, - ACTIONS(102), 1, + ACTIONS(90), 1, anon_sym_CARET, - ACTIONS(104), 1, + ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(158), 1, - anon_sym_LBRACE, - STATE(17), 1, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, + anon_sym_LBRACK, + STATE(21), 1, sym_array_bracket_expression, - STATE(23), 1, + STATE(22), 1, sym_parenthesis_expression_list, - STATE(37), 1, - sym_block, - ACTIONS(94), 2, + ACTIONS(82), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, + ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, + ACTIONS(158), 2, + anon_sym_COMMA, + anon_sym_RPAREN, ACTIONS(138), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, @@ -4340,7 +4341,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1050] = 4, + [1048] = 4, ACTIONS(160), 1, sym_identifier, ACTIONS(164), 1, @@ -4365,31 +4366,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_EQ, anon_sym_SEMI, - [1079] = 13, - ACTIONS(84), 1, - anon_sym_LPAREN, + [1077] = 13, ACTIONS(86), 1, - anon_sym_LBRACK, - ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(88), 1, anon_sym_AMP, - ACTIONS(102), 1, + ACTIONS(90), 1, anon_sym_CARET, - ACTIONS(104), 1, + ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(158), 1, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, + anon_sym_LBRACK, + ACTIONS(169), 1, anon_sym_LBRACE, - STATE(17), 1, + STATE(21), 1, sym_array_bracket_expression, - STATE(23), 1, + STATE(22), 1, sym_parenthesis_expression_list, - STATE(41), 1, + STATE(43), 1, sym_block, - ACTIONS(94), 2, + ACTIONS(82), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, + ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(138), 6, @@ -4399,32 +4400,33 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT, anon_sym_GT_EQ, - [1126] = 12, - ACTIONS(84), 1, - anon_sym_LPAREN, + [1124] = 13, ACTIONS(86), 1, - anon_sym_LBRACK, - ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(88), 1, anon_sym_AMP, - ACTIONS(102), 1, + ACTIONS(90), 1, anon_sym_CARET, - ACTIONS(104), 1, + ACTIONS(92), 1, anon_sym_SLASH, - STATE(17), 1, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, + anon_sym_LBRACK, + ACTIONS(169), 1, + anon_sym_LBRACE, + STATE(21), 1, sym_array_bracket_expression, - STATE(23), 1, + STATE(22), 1, sym_parenthesis_expression_list, - ACTIONS(94), 2, + STATE(37), 1, + sym_block, + ACTIONS(82), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, + ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(169), 2, - anon_sym_COMMA, - anon_sym_RPAREN, ACTIONS(138), 6, anon_sym_EQ_EQ, anon_sym_BANG_EQ, @@ -4433,28 +4435,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, [1171] = 12, - ACTIONS(84), 1, - anon_sym_LPAREN, ACTIONS(86), 1, - anon_sym_LBRACK, - ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(88), 1, anon_sym_AMP, - ACTIONS(102), 1, + ACTIONS(90), 1, anon_sym_CARET, - ACTIONS(104), 1, + ACTIONS(92), 1, anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, + anon_sym_LBRACK, ACTIONS(171), 1, - anon_sym_RBRACK, - STATE(17), 1, + anon_sym_SEMI, + STATE(21), 1, sym_array_bracket_expression, - STATE(23), 1, + STATE(22), 1, sym_parenthesis_expression_list, - ACTIONS(94), 2, + ACTIONS(82), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, + ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(138), 6, @@ -4465,28 +4467,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, [1215] = 12, - ACTIONS(84), 1, - anon_sym_LPAREN, ACTIONS(86), 1, - anon_sym_LBRACK, - ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(88), 1, anon_sym_AMP, - ACTIONS(102), 1, + ACTIONS(90), 1, anon_sym_CARET, - ACTIONS(104), 1, + ACTIONS(92), 1, anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, + anon_sym_LBRACK, ACTIONS(173), 1, anon_sym_RBRACK, - STATE(17), 1, + STATE(21), 1, sym_array_bracket_expression, - STATE(23), 1, + STATE(22), 1, sym_parenthesis_expression_list, - ACTIONS(94), 2, + ACTIONS(82), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, + ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(138), 6, @@ -4520,28 +4522,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_RBRACE, [1285] = 12, - ACTIONS(84), 1, - anon_sym_LPAREN, ACTIONS(86), 1, - anon_sym_LBRACK, - ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(88), 1, anon_sym_AMP, - ACTIONS(102), 1, + ACTIONS(90), 1, anon_sym_CARET, - ACTIONS(104), 1, + ACTIONS(92), 1, anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, + anon_sym_LBRACK, ACTIONS(181), 1, - anon_sym_DOT_DOT, - STATE(17), 1, + anon_sym_RBRACK, + STATE(21), 1, sym_array_bracket_expression, - STATE(23), 1, + STATE(22), 1, sym_parenthesis_expression_list, - ACTIONS(94), 2, + ACTIONS(82), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, + ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(138), 6, @@ -4552,28 +4554,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, [1329] = 12, - ACTIONS(84), 1, - anon_sym_LPAREN, ACTIONS(86), 1, - anon_sym_LBRACK, - ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(88), 1, anon_sym_AMP, - ACTIONS(102), 1, + ACTIONS(90), 1, anon_sym_CARET, - ACTIONS(104), 1, + ACTIONS(92), 1, anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, + anon_sym_LBRACK, ACTIONS(183), 1, - anon_sym_SEMI, - STATE(17), 1, + anon_sym_DOT_DOT, + STATE(21), 1, sym_array_bracket_expression, - STATE(23), 1, + STATE(22), 1, sym_parenthesis_expression_list, - ACTIONS(94), 2, + ACTIONS(82), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, + ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(138), 6, @@ -4584,28 +4586,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_GT_EQ, [1373] = 12, - ACTIONS(84), 1, - anon_sym_LPAREN, ACTIONS(86), 1, - anon_sym_LBRACK, - ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(88), 1, anon_sym_AMP, - ACTIONS(102), 1, + ACTIONS(90), 1, anon_sym_CARET, - ACTIONS(104), 1, + ACTIONS(92), 1, anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, + anon_sym_LBRACK, ACTIONS(185), 1, anon_sym_RPAREN, - STATE(17), 1, + STATE(21), 1, sym_array_bracket_expression, - STATE(23), 1, + STATE(22), 1, sym_parenthesis_expression_list, - ACTIONS(94), 2, + ACTIONS(82), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(96), 2, + ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(138), 6, @@ -4657,33 +4659,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1463] = 6, - ACTIONS(15), 1, - anon_sym_LPAREN, - ACTIONS(195), 1, - sym_identifier, - ACTIONS(197), 1, - sym_number, - ACTIONS(199), 1, - anon_sym_RPAREN, - ACTIONS(13), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(30), 7, - sym_global_identifier, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - [1494] = 2, - ACTIONS(201), 7, + [1463] = 2, + ACTIONS(195), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -4691,7 +4668,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(203), 11, + ACTIONS(197), 11, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -4703,8 +4680,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1517] = 2, - ACTIONS(205), 7, + [1486] = 2, + ACTIONS(199), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -4712,7 +4689,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(207), 11, + ACTIONS(201), 11, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -4724,10 +4701,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, + [1509] = 6, + ACTIONS(15), 1, + anon_sym_LPAREN, + ACTIONS(203), 1, + sym_identifier, + ACTIONS(205), 1, + sym_number, + ACTIONS(207), 1, + anon_sym_RPAREN, + ACTIONS(13), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(30), 7, + sym_global_identifier, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, [1540] = 5, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(203), 1, sym_identifier, ACTIONS(209), 1, sym_number, @@ -4739,7 +4741,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(36), 7, + STATE(35), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -4750,7 +4752,7 @@ static const uint16_t ts_small_parse_table[] = { [1568] = 5, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(203), 1, sym_identifier, ACTIONS(211), 1, sym_number, @@ -4762,7 +4764,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(24), 7, + STATE(31), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -4773,7 +4775,7 @@ static const uint16_t ts_small_parse_table[] = { [1596] = 5, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(203), 1, sym_identifier, ACTIONS(213), 1, sym_number, @@ -4785,7 +4787,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(8), 7, + STATE(34), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -4796,7 +4798,7 @@ static const uint16_t ts_small_parse_table[] = { [1624] = 5, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(203), 1, sym_identifier, ACTIONS(215), 1, sym_number, @@ -4808,7 +4810,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(15), 7, + STATE(24), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -4819,7 +4821,7 @@ static const uint16_t ts_small_parse_table[] = { [1652] = 5, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(203), 1, sym_identifier, ACTIONS(217), 1, sym_number, @@ -4842,7 +4844,7 @@ static const uint16_t ts_small_parse_table[] = { [1680] = 5, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(203), 1, sym_identifier, ACTIONS(219), 1, sym_number, @@ -4865,7 +4867,7 @@ static const uint16_t ts_small_parse_table[] = { [1708] = 5, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(203), 1, sym_identifier, ACTIONS(221), 1, sym_number, @@ -4888,7 +4890,7 @@ static const uint16_t ts_small_parse_table[] = { [1736] = 5, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(203), 1, sym_identifier, ACTIONS(223), 1, sym_number, @@ -4911,7 +4913,7 @@ static const uint16_t ts_small_parse_table[] = { [1764] = 5, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(203), 1, sym_identifier, ACTIONS(225), 1, sym_number, @@ -4934,7 +4936,7 @@ static const uint16_t ts_small_parse_table[] = { [1792] = 5, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(203), 1, sym_identifier, ACTIONS(227), 1, sym_number, @@ -4946,7 +4948,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(34), 7, + STATE(8), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -4957,7 +4959,7 @@ static const uint16_t ts_small_parse_table[] = { [1820] = 5, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(203), 1, sym_identifier, ACTIONS(229), 1, sym_number, @@ -4969,7 +4971,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(33), 7, + STATE(40), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -4980,7 +4982,7 @@ static const uint16_t ts_small_parse_table[] = { [1848] = 5, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(203), 1, sym_identifier, ACTIONS(231), 1, sym_number, @@ -4992,7 +4994,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(38), 7, + STATE(36), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5003,7 +5005,7 @@ static const uint16_t ts_small_parse_table[] = { [1876] = 5, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(203), 1, sym_identifier, ACTIONS(233), 1, sym_number, @@ -5015,7 +5017,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(35), 7, + STATE(33), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5026,7 +5028,7 @@ static const uint16_t ts_small_parse_table[] = { [1904] = 5, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(203), 1, sym_identifier, ACTIONS(235), 1, sym_number, @@ -5038,7 +5040,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(31), 7, + STATE(39), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5049,7 +5051,7 @@ static const uint16_t ts_small_parse_table[] = { [1932] = 5, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(203), 1, sym_identifier, ACTIONS(237), 1, sym_number, @@ -5061,7 +5063,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(39), 7, + STATE(38), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5072,7 +5074,7 @@ static const uint16_t ts_small_parse_table[] = { [1960] = 5, ACTIONS(15), 1, anon_sym_LPAREN, - ACTIONS(195), 1, + ACTIONS(203), 1, sym_identifier, ACTIONS(239), 1, sym_number, @@ -5084,7 +5086,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(40), 7, + STATE(9), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5168,46 +5170,32 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_GT, ACTIONS(264), 1, anon_sym_LBRACE, - STATE(77), 1, + STATE(81), 1, sym_declaration, - STATE(99), 1, + STATE(102), 1, sym_declaration_list, ACTIONS(11), 2, anon_sym_state, anon_sym_gen, - STATE(94), 3, + STATE(93), 3, sym_global_identifier, sym_array_type, sym__type, [2094] = 5, ACTIONS(260), 1, sym_identifier, - STATE(77), 1, + STATE(81), 1, sym_declaration, - STATE(108), 1, + STATE(113), 1, sym_declaration_list, ACTIONS(11), 2, anon_sym_state, anon_sym_gen, - STATE(94), 3, + STATE(93), 3, sym_global_identifier, sym_array_type, sym__type, - [2113] = 5, - ACTIONS(260), 1, - sym_identifier, - STATE(77), 1, - sym_declaration, - STATE(106), 1, - sym_declaration_list, - ACTIONS(11), 2, - anon_sym_state, - anon_sym_gen, - STATE(94), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [2132] = 3, + [2113] = 3, ACTIONS(268), 1, anon_sym_SQUOTE, STATE(74), 1, @@ -5219,6 +5207,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, + [2128] = 5, + ACTIONS(260), 1, + sym_identifier, + STATE(81), 1, + sym_declaration, + STATE(108), 1, + sym_declaration_list, + ACTIONS(11), 2, + anon_sym_state, + anon_sym_gen, + STATE(93), 3, + sym_global_identifier, + sym_array_type, + sym__type, [2147] = 3, ACTIONS(268), 1, anon_sym_SQUOTE, @@ -5234,24 +5236,24 @@ static const uint16_t ts_small_parse_table[] = { [2162] = 4, ACTIONS(260), 1, sym_identifier, - STATE(109), 1, + STATE(92), 1, sym_declaration, ACTIONS(11), 2, anon_sym_state, anon_sym_gen, - STATE(94), 3, + STATE(93), 3, sym_global_identifier, sym_array_type, sym__type, [2178] = 4, ACTIONS(260), 1, sym_identifier, - STATE(91), 1, + STATE(110), 1, sym_declaration, ACTIONS(11), 2, anon_sym_state, anon_sym_gen, - STATE(94), 3, + STATE(93), 3, sym_global_identifier, sym_array_type, sym__type, @@ -5271,226 +5273,232 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [2212] = 2, + [2212] = 3, + ACTIONS(17), 1, + anon_sym_LBRACE, ACTIONS(276), 1, - sym_identifier, - STATE(90), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [2221] = 3, + anon_sym_if, + STATE(41), 2, + sym_block, + sym_if_statement, + [2223] = 3, ACTIONS(278), 1, - ts_builtin_sym_end, - ACTIONS(280), 1, - anon_sym_module, - STATE(76), 2, - sym_module, - aux_sym_source_file_repeat1, - [2232] = 3, - ACTIONS(285), 1, anon_sym_COMMA, - STATE(87), 1, - aux_sym_declaration_list_repeat1, - ACTIONS(283), 2, - anon_sym_DASH_GT, - anon_sym_LBRACE, - [2243] = 3, - ACTIONS(287), 1, + STATE(76), 1, + aux_sym_assign_left_side_repeat1, + ACTIONS(281), 2, + anon_sym_EQ, + anon_sym_SEMI, + [2234] = 3, + ACTIONS(283), 1, anon_sym_COMMA, - STATE(88), 1, + STATE(86), 1, aux_sym_assign_left_side_repeat1, - ACTIONS(289), 2, + ACTIONS(285), 2, anon_sym_EQ, anon_sym_SEMI, - [2254] = 3, - ACTIONS(291), 1, + [2245] = 4, + ACTIONS(5), 1, + anon_sym_module, + ACTIONS(287), 1, + ts_builtin_sym_end, + STATE(82), 1, + aux_sym_source_file_repeat1, + STATE(104), 1, + sym_module, + [2258] = 3, + ACTIONS(289), 1, anon_sym_COLON_COLON, - STATE(80), 1, + STATE(79), 1, aux_sym_global_identifier_repeat1, - ACTIONS(74), 2, + ACTIONS(68), 2, sym_identifier, anon_sym_LBRACK, - [2265] = 3, - ACTIONS(293), 1, + [2269] = 4, + ACTIONS(17), 1, + anon_sym_LBRACE, + ACTIONS(292), 1, + anon_sym_COLON, + STATE(99), 1, + sym_interface_ports, + STATE(103), 1, + sym_block, + [2282] = 3, + ACTIONS(296), 1, + anon_sym_COMMA, + STATE(87), 1, + aux_sym_declaration_list_repeat1, + ACTIONS(294), 2, + anon_sym_DASH_GT, + anon_sym_LBRACE, + [2293] = 4, + ACTIONS(298), 1, + ts_builtin_sym_end, + ACTIONS(300), 1, + anon_sym_module, + STATE(82), 1, + aux_sym_source_file_repeat1, + STATE(104), 1, + sym_module, + [2306] = 3, + ACTIONS(303), 1, anon_sym_COLON_COLON, - STATE(80), 1, + STATE(79), 1, aux_sym_global_identifier_repeat1, - ACTIONS(68), 2, + ACTIONS(74), 2, sym_identifier, anon_sym_LBRACK, - [2276] = 3, - ACTIONS(291), 1, + [2317] = 2, + ACTIONS(305), 1, + sym_identifier, + STATE(97), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [2326] = 3, + ACTIONS(303), 1, anon_sym_COLON_COLON, - STATE(79), 1, + STATE(83), 1, aux_sym_global_identifier_repeat1, ACTIONS(78), 2, sym_identifier, anon_sym_LBRACK, - [2287] = 3, - ACTIONS(287), 1, + [2337] = 3, + ACTIONS(283), 1, anon_sym_COMMA, - STATE(78), 1, + STATE(76), 1, aux_sym_assign_left_side_repeat1, - ACTIONS(296), 2, + ACTIONS(307), 2, anon_sym_EQ, anon_sym_SEMI, - [2298] = 3, - ACTIONS(5), 1, - anon_sym_module, - ACTIONS(298), 1, - ts_builtin_sym_end, - STATE(76), 2, - sym_module, - aux_sym_source_file_repeat1, - [2309] = 3, - ACTIONS(17), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_if, - STATE(44), 2, - sym_block, - sym_if_statement, - [2320] = 4, - ACTIONS(17), 1, - anon_sym_LBRACE, - ACTIONS(302), 1, - anon_sym_COLON, - STATE(103), 1, - sym_interface_ports, - STATE(104), 1, - sym_block, - [2333] = 3, - ACTIONS(306), 1, + [2348] = 3, + ACTIONS(296), 1, anon_sym_COMMA, - STATE(86), 1, + STATE(88), 1, aux_sym_declaration_list_repeat1, - ACTIONS(304), 2, + ACTIONS(309), 2, anon_sym_DASH_GT, anon_sym_LBRACE, - [2344] = 3, - ACTIONS(285), 1, + [2359] = 3, + ACTIONS(313), 1, anon_sym_COMMA, - STATE(86), 1, + STATE(88), 1, aux_sym_declaration_list_repeat1, - ACTIONS(309), 2, + ACTIONS(311), 2, anon_sym_DASH_GT, anon_sym_LBRACE, - [2355] = 3, - ACTIONS(311), 1, + [2370] = 3, + ACTIONS(316), 1, anon_sym_COMMA, - STATE(88), 1, - aux_sym_assign_left_side_repeat1, - ACTIONS(314), 2, - anon_sym_EQ, - anon_sym_SEMI, - [2366] = 1, - ACTIONS(316), 3, + ACTIONS(319), 1, + anon_sym_RPAREN, + STATE(89), 1, + aux_sym_parenthesis_expression_list_repeat1, + [2380] = 1, + ACTIONS(321), 3, anon_sym_COMMA, anon_sym_EQ, anon_sym_SEMI, - [2372] = 3, - ACTIONS(318), 1, + [2386] = 1, + ACTIONS(106), 3, sym_identifier, - ACTIONS(320), 1, + anon_sym_COLON_COLON, anon_sym_LBRACK, - STATE(100), 1, - sym_array_bracket_expression, - [2382] = 1, - ACTIONS(322), 3, + [2392] = 1, + ACTIONS(323), 3, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, - [2388] = 3, - ACTIONS(324), 1, - anon_sym_COMMA, + [2398] = 3, + ACTIONS(325), 1, + sym_identifier, ACTIONS(327), 1, - anon_sym_RPAREN, - STATE(92), 1, - aux_sym_parenthesis_expression_list_repeat1, - [2398] = 1, + anon_sym_LBRACK, + STATE(98), 1, + sym_array_bracket_expression, + [2408] = 1, ACTIONS(329), 3, anon_sym_COMMA, anon_sym_EQ, anon_sym_SEMI, - [2404] = 3, - ACTIONS(320), 1, - anon_sym_LBRACK, + [2414] = 3, ACTIONS(331), 1, - sym_identifier, - STATE(100), 1, - sym_array_bracket_expression, - [2414] = 1, - ACTIONS(90), 3, - sym_identifier, - anon_sym_COLON_COLON, - anon_sym_LBRACK, - [2420] = 1, - ACTIONS(333), 3, + anon_sym_COMMA, + ACTIONS(333), 1, + anon_sym_RPAREN, + STATE(89), 1, + aux_sym_parenthesis_expression_list_repeat1, + [2424] = 1, + ACTIONS(335), 3, anon_sym_COMMA, anon_sym_EQ, anon_sym_SEMI, - [2426] = 3, - ACTIONS(335), 1, - anon_sym_COMMA, + [2430] = 3, + ACTIONS(327), 1, + anon_sym_LBRACK, ACTIONS(337), 1, - anon_sym_RPAREN, - STATE(92), 1, - aux_sym_parenthesis_expression_list_repeat1, - [2436] = 1, - ACTIONS(339), 2, - ts_builtin_sym_end, - anon_sym_module, - [2441] = 2, - ACTIONS(341), 1, - anon_sym_DASH_GT, - ACTIONS(343), 1, - anon_sym_LBRACE, - [2448] = 1, - ACTIONS(345), 2, sym_identifier, - anon_sym_LBRACK, - [2453] = 1, - ACTIONS(114), 2, + STATE(98), 1, + sym_array_bracket_expression, + [2440] = 1, + ACTIONS(339), 2, sym_identifier, anon_sym_LBRACK, - [2458] = 2, - ACTIONS(347), 1, - anon_sym_EQ, - ACTIONS(349), 1, - anon_sym_SEMI, - [2465] = 2, + [2445] = 2, ACTIONS(17), 1, anon_sym_LBRACE, - STATE(98), 1, + STATE(101), 1, sym_block, - [2472] = 1, - ACTIONS(351), 2, + [2452] = 1, + ACTIONS(122), 2, + sym_identifier, + anon_sym_LBRACK, + [2457] = 1, + ACTIONS(341), 2, ts_builtin_sym_end, anon_sym_module, - [2477] = 1, - ACTIONS(353), 1, - sym_identifier, - [2481] = 1, - ACTIONS(355), 1, + [2462] = 2, + ACTIONS(343), 1, + anon_sym_DASH_GT, + ACTIONS(345), 1, anon_sym_LBRACE, - [2485] = 1, - ACTIONS(349), 1, + [2469] = 1, + ACTIONS(347), 2, + ts_builtin_sym_end, + anon_sym_module, + [2474] = 1, + ACTIONS(349), 2, + ts_builtin_sym_end, + anon_sym_module, + [2479] = 2, + ACTIONS(351), 1, + anon_sym_EQ, + ACTIONS(353), 1, anon_sym_SEMI, - [2489] = 1, + [2486] = 1, + ACTIONS(355), 1, + sym_identifier, + [2490] = 1, ACTIONS(357), 1, - anon_sym_LBRACE, - [2493] = 1, + sym_identifier, + [2494] = 1, ACTIONS(359), 1, - anon_sym_in, - [2497] = 1, + anon_sym_LBRACE, + [2498] = 1, + ACTIONS(353), 1, + anon_sym_SEMI, + [2502] = 1, ACTIONS(361), 1, - sym_identifier, - [2501] = 1, + anon_sym_in, + [2506] = 1, ACTIONS(363), 1, ts_builtin_sym_end, - [2505] = 1, + [2510] = 1, ACTIONS(365), 1, sym_identifier, + [2514] = 1, + ACTIONS(367), 1, + anon_sym_LBRACE, }; static const uint32_t ts_small_parse_table_map[] = { @@ -5498,14 +5506,14 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(6)] = 37, [SMALL_STATE(7)] = 74, [SMALL_STATE(8)] = 111, - [SMALL_STATE(9)] = 151, - [SMALL_STATE(10)] = 183, - [SMALL_STATE(11)] = 233, - [SMALL_STATE(12)] = 277, - [SMALL_STATE(13)] = 325, - [SMALL_STATE(14)] = 371, - [SMALL_STATE(15)] = 411, - [SMALL_STATE(16)] = 453, + [SMALL_STATE(9)] = 161, + [SMALL_STATE(10)] = 201, + [SMALL_STATE(11)] = 245, + [SMALL_STATE(12)] = 293, + [SMALL_STATE(13)] = 339, + [SMALL_STATE(14)] = 379, + [SMALL_STATE(15)] = 421, + [SMALL_STATE(16)] = 477, [SMALL_STATE(17)] = 509, [SMALL_STATE(18)] = 539, [SMALL_STATE(19)] = 569, @@ -5517,13 +5525,13 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(25)] = 768, [SMALL_STATE(26)] = 809, [SMALL_STATE(27)] = 855, - [SMALL_STATE(28)] = 901, - [SMALL_STATE(29)] = 927, + [SMALL_STATE(28)] = 881, + [SMALL_STATE(29)] = 907, [SMALL_STATE(30)] = 953, [SMALL_STATE(31)] = 1003, - [SMALL_STATE(32)] = 1050, - [SMALL_STATE(33)] = 1079, - [SMALL_STATE(34)] = 1126, + [SMALL_STATE(32)] = 1048, + [SMALL_STATE(33)] = 1077, + [SMALL_STATE(34)] = 1124, [SMALL_STATE(35)] = 1171, [SMALL_STATE(36)] = 1215, [SMALL_STATE(37)] = 1259, @@ -5533,8 +5541,8 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(41)] = 1417, [SMALL_STATE(42)] = 1440, [SMALL_STATE(43)] = 1463, - [SMALL_STATE(44)] = 1494, - [SMALL_STATE(45)] = 1517, + [SMALL_STATE(44)] = 1486, + [SMALL_STATE(45)] = 1509, [SMALL_STATE(46)] = 1540, [SMALL_STATE(47)] = 1568, [SMALL_STATE(48)] = 1596, @@ -5558,228 +5566,230 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(66)] = 2069, [SMALL_STATE(67)] = 2094, [SMALL_STATE(68)] = 2113, - [SMALL_STATE(69)] = 2132, + [SMALL_STATE(69)] = 2128, [SMALL_STATE(70)] = 2147, [SMALL_STATE(71)] = 2162, [SMALL_STATE(72)] = 2178, [SMALL_STATE(73)] = 2194, [SMALL_STATE(74)] = 2203, [SMALL_STATE(75)] = 2212, - [SMALL_STATE(76)] = 2221, - [SMALL_STATE(77)] = 2232, - [SMALL_STATE(78)] = 2243, - [SMALL_STATE(79)] = 2254, - [SMALL_STATE(80)] = 2265, - [SMALL_STATE(81)] = 2276, - [SMALL_STATE(82)] = 2287, - [SMALL_STATE(83)] = 2298, - [SMALL_STATE(84)] = 2309, - [SMALL_STATE(85)] = 2320, - [SMALL_STATE(86)] = 2333, - [SMALL_STATE(87)] = 2344, - [SMALL_STATE(88)] = 2355, - [SMALL_STATE(89)] = 2366, - [SMALL_STATE(90)] = 2372, - [SMALL_STATE(91)] = 2382, - [SMALL_STATE(92)] = 2388, + [SMALL_STATE(76)] = 2223, + [SMALL_STATE(77)] = 2234, + [SMALL_STATE(78)] = 2245, + [SMALL_STATE(79)] = 2258, + [SMALL_STATE(80)] = 2269, + [SMALL_STATE(81)] = 2282, + [SMALL_STATE(82)] = 2293, + [SMALL_STATE(83)] = 2306, + [SMALL_STATE(84)] = 2317, + [SMALL_STATE(85)] = 2326, + [SMALL_STATE(86)] = 2337, + [SMALL_STATE(87)] = 2348, + [SMALL_STATE(88)] = 2359, + [SMALL_STATE(89)] = 2370, + [SMALL_STATE(90)] = 2380, + [SMALL_STATE(91)] = 2386, + [SMALL_STATE(92)] = 2392, [SMALL_STATE(93)] = 2398, - [SMALL_STATE(94)] = 2404, + [SMALL_STATE(94)] = 2408, [SMALL_STATE(95)] = 2414, - [SMALL_STATE(96)] = 2420, - [SMALL_STATE(97)] = 2426, - [SMALL_STATE(98)] = 2436, - [SMALL_STATE(99)] = 2441, - [SMALL_STATE(100)] = 2448, - [SMALL_STATE(101)] = 2453, - [SMALL_STATE(102)] = 2458, - [SMALL_STATE(103)] = 2465, - [SMALL_STATE(104)] = 2472, - [SMALL_STATE(105)] = 2477, - [SMALL_STATE(106)] = 2481, - [SMALL_STATE(107)] = 2485, - [SMALL_STATE(108)] = 2489, - [SMALL_STATE(109)] = 2493, - [SMALL_STATE(110)] = 2497, - [SMALL_STATE(111)] = 2501, - [SMALL_STATE(112)] = 2505, + [SMALL_STATE(96)] = 2424, + [SMALL_STATE(97)] = 2430, + [SMALL_STATE(98)] = 2440, + [SMALL_STATE(99)] = 2445, + [SMALL_STATE(100)] = 2452, + [SMALL_STATE(101)] = 2457, + [SMALL_STATE(102)] = 2462, + [SMALL_STATE(103)] = 2469, + [SMALL_STATE(104)] = 2474, + [SMALL_STATE(105)] = 2479, + [SMALL_STATE(106)] = 2486, + [SMALL_STATE(107)] = 2490, + [SMALL_STATE(108)] = 2494, + [SMALL_STATE(109)] = 2498, + [SMALL_STATE(110)] = 2502, + [SMALL_STATE(111)] = 2506, + [SMALL_STATE(112)] = 2510, + [SMALL_STATE(113)] = 2514, }; 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}}, REDUCE(sym_source_file, 0), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(84), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64), [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), - [29] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(7), - [32] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(27), - [35] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(75), - [38] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(48), - [41] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(61), - [44] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(2), - [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), - [49] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(64), - [52] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(65), - [55] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(59), - [58] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 15), SHIFT_REPEAT(71), - [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 15), - [65] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 15), SHIFT_REPEAT(112), - [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 15), - [70] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 8), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(48), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72), + [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [31] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(7), + [34] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(26), + [37] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(84), + [40] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(61), + [43] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(56), + [46] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(2), + [49] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), + [51] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(64), + [54] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(65), + [57] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(48), + [60] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(72), + [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), + [65] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), SHIFT_REPEAT(112), + [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), + [70] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 9), [72] = {.entry = {.count = 1, .reusable = false}}, SHIFT(112), - [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 8), - [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 2), - [78] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 2), - [80] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 11), - [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 11), - [84] = {.entry = {.count = 1, .reusable = false}}, SHIFT(43), - [86] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), - [88] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 16), - [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 16), - [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 22), - [94] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49), - [96] = {.entry = {.count = 1, .reusable = false}}, SHIFT(50), - [98] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51), - [100] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), - [102] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), - [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 22), - [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 10), - [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 10), - [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 20), - [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 20), - [116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), - [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 16), - [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 16), - [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 26), - [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 26), - [128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 20), - [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 20), - [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 12), - [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 12), + [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 9), + [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 1), + [78] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 1), + [80] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 22), + [82] = {.entry = {.count = 1, .reusable = false}}, SHIFT(50), + [84] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51), + [86] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), + [88] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), + [90] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), + [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [94] = {.entry = {.count = 1, .reusable = false}}, SHIFT(45), + [96] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60), + [98] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 12), + [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 12), + [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 22), + [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 16), + [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 16), + [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 16), + [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 16), + [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), + [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 20), + [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 20), + [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 20), + [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 20), + [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 11), + [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 11), + [128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 13), + [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 13), + [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 26), + [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 26), [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 20), - [138] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), - [140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 13), - [144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 4), - [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), - [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 14), - [152] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3, .production_id = 14), - [154] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), - [156] = {.entry = {.count = 1, .reusable = false}}, SHIFT(20), - [158] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2), + [138] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), + [140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 6), + [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), + [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 15), + [150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3, .production_id = 15), + [152] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 14), + [154] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), + [156] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), + [158] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 16), [160] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type, 1), [162] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), [166] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [169] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 16), - [171] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18), - [173] = {.entry = {.count = 1, .reusable = false}}, SHIFT(101), + [169] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2), + [171] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 23), + [173] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), [175] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 21), [177] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 21), - [179] = {.entry = {.count = 1, .reusable = false}}, SHIFT(84), - [181] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), - [183] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 23), - [185] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), - [187] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 27), - [189] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 27), - [191] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 2), - [193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 2), - [195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [201] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 25), - [203] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 25), - [205] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), - [207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), - [209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [179] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), + [181] = {.entry = {.count = 1, .reusable = false}}, SHIFT(20), + [183] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), + [185] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19), + [187] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 25), + [189] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 25), + [191] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), + [193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), + [195] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 27), + [197] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 27), + [199] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 1), + [201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 1), + [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), [217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), [219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [241] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 5), - [243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 5), - [245] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 15), - [247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 15), - [249] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 15), SHIFT_REPEAT(64), - [252] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 2), - [254] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 2), - [256] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 2), - [258] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 2), - [260] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), - [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [241] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 2), + [243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 2), + [245] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 3), + [247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 3), + [249] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 3), SHIFT_REPEAT(64), + [252] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [254] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [256] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [258] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [260] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), + [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), [264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 1), - [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 17), - [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 9), - [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 19), - [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 24), - [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), - [280] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(110), - [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 2), - [285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 8), - [291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [293] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 15), SHIFT_REPEAT(105), - [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 2), - [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 15), - [306] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 15), SHIFT_REPEAT(72), - [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 8), - [311] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 15), SHIFT_REPEAT(16), - [314] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 15), - [316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 16), - [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 16), - [324] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 15), SHIFT_REPEAT(55), - [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 15), - [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 13), - [331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 4), - [335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 6), - [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 3), - [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 10), - [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 1), - [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 7), - [357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 18), - [359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 10), + [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 17), + [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 24), + [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 19), + [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [278] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), SHIFT_REPEAT(15), + [281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), + [283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), + [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 2), + [289] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), SHIFT_REPEAT(107), + [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), + [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), + [300] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), SHIFT_REPEAT(106), + [303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 9), + [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 9), + [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), + [313] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), SHIFT_REPEAT(71), + [316] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), SHIFT_REPEAT(47), + [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), + [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 6), + [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 16), + [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 14), + [331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 16), + [337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 11), + [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 7), + [343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 5), + [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), + [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 1, .production_id = 1), + [351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [359] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 8), + [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), [363] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [367] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 18), }; #ifdef __cplusplus From 32b2b873ea83738d7ec56ec66ee08a9c3b10ca30 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Sun, 7 Apr 2024 22:31:11 +0200 Subject: [PATCH 20/49] Add comments as proper syntax nodes --- grammar.js | 7 +- src/grammar.json | 16 +- src/node-types.json | 8 + src/parser.c | 3457 ++++++++++++++++++++++--------------------- 4 files changed, 1833 insertions(+), 1655 deletions(-) diff --git a/grammar.js b/grammar.js index 7f3daa8..75cad37 100644 --- a/grammar.js +++ b/grammar.js @@ -193,6 +193,9 @@ module.exports = grammar({ $.if_statement, $.for_statement ), + + single_line_comment : $ => /\/\/[^\n]*/, + multi_line_comment : $ => /\/\*[^\*]*\*+([^\/\*][^\*]*\*+)*\//, }, conflicts: $ => [ @@ -203,7 +206,7 @@ module.exports = grammar({ extras: $ => [ /\s+/, - /\/\/[^\n]*\n/, // Single line comment - /\/\*[^\*]*\*+([^\/\*][^\*]*\*+)*\// // Multi line comment + $.single_line_comment, + $.multi_line_comment ] }); diff --git a/src/grammar.json b/src/grammar.json index 0ed2933..c5e6536 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -1082,6 +1082,14 @@ "name": "for_statement" } ] + }, + "single_line_comment": { + "type": "PATTERN", + "value": "\\/\\/[^\\n]*" + }, + "multi_line_comment": { + "type": "PATTERN", + "value": "\\/\\*[^\\*]*\\*+([^\\/\\*][^\\*]*\\*+)*\\/" } }, "extras": [ @@ -1090,12 +1098,12 @@ "value": "\\s+" }, { - "type": "PATTERN", - "value": "\\/\\/[^\\n]*\\n" + "type": "SYMBOL", + "name": "single_line_comment" }, { - "type": "PATTERN", - "value": "\\/\\*[^\\*]*\\*+([^\\/\\*][^\\*]*\\*+)*\\/" + "type": "SYMBOL", + "name": "multi_line_comment" } ], "conflicts": [ diff --git a/src/node-types.json b/src/node-types.json index fc65287..cb4b7ff 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -1133,6 +1133,10 @@ "type": "module", "named": false }, + { + "type": "multi_line_comment", + "named": true + }, { "type": "number", "named": true @@ -1141,6 +1145,10 @@ "type": "reg", "named": false }, + { + "type": "single_line_comment", + "named": true + }, { "type": "state", "named": false diff --git a/src/parser.c b/src/parser.c index c6cca6e..5fc191b 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,11 +6,11 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 114 +#define STATE_COUNT 106 #define LARGE_STATE_COUNT 5 -#define SYMBOL_COUNT 73 +#define SYMBOL_COUNT 75 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 41 +#define TOKEN_COUNT 43 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 26 #define MAX_ALIAS_SEQUENCE_LENGTH 7 @@ -57,38 +57,40 @@ enum { anon_sym_in = 38, anon_sym_DOT_DOT = 39, anon_sym_SEMI = 40, - sym_source_file = 41, - sym_interface_ports = 42, - sym_declaration_list = 43, - sym_module = 44, - sym_global_identifier = 45, - sym_array_type = 46, - sym__type = 47, - sym_latency_specifier = 48, - sym_declaration = 49, - sym_unary_op = 50, - sym_binary_op = 51, - sym_array_op = 52, - sym_func_call = 53, - sym_parenthesis_expression_list = 54, - sym_parenthesis_expression = 55, - sym_array_bracket_expression = 56, - sym__expression = 57, - sym_block = 58, - sym_write_modifiers = 59, - sym_assign_to = 60, - sym_assign_left_side = 61, - sym_decl_assign_statement = 62, - sym_if_statement = 63, - sym_for_statement = 64, - sym__statement = 65, - aux_sym_source_file_repeat1 = 66, - aux_sym_declaration_list_repeat1 = 67, - aux_sym_global_identifier_repeat1 = 68, - aux_sym_parenthesis_expression_list_repeat1 = 69, - aux_sym_block_repeat1 = 70, - aux_sym_write_modifiers_repeat1 = 71, - aux_sym_assign_left_side_repeat1 = 72, + sym_single_line_comment = 41, + sym_multi_line_comment = 42, + sym_source_file = 43, + sym_interface_ports = 44, + sym_declaration_list = 45, + sym_module = 46, + sym_global_identifier = 47, + sym_array_type = 48, + sym__type = 49, + sym_latency_specifier = 50, + sym_declaration = 51, + sym_unary_op = 52, + sym_binary_op = 53, + sym_array_op = 54, + sym_func_call = 55, + sym_parenthesis_expression_list = 56, + sym_parenthesis_expression = 57, + sym_array_bracket_expression = 58, + sym__expression = 59, + sym_block = 60, + sym_write_modifiers = 61, + sym_assign_to = 62, + sym_assign_left_side = 63, + sym_decl_assign_statement = 64, + sym_if_statement = 65, + sym_for_statement = 66, + sym__statement = 67, + aux_sym_source_file_repeat1 = 68, + aux_sym_declaration_list_repeat1 = 69, + aux_sym_global_identifier_repeat1 = 70, + aux_sym_parenthesis_expression_list_repeat1 = 71, + aux_sym_block_repeat1 = 72, + aux_sym_write_modifiers_repeat1 = 73, + aux_sym_assign_left_side_repeat1 = 74, }; static const char * const ts_symbol_names[] = { @@ -133,6 +135,8 @@ static const char * const ts_symbol_names[] = { [anon_sym_in] = "in", [anon_sym_DOT_DOT] = "..", [anon_sym_SEMI] = ";", + [sym_single_line_comment] = "single_line_comment", + [sym_multi_line_comment] = "multi_line_comment", [sym_source_file] = "source_file", [sym_interface_ports] = "interface_ports", [sym_declaration_list] = "declaration_list", @@ -209,6 +213,8 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_in] = anon_sym_in, [anon_sym_DOT_DOT] = anon_sym_DOT_DOT, [anon_sym_SEMI] = anon_sym_SEMI, + [sym_single_line_comment] = sym_single_line_comment, + [sym_multi_line_comment] = sym_multi_line_comment, [sym_source_file] = sym_source_file, [sym_interface_ports] = sym_interface_ports, [sym_declaration_list] = sym_declaration_list, @@ -408,6 +414,14 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [sym_single_line_comment] = { + .visible = true, + .named = true, + }, + [sym_multi_line_comment] = { + .visible = true, + .named = true, + }, [sym_source_file] = { .visible = true, .named = true, @@ -759,7 +773,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [35] = 35, [36] = 36, [37] = 37, - [38] = 36, + [38] = 38, [39] = 39, [40] = 40, [41] = 41, @@ -781,7 +795,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [57] = 57, [58] = 58, [59] = 59, - [60] = 57, + [60] = 60, [61] = 61, [62] = 62, [63] = 63, @@ -800,19 +814,19 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [76] = 76, [77] = 77, [78] = 78, - [79] = 5, + [79] = 79, [80] = 80, [81] = 81, [82] = 82, - [83] = 6, + [83] = 83, [84] = 84, - [85] = 7, + [85] = 85, [86] = 86, [87] = 87, [88] = 88, [89] = 89, [90] = 90, - [91] = 16, + [91] = 91, [92] = 92, [93] = 93, [94] = 94, @@ -821,20 +835,12 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [97] = 97, [98] = 98, [99] = 99, - [100] = 20, + [100] = 100, [101] = 101, [102] = 102, [103] = 103, [104] = 104, [105] = 105, - [106] = 106, - [107] = 107, - [108] = 108, - [109] = 109, - [110] = 110, - [111] = 111, - [112] = 107, - [113] = 113, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -2752,278 +2758,232 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (eof) ADVANCE(19); - if (lookahead == '!') ADVANCE(33); - if (lookahead == '%') ADVANCE(44); - if (lookahead == '&') ADVANCE(35); - if (lookahead == '\'') ADVANCE(27); - if (lookahead == '(') ADVANCE(45); - if (lookahead == ')') ADVANCE(46); - if (lookahead == '*') ADVANCE(31); - if (lookahead == '+') ADVANCE(28); - if (lookahead == ',') ADVANCE(23); - if (lookahead == '-') ADVANCE(30); - if (lookahead == '.') ADVANCE(6); - if (lookahead == '/') SKIP(13) - if (lookahead == ':') ADVANCE(21); - if (lookahead == ';') ADVANCE(53); - if (lookahead == '<') ADVANCE(39); - if (lookahead == '=') ADVANCE(51); - if (lookahead == '>') ADVANCE(41); - if (lookahead == '[') ADVANCE(47); - if (lookahead == ']') ADVANCE(48); - if (lookahead == '^') ADVANCE(36); - if (lookahead == '{') ADVANCE(49); - if (lookahead == '|') ADVANCE(34); - if (lookahead == '}') ADVANCE(50); + if (eof) ADVANCE(9); + if (lookahead == '!') ADVANCE(23); + if (lookahead == '%') ADVANCE(34); + if (lookahead == '&') ADVANCE(25); + if (lookahead == '\'') ADVANCE(17); + if (lookahead == '(') ADVANCE(35); + if (lookahead == ')') ADVANCE(36); + if (lookahead == '*') ADVANCE(21); + if (lookahead == '+') ADVANCE(18); + if (lookahead == ',') ADVANCE(13); + if (lookahead == '-') ADVANCE(20); + if (lookahead == '.') ADVANCE(5); + if (lookahead == '/') ADVANCE(33); + if (lookahead == ':') ADVANCE(11); + if (lookahead == ';') ADVANCE(43); + if (lookahead == '<') ADVANCE(29); + if (lookahead == '=') ADVANCE(41); + if (lookahead == '>') ADVANCE(31); + if (lookahead == '[') ADVANCE(37); + if (lookahead == ']') ADVANCE(38); + if (lookahead == '^') ADVANCE(26); + if (lookahead == '{') ADVANCE(39); + if (lookahead == '|') ADVANCE(24); + if (lookahead == '}') ADVANCE(40); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(0) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(25); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(24); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(15); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(14); END_STATE(); case 1: - if (lookahead == '\n') SKIP(7) - if (lookahead != 0) SKIP(1) - END_STATE(); - case 2: - if (lookahead == '!') ADVANCE(9); - if (lookahead == '%') ADVANCE(44); - if (lookahead == '&') ADVANCE(35); - if (lookahead == '(') ADVANCE(45); - if (lookahead == ')') ADVANCE(46); - if (lookahead == '*') ADVANCE(31); - if (lookahead == '+') ADVANCE(28); - if (lookahead == ',') ADVANCE(23); - if (lookahead == '-') ADVANCE(30); - if (lookahead == '.') ADVANCE(6); - if (lookahead == '/') ADVANCE(43); - if (lookahead == ':') ADVANCE(8); - if (lookahead == ';') ADVANCE(53); - if (lookahead == '<') ADVANCE(39); - if (lookahead == '=') ADVANCE(51); - if (lookahead == '>') ADVANCE(41); - if (lookahead == '[') ADVANCE(47); - if (lookahead == ']') ADVANCE(48); - if (lookahead == '^') ADVANCE(36); - if (lookahead == '{') ADVANCE(49); - if (lookahead == '|') ADVANCE(34); + if (lookahead == '!') ADVANCE(7); + if (lookahead == '%') ADVANCE(34); + if (lookahead == '&') ADVANCE(25); + if (lookahead == '(') ADVANCE(35); + if (lookahead == ')') ADVANCE(36); + if (lookahead == '*') ADVANCE(21); + if (lookahead == '+') ADVANCE(18); + if (lookahead == ',') ADVANCE(13); + if (lookahead == '-') ADVANCE(20); + if (lookahead == '.') ADVANCE(5); + if (lookahead == '/') ADVANCE(33); + if (lookahead == ':') ADVANCE(6); + if (lookahead == ';') ADVANCE(43); + if (lookahead == '<') ADVANCE(29); + if (lookahead == '=') ADVANCE(41); + if (lookahead == '>') ADVANCE(31); + if (lookahead == '[') ADVANCE(37); + if (lookahead == ']') ADVANCE(38); + if (lookahead == '^') ADVANCE(26); + if (lookahead == '{') ADVANCE(39); + if (lookahead == '|') ADVANCE(24); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || - lookahead == ' ') SKIP(2) - if (sym_identifier_character_set_1(lookahead)) ADVANCE(24); + lookahead == ' ') SKIP(1) + if (sym_identifier_character_set_1(lookahead)) ADVANCE(14); + END_STATE(); + case 2: + if (lookahead == '*') ADVANCE(4); + if (lookahead == '/') ADVANCE(44); END_STATE(); case 3: - if (lookahead == '*') SKIP(5) - if (lookahead == '/') SKIP(1) + if (lookahead == '*') ADVANCE(3); + if (lookahead == '/') ADVANCE(45); + if (lookahead != 0) ADVANCE(4); END_STATE(); case 4: - if (lookahead == '*') SKIP(4) - if (lookahead == '/') SKIP(7) - if (lookahead != 0) SKIP(5) + if (lookahead == '*') ADVANCE(3); + if (lookahead != 0) ADVANCE(4); END_STATE(); case 5: - if (lookahead == '*') SKIP(4) - if (lookahead != 0) SKIP(5) + if (lookahead == '.') ADVANCE(42); END_STATE(); case 6: - if (lookahead == '.') ADVANCE(52); + if (lookahead == ':') ADVANCE(16); END_STATE(); case 7: - if (lookahead == '/') SKIP(3) - if (lookahead == ':') ADVANCE(20); - if (lookahead == '{') ADVANCE(49); + if (lookahead == '=') ADVANCE(28); + END_STATE(); + case 8: + if (eof) ADVANCE(9); + if (lookahead == '!') ADVANCE(22); + if (lookahead == '&') ADVANCE(25); + if (lookahead == '(') ADVANCE(35); + if (lookahead == ')') ADVANCE(36); + if (lookahead == '*') ADVANCE(21); + if (lookahead == '+') ADVANCE(18); + if (lookahead == '-') ADVANCE(19); + if (lookahead == '/') ADVANCE(2); + if (lookahead == ':') ADVANCE(10); + if (lookahead == '^') ADVANCE(26); + if (lookahead == '{') ADVANCE(39); + if (lookahead == '|') ADVANCE(24); + if (lookahead == '}') ADVANCE(40); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || - lookahead == ' ') SKIP(7) - END_STATE(); - case 8: - if (lookahead == ':') ADVANCE(26); + lookahead == ' ') SKIP(8) + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(15); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(14); END_STATE(); case 9: - if (lookahead == '=') ADVANCE(38); + ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); case 10: - if (eof) ADVANCE(19); - if (lookahead == '\n') SKIP(0) - if (lookahead != 0) SKIP(10) + ACCEPT_TOKEN(anon_sym_COLON); END_STATE(); case 11: - if (eof) ADVANCE(19); - if (lookahead == '\n') SKIP(12) - if (lookahead != 0) SKIP(11) + ACCEPT_TOKEN(anon_sym_COLON); + if (lookahead == ':') ADVANCE(16); END_STATE(); case 12: - if (eof) ADVANCE(19); - if (lookahead == '!') ADVANCE(32); - if (lookahead == '&') ADVANCE(35); - if (lookahead == '(') ADVANCE(45); - if (lookahead == ')') ADVANCE(46); - if (lookahead == '*') ADVANCE(31); - if (lookahead == '+') ADVANCE(28); - if (lookahead == '-') ADVANCE(29); - if (lookahead == '/') SKIP(18) - if (lookahead == ':') ADVANCE(8); - if (lookahead == '[') ADVANCE(47); - if (lookahead == '^') ADVANCE(36); - if (lookahead == '{') ADVANCE(49); - if (lookahead == '|') ADVANCE(34); - if (lookahead == '}') ADVANCE(50); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(12) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(25); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(24); + ACCEPT_TOKEN(anon_sym_DASH_GT); END_STATE(); case 13: - if (eof) ADVANCE(19); - if (lookahead == '*') SKIP(15) - if (lookahead == '/') SKIP(10) + ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); case 14: - if (eof) ADVANCE(19); - if (lookahead == '*') SKIP(14) - if (lookahead == '/') SKIP(0) - if (lookahead != 0) SKIP(15) + ACCEPT_TOKEN(sym_identifier); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(14); END_STATE(); case 15: - if (eof) ADVANCE(19); - if (lookahead == '*') SKIP(14) - if (lookahead != 0) SKIP(15) + ACCEPT_TOKEN(sym_number); + if (('0' <= lookahead && lookahead <= '9') || + lookahead == '_') ADVANCE(15); END_STATE(); case 16: - if (eof) ADVANCE(19); - if (lookahead == '*') SKIP(16) - if (lookahead == '/') SKIP(12) - if (lookahead != 0) SKIP(17) + ACCEPT_TOKEN(anon_sym_COLON_COLON); END_STATE(); case 17: - if (eof) ADVANCE(19); - if (lookahead == '*') SKIP(16) - if (lookahead != 0) SKIP(17) + ACCEPT_TOKEN(anon_sym_SQUOTE); END_STATE(); case 18: - if (eof) ADVANCE(19); - if (lookahead == '*') SKIP(17) - if (lookahead == '/') SKIP(11) + ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); case 19: - ACCEPT_TOKEN(ts_builtin_sym_end); + ACCEPT_TOKEN(anon_sym_DASH); END_STATE(); case 20: - ACCEPT_TOKEN(anon_sym_COLON); + ACCEPT_TOKEN(anon_sym_DASH); + if (lookahead == '>') ADVANCE(12); END_STATE(); case 21: - ACCEPT_TOKEN(anon_sym_COLON); - if (lookahead == ':') ADVANCE(26); + ACCEPT_TOKEN(anon_sym_STAR); END_STATE(); case 22: - ACCEPT_TOKEN(anon_sym_DASH_GT); + ACCEPT_TOKEN(anon_sym_BANG); END_STATE(); case 23: - ACCEPT_TOKEN(anon_sym_COMMA); + ACCEPT_TOKEN(anon_sym_BANG); + if (lookahead == '=') ADVANCE(28); END_STATE(); case 24: - ACCEPT_TOKEN(sym_identifier); - if (sym_identifier_character_set_2(lookahead)) ADVANCE(24); + ACCEPT_TOKEN(anon_sym_PIPE); END_STATE(); case 25: - ACCEPT_TOKEN(sym_number); - if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(25); + ACCEPT_TOKEN(anon_sym_AMP); END_STATE(); case 26: - ACCEPT_TOKEN(anon_sym_COLON_COLON); + ACCEPT_TOKEN(anon_sym_CARET); END_STATE(); case 27: - ACCEPT_TOKEN(anon_sym_SQUOTE); + ACCEPT_TOKEN(anon_sym_EQ_EQ); END_STATE(); case 28: - ACCEPT_TOKEN(anon_sym_PLUS); + ACCEPT_TOKEN(anon_sym_BANG_EQ); END_STATE(); case 29: - ACCEPT_TOKEN(anon_sym_DASH); + ACCEPT_TOKEN(anon_sym_LT); + if (lookahead == '=') ADVANCE(30); END_STATE(); case 30: - ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '>') ADVANCE(22); + ACCEPT_TOKEN(anon_sym_LT_EQ); END_STATE(); case 31: - ACCEPT_TOKEN(anon_sym_STAR); + ACCEPT_TOKEN(anon_sym_GT); + if (lookahead == '=') ADVANCE(32); END_STATE(); case 32: - ACCEPT_TOKEN(anon_sym_BANG); + ACCEPT_TOKEN(anon_sym_GT_EQ); END_STATE(); case 33: - ACCEPT_TOKEN(anon_sym_BANG); - if (lookahead == '=') ADVANCE(38); + ACCEPT_TOKEN(anon_sym_SLASH); + if (lookahead == '*') ADVANCE(4); + if (lookahead == '/') ADVANCE(44); END_STATE(); case 34: - ACCEPT_TOKEN(anon_sym_PIPE); + ACCEPT_TOKEN(anon_sym_PERCENT); END_STATE(); case 35: - ACCEPT_TOKEN(anon_sym_AMP); + ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); case 36: - ACCEPT_TOKEN(anon_sym_CARET); + ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); case 37: - ACCEPT_TOKEN(anon_sym_EQ_EQ); + ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); case 38: - ACCEPT_TOKEN(anon_sym_BANG_EQ); + ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); case 39: - ACCEPT_TOKEN(anon_sym_LT); - if (lookahead == '=') ADVANCE(40); + ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); case 40: - ACCEPT_TOKEN(anon_sym_LT_EQ); + ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); case 41: - ACCEPT_TOKEN(anon_sym_GT); - if (lookahead == '=') ADVANCE(42); + ACCEPT_TOKEN(anon_sym_EQ); + if (lookahead == '=') ADVANCE(27); END_STATE(); case 42: - ACCEPT_TOKEN(anon_sym_GT_EQ); + ACCEPT_TOKEN(anon_sym_DOT_DOT); END_STATE(); case 43: - ACCEPT_TOKEN(anon_sym_SLASH); + ACCEPT_TOKEN(anon_sym_SEMI); END_STATE(); case 44: - ACCEPT_TOKEN(anon_sym_PERCENT); + ACCEPT_TOKEN(sym_single_line_comment); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(44); END_STATE(); case 45: - ACCEPT_TOKEN(anon_sym_LPAREN); - END_STATE(); - case 46: - ACCEPT_TOKEN(anon_sym_RPAREN); - END_STATE(); - case 47: - ACCEPT_TOKEN(anon_sym_LBRACK); - END_STATE(); - case 48: - ACCEPT_TOKEN(anon_sym_RBRACK); - END_STATE(); - case 49: - ACCEPT_TOKEN(anon_sym_LBRACE); - END_STATE(); - case 50: - ACCEPT_TOKEN(anon_sym_RBRACE); - END_STATE(); - case 51: - ACCEPT_TOKEN(anon_sym_EQ); - if (lookahead == '=') ADVANCE(37); - END_STATE(); - case 52: - ACCEPT_TOKEN(anon_sym_DOT_DOT); - END_STATE(); - case 53: - ACCEPT_TOKEN(anon_sym_SEMI); + ACCEPT_TOKEN(sym_multi_line_comment); END_STATE(); default: return false; @@ -3035,141 +2995,114 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (lookahead == '/') SKIP(1) - if (lookahead == 'e') ADVANCE(2); - if (lookahead == 'f') ADVANCE(3); - if (lookahead == 'g') ADVANCE(4); - if (lookahead == 'i') ADVANCE(5); - if (lookahead == 'm') ADVANCE(6); - if (lookahead == 'r') ADVANCE(7); - if (lookahead == 's') ADVANCE(8); + if (lookahead == 'e') ADVANCE(1); + if (lookahead == 'f') ADVANCE(2); + if (lookahead == 'g') ADVANCE(3); + if (lookahead == 'i') ADVANCE(4); + if (lookahead == 'm') ADVANCE(5); + if (lookahead == 'r') ADVANCE(6); + if (lookahead == 's') ADVANCE(7); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(0) END_STATE(); case 1: - if (lookahead == '*') SKIP(9) - if (lookahead == '/') SKIP(10) + if (lookahead == 'l') ADVANCE(8); END_STATE(); case 2: - if (lookahead == 'l') ADVANCE(11); + if (lookahead == 'o') ADVANCE(9); END_STATE(); case 3: - if (lookahead == 'o') ADVANCE(12); + if (lookahead == 'e') ADVANCE(10); END_STATE(); case 4: - if (lookahead == 'e') ADVANCE(13); + if (lookahead == 'f') ADVANCE(11); + if (lookahead == 'n') ADVANCE(12); END_STATE(); case 5: - if (lookahead == 'f') ADVANCE(14); - if (lookahead == 'n') ADVANCE(15); + if (lookahead == 'o') ADVANCE(13); END_STATE(); case 6: - if (lookahead == 'o') ADVANCE(16); + if (lookahead == 'e') ADVANCE(14); END_STATE(); case 7: - if (lookahead == 'e') ADVANCE(17); + if (lookahead == 't') ADVANCE(15); END_STATE(); case 8: - if (lookahead == 't') ADVANCE(18); + if (lookahead == 's') ADVANCE(16); END_STATE(); case 9: - if (lookahead == '*') SKIP(19) - if (lookahead != 0) SKIP(9) + if (lookahead == 'r') ADVANCE(17); END_STATE(); case 10: - if (lookahead == '\n') SKIP(0) - if (lookahead != 0) SKIP(10) + if (lookahead == 'n') ADVANCE(18); END_STATE(); case 11: - if (lookahead == 's') ADVANCE(20); + ACCEPT_TOKEN(anon_sym_if); END_STATE(); case 12: - if (lookahead == 'r') ADVANCE(21); + ACCEPT_TOKEN(anon_sym_in); + if (lookahead == 'i') ADVANCE(19); END_STATE(); case 13: - if (lookahead == 'n') ADVANCE(22); + if (lookahead == 'd') ADVANCE(20); END_STATE(); case 14: - ACCEPT_TOKEN(anon_sym_if); + if (lookahead == 'g') ADVANCE(21); END_STATE(); case 15: - ACCEPT_TOKEN(anon_sym_in); - if (lookahead == 'i') ADVANCE(23); + if (lookahead == 'a') ADVANCE(22); END_STATE(); case 16: - if (lookahead == 'd') ADVANCE(24); + if (lookahead == 'e') ADVANCE(23); END_STATE(); case 17: - if (lookahead == 'g') ADVANCE(25); + ACCEPT_TOKEN(anon_sym_for); END_STATE(); case 18: - if (lookahead == 'a') ADVANCE(26); + ACCEPT_TOKEN(anon_sym_gen); END_STATE(); case 19: - if (lookahead == '*') SKIP(19) - if (lookahead == '/') SKIP(0) - if (lookahead != 0) SKIP(27) + if (lookahead == 't') ADVANCE(24); END_STATE(); case 20: - if (lookahead == 'e') ADVANCE(28); + if (lookahead == 'u') ADVANCE(25); END_STATE(); case 21: - ACCEPT_TOKEN(anon_sym_for); + ACCEPT_TOKEN(anon_sym_reg); END_STATE(); case 22: - ACCEPT_TOKEN(anon_sym_gen); + if (lookahead == 't') ADVANCE(26); END_STATE(); case 23: - if (lookahead == 't') ADVANCE(29); + ACCEPT_TOKEN(anon_sym_else); END_STATE(); case 24: - if (lookahead == 'u') ADVANCE(30); + if (lookahead == 'i') ADVANCE(27); END_STATE(); case 25: - ACCEPT_TOKEN(anon_sym_reg); + if (lookahead == 'l') ADVANCE(28); END_STATE(); case 26: - if (lookahead == 't') ADVANCE(31); + if (lookahead == 'e') ADVANCE(29); END_STATE(); case 27: - if (lookahead == '*') SKIP(32) - if (lookahead != 0) SKIP(27) + if (lookahead == 'a') ADVANCE(30); END_STATE(); case 28: - ACCEPT_TOKEN(anon_sym_else); + if (lookahead == 'e') ADVANCE(31); END_STATE(); case 29: - if (lookahead == 'i') ADVANCE(33); + ACCEPT_TOKEN(anon_sym_state); END_STATE(); case 30: - if (lookahead == 'l') ADVANCE(34); + if (lookahead == 'l') ADVANCE(32); END_STATE(); case 31: - if (lookahead == 'e') ADVANCE(35); - END_STATE(); - case 32: - if (lookahead == '*') SKIP(32) - if (lookahead == '/') SKIP(0) - if (lookahead != 0) SKIP(27) - END_STATE(); - case 33: - if (lookahead == 'a') ADVANCE(36); - END_STATE(); - case 34: - if (lookahead == 'e') ADVANCE(37); - END_STATE(); - case 35: - ACCEPT_TOKEN(anon_sym_state); - END_STATE(); - case 36: - if (lookahead == 'l') ADVANCE(38); - END_STATE(); - case 37: ACCEPT_TOKEN(anon_sym_module); END_STATE(); - case 38: + case 32: ACCEPT_TOKEN(anon_sym_initial); END_STATE(); default: @@ -3180,70 +3113,70 @@ 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 = 12}, - [3] = {.lex_state = 12}, - [4] = {.lex_state = 12}, - [5] = {.lex_state = 2}, - [6] = {.lex_state = 2}, - [7] = {.lex_state = 2}, - [8] = {.lex_state = 2}, - [9] = {.lex_state = 2}, - [10] = {.lex_state = 2}, - [11] = {.lex_state = 2}, - [12] = {.lex_state = 2}, - [13] = {.lex_state = 2}, - [14] = {.lex_state = 2}, - [15] = {.lex_state = 12}, - [16] = {.lex_state = 2}, - [17] = {.lex_state = 2}, - [18] = {.lex_state = 2}, - [19] = {.lex_state = 2}, - [20] = {.lex_state = 2}, - [21] = {.lex_state = 2}, - [22] = {.lex_state = 2}, - [23] = {.lex_state = 2}, - [24] = {.lex_state = 2}, - [25] = {.lex_state = 12}, - [26] = {.lex_state = 2}, - [27] = {.lex_state = 12}, - [28] = {.lex_state = 12}, - [29] = {.lex_state = 2}, - [30] = {.lex_state = 2}, - [31] = {.lex_state = 2}, - [32] = {.lex_state = 2}, - [33] = {.lex_state = 2}, - [34] = {.lex_state = 2}, - [35] = {.lex_state = 2}, - [36] = {.lex_state = 2}, - [37] = {.lex_state = 12}, - [38] = {.lex_state = 2}, - [39] = {.lex_state = 2}, - [40] = {.lex_state = 2}, - [41] = {.lex_state = 12}, - [42] = {.lex_state = 12}, - [43] = {.lex_state = 12}, - [44] = {.lex_state = 12}, - [45] = {.lex_state = 12}, - [46] = {.lex_state = 12}, - [47] = {.lex_state = 12}, - [48] = {.lex_state = 12}, - [49] = {.lex_state = 12}, - [50] = {.lex_state = 12}, - [51] = {.lex_state = 12}, - [52] = {.lex_state = 12}, - [53] = {.lex_state = 12}, - [54] = {.lex_state = 12}, - [55] = {.lex_state = 12}, - [56] = {.lex_state = 12}, - [57] = {.lex_state = 12}, - [58] = {.lex_state = 12}, - [59] = {.lex_state = 12}, - [60] = {.lex_state = 12}, - [61] = {.lex_state = 12}, - [62] = {.lex_state = 12}, - [63] = {.lex_state = 12}, - [64] = {.lex_state = 12}, - [65] = {.lex_state = 12}, + [2] = {.lex_state = 8}, + [3] = {.lex_state = 8}, + [4] = {.lex_state = 8}, + [5] = {.lex_state = 1}, + [6] = {.lex_state = 1}, + [7] = {.lex_state = 1}, + [8] = {.lex_state = 1}, + [9] = {.lex_state = 1}, + [10] = {.lex_state = 1}, + [11] = {.lex_state = 1}, + [12] = {.lex_state = 1}, + [13] = {.lex_state = 1}, + [14] = {.lex_state = 1}, + [15] = {.lex_state = 1}, + [16] = {.lex_state = 8}, + [17] = {.lex_state = 1}, + [18] = {.lex_state = 1}, + [19] = {.lex_state = 1}, + [20] = {.lex_state = 1}, + [21] = {.lex_state = 1}, + [22] = {.lex_state = 1}, + [23] = {.lex_state = 1}, + [24] = {.lex_state = 1}, + [25] = {.lex_state = 8}, + [26] = {.lex_state = 1}, + [27] = {.lex_state = 1}, + [28] = {.lex_state = 8}, + [29] = {.lex_state = 1}, + [30] = {.lex_state = 8}, + [31] = {.lex_state = 1}, + [32] = {.lex_state = 1}, + [33] = {.lex_state = 1}, + [34] = {.lex_state = 1}, + [35] = {.lex_state = 8}, + [36] = {.lex_state = 1}, + [37] = {.lex_state = 1}, + [38] = {.lex_state = 1}, + [39] = {.lex_state = 1}, + [40] = {.lex_state = 8}, + [41] = {.lex_state = 8}, + [42] = {.lex_state = 8}, + [43] = {.lex_state = 8}, + [44] = {.lex_state = 8}, + [45] = {.lex_state = 8}, + [46] = {.lex_state = 8}, + [47] = {.lex_state = 8}, + [48] = {.lex_state = 8}, + [49] = {.lex_state = 8}, + [50] = {.lex_state = 8}, + [51] = {.lex_state = 8}, + [52] = {.lex_state = 8}, + [53] = {.lex_state = 8}, + [54] = {.lex_state = 8}, + [55] = {.lex_state = 8}, + [56] = {.lex_state = 8}, + [57] = {.lex_state = 8}, + [58] = {.lex_state = 8}, + [59] = {.lex_state = 8}, + [60] = {.lex_state = 8}, + [61] = {.lex_state = 8}, + [62] = {.lex_state = 8}, + [63] = {.lex_state = 8}, + [64] = {.lex_state = 0}, + [65] = {.lex_state = 0}, [66] = {.lex_state = 0}, [67] = {.lex_state = 0}, [68] = {.lex_state = 0}, @@ -3254,22 +3187,22 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [73] = {.lex_state = 0}, [74] = {.lex_state = 0}, [75] = {.lex_state = 0}, - [76] = {.lex_state = 0}, + [76] = {.lex_state = 8}, [77] = {.lex_state = 0}, [78] = {.lex_state = 0}, - [79] = {.lex_state = 12}, - [80] = {.lex_state = 7}, + [79] = {.lex_state = 0}, + [80] = {.lex_state = 0}, [81] = {.lex_state = 0}, [82] = {.lex_state = 0}, - [83] = {.lex_state = 12}, + [83] = {.lex_state = 0}, [84] = {.lex_state = 0}, - [85] = {.lex_state = 12}, + [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 = 12}, + [91] = {.lex_state = 0}, [92] = {.lex_state = 0}, [93] = {.lex_state = 0}, [94] = {.lex_state = 0}, @@ -3284,14 +3217,6 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [103] = {.lex_state = 0}, [104] = {.lex_state = 0}, [105] = {.lex_state = 0}, - [106] = {.lex_state = 0}, - [107] = {.lex_state = 0}, - [108] = {.lex_state = 0}, - [109] = {.lex_state = 0}, - [110] = {.lex_state = 0}, - [111] = {.lex_state = 0}, - [112] = {.lex_state = 0}, - [113] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -3320,6 +3245,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_LT_EQ] = ACTIONS(1), [anon_sym_GT] = ACTIONS(1), [anon_sym_GT_EQ] = ACTIONS(1), + [anon_sym_SLASH] = ACTIONS(1), [anon_sym_PERCENT] = ACTIONS(1), [anon_sym_LPAREN] = ACTIONS(1), [anon_sym_RPAREN] = ACTIONS(1), @@ -3336,159 +3262,174 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_in] = ACTIONS(1), [anon_sym_DOT_DOT] = ACTIONS(1), [anon_sym_SEMI] = ACTIONS(1), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(111), - [sym_module] = STATE(104), - [aux_sym_source_file_repeat1] = STATE(78), - [ts_builtin_sym_end] = ACTIONS(3), - [anon_sym_module] = ACTIONS(5), + [sym_source_file] = STATE(104), + [sym_module] = STATE(97), + [aux_sym_source_file_repeat1] = STATE(75), + [ts_builtin_sym_end] = ACTIONS(5), + [anon_sym_module] = ACTIONS(7), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), }, [2] = { - [sym_global_identifier] = STATE(32), - [sym_array_type] = STATE(93), - [sym__type] = STATE(93), - [sym_declaration] = STATE(90), - [sym_unary_op] = STATE(26), - [sym_binary_op] = STATE(26), - [sym_array_op] = STATE(26), - [sym_func_call] = STATE(26), - [sym_parenthesis_expression] = STATE(26), - [sym__expression] = STATE(26), - [sym_block] = STATE(44), + [sym_global_identifier] = STATE(31), + [sym_array_type] = STATE(85), + [sym__type] = STATE(85), + [sym_declaration] = STATE(91), + [sym_unary_op] = STATE(27), + [sym_binary_op] = STATE(27), + [sym_array_op] = STATE(27), + [sym_func_call] = STATE(27), + [sym_parenthesis_expression] = STATE(27), + [sym__expression] = STATE(27), + [sym_block] = STATE(41), [sym_write_modifiers] = STATE(25), - [sym_assign_to] = STATE(77), - [sym_assign_left_side] = STATE(105), - [sym_decl_assign_statement] = STATE(109), - [sym_if_statement] = STATE(44), - [sym_for_statement] = STATE(44), - [sym__statement] = STATE(44), - [aux_sym_block_repeat1] = STATE(3), - [aux_sym_write_modifiers_repeat1] = STATE(62), - [sym_identifier] = ACTIONS(7), - [sym_number] = ACTIONS(9), - [anon_sym_state] = ACTIONS(11), - [anon_sym_gen] = ACTIONS(11), - [anon_sym_PLUS] = ACTIONS(13), - [anon_sym_DASH] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(13), - [anon_sym_BANG] = ACTIONS(13), - [anon_sym_PIPE] = ACTIONS(13), - [anon_sym_AMP] = ACTIONS(13), - [anon_sym_CARET] = ACTIONS(13), - [anon_sym_LPAREN] = ACTIONS(15), - [anon_sym_LBRACE] = ACTIONS(17), - [anon_sym_RBRACE] = ACTIONS(19), - [anon_sym_reg] = ACTIONS(21), - [anon_sym_initial] = ACTIONS(23), - [anon_sym_if] = ACTIONS(25), - [anon_sym_for] = ACTIONS(27), + [sym_assign_to] = STATE(83), + [sym_assign_left_side] = STATE(96), + [sym_decl_assign_statement] = STATE(101), + [sym_if_statement] = STATE(41), + [sym_for_statement] = STATE(41), + [sym__statement] = STATE(41), + [aux_sym_block_repeat1] = STATE(2), + [aux_sym_write_modifiers_repeat1] = STATE(60), + [sym_identifier] = ACTIONS(9), + [sym_number] = ACTIONS(12), + [anon_sym_state] = ACTIONS(15), + [anon_sym_gen] = ACTIONS(15), + [anon_sym_PLUS] = ACTIONS(18), + [anon_sym_DASH] = ACTIONS(18), + [anon_sym_STAR] = ACTIONS(18), + [anon_sym_BANG] = ACTIONS(18), + [anon_sym_PIPE] = ACTIONS(18), + [anon_sym_AMP] = ACTIONS(18), + [anon_sym_CARET] = ACTIONS(18), + [anon_sym_LPAREN] = ACTIONS(21), + [anon_sym_LBRACE] = ACTIONS(24), + [anon_sym_RBRACE] = ACTIONS(27), + [anon_sym_reg] = ACTIONS(29), + [anon_sym_initial] = ACTIONS(32), + [anon_sym_if] = ACTIONS(35), + [anon_sym_for] = ACTIONS(38), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), }, [3] = { - [sym_global_identifier] = STATE(32), - [sym_array_type] = STATE(93), - [sym__type] = STATE(93), - [sym_declaration] = STATE(90), - [sym_unary_op] = STATE(26), - [sym_binary_op] = STATE(26), - [sym_array_op] = STATE(26), - [sym_func_call] = STATE(26), - [sym_parenthesis_expression] = STATE(26), - [sym__expression] = STATE(26), - [sym_block] = STATE(44), + [sym_global_identifier] = STATE(31), + [sym_array_type] = STATE(85), + [sym__type] = STATE(85), + [sym_declaration] = STATE(91), + [sym_unary_op] = STATE(27), + [sym_binary_op] = STATE(27), + [sym_array_op] = STATE(27), + [sym_func_call] = STATE(27), + [sym_parenthesis_expression] = STATE(27), + [sym__expression] = STATE(27), + [sym_block] = STATE(41), [sym_write_modifiers] = STATE(25), - [sym_assign_to] = STATE(77), - [sym_assign_left_side] = STATE(105), - [sym_decl_assign_statement] = STATE(109), - [sym_if_statement] = STATE(44), - [sym_for_statement] = STATE(44), - [sym__statement] = STATE(44), - [aux_sym_block_repeat1] = STATE(4), - [aux_sym_write_modifiers_repeat1] = STATE(62), - [sym_identifier] = ACTIONS(7), - [sym_number] = ACTIONS(9), - [anon_sym_state] = ACTIONS(11), - [anon_sym_gen] = ACTIONS(11), - [anon_sym_PLUS] = ACTIONS(13), - [anon_sym_DASH] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(13), - [anon_sym_BANG] = ACTIONS(13), - [anon_sym_PIPE] = ACTIONS(13), - [anon_sym_AMP] = ACTIONS(13), - [anon_sym_CARET] = ACTIONS(13), - [anon_sym_LPAREN] = ACTIONS(15), - [anon_sym_LBRACE] = ACTIONS(17), - [anon_sym_RBRACE] = ACTIONS(29), - [anon_sym_reg] = ACTIONS(21), - [anon_sym_initial] = ACTIONS(23), - [anon_sym_if] = ACTIONS(25), - [anon_sym_for] = ACTIONS(27), + [sym_assign_to] = STATE(83), + [sym_assign_left_side] = STATE(96), + [sym_decl_assign_statement] = STATE(101), + [sym_if_statement] = STATE(41), + [sym_for_statement] = STATE(41), + [sym__statement] = STATE(41), + [aux_sym_block_repeat1] = STATE(2), + [aux_sym_write_modifiers_repeat1] = STATE(60), + [sym_identifier] = ACTIONS(41), + [sym_number] = ACTIONS(43), + [anon_sym_state] = ACTIONS(45), + [anon_sym_gen] = ACTIONS(45), + [anon_sym_PLUS] = ACTIONS(47), + [anon_sym_DASH] = ACTIONS(47), + [anon_sym_STAR] = ACTIONS(47), + [anon_sym_BANG] = ACTIONS(47), + [anon_sym_PIPE] = ACTIONS(47), + [anon_sym_AMP] = ACTIONS(47), + [anon_sym_CARET] = ACTIONS(47), + [anon_sym_LPAREN] = ACTIONS(49), + [anon_sym_LBRACE] = ACTIONS(51), + [anon_sym_RBRACE] = ACTIONS(53), + [anon_sym_reg] = ACTIONS(55), + [anon_sym_initial] = ACTIONS(57), + [anon_sym_if] = ACTIONS(59), + [anon_sym_for] = ACTIONS(61), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), }, [4] = { - [sym_global_identifier] = STATE(32), - [sym_array_type] = STATE(93), - [sym__type] = STATE(93), - [sym_declaration] = STATE(90), - [sym_unary_op] = STATE(26), - [sym_binary_op] = STATE(26), - [sym_array_op] = STATE(26), - [sym_func_call] = STATE(26), - [sym_parenthesis_expression] = STATE(26), - [sym__expression] = STATE(26), - [sym_block] = STATE(44), + [sym_global_identifier] = STATE(31), + [sym_array_type] = STATE(85), + [sym__type] = STATE(85), + [sym_declaration] = STATE(91), + [sym_unary_op] = STATE(27), + [sym_binary_op] = STATE(27), + [sym_array_op] = STATE(27), + [sym_func_call] = STATE(27), + [sym_parenthesis_expression] = STATE(27), + [sym__expression] = STATE(27), + [sym_block] = STATE(41), [sym_write_modifiers] = STATE(25), - [sym_assign_to] = STATE(77), - [sym_assign_left_side] = STATE(105), - [sym_decl_assign_statement] = STATE(109), - [sym_if_statement] = STATE(44), - [sym_for_statement] = STATE(44), - [sym__statement] = STATE(44), - [aux_sym_block_repeat1] = STATE(4), - [aux_sym_write_modifiers_repeat1] = STATE(62), - [sym_identifier] = ACTIONS(31), - [sym_number] = ACTIONS(34), - [anon_sym_state] = ACTIONS(37), - [anon_sym_gen] = ACTIONS(37), - [anon_sym_PLUS] = ACTIONS(40), - [anon_sym_DASH] = ACTIONS(40), - [anon_sym_STAR] = ACTIONS(40), - [anon_sym_BANG] = ACTIONS(40), - [anon_sym_PIPE] = ACTIONS(40), - [anon_sym_AMP] = ACTIONS(40), - [anon_sym_CARET] = ACTIONS(40), - [anon_sym_LPAREN] = ACTIONS(43), - [anon_sym_LBRACE] = ACTIONS(46), - [anon_sym_RBRACE] = ACTIONS(49), - [anon_sym_reg] = ACTIONS(51), - [anon_sym_initial] = ACTIONS(54), - [anon_sym_if] = ACTIONS(57), - [anon_sym_for] = ACTIONS(60), + [sym_assign_to] = STATE(83), + [sym_assign_left_side] = STATE(96), + [sym_decl_assign_statement] = STATE(101), + [sym_if_statement] = STATE(41), + [sym_for_statement] = STATE(41), + [sym__statement] = STATE(41), + [aux_sym_block_repeat1] = STATE(3), + [aux_sym_write_modifiers_repeat1] = STATE(60), + [sym_identifier] = ACTIONS(41), + [sym_number] = ACTIONS(43), + [anon_sym_state] = ACTIONS(45), + [anon_sym_gen] = ACTIONS(45), + [anon_sym_PLUS] = ACTIONS(47), + [anon_sym_DASH] = ACTIONS(47), + [anon_sym_STAR] = ACTIONS(47), + [anon_sym_BANG] = ACTIONS(47), + [anon_sym_PIPE] = ACTIONS(47), + [anon_sym_AMP] = ACTIONS(47), + [anon_sym_CARET] = ACTIONS(47), + [anon_sym_LPAREN] = ACTIONS(49), + [anon_sym_LBRACE] = ACTIONS(51), + [anon_sym_RBRACE] = ACTIONS(63), + [anon_sym_reg] = ACTIONS(55), + [anon_sym_initial] = ACTIONS(57), + [anon_sym_if] = ACTIONS(59), + [anon_sym_for] = ACTIONS(61), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), }, }; static const uint16_t ts_small_parse_table[] = { - [0] = 4, - ACTIONS(65), 1, + [0] = 5, + ACTIONS(69), 1, anon_sym_COLON_COLON, - ACTIONS(68), 1, - anon_sym_SLASH, - STATE(5), 1, + STATE(6), 1, aux_sym_global_identifier_repeat1, - ACTIONS(63), 25, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(65), 7, + sym_identifier, + anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + anon_sym_EQ, + anon_sym_in, + ACTIONS(67), 19, anon_sym_DASH_GT, anon_sym_COMMA, - sym_identifier, anon_sym_PLUS, - anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, @@ -3496,32 +3437,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [37] = 4, - ACTIONS(72), 1, + [41] = 5, + ACTIONS(75), 1, anon_sym_COLON_COLON, - ACTIONS(74), 1, - anon_sym_SLASH, - STATE(5), 1, + STATE(6), 1, aux_sym_global_identifier_repeat1, - ACTIONS(70), 25, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(71), 7, + sym_identifier, + anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + anon_sym_EQ, + anon_sym_in, + ACTIONS(73), 19, anon_sym_DASH_GT, anon_sym_COMMA, - sym_identifier, anon_sym_PLUS, - anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, @@ -3529,32 +3473,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [74] = 4, - ACTIONS(72), 1, + [82] = 5, + ACTIONS(69), 1, anon_sym_COLON_COLON, - ACTIONS(78), 1, - anon_sym_SLASH, - STATE(6), 1, + STATE(5), 1, aux_sym_global_identifier_repeat1, - ACTIONS(76), 25, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(78), 7, + sym_identifier, + anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + anon_sym_EQ, + anon_sym_in, + ACTIONS(80), 19, anon_sym_DASH_GT, anon_sym_COMMA, - sym_identifier, anon_sym_PLUS, - anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, @@ -3562,298 +3509,362 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [111] = 11, + [123] = 11, + ACTIONS(84), 1, + anon_sym_PLUS, ACTIONS(86), 1, - anon_sym_PIPE, - ACTIONS(88), 1, - anon_sym_AMP, - ACTIONS(90), 1, - anon_sym_CARET, + anon_sym_DASH, ACTIONS(92), 1, anon_sym_SLASH, ACTIONS(94), 1, anon_sym_LPAREN, ACTIONS(96), 1, anon_sym_LBRACK, - STATE(21), 1, - sym_array_bracket_expression, - STATE(22), 1, + STATE(19), 1, sym_parenthesis_expression_list, - ACTIONS(82), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(84), 2, + STATE(23), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(80), 15, + ACTIONS(90), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + ACTIONS(82), 15, anon_sym_DASH_GT, anon_sym_COMMA, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_LBRACE, - anon_sym_EQ, anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [161] = 6, + [175] = 14, + ACTIONS(84), 1, + anon_sym_PLUS, + ACTIONS(86), 1, + anon_sym_DASH, + ACTIONS(92), 1, + anon_sym_SLASH, ACTIONS(94), 1, anon_sym_LPAREN, ACTIONS(96), 1, anon_sym_LBRACK, + ACTIONS(98), 1, + anon_sym_PIPE, ACTIONS(100), 1, - anon_sym_SLASH, - STATE(21), 1, - sym_array_bracket_expression, - STATE(22), 1, + anon_sym_AMP, + ACTIONS(102), 1, + anon_sym_CARET, + STATE(19), 1, sym_parenthesis_expression_list, - ACTIONS(98), 22, + STATE(23), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(88), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(90), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + ACTIONS(82), 12, anon_sym_DASH_GT, anon_sym_COMMA, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, - anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_LBRACE, - anon_sym_EQ, anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [201] = 8, - ACTIONS(92), 1, - anon_sym_SLASH, + [233] = 7, ACTIONS(94), 1, anon_sym_LPAREN, ACTIONS(96), 1, anon_sym_LBRACK, - STATE(21), 1, - sym_array_bracket_expression, - STATE(22), 1, + STATE(19), 1, sym_parenthesis_expression_list, - ACTIONS(82), 2, - anon_sym_PLUS, + STATE(23), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(106), 5, anon_sym_DASH, - ACTIONS(84), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(80), 18, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + anon_sym_EQ, + ACTIONS(104), 18, anon_sym_DASH_GT, anon_sym_COMMA, + anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_LBRACE, - anon_sym_EQ, anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [245] = 10, + [277] = 13, + ACTIONS(84), 1, + anon_sym_PLUS, ACTIONS(86), 1, - anon_sym_PIPE, - ACTIONS(90), 1, - anon_sym_CARET, + anon_sym_DASH, ACTIONS(92), 1, anon_sym_SLASH, ACTIONS(94), 1, anon_sym_LPAREN, ACTIONS(96), 1, anon_sym_LBRACK, - STATE(21), 1, - sym_array_bracket_expression, - STATE(22), 1, + ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(102), 1, + anon_sym_CARET, + STATE(19), 1, sym_parenthesis_expression_list, - ACTIONS(82), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(84), 2, + STATE(23), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(80), 16, + ACTIONS(90), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + ACTIONS(82), 13, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_LBRACE, - anon_sym_EQ, anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [293] = 9, - ACTIONS(90), 1, - anon_sym_CARET, + [333] = 12, + ACTIONS(84), 1, + anon_sym_PLUS, + ACTIONS(86), 1, + anon_sym_DASH, ACTIONS(92), 1, anon_sym_SLASH, ACTIONS(94), 1, anon_sym_LPAREN, ACTIONS(96), 1, anon_sym_LBRACK, - STATE(21), 1, - sym_array_bracket_expression, - STATE(22), 1, + ACTIONS(102), 1, + anon_sym_CARET, + STATE(19), 1, sym_parenthesis_expression_list, - ACTIONS(82), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(84), 2, + STATE(23), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(80), 17, + ACTIONS(90), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + ACTIONS(82), 14, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_LBRACE, - anon_sym_EQ, anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [339] = 6, + [387] = 7, ACTIONS(94), 1, anon_sym_LPAREN, ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(102), 1, - anon_sym_SLASH, - STATE(21), 1, - sym_array_bracket_expression, - STATE(22), 1, + STATE(19), 1, sym_parenthesis_expression_list, - ACTIONS(80), 22, + STATE(23), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(90), 5, + anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + anon_sym_EQ, + ACTIONS(82), 18, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, - anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_LBRACE, - anon_sym_EQ, anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [379] = 7, + [431] = 9, ACTIONS(92), 1, anon_sym_SLASH, ACTIONS(94), 1, anon_sym_LPAREN, ACTIONS(96), 1, anon_sym_LBRACK, - STATE(21), 1, - sym_array_bracket_expression, - STATE(22), 1, + STATE(19), 1, sym_parenthesis_expression_list, - ACTIONS(84), 2, + STATE(23), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(80), 20, + ACTIONS(90), 4, + anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + ACTIONS(82), 16, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, - anon_sym_DASH, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_LBRACE, + anon_sym_in, + anon_sym_DOT_DOT, + anon_sym_SEMI, + [479] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(108), 7, + sym_identifier, + anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, anon_sym_EQ, anon_sym_in, + ACTIONS(110), 20, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_COLON_COLON, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_LBRACE, anon_sym_DOT_DOT, anon_sym_SEMI, - [421] = 14, - ACTIONS(7), 1, + [515] = 15, + ACTIONS(41), 1, sym_identifier, - ACTIONS(9), 1, + ACTIONS(43), 1, sym_number, - ACTIONS(15), 1, + ACTIONS(49), 1, anon_sym_LPAREN, - ACTIONS(21), 1, + ACTIONS(55), 1, anon_sym_reg, - ACTIONS(23), 1, + ACTIONS(57), 1, anon_sym_initial, STATE(25), 1, sym_write_modifiers, - STATE(32), 1, + STATE(31), 1, sym_global_identifier, - STATE(62), 1, + STATE(60), 1, aux_sym_write_modifiers_repeat1, - STATE(90), 1, - sym_declaration, - STATE(96), 1, + STATE(88), 1, sym_assign_to, - ACTIONS(11), 2, + STATE(91), 1, + sym_declaration, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(45), 2, anon_sym_state, anon_sym_gen, - STATE(93), 2, + STATE(85), 2, sym_array_type, sym__type, - STATE(26), 6, + STATE(27), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(13), 7, + ACTIONS(47), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3861,53 +3872,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [477] = 2, - ACTIONS(106), 1, - anon_sym_SLASH, - ACTIONS(104), 26, - anon_sym_DASH_GT, - anon_sym_COMMA, + [575] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(112), 7, sym_identifier, - anon_sym_COLON_COLON, - anon_sym_PLUS, anon_sym_DASH, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, anon_sym_LT, - anon_sym_LT_EQ, anon_sym_GT, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_LBRACE, + anon_sym_SLASH, anon_sym_EQ, anon_sym_in, - anon_sym_DOT_DOT, - anon_sym_SEMI, - [509] = 2, - ACTIONS(110), 1, - anon_sym_SLASH, - ACTIONS(108), 24, + ACTIONS(114), 19, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, - anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, @@ -3915,27 +3902,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [539] = 2, - ACTIONS(114), 1, + [610] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(118), 5, + anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, - ACTIONS(112), 24, + anon_sym_EQ, + ACTIONS(116), 20, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, - anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, @@ -3943,27 +3932,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, - anon_sym_EQ, anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [569] = 2, - ACTIONS(118), 1, + [644] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(122), 5, + anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, - ACTIONS(116), 24, + anon_sym_EQ, + ACTIONS(120), 20, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, - anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, @@ -3971,27 +3963,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, - anon_sym_EQ, anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [599] = 2, - ACTIONS(122), 1, + [678] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(126), 5, + anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, - ACTIONS(120), 24, + anon_sym_EQ, + ACTIONS(124), 20, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, - anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, @@ -3999,27 +3994,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, - anon_sym_EQ, anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [629] = 2, - ACTIONS(126), 1, + [712] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(130), 5, + anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, - ACTIONS(124), 24, + anon_sym_EQ, + ACTIONS(128), 20, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, - anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, @@ -4027,27 +4025,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, - anon_sym_EQ, anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [659] = 2, - ACTIONS(130), 1, + [746] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(134), 5, + anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, - ACTIONS(128), 24, + anon_sym_EQ, + ACTIONS(132), 20, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, - anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, @@ -4055,27 +4056,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, - anon_sym_EQ, anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [689] = 2, - ACTIONS(134), 1, + [780] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(138), 5, + anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, - ACTIONS(132), 24, + anon_sym_EQ, + ACTIONS(136), 20, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, - anon_sym_DASH, anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, @@ -4083,62 +4087,70 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, - anon_sym_EQ, anon_sym_in, anon_sym_DOT_DOT, anon_sym_SEMI, - [719] = 12, + [814] = 16, + ACTIONS(84), 1, + anon_sym_PLUS, ACTIONS(86), 1, - anon_sym_PIPE, - ACTIONS(88), 1, - anon_sym_AMP, - ACTIONS(90), 1, - anon_sym_CARET, + anon_sym_DASH, ACTIONS(92), 1, anon_sym_SLASH, ACTIONS(94), 1, anon_sym_LPAREN, ACTIONS(96), 1, anon_sym_LBRACK, - STATE(21), 1, - sym_array_bracket_expression, - STATE(22), 1, + ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, + anon_sym_AMP, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(146), 1, + anon_sym_EQ, + STATE(19), 1, sym_parenthesis_expression_list, - ACTIONS(82), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(84), 2, + STATE(23), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(136), 6, + ACTIONS(144), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(142), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(140), 5, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, - anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - ACTIONS(138), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [768] = 9, - ACTIONS(7), 1, + [873] = 10, + ACTIONS(41), 1, sym_identifier, - ACTIONS(15), 1, + ACTIONS(49), 1, anon_sym_LPAREN, - ACTIONS(140), 1, + ACTIONS(148), 1, sym_number, - STATE(32), 1, + STATE(31), 1, sym_global_identifier, - STATE(94), 1, + STATE(90), 1, sym_declaration, - ACTIONS(11), 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(45), 2, anon_sym_state, anon_sym_gen, - STATE(93), 2, + STATE(85), 2, sym_array_type, sym__type, STATE(29), 6, @@ -4148,7 +4160,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(13), 7, + ACTIONS(47), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4156,42 +4168,90 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [809] = 12, - ACTIONS(86), 1, + [918] = 16, + ACTIONS(92), 1, + anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, + anon_sym_LBRACK, + ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(88), 1, + ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(90), 1, + ACTIONS(102), 1, anon_sym_CARET, + ACTIONS(150), 1, + anon_sym_COMMA, + ACTIONS(152), 1, + anon_sym_RPAREN, + STATE(19), 1, + sym_parenthesis_expression_list, + STATE(23), 1, + sym_array_bracket_expression, + STATE(84), 1, + aux_sym_parenthesis_expression_list_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(84), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(88), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(144), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(142), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [974] = 15, ACTIONS(92), 1, anon_sym_SLASH, ACTIONS(94), 1, anon_sym_LPAREN, ACTIONS(96), 1, anon_sym_LBRACK, - STATE(21), 1, - sym_array_bracket_expression, - STATE(22), 1, + ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, + anon_sym_AMP, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(156), 1, + anon_sym_EQ, + STATE(19), 1, sym_parenthesis_expression_list, - ACTIONS(82), 2, + STATE(23), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(84), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(84), 2, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(142), 3, + ACTIONS(144), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(154), 2, anon_sym_COMMA, - anon_sym_EQ, anon_sym_SEMI, - ACTIONS(138), 6, + ACTIONS(142), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, - [855] = 2, - ACTIONS(146), 9, + [1028] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(160), 9, anon_sym_module, sym_identifier, anon_sym_state, @@ -4201,7 +4261,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_else, anon_sym_for, - ACTIONS(144), 12, + ACTIONS(158), 12, ts_builtin_sym_end, sym_number, anon_sym_PLUS, @@ -4214,141 +4274,86 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [881] = 2, - ACTIONS(150), 9, - anon_sym_module, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_else, - anon_sym_for, - ACTIONS(148), 12, - ts_builtin_sym_end, - sym_number, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [907] = 12, - ACTIONS(86), 1, - anon_sym_PIPE, - ACTIONS(88), 1, - anon_sym_AMP, - ACTIONS(90), 1, - anon_sym_CARET, + [1058] = 15, ACTIONS(92), 1, anon_sym_SLASH, ACTIONS(94), 1, anon_sym_LPAREN, ACTIONS(96), 1, anon_sym_LBRACK, - STATE(21), 1, - sym_array_bracket_expression, - STATE(22), 1, + ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, + anon_sym_AMP, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(164), 1, + anon_sym_EQ, + STATE(19), 1, sym_parenthesis_expression_list, - ACTIONS(82), 2, + STATE(23), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(84), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(84), 2, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(152), 3, + ACTIONS(144), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(162), 2, anon_sym_COMMA, - anon_sym_EQ, anon_sym_SEMI, - ACTIONS(138), 6, + ACTIONS(142), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, - [953] = 14, - ACTIONS(86), 1, - anon_sym_PIPE, - ACTIONS(88), 1, - anon_sym_AMP, - ACTIONS(90), 1, - anon_sym_CARET, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(94), 1, - anon_sym_LPAREN, - ACTIONS(96), 1, - anon_sym_LBRACK, - ACTIONS(154), 1, - anon_sym_COMMA, - ACTIONS(156), 1, - anon_sym_RPAREN, - STATE(21), 1, - sym_array_bracket_expression, - STATE(22), 1, - sym_parenthesis_expression_list, - STATE(95), 1, - aux_sym_parenthesis_expression_list_repeat1, - ACTIONS(82), 2, + [1112] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(168), 9, + anon_sym_module, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_else, + anon_sym_for, + ACTIONS(166), 12, + ts_builtin_sym_end, + sym_number, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(84), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(138), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [1003] = 12, - ACTIONS(86), 1, + anon_sym_BANG, anon_sym_PIPE, - ACTIONS(88), 1, anon_sym_AMP, - ACTIONS(90), 1, anon_sym_CARET, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(94), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1142] = 5, + ACTIONS(170), 1, + sym_identifier, + ACTIONS(176), 1, anon_sym_LBRACK, - STATE(21), 1, - sym_array_bracket_expression, - STATE(22), 1, - sym_parenthesis_expression_list, - ACTIONS(82), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(84), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(158), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - ACTIONS(138), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(174), 4, anon_sym_LT, - anon_sym_LT_EQ, anon_sym_GT, - anon_sym_GT_EQ, - [1048] = 4, - ACTIONS(160), 1, - sym_identifier, - ACTIONS(164), 1, anon_sym_SLASH, - ACTIONS(166), 1, - anon_sym_LBRACK, - ACTIONS(162), 17, + anon_sym_EQ, + ACTIONS(172), 14, anon_sym_COMMA, anon_sym_PLUS, anon_sym_DASH, @@ -4358,150 +4363,131 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_EQ, anon_sym_SEMI, - [1077] = 13, - ACTIONS(86), 1, - anon_sym_PIPE, - ACTIONS(88), 1, - anon_sym_AMP, - ACTIONS(90), 1, - anon_sym_CARET, + [1175] = 15, + ACTIONS(51), 1, + anon_sym_LBRACE, ACTIONS(92), 1, anon_sym_SLASH, ACTIONS(94), 1, anon_sym_LPAREN, ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(169), 1, - anon_sym_LBRACE, - STATE(21), 1, - sym_array_bracket_expression, - STATE(22), 1, + ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, + anon_sym_AMP, + ACTIONS(102), 1, + anon_sym_CARET, + STATE(19), 1, sym_parenthesis_expression_list, - STATE(43), 1, + STATE(23), 1, + sym_array_bracket_expression, + STATE(35), 1, sym_block, - ACTIONS(82), 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(84), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(84), 2, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 6, + ACTIONS(144), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(142), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, - [1124] = 13, - ACTIONS(86), 1, - anon_sym_PIPE, - ACTIONS(88), 1, - anon_sym_AMP, - ACTIONS(90), 1, - anon_sym_CARET, + [1228] = 15, + ACTIONS(51), 1, + anon_sym_LBRACE, ACTIONS(92), 1, anon_sym_SLASH, ACTIONS(94), 1, anon_sym_LPAREN, ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(169), 1, - anon_sym_LBRACE, - STATE(21), 1, - sym_array_bracket_expression, - STATE(22), 1, + ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, + anon_sym_AMP, + ACTIONS(102), 1, + anon_sym_CARET, + STATE(19), 1, sym_parenthesis_expression_list, - STATE(37), 1, + STATE(23), 1, + sym_array_bracket_expression, + STATE(40), 1, sym_block, - ACTIONS(82), 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(84), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(84), 2, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 6, + ACTIONS(144), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(142), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, - [1171] = 12, - ACTIONS(86), 1, - anon_sym_PIPE, - ACTIONS(88), 1, - anon_sym_AMP, - ACTIONS(90), 1, - anon_sym_CARET, + [1281] = 14, ACTIONS(92), 1, anon_sym_SLASH, ACTIONS(94), 1, anon_sym_LPAREN, ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(171), 1, - anon_sym_SEMI, - STATE(21), 1, - sym_array_bracket_expression, - STATE(22), 1, - sym_parenthesis_expression_list, - ACTIONS(82), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(84), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(138), 6, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_LT_EQ, - anon_sym_GT, - anon_sym_GT_EQ, - [1215] = 12, - ACTIONS(86), 1, + ACTIONS(98), 1, anon_sym_PIPE, - ACTIONS(88), 1, + ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(90), 1, + ACTIONS(102), 1, anon_sym_CARET, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(94), 1, - anon_sym_LPAREN, - ACTIONS(96), 1, - anon_sym_LBRACK, - ACTIONS(173), 1, - anon_sym_RBRACK, - STATE(21), 1, - sym_array_bracket_expression, - STATE(22), 1, + STATE(19), 1, sym_parenthesis_expression_list, - ACTIONS(82), 2, + STATE(23), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(84), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(84), 2, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 6, + ACTIONS(144), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(179), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + ACTIONS(142), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, - [1259] = 3, - ACTIONS(179), 1, + [1332] = 4, + ACTIONS(185), 1, anon_sym_else, - ACTIONS(175), 7, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(181), 7, sym_identifier, anon_sym_state, anon_sym_gen, @@ -4509,7 +4495,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(177), 11, + ACTIONS(183), 11, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -4521,145 +4507,154 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1285] = 12, - ACTIONS(86), 1, - anon_sym_PIPE, - ACTIONS(88), 1, - anon_sym_AMP, - ACTIONS(90), 1, - anon_sym_CARET, + [1362] = 14, ACTIONS(92), 1, anon_sym_SLASH, ACTIONS(94), 1, anon_sym_LPAREN, ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(181), 1, - anon_sym_RBRACK, - STATE(21), 1, - sym_array_bracket_expression, - STATE(22), 1, + ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, + anon_sym_AMP, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(187), 1, + anon_sym_RPAREN, + STATE(19), 1, sym_parenthesis_expression_list, - ACTIONS(82), 2, + STATE(23), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(84), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(84), 2, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 6, + ACTIONS(144), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(142), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, - [1329] = 12, - ACTIONS(86), 1, - anon_sym_PIPE, - ACTIONS(88), 1, - anon_sym_AMP, - ACTIONS(90), 1, - anon_sym_CARET, + [1412] = 14, ACTIONS(92), 1, anon_sym_SLASH, ACTIONS(94), 1, anon_sym_LPAREN, ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(183), 1, - anon_sym_DOT_DOT, - STATE(21), 1, - sym_array_bracket_expression, - STATE(22), 1, + ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, + anon_sym_AMP, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(189), 1, + anon_sym_RBRACK, + STATE(19), 1, sym_parenthesis_expression_list, - ACTIONS(82), 2, + STATE(23), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(84), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(84), 2, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 6, + ACTIONS(144), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(142), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, - [1373] = 12, - ACTIONS(86), 1, - anon_sym_PIPE, - ACTIONS(88), 1, - anon_sym_AMP, - ACTIONS(90), 1, - anon_sym_CARET, + [1462] = 14, ACTIONS(92), 1, anon_sym_SLASH, ACTIONS(94), 1, anon_sym_LPAREN, ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(185), 1, - anon_sym_RPAREN, - STATE(21), 1, - sym_array_bracket_expression, - STATE(22), 1, + ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, + anon_sym_AMP, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(191), 1, + anon_sym_SEMI, + STATE(19), 1, sym_parenthesis_expression_list, - ACTIONS(82), 2, + STATE(23), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(84), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(84), 2, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 6, + ACTIONS(144), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(142), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LT, anon_sym_LT_EQ, - anon_sym_GT, anon_sym_GT_EQ, - [1417] = 2, - ACTIONS(187), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(189), 11, - sym_number, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, + [1512] = 14, + ACTIONS(92), 1, + anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, + anon_sym_LBRACK, + ACTIONS(98), 1, anon_sym_PIPE, + ACTIONS(100), 1, anon_sym_AMP, + ACTIONS(102), 1, anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1440] = 2, - ACTIONS(191), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(193), 11, - sym_number, + ACTIONS(193), 1, + anon_sym_DOT_DOT, + STATE(19), 1, + sym_parenthesis_expression_list, + STATE(23), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(84), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(88), 2, anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1463] = 2, + anon_sym_PERCENT, + ACTIONS(144), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(142), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [1562] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, ACTIONS(195), 7, sym_identifier, anon_sym_state, @@ -4680,7 +4675,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1486] = 2, + [1589] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, ACTIONS(199), 7, sym_identifier, anon_sym_state, @@ -4701,8 +4699,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1509] = 6, - ACTIONS(15), 1, + [1616] = 7, + ACTIONS(49), 1, anon_sym_LPAREN, ACTIONS(203), 1, sym_identifier, @@ -4710,7 +4708,10 @@ static const uint16_t ts_small_parse_table[] = { sym_number, ACTIONS(207), 1, anon_sym_RPAREN, - ACTIONS(13), 7, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(47), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4718,7 +4719,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(30), 7, + STATE(26), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -4726,14 +4727,44 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1540] = 5, - ACTIONS(15), 1, + [1651] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(209), 7, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(211), 11, + sym_number, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_LPAREN, - ACTIONS(203), 1, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1678] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(213), 7, sym_identifier, - ACTIONS(209), 1, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(215), 11, sym_number, - ACTIONS(13), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4741,22 +4772,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(35), 7, - sym_global_identifier, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - [1568] = 5, - ACTIONS(15), 1, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [1705] = 6, + ACTIONS(49), 1, anon_sym_LPAREN, ACTIONS(203), 1, sym_identifier, - ACTIONS(211), 1, + ACTIONS(217), 1, sym_number, - ACTIONS(13), 7, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(47), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4764,7 +4793,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(31), 7, + STATE(14), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -4772,14 +4801,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1596] = 5, - ACTIONS(15), 1, + [1737] = 6, + ACTIONS(49), 1, anon_sym_LPAREN, ACTIONS(203), 1, sym_identifier, - ACTIONS(213), 1, + ACTIONS(219), 1, sym_number, - ACTIONS(13), 7, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(47), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4787,7 +4819,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(34), 7, + STATE(10), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -4795,14 +4827,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1624] = 5, - ACTIONS(15), 1, + [1769] = 6, + ACTIONS(49), 1, anon_sym_LPAREN, ACTIONS(203), 1, sym_identifier, - ACTIONS(215), 1, + ACTIONS(221), 1, sym_number, - ACTIONS(13), 7, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(47), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4810,7 +4845,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(24), 7, + STATE(39), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -4818,14 +4853,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1652] = 5, - ACTIONS(15), 1, + [1801] = 6, + ACTIONS(49), 1, anon_sym_LPAREN, ACTIONS(203), 1, sym_identifier, - ACTIONS(217), 1, + ACTIONS(223), 1, sym_number, - ACTIONS(13), 7, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(47), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4833,7 +4871,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(14), 7, + STATE(38), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -4841,14 +4879,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1680] = 5, - ACTIONS(15), 1, + [1833] = 6, + ACTIONS(49), 1, anon_sym_LPAREN, ACTIONS(203), 1, sym_identifier, - ACTIONS(219), 1, + ACTIONS(225), 1, sym_number, - ACTIONS(13), 7, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(47), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4856,7 +4897,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(13), 7, + STATE(36), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -4864,14 +4905,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1708] = 5, - ACTIONS(15), 1, + [1865] = 6, + ACTIONS(49), 1, anon_sym_LPAREN, ACTIONS(203), 1, sym_identifier, - ACTIONS(221), 1, + ACTIONS(227), 1, sym_number, - ACTIONS(13), 7, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(47), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4879,7 +4923,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(12), 7, + STATE(34), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -4887,14 +4931,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1736] = 5, - ACTIONS(15), 1, + [1897] = 6, + ACTIONS(49), 1, anon_sym_LPAREN, ACTIONS(203), 1, sym_identifier, - ACTIONS(223), 1, + ACTIONS(229), 1, sym_number, - ACTIONS(13), 7, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(47), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4902,7 +4949,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(11), 7, + STATE(13), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -4910,14 +4957,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1764] = 5, - ACTIONS(15), 1, + [1929] = 6, + ACTIONS(49), 1, anon_sym_LPAREN, ACTIONS(203), 1, sym_identifier, - ACTIONS(225), 1, + ACTIONS(231), 1, sym_number, - ACTIONS(13), 7, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(47), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4925,7 +4975,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(10), 7, + STATE(12), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -4933,14 +4983,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1792] = 5, - ACTIONS(15), 1, + [1961] = 6, + ACTIONS(49), 1, anon_sym_LPAREN, ACTIONS(203), 1, sym_identifier, - ACTIONS(227), 1, + ACTIONS(233), 1, sym_number, - ACTIONS(13), 7, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(47), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4948,7 +5001,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(8), 7, + STATE(11), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -4956,14 +5009,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1820] = 5, - ACTIONS(15), 1, + [1993] = 6, + ACTIONS(49), 1, anon_sym_LPAREN, ACTIONS(203), 1, sym_identifier, - ACTIONS(229), 1, + ACTIONS(235), 1, sym_number, - ACTIONS(13), 7, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(47), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4971,7 +5027,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(40), 7, + STATE(8), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -4979,14 +5035,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1848] = 5, - ACTIONS(15), 1, + [2025] = 6, + ACTIONS(49), 1, anon_sym_LPAREN, ACTIONS(203), 1, sym_identifier, - ACTIONS(231), 1, + ACTIONS(237), 1, sym_number, - ACTIONS(13), 7, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(47), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4994,7 +5053,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(36), 7, + STATE(9), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5002,14 +5061,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1876] = 5, - ACTIONS(15), 1, + [2057] = 6, + ACTIONS(49), 1, anon_sym_LPAREN, ACTIONS(203), 1, sym_identifier, - ACTIONS(233), 1, + ACTIONS(239), 1, sym_number, - ACTIONS(13), 7, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(47), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5017,7 +5079,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(33), 7, + STATE(37), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5025,14 +5087,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1904] = 5, - ACTIONS(15), 1, + [2089] = 6, + ACTIONS(49), 1, anon_sym_LPAREN, ACTIONS(203), 1, sym_identifier, - ACTIONS(235), 1, + ACTIONS(241), 1, sym_number, - ACTIONS(13), 7, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(47), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5040,7 +5105,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(39), 7, + STATE(24), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5048,14 +5113,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1932] = 5, - ACTIONS(15), 1, + [2121] = 6, + ACTIONS(49), 1, anon_sym_LPAREN, ACTIONS(203), 1, sym_identifier, - ACTIONS(237), 1, + ACTIONS(243), 1, sym_number, - ACTIONS(13), 7, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(47), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5063,7 +5131,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(38), 7, + STATE(33), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5071,14 +5139,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1960] = 5, - ACTIONS(15), 1, + [2153] = 6, + ACTIONS(49), 1, anon_sym_LPAREN, ACTIONS(203), 1, sym_identifier, - ACTIONS(239), 1, + ACTIONS(245), 1, sym_number, - ACTIONS(13), 7, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(47), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5086,7 +5157,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(9), 7, + STATE(32), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5094,16 +5165,19 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1988] = 4, - ACTIONS(21), 1, + [2185] = 5, + ACTIONS(55), 1, anon_sym_reg, - STATE(63), 1, + STATE(61), 1, aux_sym_write_modifiers_repeat1, - ACTIONS(241), 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(247), 3, sym_identifier, anon_sym_state, anon_sym_gen, - ACTIONS(243), 9, + ACTIONS(249), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -5113,16 +5187,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2011] = 4, - ACTIONS(249), 1, + [2212] = 5, + ACTIONS(255), 1, anon_sym_reg, - STATE(63), 1, + STATE(61), 1, aux_sym_write_modifiers_repeat1, - ACTIONS(245), 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(251), 3, sym_identifier, anon_sym_state, anon_sym_gen, - ACTIONS(247), 9, + ACTIONS(253), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -5132,13 +5209,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2034] = 2, - ACTIONS(252), 4, + [2239] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(258), 4, sym_identifier, anon_sym_state, anon_sym_gen, anon_sym_reg, - ACTIONS(254), 9, + ACTIONS(260), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -5148,12 +5228,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2052] = 2, - ACTIONS(256), 3, + [2261] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(262), 3, sym_identifier, anon_sym_state, anon_sym_gen, - ACTIONS(258), 9, + ACTIONS(264), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -5163,633 +5246,709 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2069] = 7, - ACTIONS(260), 1, + [2282] = 8, + ACTIONS(41), 1, sym_identifier, - ACTIONS(262), 1, + ACTIONS(266), 1, anon_sym_DASH_GT, - ACTIONS(264), 1, + ACTIONS(268), 1, anon_sym_LBRACE, STATE(81), 1, sym_declaration, - STATE(102), 1, + STATE(95), 1, sym_declaration_list, - ACTIONS(11), 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(45), 2, anon_sym_state, anon_sym_gen, - STATE(93), 3, + STATE(85), 3, sym_global_identifier, sym_array_type, sym__type, - [2094] = 5, - ACTIONS(260), 1, + [2311] = 4, + ACTIONS(272), 1, + anon_sym_SQUOTE, + STATE(72), 1, + sym_latency_specifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(270), 6, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_SEMI, + [2330] = 6, + ACTIONS(41), 1, sym_identifier, STATE(81), 1, sym_declaration, - STATE(113), 1, + STATE(102), 1, sym_declaration_list, - ACTIONS(11), 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(45), 2, anon_sym_state, anon_sym_gen, - STATE(93), 3, + STATE(85), 3, sym_global_identifier, sym_array_type, sym__type, - [2113] = 3, - ACTIONS(268), 1, + [2353] = 4, + ACTIONS(272), 1, anon_sym_SQUOTE, - STATE(74), 1, + STATE(71), 1, sym_latency_specifier, - ACTIONS(266), 6, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(274), 6, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [2128] = 5, - ACTIONS(260), 1, + [2372] = 6, + ACTIONS(41), 1, sym_identifier, STATE(81), 1, sym_declaration, - STATE(108), 1, + STATE(105), 1, sym_declaration_list, - ACTIONS(11), 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(45), 2, anon_sym_state, anon_sym_gen, - STATE(93), 3, + STATE(85), 3, sym_global_identifier, sym_array_type, sym__type, - [2147] = 3, - ACTIONS(268), 1, - anon_sym_SQUOTE, - STATE(73), 1, - sym_latency_specifier, - ACTIONS(270), 6, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_SEMI, - [2162] = 4, - ACTIONS(260), 1, + [2395] = 5, + ACTIONS(41), 1, sym_identifier, - STATE(92), 1, + STATE(99), 1, sym_declaration, - ACTIONS(11), 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(45), 2, anon_sym_state, anon_sym_gen, - STATE(93), 3, + STATE(85), 3, sym_global_identifier, sym_array_type, sym__type, - [2178] = 4, - ACTIONS(260), 1, + [2415] = 5, + ACTIONS(41), 1, sym_identifier, - STATE(110), 1, + STATE(89), 1, sym_declaration, - ACTIONS(11), 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(45), 2, anon_sym_state, anon_sym_gen, - STATE(93), 3, + STATE(85), 3, sym_global_identifier, sym_array_type, sym__type, - [2194] = 1, - ACTIONS(272), 6, + [2435] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(276), 6, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [2203] = 1, - ACTIONS(274), 6, + [2448] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(278), 6, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LBRACE, anon_sym_EQ, anon_sym_in, anon_sym_SEMI, - [2212] = 3, - ACTIONS(17), 1, - anon_sym_LBRACE, - ACTIONS(276), 1, - anon_sym_if, - STATE(41), 2, - sym_block, - sym_if_statement, - [2223] = 3, - ACTIONS(278), 1, - anon_sym_COMMA, - STATE(76), 1, - aux_sym_assign_left_side_repeat1, - ACTIONS(281), 2, - anon_sym_EQ, - anon_sym_SEMI, - [2234] = 3, - ACTIONS(283), 1, + [2461] = 4, + ACTIONS(282), 1, anon_sym_COMMA, - STATE(86), 1, - aux_sym_assign_left_side_repeat1, - ACTIONS(285), 2, - anon_sym_EQ, - anon_sym_SEMI, - [2245] = 4, - ACTIONS(5), 1, + STATE(73), 1, + aux_sym_declaration_list_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(280), 2, + anon_sym_DASH_GT, + anon_sym_LBRACE, + [2476] = 3, + ACTIONS(203), 1, + sym_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(87), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [2489] = 5, + ACTIONS(7), 1, anon_sym_module, - ACTIONS(287), 1, + ACTIONS(285), 1, ts_builtin_sym_end, - STATE(82), 1, + STATE(79), 1, aux_sym_source_file_repeat1, - STATE(104), 1, + STATE(97), 1, sym_module, - [2258] = 3, - ACTIONS(289), 1, - anon_sym_COLON_COLON, - STATE(79), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(68), 2, - sym_identifier, - anon_sym_LBRACK, - [2269] = 4, - ACTIONS(17), 1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2506] = 5, + ACTIONS(51), 1, anon_sym_LBRACE, - ACTIONS(292), 1, + ACTIONS(287), 1, anon_sym_COLON, - STATE(99), 1, - sym_interface_ports, - STATE(103), 1, + STATE(94), 1, sym_block, - [2282] = 3, - ACTIONS(296), 1, + STATE(98), 1, + sym_interface_ports, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2523] = 4, + ACTIONS(289), 1, anon_sym_COMMA, - STATE(87), 1, - aux_sym_declaration_list_repeat1, - ACTIONS(294), 2, - anon_sym_DASH_GT, + STATE(82), 1, + aux_sym_assign_left_side_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(291), 2, + anon_sym_EQ, + anon_sym_SEMI, + [2538] = 4, + ACTIONS(51), 1, anon_sym_LBRACE, - [2293] = 4, - ACTIONS(298), 1, + ACTIONS(293), 1, + anon_sym_if, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(44), 2, + sym_block, + sym_if_statement, + [2553] = 5, + ACTIONS(295), 1, ts_builtin_sym_end, - ACTIONS(300), 1, + ACTIONS(297), 1, anon_sym_module, - STATE(82), 1, + STATE(79), 1, aux_sym_source_file_repeat1, - STATE(104), 1, + STATE(97), 1, sym_module, - [2306] = 3, - ACTIONS(303), 1, - anon_sym_COLON_COLON, - STATE(79), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(74), 2, - sym_identifier, - anon_sym_LBRACK, - [2317] = 2, - ACTIONS(305), 1, - sym_identifier, - STATE(97), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [2326] = 3, - ACTIONS(303), 1, - anon_sym_COLON_COLON, - STATE(83), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(78), 2, - sym_identifier, - anon_sym_LBRACK, - [2337] = 3, - ACTIONS(283), 1, - anon_sym_COMMA, - STATE(76), 1, - aux_sym_assign_left_side_repeat1, - ACTIONS(307), 2, - anon_sym_EQ, - anon_sym_SEMI, - [2348] = 3, - ACTIONS(296), 1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2570] = 4, + ACTIONS(302), 1, anon_sym_COMMA, - STATE(88), 1, + STATE(73), 1, aux_sym_declaration_list_repeat1, - ACTIONS(309), 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(300), 2, anon_sym_DASH_GT, anon_sym_LBRACE, - [2359] = 3, - ACTIONS(313), 1, + [2585] = 4, + ACTIONS(302), 1, anon_sym_COMMA, - STATE(88), 1, + STATE(80), 1, aux_sym_declaration_list_repeat1, - ACTIONS(311), 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(304), 2, anon_sym_DASH_GT, anon_sym_LBRACE, - [2370] = 3, - ACTIONS(316), 1, + [2600] = 4, + ACTIONS(306), 1, anon_sym_COMMA, - ACTIONS(319), 1, - anon_sym_RPAREN, - STATE(89), 1, - aux_sym_parenthesis_expression_list_repeat1, - [2380] = 1, - ACTIONS(321), 3, + STATE(82), 1, + aux_sym_assign_left_side_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(309), 2, + anon_sym_EQ, + anon_sym_SEMI, + [2615] = 4, + ACTIONS(289), 1, anon_sym_COMMA, + STATE(77), 1, + aux_sym_assign_left_side_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(311), 2, anon_sym_EQ, anon_sym_SEMI, - [2386] = 1, - ACTIONS(106), 3, - sym_identifier, - anon_sym_COLON_COLON, - anon_sym_LBRACK, - [2392] = 1, - ACTIONS(323), 3, - anon_sym_DASH_GT, + [2630] = 4, + ACTIONS(150), 1, anon_sym_COMMA, - anon_sym_LBRACE, - [2398] = 3, - ACTIONS(325), 1, + ACTIONS(313), 1, + anon_sym_RPAREN, + STATE(86), 1, + aux_sym_parenthesis_expression_list_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2644] = 4, + ACTIONS(96), 1, + anon_sym_LBRACK, + ACTIONS(315), 1, sym_identifier, - ACTIONS(327), 1, + STATE(93), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2658] = 4, + ACTIONS(317), 1, + anon_sym_COMMA, + ACTIONS(320), 1, + anon_sym_RPAREN, + STATE(86), 1, + aux_sym_parenthesis_expression_list_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2672] = 4, + ACTIONS(96), 1, anon_sym_LBRACK, - STATE(98), 1, + ACTIONS(322), 1, + sym_identifier, + STATE(93), 1, sym_array_bracket_expression, - [2408] = 1, - ACTIONS(329), 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2686] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(324), 3, anon_sym_COMMA, anon_sym_EQ, anon_sym_SEMI, - [2414] = 3, - ACTIONS(331), 1, + [2696] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(326), 3, + anon_sym_DASH_GT, anon_sym_COMMA, - ACTIONS(333), 1, - anon_sym_RPAREN, - STATE(89), 1, - aux_sym_parenthesis_expression_list_repeat1, - [2424] = 1, - ACTIONS(335), 3, + anon_sym_LBRACE, + [2706] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(162), 3, anon_sym_COMMA, anon_sym_EQ, anon_sym_SEMI, - [2430] = 3, - ACTIONS(327), 1, - anon_sym_LBRACK, - ACTIONS(337), 1, - sym_identifier, - STATE(98), 1, - sym_array_bracket_expression, - [2440] = 1, - ACTIONS(339), 2, - sym_identifier, - anon_sym_LBRACK, - [2445] = 2, - ACTIONS(17), 1, - anon_sym_LBRACE, - STATE(101), 1, - sym_block, - [2452] = 1, - ACTIONS(122), 2, + [2716] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(154), 3, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_SEMI, + [2726] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(328), 2, + ts_builtin_sym_end, + anon_sym_module, + [2735] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(330), 2, sym_identifier, anon_sym_LBRACK, - [2457] = 1, - ACTIONS(341), 2, + [2744] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(332), 2, ts_builtin_sym_end, anon_sym_module, - [2462] = 2, - ACTIONS(343), 1, + [2753] = 3, + ACTIONS(334), 1, anon_sym_DASH_GT, - ACTIONS(345), 1, + ACTIONS(336), 1, anon_sym_LBRACE, - [2469] = 1, - ACTIONS(347), 2, - ts_builtin_sym_end, - anon_sym_module, - [2474] = 1, - ACTIONS(349), 2, - ts_builtin_sym_end, - anon_sym_module, - [2479] = 2, - ACTIONS(351), 1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2764] = 3, + ACTIONS(338), 1, anon_sym_EQ, - ACTIONS(353), 1, + ACTIONS(340), 1, anon_sym_SEMI, - [2486] = 1, - ACTIONS(355), 1, - sym_identifier, - [2490] = 1, - ACTIONS(357), 1, - sym_identifier, - [2494] = 1, - ACTIONS(359), 1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2775] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(342), 2, + ts_builtin_sym_end, + anon_sym_module, + [2784] = 3, + ACTIONS(51), 1, anon_sym_LBRACE, - [2498] = 1, - ACTIONS(353), 1, - anon_sym_SEMI, - [2502] = 1, - ACTIONS(361), 1, + STATE(92), 1, + sym_block, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2795] = 2, + ACTIONS(344), 1, anon_sym_in, - [2506] = 1, - ACTIONS(363), 1, - ts_builtin_sym_end, - [2510] = 1, - ACTIONS(365), 1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2803] = 2, + ACTIONS(346), 1, sym_identifier, - [2514] = 1, - ACTIONS(367), 1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2811] = 2, + ACTIONS(340), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2819] = 2, + ACTIONS(348), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2827] = 2, + ACTIONS(350), 1, + sym_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2835] = 2, + ACTIONS(352), 1, + ts_builtin_sym_end, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2843] = 2, + ACTIONS(354), 1, anon_sym_LBRACE, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(5)] = 0, - [SMALL_STATE(6)] = 37, - [SMALL_STATE(7)] = 74, - [SMALL_STATE(8)] = 111, - [SMALL_STATE(9)] = 161, - [SMALL_STATE(10)] = 201, - [SMALL_STATE(11)] = 245, - [SMALL_STATE(12)] = 293, - [SMALL_STATE(13)] = 339, - [SMALL_STATE(14)] = 379, - [SMALL_STATE(15)] = 421, - [SMALL_STATE(16)] = 477, - [SMALL_STATE(17)] = 509, - [SMALL_STATE(18)] = 539, - [SMALL_STATE(19)] = 569, - [SMALL_STATE(20)] = 599, - [SMALL_STATE(21)] = 629, - [SMALL_STATE(22)] = 659, - [SMALL_STATE(23)] = 689, - [SMALL_STATE(24)] = 719, - [SMALL_STATE(25)] = 768, - [SMALL_STATE(26)] = 809, - [SMALL_STATE(27)] = 855, - [SMALL_STATE(28)] = 881, - [SMALL_STATE(29)] = 907, - [SMALL_STATE(30)] = 953, - [SMALL_STATE(31)] = 1003, - [SMALL_STATE(32)] = 1048, - [SMALL_STATE(33)] = 1077, - [SMALL_STATE(34)] = 1124, - [SMALL_STATE(35)] = 1171, - [SMALL_STATE(36)] = 1215, - [SMALL_STATE(37)] = 1259, - [SMALL_STATE(38)] = 1285, - [SMALL_STATE(39)] = 1329, - [SMALL_STATE(40)] = 1373, - [SMALL_STATE(41)] = 1417, - [SMALL_STATE(42)] = 1440, - [SMALL_STATE(43)] = 1463, - [SMALL_STATE(44)] = 1486, - [SMALL_STATE(45)] = 1509, - [SMALL_STATE(46)] = 1540, - [SMALL_STATE(47)] = 1568, - [SMALL_STATE(48)] = 1596, - [SMALL_STATE(49)] = 1624, - [SMALL_STATE(50)] = 1652, - [SMALL_STATE(51)] = 1680, - [SMALL_STATE(52)] = 1708, - [SMALL_STATE(53)] = 1736, - [SMALL_STATE(54)] = 1764, - [SMALL_STATE(55)] = 1792, - [SMALL_STATE(56)] = 1820, - [SMALL_STATE(57)] = 1848, - [SMALL_STATE(58)] = 1876, - [SMALL_STATE(59)] = 1904, - [SMALL_STATE(60)] = 1932, - [SMALL_STATE(61)] = 1960, - [SMALL_STATE(62)] = 1988, - [SMALL_STATE(63)] = 2011, - [SMALL_STATE(64)] = 2034, - [SMALL_STATE(65)] = 2052, - [SMALL_STATE(66)] = 2069, - [SMALL_STATE(67)] = 2094, - [SMALL_STATE(68)] = 2113, - [SMALL_STATE(69)] = 2128, - [SMALL_STATE(70)] = 2147, - [SMALL_STATE(71)] = 2162, - [SMALL_STATE(72)] = 2178, - [SMALL_STATE(73)] = 2194, - [SMALL_STATE(74)] = 2203, - [SMALL_STATE(75)] = 2212, - [SMALL_STATE(76)] = 2223, - [SMALL_STATE(77)] = 2234, - [SMALL_STATE(78)] = 2245, - [SMALL_STATE(79)] = 2258, - [SMALL_STATE(80)] = 2269, - [SMALL_STATE(81)] = 2282, - [SMALL_STATE(82)] = 2293, - [SMALL_STATE(83)] = 2306, - [SMALL_STATE(84)] = 2317, - [SMALL_STATE(85)] = 2326, - [SMALL_STATE(86)] = 2337, - [SMALL_STATE(87)] = 2348, - [SMALL_STATE(88)] = 2359, - [SMALL_STATE(89)] = 2370, - [SMALL_STATE(90)] = 2380, - [SMALL_STATE(91)] = 2386, - [SMALL_STATE(92)] = 2392, - [SMALL_STATE(93)] = 2398, - [SMALL_STATE(94)] = 2408, - [SMALL_STATE(95)] = 2414, - [SMALL_STATE(96)] = 2424, - [SMALL_STATE(97)] = 2430, - [SMALL_STATE(98)] = 2440, - [SMALL_STATE(99)] = 2445, - [SMALL_STATE(100)] = 2452, - [SMALL_STATE(101)] = 2457, - [SMALL_STATE(102)] = 2462, - [SMALL_STATE(103)] = 2469, - [SMALL_STATE(104)] = 2474, - [SMALL_STATE(105)] = 2479, - [SMALL_STATE(106)] = 2486, - [SMALL_STATE(107)] = 2490, - [SMALL_STATE(108)] = 2494, - [SMALL_STATE(109)] = 2498, - [SMALL_STATE(110)] = 2502, - [SMALL_STATE(111)] = 2506, - [SMALL_STATE(112)] = 2510, - [SMALL_STATE(113)] = 2514, + [SMALL_STATE(6)] = 41, + [SMALL_STATE(7)] = 82, + [SMALL_STATE(8)] = 123, + [SMALL_STATE(9)] = 175, + [SMALL_STATE(10)] = 233, + [SMALL_STATE(11)] = 277, + [SMALL_STATE(12)] = 333, + [SMALL_STATE(13)] = 387, + [SMALL_STATE(14)] = 431, + [SMALL_STATE(15)] = 479, + [SMALL_STATE(16)] = 515, + [SMALL_STATE(17)] = 575, + [SMALL_STATE(18)] = 610, + [SMALL_STATE(19)] = 644, + [SMALL_STATE(20)] = 678, + [SMALL_STATE(21)] = 712, + [SMALL_STATE(22)] = 746, + [SMALL_STATE(23)] = 780, + [SMALL_STATE(24)] = 814, + [SMALL_STATE(25)] = 873, + [SMALL_STATE(26)] = 918, + [SMALL_STATE(27)] = 974, + [SMALL_STATE(28)] = 1028, + [SMALL_STATE(29)] = 1058, + [SMALL_STATE(30)] = 1112, + [SMALL_STATE(31)] = 1142, + [SMALL_STATE(32)] = 1175, + [SMALL_STATE(33)] = 1228, + [SMALL_STATE(34)] = 1281, + [SMALL_STATE(35)] = 1332, + [SMALL_STATE(36)] = 1362, + [SMALL_STATE(37)] = 1412, + [SMALL_STATE(38)] = 1462, + [SMALL_STATE(39)] = 1512, + [SMALL_STATE(40)] = 1562, + [SMALL_STATE(41)] = 1589, + [SMALL_STATE(42)] = 1616, + [SMALL_STATE(43)] = 1651, + [SMALL_STATE(44)] = 1678, + [SMALL_STATE(45)] = 1705, + [SMALL_STATE(46)] = 1737, + [SMALL_STATE(47)] = 1769, + [SMALL_STATE(48)] = 1801, + [SMALL_STATE(49)] = 1833, + [SMALL_STATE(50)] = 1865, + [SMALL_STATE(51)] = 1897, + [SMALL_STATE(52)] = 1929, + [SMALL_STATE(53)] = 1961, + [SMALL_STATE(54)] = 1993, + [SMALL_STATE(55)] = 2025, + [SMALL_STATE(56)] = 2057, + [SMALL_STATE(57)] = 2089, + [SMALL_STATE(58)] = 2121, + [SMALL_STATE(59)] = 2153, + [SMALL_STATE(60)] = 2185, + [SMALL_STATE(61)] = 2212, + [SMALL_STATE(62)] = 2239, + [SMALL_STATE(63)] = 2261, + [SMALL_STATE(64)] = 2282, + [SMALL_STATE(65)] = 2311, + [SMALL_STATE(66)] = 2330, + [SMALL_STATE(67)] = 2353, + [SMALL_STATE(68)] = 2372, + [SMALL_STATE(69)] = 2395, + [SMALL_STATE(70)] = 2415, + [SMALL_STATE(71)] = 2435, + [SMALL_STATE(72)] = 2448, + [SMALL_STATE(73)] = 2461, + [SMALL_STATE(74)] = 2476, + [SMALL_STATE(75)] = 2489, + [SMALL_STATE(76)] = 2506, + [SMALL_STATE(77)] = 2523, + [SMALL_STATE(78)] = 2538, + [SMALL_STATE(79)] = 2553, + [SMALL_STATE(80)] = 2570, + [SMALL_STATE(81)] = 2585, + [SMALL_STATE(82)] = 2600, + [SMALL_STATE(83)] = 2615, + [SMALL_STATE(84)] = 2630, + [SMALL_STATE(85)] = 2644, + [SMALL_STATE(86)] = 2658, + [SMALL_STATE(87)] = 2672, + [SMALL_STATE(88)] = 2686, + [SMALL_STATE(89)] = 2696, + [SMALL_STATE(90)] = 2706, + [SMALL_STATE(91)] = 2716, + [SMALL_STATE(92)] = 2726, + [SMALL_STATE(93)] = 2735, + [SMALL_STATE(94)] = 2744, + [SMALL_STATE(95)] = 2753, + [SMALL_STATE(96)] = 2764, + [SMALL_STATE(97)] = 2775, + [SMALL_STATE(98)] = 2784, + [SMALL_STATE(99)] = 2795, + [SMALL_STATE(100)] = 2803, + [SMALL_STATE(101)] = 2811, + [SMALL_STATE(102)] = 2819, + [SMALL_STATE(103)] = 2827, + [SMALL_STATE(104)] = 2835, + [SMALL_STATE(105)] = 2843, }; 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}}, REDUCE(sym_source_file, 0), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), - [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(84), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(48), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72), - [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [31] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(7), - [34] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(26), - [37] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(84), - [40] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(61), - [43] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(56), - [46] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(2), - [49] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), - [51] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(64), - [54] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(65), - [57] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(48), - [60] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(72), - [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), - [65] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), SHIFT_REPEAT(112), - [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), - [70] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 9), - [72] = {.entry = {.count = 1, .reusable = false}}, SHIFT(112), - [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 9), - [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 1), - [78] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 1), - [80] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 22), - [82] = {.entry = {.count = 1, .reusable = false}}, SHIFT(50), - [84] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51), - [86] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), - [88] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), - [90] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), - [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [94] = {.entry = {.count = 1, .reusable = false}}, SHIFT(45), - [96] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60), - [98] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 12), - [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 12), - [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 22), - [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 16), - [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 16), - [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 16), - [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 16), - [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), - [116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 20), - [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 20), - [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 20), - [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 20), - [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 11), - [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 11), - [128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 13), - [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 13), - [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 26), - [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 26), - [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 20), - [138] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), - [140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 6), - [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), - [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 15), - [150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3, .production_id = 15), - [152] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 14), - [154] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), - [156] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), - [158] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 16), - [160] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type, 1), - [162] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [166] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [169] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2), - [171] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 23), - [173] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), - [175] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 21), - [177] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 21), - [179] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), - [181] = {.entry = {.count = 1, .reusable = false}}, SHIFT(20), - [183] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), - [185] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19), - [187] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 25), - [189] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 25), - [191] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), - [193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), + [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), + [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [9] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(7), + [12] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(27), + [15] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(74), + [18] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(46), + [21] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(49), + [24] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(4), + [27] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), + [29] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(62), + [32] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(63), + [35] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(59), + [38] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(69), + [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), + [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), + [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), + [61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69), + [63] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [65] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 9), + [67] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 9), + [69] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [71] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), + [73] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), + [75] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), SHIFT_REPEAT(103), + [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 1), + [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 1), + [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 22), + [84] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [86] = {.entry = {.count = 1, .reusable = false}}, SHIFT(45), + [88] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 22), + [92] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51), + [94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 12), + [106] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 12), + [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 16), + [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 16), + [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 20), + [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 20), + [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), + [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 13), + [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 13), + [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 20), + [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 20), + [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 16), + [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 16), + [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 26), + [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 26), + [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 11), + [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 11), + [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 20), + [142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [144] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), + [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 20), + [148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 6), + [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 6), + [158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 15), + [160] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3, .production_id = 15), + [162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 14), + [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 14), + [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), + [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), + [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [174] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [176] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), + [179] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 16), + [181] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 21), + [183] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 21), + [185] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), + [187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [191] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 23), + [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), [195] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 27), [197] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 27), [199] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 1), [201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 1), [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), [207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [209] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), + [211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), + [213] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 25), + [215] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 25), [217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [241] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 2), - [243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 2), - [245] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 3), - [247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 3), - [249] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 3), SHIFT_REPEAT(64), - [252] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [254] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [256] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [258] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [260] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), - [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 1), - [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 10), - [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [247] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 2), + [249] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 2), + [251] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 3), + [253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 3), + [255] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 3), SHIFT_REPEAT(62), + [258] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [262] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 1), [270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 17), - [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 24), - [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 19), - [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [278] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), SHIFT_REPEAT(15), - [281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), - [283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), - [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 2), - [289] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), SHIFT_REPEAT(107), - [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), - [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), - [300] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), SHIFT_REPEAT(106), - [303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 9), - [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 9), - [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), - [313] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), SHIFT_REPEAT(71), - [316] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), SHIFT_REPEAT(47), - [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), - [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 6), - [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 16), - [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 14), - [331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 16), - [337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 11), - [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 7), - [343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 5), - [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), - [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 1, .production_id = 1), - [351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), - [359] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 8), - [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [363] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [367] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 18), + [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 10), + [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 19), + [278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 24), + [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), + [282] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), SHIFT_REPEAT(70), + [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 2), + [287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [289] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [291] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 9), + [293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [295] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), + [297] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), SHIFT_REPEAT(100), + [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 9), + [302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), + [306] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), SHIFT_REPEAT(16), + [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), + [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), + [313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [317] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), SHIFT_REPEAT(50), + [320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), + [322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 16), + [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 16), + [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 7), + [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 11), + [332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), + [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 5), + [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 1, .production_id = 1), + [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 18), + [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [352] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 8), }; #ifdef __cplusplus From 747f24e5e6d6ef735a90c9c4053c747b83e66f5a Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Wed, 10 Apr 2024 00:16:08 +0200 Subject: [PATCH 21/49] Remove Semicolons and update tree-sitter to 0.22.2 --- .editorconfig | 39 + .gitattributes | 11 + Cargo.toml | 2 +- Makefile | 110 + Package.swift | 48 + binding.gyp | 12 +- bindings/c/tree-sitter-sus.h | 16 + bindings/c/tree-sitter-sus.pc.in | 11 + bindings/go/binding.go | 13 + bindings/go/binding_test.go | 15 + bindings/go/go.mod | 5 + bindings/node/binding.cc | 36 +- bindings/node/index.d.ts | 28 + bindings/node/index.js | 18 +- bindings/python/tree_sitter_sus/__init__.py | 5 + bindings/python/tree_sitter_sus/__init__.pyi | 1 + bindings/python/tree_sitter_sus/binding.c | 27 + bindings/python/tree_sitter_sus/py.typed | 0 bindings/swift/TreeSitterSus/sus.h | 16 + grammar.js | 41 +- package.json | 27 +- pyproject.toml | 29 + setup.py | 57 + src/grammar.json | 245 +- src/node-types.json | 8 - src/parser.c | 3518 +++++++++++------- src/tree_sitter/alloc.h | 54 + src/tree_sitter/array.h | 290 ++ src/tree_sitter/parser.h | 16 +- 29 files changed, 3131 insertions(+), 1567 deletions(-) create mode 100644 .editorconfig create mode 100644 .gitattributes create mode 100644 Makefile create mode 100644 Package.swift create mode 100644 bindings/c/tree-sitter-sus.h create mode 100644 bindings/c/tree-sitter-sus.pc.in create mode 100644 bindings/go/binding.go create mode 100644 bindings/go/binding_test.go create mode 100644 bindings/go/go.mod create mode 100644 bindings/node/index.d.ts create mode 100644 bindings/python/tree_sitter_sus/__init__.py create mode 100644 bindings/python/tree_sitter_sus/__init__.pyi create mode 100644 bindings/python/tree_sitter_sus/binding.c create mode 100644 bindings/python/tree_sitter_sus/py.typed create mode 100644 bindings/swift/TreeSitterSus/sus.h create mode 100644 pyproject.toml create mode 100644 setup.py create mode 100644 src/tree_sitter/alloc.h create mode 100644 src/tree_sitter/array.h 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/.gitattributes b/.gitattributes new file mode 100644 index 0000000..ffb52ab --- /dev/null +++ b/.gitattributes @@ -0,0 +1,11 @@ +* text eol=lf + +src/*.json linguist-generated +src/parser.c linguist-generated +src/tree_sitter/* linguist-generated + +bindings/** linguist-generated +binding.gyp linguist-generated +setup.py linguist-generated +Makefile linguist-generated +Package.swift linguist-generated diff --git a/Cargo.toml b/Cargo.toml index 78bcffb..175f133 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,7 @@ include = [ path = "bindings/rust/lib.rs" [dependencies] -tree-sitter = "~0.22.1" +tree-sitter = "~0.22.2" [build-dependencies] cc = "1.0" diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ff656a8 --- /dev/null +++ b/Makefile @@ -0,0 +1,110 @@ +VERSION := 0.0.1 + +LANGUAGE_NAME := tree-sitter-sus + +# repository +SRC_DIR := src + +PARSER_REPO_URL := $(shell git -C $(SRC_DIR) remote get-url origin 2>/dev/null) + +ifeq ($(PARSER_URL),) + PARSER_URL := $(subst .git,,$(PARSER_REPO_URL)) +ifeq ($(shell echo $(PARSER_URL) | grep '^[a-z][-+.0-9a-z]*://'),) + PARSER_URL := $(subst :,/,$(PARSER_URL)) + PARSER_URL := $(subst git@,https://,$(PARSER_URL)) +endif +endif + +TS ?= tree-sitter + +# ABI versioning +SONAME_MAJOR := $(word 1,$(subst ., ,$(VERSION))) +SONAME_MINOR := $(word 2,$(subst ., ,$(VERSION))) + +# install directory layout +PREFIX ?= /usr/local +INCLUDEDIR ?= $(PREFIX)/include +LIBDIR ?= $(PREFIX)/lib +PCLIBDIR ?= $(LIBDIR)/pkgconfig + +# object files +OBJS := $(patsubst %.c,%.o,$(wildcard $(SRC_DIR)/*.c)) + +# flags +ARFLAGS := rcs +override CFLAGS += -I$(SRC_DIR) -std=c11 -fPIC + +# OS-specific bits +ifeq ($(OS),Windows_NT) + $(error "Windows is not supported") +else ifeq ($(shell uname),Darwin) + SOEXT = dylib + SOEXTVER_MAJOR = $(SONAME_MAJOR).dylib + SOEXTVER = $(SONAME_MAJOR).$(SONAME_MINOR).dylib + LINKSHARED := $(LINKSHARED)-dynamiclib -Wl, + ifneq ($(ADDITIONAL_LIBS),) + LINKSHARED := $(LINKSHARED)$(ADDITIONAL_LIBS), + endif + LINKSHARED := $(LINKSHARED)-install_name,$(LIBDIR)/lib$(LANGUAGE_NAME).$(SONAME_MAJOR).dylib,-rpath,@executable_path/../Frameworks +else + SOEXT = so + SOEXTVER_MAJOR = so.$(SONAME_MAJOR) + SOEXTVER = so.$(SONAME_MAJOR).$(SONAME_MINOR) + LINKSHARED := $(LINKSHARED)-shared -Wl, + ifneq ($(ADDITIONAL_LIBS),) + LINKSHARED := $(LINKSHARED)$(ADDITIONAL_LIBS) + endif + LINKSHARED := $(LINKSHARED)-soname,lib$(LANGUAGE_NAME).so.$(SONAME_MAJOR) +endif +ifneq ($(filter $(shell uname),FreeBSD NetBSD DragonFly),) + PCLIBDIR := $(PREFIX)/libdata/pkgconfig +endif + +all: lib$(LANGUAGE_NAME).a lib$(LANGUAGE_NAME).$(SOEXT) $(LANGUAGE_NAME).pc + +lib$(LANGUAGE_NAME).a: $(OBJS) + $(AR) $(ARFLAGS) $@ $^ + +lib$(LANGUAGE_NAME).$(SOEXT): $(OBJS) + $(CC) $(LDFLAGS) $(LINKSHARED) $^ $(LDLIBS) -o $@ +ifneq ($(STRIP),) + $(STRIP) $@ +endif + +$(LANGUAGE_NAME).pc: bindings/c/$(LANGUAGE_NAME).pc.in + sed -e 's|@URL@|$(PARSER_URL)|' \ + -e 's|@VERSION@|$(VERSION)|' \ + -e 's|@LIBDIR@|$(LIBDIR)|' \ + -e 's|@INCLUDEDIR@|$(INCLUDEDIR)|' \ + -e 's|@REQUIRES@|$(REQUIRES)|' \ + -e 's|@ADDITIONAL_LIBS@|$(ADDITIONAL_LIBS)|' \ + -e 's|=$(PREFIX)|=$${prefix}|' \ + -e 's|@PREFIX@|$(PREFIX)|' $< > $@ + +$(SRC_DIR)/parser.c: grammar.js + $(TS) generate --no-bindings + +install: all + install -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..fe6ad50 --- /dev/null +++ b/Package.swift @@ -0,0 +1,48 @@ +// swift-tools-version:5.3 +import PackageDescription + +let package = Package( + name: "TreeSitterSus", + platforms: [.macOS(.v10_13), .iOS(.v11)], + products: [ + .library(name: "TreeSitterSus", targets: ["TreeSitterSus"]), + ], + dependencies: [], + targets: [ + .target(name: "TreeSitterSus", + 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 5226f82..7bbff8b 100644 --- a/binding.gyp +++ b/binding.gyp @@ -2,18 +2,20 @@ "targets": [ { "target_name": "tree_sitter_sus_binding", + "dependencies": [ + " -#include "nan.h" +#include -using namespace v8; +typedef struct TSLanguage TSLanguage; -extern "C" TSLanguage * tree_sitter_sus(); +extern "C" TSLanguage *tree_sitter_sus(); -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_sus()); - - Nan::Set(instance, Nan::New("name").ToLocalChecked(), Nan::New("sus").ToLocalChecked()); - Nan::Set(module, Nan::New("exports").ToLocalChecked(), instance); +Napi::Object Init(Napi::Env env, Napi::Object exports) { + exports["name"] = Napi::String::New(env, "sus"); + auto language = Napi::External::New(env, tree_sitter_sus()); + language.TypeTag(&LANGUAGE_TYPE_TAG); + exports["language"] = language; + return exports; } -NODE_MODULE(tree_sitter_sus_binding, Init) - -} // namespace +NODE_API_MODULE(tree_sitter_sus_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 8604e2c..6657bcf 100644 --- a/bindings/node/index.js +++ b/bindings/node/index.js @@ -1,18 +1,6 @@ -try { - module.exports = require("../../build/Release/tree_sitter_sus_binding"); -} catch (error1) { - if (error1.code !== 'MODULE_NOT_FOUND') { - throw error1; - } - try { - module.exports = require("../../build/Debug/tree_sitter_sus_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_sus/__init__.py b/bindings/python/tree_sitter_sus/__init__.py new file mode 100644 index 0000000..e22aa9d --- /dev/null +++ b/bindings/python/tree_sitter_sus/__init__.py @@ -0,0 +1,5 @@ +"Sus grammar for tree-sitter" + +from ._binding import language + +__all__ = ["language"] diff --git a/bindings/python/tree_sitter_sus/__init__.pyi b/bindings/python/tree_sitter_sus/__init__.pyi new file mode 100644 index 0000000..5416666 --- /dev/null +++ b/bindings/python/tree_sitter_sus/__init__.pyi @@ -0,0 +1 @@ +def language() -> int: ... diff --git a/bindings/python/tree_sitter_sus/binding.c b/bindings/python/tree_sitter_sus/binding.c new file mode 100644 index 0000000..f7f3b5c --- /dev/null +++ b/bindings/python/tree_sitter_sus/binding.c @@ -0,0 +1,27 @@ +#include + +typedef struct TSLanguage TSLanguage; + +TSLanguage *tree_sitter_sus(void); + +static PyObject* _binding_language(PyObject *self, PyObject *args) { + return PyLong_FromVoidPtr(tree_sitter_sus()); +} + +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_sus/py.typed b/bindings/python/tree_sitter_sus/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/bindings/swift/TreeSitterSus/sus.h b/bindings/swift/TreeSitterSus/sus.h new file mode 100644 index 0000000..f35b017 --- /dev/null +++ b/bindings/swift/TreeSitterSus/sus.h @@ -0,0 +1,16 @@ +#ifndef TREE_SITTER_SUS_H_ +#define TREE_SITTER_SUS_H_ + +typedef struct TSLanguage TSLanguage; + +#ifdef __cplusplus +extern "C" { +#endif + +const TSLanguage *tree_sitter_sus(void); + +#ifdef __cplusplus +} +#endif + +#endif // TREE_SITTER_SUS_H_ diff --git a/grammar.js b/grammar.js index 75cad37..bd88e9c 100644 --- a/grammar.js +++ b/grammar.js @@ -7,6 +7,20 @@ function sepSeq(rule, sepChar) { return optional(sepSeq1(rule, sepChar)) } +function newlineSepSeq($, rule) { + return seq( + optional($._at_least_one_newline), + optional(seq( + field('item', rule), + repeat(seq( + $._at_least_one_newline, + field('item', rule) + )), + optional($._at_least_one_newline) + )) + ) +} + const PREC = { compare : 2, and: 3, @@ -23,7 +37,7 @@ module.exports = grammar({ name: 'sus', rules: { - source_file: $ => repeat(field('item', $.module)), + source_file: $ => newlineSepSeq($, $.module), interface_ports : $ => seq( ':', @@ -133,9 +147,20 @@ module.exports = grammar({ $.func_call ), + _at_least_one_newline: $ => repeat1(/\n/), // For things that must be separated by at least one newline (whitespace after is to optimize gobbling up any extra newlines) + block: $ => seq( '{', - repeat(field('item', $._statement)), + newlineSepSeq($, choice( + $.block, + $.decl_assign_statement, + + // Decls only should only allow a single declaration, and cannot contain expressions, + // but we allow some tolerance in the grammar here, so we can generate better errors after. + $.assign_left_side, + $.if_statement, + $.for_statement + )), '}' ), @@ -183,16 +208,6 @@ module.exports = grammar({ field('to', $._expression), field('block', $.block) ), - _statement: $ => choice( - $.block, - seq($.decl_assign_statement, ';'), - - // Decls only should only allow a single declaration, and cannot contain expressions, - // but we allow some tolerance in the grammar here, so we can generate better errors after. - seq($.assign_left_side, ';'), - $.if_statement, - $.for_statement - ), single_line_comment : $ => /\/\/[^\n]*/, multi_line_comment : $ => /\/\*[^\*]*\*+([^\/\*][^\*]*\*+)*\//, @@ -205,7 +220,7 @@ module.exports = grammar({ word: $=> $.identifier, extras: $ => [ - /\s+/, + /[ \t\r]+/, // Non newline whitespace $.single_line_comment, $.multi_line_comment ] diff --git a/package.json b/package.json index f9201b0..0fef386 100644 --- a/package.json +++ b/package.json @@ -3,18 +3,39 @@ "version": "0.0.1", "description": "sus grammar for tree-sitter", "main": "bindings/node", + "types": "bindings/node", "keywords": [ "parsing", "incremental" ], + "files": [ + "grammar.js", + "binding.gyp", + "prebuilds/**", + "bindings/node/*", + "queries/*", + "src/**" + ], "dependencies": { - "nan": "^2.12.1" + "node-addon-api": "^7.1.0", + "node-gyp-build": "^4.8.0" + }, + "peerDependencies": { + "tree-sitter": "^0.21.0" + }, + "peerDependenciesMeta": { + "tree_sitter": { + "optional": true + } }, "devDependencies": { - "tree-sitter-cli": "^0.20.8" + "tree-sitter-cli": "^0.20.8", + "prebuildify": "^6.0.0" }, "scripts": { - "test": "tree-sitter test" + "test": "tree-sitter test", + "install": "node-gyp-build", + "prebuildify": "prebuildify --napi --strip" }, "repository": "https://github.com/pc2/tree-sitter-sus", "tree-sitter": [ diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..0e1ea59 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,29 @@ +[build-system] +requires = ["setuptools>=42", "wheel"] +build-backend = "setuptools.build_meta" + +[project] +name = "tree-sitter-sus" +description = "Sus grammar for tree-sitter" +version = "0.0.1" +keywords = ["incremental", "parsing", "tree-sitter", "sus"] +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-sus" + +[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..a1b5e06 --- /dev/null +++ b/setup.py @@ -0,0 +1,57 @@ +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_sus", "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_sus": ["*.pyi", "py.typed"], + "tree_sitter_sus.queries": ["*.scm"], + }, + ext_package="tree_sitter_sus", + ext_modules=[ + Extension( + name="_binding", + sources=[ + "bindings/python/tree_sitter_sus/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 [] + ), + 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 c5e6536..03c555a 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -3,15 +3,74 @@ "word": "identifier", "rules": { "source_file": { - "type": "REPEAT", - "content": { - "type": "FIELD", - "name": "item", - "content": { - "type": "SYMBOL", - "name": "module" + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_at_least_one_newline" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "item", + "content": { + "type": "SYMBOL", + "name": "module" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_at_least_one_newline" + }, + { + "type": "FIELD", + "name": "item", + "content": { + "type": "SYMBOL", + "name": "module" + } + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_at_least_one_newline" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] } - } + ] }, "interface_ports": { "type": "SEQ", @@ -788,6 +847,13 @@ } ] }, + "_at_least_one_newline": { + "type": "REPEAT1", + "content": { + "type": "PATTERN", + "value": "\\n" + } + }, "block": { "type": "SEQ", "members": [ @@ -796,15 +862,116 @@ "value": "{" }, { - "type": "REPEAT", - "content": { - "type": "FIELD", - "name": "item", - "content": { - "type": "SYMBOL", - "name": "_statement" + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_at_least_one_newline" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "item", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "block" + }, + { + "type": "SYMBOL", + "name": "decl_assign_statement" + }, + { + "type": "SYMBOL", + "name": "assign_left_side" + }, + { + "type": "SYMBOL", + "name": "if_statement" + }, + { + "type": "SYMBOL", + "name": "for_statement" + } + ] + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_at_least_one_newline" + }, + { + "type": "FIELD", + "name": "item", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "block" + }, + { + "type": "SYMBOL", + "name": "decl_assign_statement" + }, + { + "type": "SYMBOL", + "name": "assign_left_side" + }, + { + "type": "SYMBOL", + "name": "if_statement" + }, + { + "type": "SYMBOL", + "name": "for_statement" + } + ] + } + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_at_least_one_newline" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] } - } + ] }, { "type": "STRING", @@ -1040,49 +1207,6 @@ } ] }, - "_statement": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "block" - }, - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "decl_assign_statement" - }, - { - "type": "STRING", - "value": ";" - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "assign_left_side" - }, - { - "type": "STRING", - "value": ";" - } - ] - }, - { - "type": "SYMBOL", - "name": "if_statement" - }, - { - "type": "SYMBOL", - "name": "for_statement" - } - ] - }, "single_line_comment": { "type": "PATTERN", "value": "\\/\\/[^\\n]*" @@ -1095,7 +1219,7 @@ "extras": [ { "type": "PATTERN", - "value": "\\s+" + "value": "[ \\t\\r]+" }, { "type": "SYMBOL", @@ -1117,4 +1241,3 @@ "inline": [], "supertypes": [] } - diff --git a/src/node-types.json b/src/node-types.json index cb4b7ff..603e6ba 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -333,10 +333,6 @@ "multiple": true, "required": false, "types": [ - { - "type": ";", - "named": false - }, { "type": "assign_left_side", "named": true @@ -1061,10 +1057,6 @@ "type": "::", "named": false }, - { - "type": ";", - "named": false - }, { "type": "<", "named": false diff --git a/src/parser.c b/src/parser.c index 5fc191b..75da8b9 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 106 -#define LARGE_STATE_COUNT 5 +#define STATE_COUNT 141 +#define LARGE_STATE_COUNT 11 #define SYMBOL_COUNT 75 #define ALIAS_COUNT 0 #define TOKEN_COUNT 43 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 26 #define MAX_ALIAS_SEQUENCE_LENGTH 7 -#define PRODUCTION_ID_COUNT 28 +#define PRODUCTION_ID_COUNT 29 -enum { +enum ts_symbol_identifiers { sym_identifier = 1, anon_sym_COLON = 2, anon_sym_DASH_GT = 3, @@ -46,17 +45,17 @@ enum { anon_sym_RPAREN = 27, anon_sym_LBRACK = 28, anon_sym_RBRACK = 29, - anon_sym_LBRACE = 30, - anon_sym_RBRACE = 31, - anon_sym_reg = 32, - anon_sym_initial = 33, - anon_sym_EQ = 34, - anon_sym_if = 35, - anon_sym_else = 36, - anon_sym_for = 37, - anon_sym_in = 38, - anon_sym_DOT_DOT = 39, - anon_sym_SEMI = 40, + aux_sym__at_least_one_newline_token1 = 30, + anon_sym_LBRACE = 31, + anon_sym_RBRACE = 32, + anon_sym_reg = 33, + anon_sym_initial = 34, + anon_sym_EQ = 35, + anon_sym_if = 36, + anon_sym_else = 37, + anon_sym_for = 38, + anon_sym_in = 39, + anon_sym_DOT_DOT = 40, sym_single_line_comment = 41, sym_multi_line_comment = 42, sym_source_file = 43, @@ -76,14 +75,14 @@ enum { sym_parenthesis_expression = 57, sym_array_bracket_expression = 58, sym__expression = 59, - sym_block = 60, - sym_write_modifiers = 61, - sym_assign_to = 62, - sym_assign_left_side = 63, - sym_decl_assign_statement = 64, - sym_if_statement = 65, - sym_for_statement = 66, - sym__statement = 67, + aux_sym__at_least_one_newline = 60, + sym_block = 61, + sym_write_modifiers = 62, + sym_assign_to = 63, + sym_assign_left_side = 64, + sym_decl_assign_statement = 65, + sym_if_statement = 66, + sym_for_statement = 67, aux_sym_source_file_repeat1 = 68, aux_sym_declaration_list_repeat1 = 69, aux_sym_global_identifier_repeat1 = 70, @@ -124,6 +123,7 @@ static const char * const ts_symbol_names[] = { [anon_sym_RPAREN] = ")", [anon_sym_LBRACK] = "[", [anon_sym_RBRACK] = "]", + [aux_sym__at_least_one_newline_token1] = "_at_least_one_newline_token1", [anon_sym_LBRACE] = "{", [anon_sym_RBRACE] = "}", [anon_sym_reg] = "reg", @@ -134,7 +134,6 @@ static const char * const ts_symbol_names[] = { [anon_sym_for] = "for", [anon_sym_in] = "in", [anon_sym_DOT_DOT] = "..", - [anon_sym_SEMI] = ";", [sym_single_line_comment] = "single_line_comment", [sym_multi_line_comment] = "multi_line_comment", [sym_source_file] = "source_file", @@ -154,6 +153,7 @@ static const char * const ts_symbol_names[] = { [sym_parenthesis_expression] = "parenthesis_expression", [sym_array_bracket_expression] = "array_bracket_expression", [sym__expression] = "_expression", + [aux_sym__at_least_one_newline] = "_at_least_one_newline", [sym_block] = "block", [sym_write_modifiers] = "write_modifiers", [sym_assign_to] = "assign_to", @@ -161,7 +161,6 @@ static const char * const ts_symbol_names[] = { [sym_decl_assign_statement] = "decl_assign_statement", [sym_if_statement] = "if_statement", [sym_for_statement] = "for_statement", - [sym__statement] = "_statement", [aux_sym_source_file_repeat1] = "source_file_repeat1", [aux_sym_declaration_list_repeat1] = "declaration_list_repeat1", [aux_sym_global_identifier_repeat1] = "global_identifier_repeat1", @@ -202,6 +201,7 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_RPAREN] = anon_sym_RPAREN, [anon_sym_LBRACK] = anon_sym_LBRACK, [anon_sym_RBRACK] = anon_sym_RBRACK, + [aux_sym__at_least_one_newline_token1] = aux_sym__at_least_one_newline_token1, [anon_sym_LBRACE] = anon_sym_LBRACE, [anon_sym_RBRACE] = anon_sym_RBRACE, [anon_sym_reg] = anon_sym_reg, @@ -212,7 +212,6 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_for] = anon_sym_for, [anon_sym_in] = anon_sym_in, [anon_sym_DOT_DOT] = anon_sym_DOT_DOT, - [anon_sym_SEMI] = anon_sym_SEMI, [sym_single_line_comment] = sym_single_line_comment, [sym_multi_line_comment] = sym_multi_line_comment, [sym_source_file] = sym_source_file, @@ -232,6 +231,7 @@ static const TSSymbol ts_symbol_map[] = { [sym_parenthesis_expression] = sym_parenthesis_expression, [sym_array_bracket_expression] = sym_array_bracket_expression, [sym__expression] = sym__expression, + [aux_sym__at_least_one_newline] = aux_sym__at_least_one_newline, [sym_block] = sym_block, [sym_write_modifiers] = sym_write_modifiers, [sym_assign_to] = sym_assign_to, @@ -239,7 +239,6 @@ static const TSSymbol ts_symbol_map[] = { [sym_decl_assign_statement] = sym_decl_assign_statement, [sym_if_statement] = sym_if_statement, [sym_for_statement] = sym_for_statement, - [sym__statement] = sym__statement, [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1, [aux_sym_declaration_list_repeat1] = aux_sym_declaration_list_repeat1, [aux_sym_global_identifier_repeat1] = aux_sym_global_identifier_repeat1, @@ -370,6 +369,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [aux_sym__at_least_one_newline_token1] = { + .visible = false, + .named = false, + }, [anon_sym_LBRACE] = { .visible = true, .named = false, @@ -410,10 +413,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_SEMI] = { - .visible = true, - .named = false, - }, [sym_single_line_comment] = { .visible = true, .named = true, @@ -490,6 +489,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = true, }, + [aux_sym__at_least_one_newline] = { + .visible = false, + .named = false, + }, [sym_block] = { .visible = true, .named = true, @@ -518,10 +521,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym__statement] = { - .visible = false, - .named = true, - }, [aux_sym_source_file_repeat1] = { .visible = false, .named = false, @@ -552,7 +551,7 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { }, }; -enum { +enum ts_field_identifiers { field_arguments = 1, field_arr = 2, field_arr_idx = 3, @@ -613,113 +612,117 @@ static const char * const ts_field_names[] = { static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [1] = {.index = 0, .length = 1}, - [2] = {.index = 1, .length = 1}, - [3] = {.index = 2, .length = 2}, + [2] = {.index = 1, .length = 2}, + [3] = {.index = 3, .length = 1}, [4] = {.index = 4, .length = 2}, - [5] = {.index = 6, .length = 1}, - [6] = {.index = 7, .length = 1}, - [7] = {.index = 8, .length = 3}, + [5] = {.index = 6, .length = 2}, + [6] = {.index = 8, .length = 2}, + [7] = {.index = 10, .length = 1}, [8] = {.index = 11, .length = 1}, - [9] = {.index = 12, .length = 2}, - [10] = {.index = 14, .length = 2}, - [11] = {.index = 16, .length = 2}, - [12] = {.index = 18, .length = 2}, - [13] = {.index = 20, .length = 2}, - [14] = {.index = 22, .length = 2}, - [15] = {.index = 24, .length = 1}, - [16] = {.index = 25, .length = 1}, - [17] = {.index = 26, .length = 3}, - [18] = {.index = 29, .length = 2}, - [19] = {.index = 31, .length = 3}, - [20] = {.index = 34, .length = 1}, - [21] = {.index = 35, .length = 2}, - [22] = {.index = 37, .length = 3}, - [23] = {.index = 40, .length = 2}, - [24] = {.index = 42, .length = 4}, - [25] = {.index = 46, .length = 3}, - [26] = {.index = 49, .length = 2}, - [27] = {.index = 51, .length = 4}, + [9] = {.index = 12, .length = 1}, + [10] = {.index = 13, .length = 3}, + [11] = {.index = 16, .length = 1}, + [12] = {.index = 17, .length = 2}, + [13] = {.index = 19, .length = 2}, + [14] = {.index = 21, .length = 2}, + [15] = {.index = 23, .length = 2}, + [16] = {.index = 25, .length = 2}, + [17] = {.index = 27, .length = 3}, + [18] = {.index = 30, .length = 2}, + [19] = {.index = 32, .length = 3}, + [20] = {.index = 35, .length = 1}, + [21] = {.index = 36, .length = 2}, + [22] = {.index = 38, .length = 3}, + [23] = {.index = 41, .length = 1}, + [24] = {.index = 42, .length = 2}, + [25] = {.index = 44, .length = 4}, + [26] = {.index = 48, .length = 2}, + [27] = {.index = 50, .length = 3}, + [28] = {.index = 53, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { [0] = {field_item, 0}, [1] = - {field_item, 0, .inherited = true}, - [2] = - {field_item, 0, .inherited = true}, + {field_item, 0}, {field_item, 1, .inherited = true}, + [3] = + {field_item, 1}, [4] = {field_block, 2}, {field_name, 1}, [6] = + {field_item, 0, .inherited = true}, + {field_item, 1, .inherited = true}, + [8] = + {field_item, 1}, + {field_item, 2, .inherited = true}, + [10] = {field_inputs, 1}, - [7] = + [11] = {field_expr_or_decl, 0}, - [8] = + [12] = + {field_item, 0, .inherited = true}, + [13] = {field_block, 3}, {field_interface_ports, 2}, {field_name, 1}, - [11] = + [16] = {field_outputs, 2}, - [12] = - {field_item, 0}, - {field_item, 1, .inherited = true}, - [14] = + [17] = {field_name, 1}, {field_type, 0}, - [16] = + [19] = {field_arr, 0}, {field_arr_idx, 1}, - [18] = + [21] = {field_operator, 0}, {field_right, 1}, - [20] = + [23] = {field_arguments, 1}, {field_name, 0}, - [22] = + [25] = {field_expr_or_decl, 1}, {field_write_modifiers, 0}, - [24] = - {field_item, 1, .inherited = true}, - [25] = - {field_item, 1}, - [26] = + [27] = {field_declaration_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [29] = + [30] = {field_inputs, 1}, {field_outputs, 3}, - [31] = + [32] = {field_latency_specifier, 2}, {field_name, 1}, {field_type, 0}, - [34] = - {field_content, 1}, [35] = + {field_content, 1}, + [36] = {field_condition, 1}, {field_then_block, 2}, - [37] = + [38] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [40] = + [41] = + {field_item, 2}, + [42] = {field_assign_left, 0}, {field_assign_value, 2}, - [42] = + [44] = {field_declaration_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [46] = + [48] = + {field_item, 2}, + {field_item, 3, .inherited = true}, + [50] = {field_condition, 1}, {field_else_block, 4}, {field_then_block, 2}, - [49] = - {field_item, 1}, - {field_item, 2, .inherited = true}, - [51] = + [53] = {field_block, 6}, {field_for_decl, 1}, {field_from, 3}, @@ -841,6 +844,41 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [103] = 103, [104] = 104, [105] = 105, + [106] = 106, + [107] = 107, + [108] = 108, + [109] = 109, + [110] = 110, + [111] = 111, + [112] = 112, + [113] = 113, + [114] = 114, + [115] = 115, + [116] = 116, + [117] = 117, + [118] = 118, + [119] = 119, + [120] = 120, + [121] = 121, + [122] = 122, + [123] = 123, + [124] = 124, + [125] = 125, + [126] = 126, + [127] = 127, + [128] = 128, + [129] = 129, + [130] = 130, + [131] = 131, + [132] = 132, + [133] = 133, + [134] = 134, + [135] = 135, + [136] = 136, + [137] = 137, + [138] = 138, + [139] = 139, + [140] = 140, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -2759,6 +2797,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { switch (state) { case 0: if (eof) ADVANCE(9); + if (lookahead == '\n') ADVANCE(39); if (lookahead == '!') ADVANCE(23); if (lookahead == '%') ADVANCE(34); if (lookahead == '&') ADVANCE(25); @@ -2772,24 +2811,23 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '.') ADVANCE(5); if (lookahead == '/') ADVANCE(33); if (lookahead == ':') ADVANCE(11); - if (lookahead == ';') ADVANCE(43); if (lookahead == '<') ADVANCE(29); - if (lookahead == '=') ADVANCE(41); + if (lookahead == '=') ADVANCE(42); if (lookahead == '>') ADVANCE(31); if (lookahead == '[') ADVANCE(37); if (lookahead == ']') ADVANCE(38); if (lookahead == '^') ADVANCE(26); - if (lookahead == '{') ADVANCE(39); + if (lookahead == '{') ADVANCE(40); if (lookahead == '|') ADVANCE(24); - if (lookahead == '}') ADVANCE(40); + if (lookahead == '}') ADVANCE(41); if (lookahead == '\t' || - lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(0) if (('0' <= lookahead && lookahead <= '9')) ADVANCE(15); if (sym_identifier_character_set_1(lookahead)) ADVANCE(14); END_STATE(); case 1: + if (lookahead == '\n') ADVANCE(39); if (lookahead == '!') ADVANCE(7); if (lookahead == '%') ADVANCE(34); if (lookahead == '&') ADVANCE(25); @@ -2802,17 +2840,16 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '.') ADVANCE(5); if (lookahead == '/') ADVANCE(33); if (lookahead == ':') ADVANCE(6); - if (lookahead == ';') ADVANCE(43); if (lookahead == '<') ADVANCE(29); - if (lookahead == '=') ADVANCE(41); + if (lookahead == '=') ADVANCE(42); if (lookahead == '>') ADVANCE(31); if (lookahead == '[') ADVANCE(37); if (lookahead == ']') ADVANCE(38); if (lookahead == '^') ADVANCE(26); - if (lookahead == '{') ADVANCE(39); + if (lookahead == '{') ADVANCE(40); if (lookahead == '|') ADVANCE(24); + if (lookahead == '}') ADVANCE(41); if (lookahead == '\t' || - lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(1) if (sym_identifier_character_set_1(lookahead)) ADVANCE(14); @@ -2831,7 +2868,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead != 0) ADVANCE(4); END_STATE(); case 5: - if (lookahead == '.') ADVANCE(42); + if (lookahead == '.') ADVANCE(43); END_STATE(); case 6: if (lookahead == ':') ADVANCE(16); @@ -2841,6 +2878,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 8: if (eof) ADVANCE(9); + if (lookahead == '\n') ADVANCE(39); if (lookahead == '!') ADVANCE(22); if (lookahead == '&') ADVANCE(25); if (lookahead == '(') ADVANCE(35); @@ -2851,11 +2889,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '/') ADVANCE(2); if (lookahead == ':') ADVANCE(10); if (lookahead == '^') ADVANCE(26); - if (lookahead == '{') ADVANCE(39); + if (lookahead == '{') ADVANCE(40); if (lookahead == '|') ADVANCE(24); - if (lookahead == '}') ADVANCE(40); + if (lookahead == '}') ADVANCE(41); if (lookahead == '\t' || - lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(8) if (('0' <= lookahead && lookahead <= '9')) ADVANCE(15); @@ -2962,20 +2999,20 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); case 39: - ACCEPT_TOKEN(anon_sym_LBRACE); + ACCEPT_TOKEN(aux_sym__at_least_one_newline_token1); END_STATE(); case 40: - ACCEPT_TOKEN(anon_sym_RBRACE); + ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); case 41: - ACCEPT_TOKEN(anon_sym_EQ); - if (lookahead == '=') ADVANCE(27); + ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); case 42: - ACCEPT_TOKEN(anon_sym_DOT_DOT); + ACCEPT_TOKEN(anon_sym_EQ); + if (lookahead == '=') ADVANCE(27); END_STATE(); case 43: - ACCEPT_TOKEN(anon_sym_SEMI); + ACCEPT_TOKEN(anon_sym_DOT_DOT); END_STATE(); case 44: ACCEPT_TOKEN(sym_single_line_comment); @@ -3003,7 +3040,6 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { if (lookahead == 'r') ADVANCE(6); if (lookahead == 's') ADVANCE(7); if (lookahead == '\t' || - lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(0) END_STATE(); @@ -3116,45 +3152,45 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [2] = {.lex_state = 8}, [3] = {.lex_state = 8}, [4] = {.lex_state = 8}, - [5] = {.lex_state = 1}, - [6] = {.lex_state = 1}, - [7] = {.lex_state = 1}, - [8] = {.lex_state = 1}, - [9] = {.lex_state = 1}, - [10] = {.lex_state = 1}, + [5] = {.lex_state = 8}, + [6] = {.lex_state = 8}, + [7] = {.lex_state = 8}, + [8] = {.lex_state = 8}, + [9] = {.lex_state = 8}, + [10] = {.lex_state = 8}, [11] = {.lex_state = 1}, [12] = {.lex_state = 1}, [13] = {.lex_state = 1}, [14] = {.lex_state = 1}, [15] = {.lex_state = 1}, - [16] = {.lex_state = 8}, + [16] = {.lex_state = 1}, [17] = {.lex_state = 1}, [18] = {.lex_state = 1}, [19] = {.lex_state = 1}, [20] = {.lex_state = 1}, [21] = {.lex_state = 1}, - [22] = {.lex_state = 1}, + [22] = {.lex_state = 8}, [23] = {.lex_state = 1}, [24] = {.lex_state = 1}, - [25] = {.lex_state = 8}, + [25] = {.lex_state = 1}, [26] = {.lex_state = 1}, [27] = {.lex_state = 1}, - [28] = {.lex_state = 8}, + [28] = {.lex_state = 1}, [29] = {.lex_state = 1}, - [30] = {.lex_state = 8}, + [30] = {.lex_state = 1}, [31] = {.lex_state = 1}, - [32] = {.lex_state = 1}, + [32] = {.lex_state = 8}, [33] = {.lex_state = 1}, - [34] = {.lex_state = 1}, - [35] = {.lex_state = 8}, + [34] = {.lex_state = 8}, + [35] = {.lex_state = 1}, [36] = {.lex_state = 1}, [37] = {.lex_state = 1}, [38] = {.lex_state = 1}, [39] = {.lex_state = 1}, - [40] = {.lex_state = 8}, - [41] = {.lex_state = 8}, - [42] = {.lex_state = 8}, - [43] = {.lex_state = 8}, + [40] = {.lex_state = 1}, + [41] = {.lex_state = 1}, + [42] = {.lex_state = 1}, + [43] = {.lex_state = 1}, [44] = {.lex_state = 8}, [45] = {.lex_state = 8}, [46] = {.lex_state = 8}, @@ -3187,7 +3223,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [73] = {.lex_state = 0}, [74] = {.lex_state = 0}, [75] = {.lex_state = 0}, - [76] = {.lex_state = 8}, + [76] = {.lex_state = 0}, [77] = {.lex_state = 0}, [78] = {.lex_state = 0}, [79] = {.lex_state = 0}, @@ -3205,7 +3241,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [91] = {.lex_state = 0}, [92] = {.lex_state = 0}, [93] = {.lex_state = 0}, - [94] = {.lex_state = 0}, + [94] = {.lex_state = 8}, [95] = {.lex_state = 0}, [96] = {.lex_state = 0}, [97] = {.lex_state = 0}, @@ -3217,6 +3253,41 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [103] = {.lex_state = 0}, [104] = {.lex_state = 0}, [105] = {.lex_state = 0}, + [106] = {.lex_state = 0}, + [107] = {.lex_state = 0}, + [108] = {.lex_state = 0}, + [109] = {.lex_state = 0}, + [110] = {.lex_state = 0}, + [111] = {.lex_state = 0}, + [112] = {.lex_state = 0}, + [113] = {.lex_state = 0}, + [114] = {.lex_state = 0}, + [115] = {.lex_state = 0}, + [116] = {.lex_state = 0}, + [117] = {.lex_state = 0}, + [118] = {.lex_state = 0}, + [119] = {.lex_state = 0}, + [120] = {.lex_state = 0}, + [121] = {.lex_state = 0}, + [122] = {.lex_state = 0}, + [123] = {.lex_state = 0}, + [124] = {.lex_state = 0}, + [125] = {.lex_state = 0}, + [126] = {.lex_state = 0}, + [127] = {.lex_state = 0}, + [128] = {.lex_state = 0}, + [129] = {.lex_state = 0}, + [130] = {.lex_state = 0}, + [131] = {.lex_state = 0}, + [132] = {.lex_state = 0}, + [133] = {.lex_state = 0}, + [134] = {.lex_state = 0}, + [135] = {.lex_state = 0}, + [136] = {.lex_state = 0}, + [137] = {.lex_state = 0}, + [138] = {.lex_state = 0}, + [139] = {.lex_state = 0}, + [140] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -3251,6 +3322,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_RPAREN] = ACTIONS(1), [anon_sym_LBRACK] = ACTIONS(1), [anon_sym_RBRACK] = ACTIONS(1), + [aux_sym__at_least_one_newline_token1] = ACTIONS(1), [anon_sym_LBRACE] = ACTIONS(1), [anon_sym_RBRACE] = ACTIONS(1), [anon_sym_reg] = ACTIONS(1), @@ -3261,142 +3333,393 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_for] = ACTIONS(1), [anon_sym_in] = ACTIONS(1), [anon_sym_DOT_DOT] = ACTIONS(1), - [anon_sym_SEMI] = ACTIONS(1), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(104), - [sym_module] = STATE(97), - [aux_sym_source_file_repeat1] = STATE(75), + [sym_source_file] = STATE(139), + [sym_module] = STATE(92), + [aux_sym__at_least_one_newline] = STATE(82), [ts_builtin_sym_end] = ACTIONS(5), [anon_sym_module] = ACTIONS(7), + [aux_sym__at_least_one_newline_token1] = ACTIONS(9), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [2] = { - [sym_global_identifier] = STATE(31), - [sym_array_type] = STATE(85), - [sym__type] = STATE(85), - [sym_declaration] = STATE(91), - [sym_unary_op] = STATE(27), - [sym_binary_op] = STATE(27), - [sym_array_op] = STATE(27), - [sym_func_call] = STATE(27), - [sym_parenthesis_expression] = STATE(27), - [sym__expression] = STATE(27), - [sym_block] = STATE(41), - [sym_write_modifiers] = STATE(25), - [sym_assign_to] = STATE(83), - [sym_assign_left_side] = STATE(96), - [sym_decl_assign_statement] = STATE(101), - [sym_if_statement] = STATE(41), - [sym_for_statement] = STATE(41), - [sym__statement] = STATE(41), - [aux_sym_block_repeat1] = STATE(2), + [sym_global_identifier] = STATE(35), + [sym_array_type] = STATE(120), + [sym__type] = STATE(120), + [sym_declaration] = STATE(112), + [sym_unary_op] = STATE(31), + [sym_binary_op] = STATE(31), + [sym_array_op] = STATE(31), + [sym_func_call] = STATE(31), + [sym_parenthesis_expression] = STATE(31), + [sym__expression] = STATE(31), + [aux_sym__at_least_one_newline] = STATE(34), + [sym_block] = STATE(127), + [sym_write_modifiers] = STATE(32), + [sym_assign_to] = STATE(81), + [sym_assign_left_side] = STATE(121), + [sym_decl_assign_statement] = STATE(127), + [sym_if_statement] = STATE(127), + [sym_for_statement] = STATE(127), [aux_sym_write_modifiers_repeat1] = STATE(60), - [sym_identifier] = ACTIONS(9), - [sym_number] = ACTIONS(12), + [sym_identifier] = ACTIONS(11), + [sym_number] = ACTIONS(13), [anon_sym_state] = ACTIONS(15), [anon_sym_gen] = ACTIONS(15), - [anon_sym_PLUS] = ACTIONS(18), - [anon_sym_DASH] = ACTIONS(18), - [anon_sym_STAR] = ACTIONS(18), - [anon_sym_BANG] = ACTIONS(18), - [anon_sym_PIPE] = ACTIONS(18), - [anon_sym_AMP] = ACTIONS(18), - [anon_sym_CARET] = ACTIONS(18), - [anon_sym_LPAREN] = ACTIONS(21), - [anon_sym_LBRACE] = ACTIONS(24), - [anon_sym_RBRACE] = ACTIONS(27), - [anon_sym_reg] = ACTIONS(29), - [anon_sym_initial] = ACTIONS(32), - [anon_sym_if] = ACTIONS(35), - [anon_sym_for] = ACTIONS(38), + [anon_sym_PLUS] = ACTIONS(17), + [anon_sym_DASH] = ACTIONS(17), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_BANG] = ACTIONS(17), + [anon_sym_PIPE] = ACTIONS(17), + [anon_sym_AMP] = ACTIONS(17), + [anon_sym_CARET] = ACTIONS(17), + [anon_sym_LPAREN] = ACTIONS(19), + [aux_sym__at_least_one_newline_token1] = ACTIONS(21), + [anon_sym_LBRACE] = ACTIONS(23), + [anon_sym_RBRACE] = ACTIONS(25), + [anon_sym_reg] = ACTIONS(27), + [anon_sym_initial] = ACTIONS(29), + [anon_sym_if] = ACTIONS(31), + [anon_sym_for] = ACTIONS(33), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [3] = { - [sym_global_identifier] = STATE(31), - [sym_array_type] = STATE(85), - [sym__type] = STATE(85), - [sym_declaration] = STATE(91), - [sym_unary_op] = STATE(27), - [sym_binary_op] = STATE(27), - [sym_array_op] = STATE(27), - [sym_func_call] = STATE(27), - [sym_parenthesis_expression] = STATE(27), - [sym__expression] = STATE(27), - [sym_block] = STATE(41), - [sym_write_modifiers] = STATE(25), - [sym_assign_to] = STATE(83), - [sym_assign_left_side] = STATE(96), - [sym_decl_assign_statement] = STATE(101), - [sym_if_statement] = STATE(41), - [sym_for_statement] = STATE(41), - [sym__statement] = STATE(41), - [aux_sym_block_repeat1] = STATE(2), + [sym_global_identifier] = STATE(35), + [sym_array_type] = STATE(120), + [sym__type] = STATE(120), + [sym_declaration] = STATE(112), + [sym_unary_op] = STATE(31), + [sym_binary_op] = STATE(31), + [sym_array_op] = STATE(31), + [sym_func_call] = STATE(31), + [sym_parenthesis_expression] = STATE(31), + [sym__expression] = STATE(31), + [aux_sym__at_least_one_newline] = STATE(34), + [sym_block] = STATE(127), + [sym_write_modifiers] = STATE(32), + [sym_assign_to] = STATE(81), + [sym_assign_left_side] = STATE(121), + [sym_decl_assign_statement] = STATE(127), + [sym_if_statement] = STATE(127), + [sym_for_statement] = STATE(127), [aux_sym_write_modifiers_repeat1] = STATE(60), - [sym_identifier] = ACTIONS(41), - [sym_number] = ACTIONS(43), - [anon_sym_state] = ACTIONS(45), - [anon_sym_gen] = ACTIONS(45), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_STAR] = ACTIONS(47), - [anon_sym_BANG] = ACTIONS(47), - [anon_sym_PIPE] = ACTIONS(47), - [anon_sym_AMP] = ACTIONS(47), - [anon_sym_CARET] = ACTIONS(47), - [anon_sym_LPAREN] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_RBRACE] = ACTIONS(53), - [anon_sym_reg] = ACTIONS(55), - [anon_sym_initial] = ACTIONS(57), - [anon_sym_if] = ACTIONS(59), - [anon_sym_for] = ACTIONS(61), + [sym_identifier] = ACTIONS(11), + [sym_number] = ACTIONS(13), + [anon_sym_state] = ACTIONS(15), + [anon_sym_gen] = ACTIONS(15), + [anon_sym_PLUS] = ACTIONS(17), + [anon_sym_DASH] = ACTIONS(17), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_BANG] = ACTIONS(17), + [anon_sym_PIPE] = ACTIONS(17), + [anon_sym_AMP] = ACTIONS(17), + [anon_sym_CARET] = ACTIONS(17), + [anon_sym_LPAREN] = ACTIONS(19), + [aux_sym__at_least_one_newline_token1] = ACTIONS(21), + [anon_sym_LBRACE] = ACTIONS(23), + [anon_sym_RBRACE] = ACTIONS(35), + [anon_sym_reg] = ACTIONS(27), + [anon_sym_initial] = ACTIONS(29), + [anon_sym_if] = ACTIONS(31), + [anon_sym_for] = ACTIONS(33), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [4] = { - [sym_global_identifier] = STATE(31), - [sym_array_type] = STATE(85), - [sym__type] = STATE(85), - [sym_declaration] = STATE(91), - [sym_unary_op] = STATE(27), - [sym_binary_op] = STATE(27), - [sym_array_op] = STATE(27), - [sym_func_call] = STATE(27), - [sym_parenthesis_expression] = STATE(27), - [sym__expression] = STATE(27), - [sym_block] = STATE(41), - [sym_write_modifiers] = STATE(25), - [sym_assign_to] = STATE(83), - [sym_assign_left_side] = STATE(96), - [sym_decl_assign_statement] = STATE(101), - [sym_if_statement] = STATE(41), - [sym_for_statement] = STATE(41), - [sym__statement] = STATE(41), - [aux_sym_block_repeat1] = STATE(3), + [sym_global_identifier] = STATE(35), + [sym_array_type] = STATE(120), + [sym__type] = STATE(120), + [sym_declaration] = STATE(112), + [sym_unary_op] = STATE(31), + [sym_binary_op] = STATE(31), + [sym_array_op] = STATE(31), + [sym_func_call] = STATE(31), + [sym_parenthesis_expression] = STATE(31), + [sym__expression] = STATE(31), + [aux_sym__at_least_one_newline] = STATE(34), + [sym_block] = STATE(127), + [sym_write_modifiers] = STATE(32), + [sym_assign_to] = STATE(81), + [sym_assign_left_side] = STATE(121), + [sym_decl_assign_statement] = STATE(127), + [sym_if_statement] = STATE(127), + [sym_for_statement] = STATE(127), + [aux_sym_write_modifiers_repeat1] = STATE(60), + [sym_identifier] = ACTIONS(11), + [sym_number] = ACTIONS(13), + [anon_sym_state] = ACTIONS(15), + [anon_sym_gen] = ACTIONS(15), + [anon_sym_PLUS] = ACTIONS(17), + [anon_sym_DASH] = ACTIONS(17), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_BANG] = ACTIONS(17), + [anon_sym_PIPE] = ACTIONS(17), + [anon_sym_AMP] = ACTIONS(17), + [anon_sym_CARET] = ACTIONS(17), + [anon_sym_LPAREN] = ACTIONS(19), + [aux_sym__at_least_one_newline_token1] = ACTIONS(21), + [anon_sym_LBRACE] = ACTIONS(23), + [anon_sym_RBRACE] = ACTIONS(37), + [anon_sym_reg] = ACTIONS(27), + [anon_sym_initial] = ACTIONS(29), + [anon_sym_if] = ACTIONS(31), + [anon_sym_for] = ACTIONS(33), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), + }, + [5] = { + [sym_global_identifier] = STATE(35), + [sym_array_type] = STATE(120), + [sym__type] = STATE(120), + [sym_declaration] = STATE(112), + [sym_unary_op] = STATE(31), + [sym_binary_op] = STATE(31), + [sym_array_op] = STATE(31), + [sym_func_call] = STATE(31), + [sym_parenthesis_expression] = STATE(31), + [sym__expression] = STATE(31), + [aux_sym__at_least_one_newline] = STATE(34), + [sym_block] = STATE(83), + [sym_write_modifiers] = STATE(32), + [sym_assign_to] = STATE(81), + [sym_assign_left_side] = STATE(73), + [sym_decl_assign_statement] = STATE(83), + [sym_if_statement] = STATE(83), + [sym_for_statement] = STATE(83), + [aux_sym_write_modifiers_repeat1] = STATE(60), + [sym_identifier] = ACTIONS(11), + [sym_number] = ACTIONS(13), + [anon_sym_state] = ACTIONS(15), + [anon_sym_gen] = ACTIONS(15), + [anon_sym_PLUS] = ACTIONS(17), + [anon_sym_DASH] = ACTIONS(17), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_BANG] = ACTIONS(17), + [anon_sym_PIPE] = ACTIONS(17), + [anon_sym_AMP] = ACTIONS(17), + [anon_sym_CARET] = ACTIONS(17), + [anon_sym_LPAREN] = ACTIONS(19), + [aux_sym__at_least_one_newline_token1] = ACTIONS(21), + [anon_sym_LBRACE] = ACTIONS(23), + [anon_sym_RBRACE] = ACTIONS(39), + [anon_sym_reg] = ACTIONS(27), + [anon_sym_initial] = ACTIONS(29), + [anon_sym_if] = ACTIONS(31), + [anon_sym_for] = ACTIONS(33), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), + }, + [6] = { + [sym_global_identifier] = STATE(35), + [sym_array_type] = STATE(120), + [sym__type] = STATE(120), + [sym_declaration] = STATE(112), + [sym_unary_op] = STATE(31), + [sym_binary_op] = STATE(31), + [sym_array_op] = STATE(31), + [sym_func_call] = STATE(31), + [sym_parenthesis_expression] = STATE(31), + [sym__expression] = STATE(31), + [aux_sym__at_least_one_newline] = STATE(34), + [sym_block] = STATE(127), + [sym_write_modifiers] = STATE(32), + [sym_assign_to] = STATE(81), + [sym_assign_left_side] = STATE(121), + [sym_decl_assign_statement] = STATE(127), + [sym_if_statement] = STATE(127), + [sym_for_statement] = STATE(127), + [aux_sym_write_modifiers_repeat1] = STATE(60), + [sym_identifier] = ACTIONS(11), + [sym_number] = ACTIONS(13), + [anon_sym_state] = ACTIONS(15), + [anon_sym_gen] = ACTIONS(15), + [anon_sym_PLUS] = ACTIONS(17), + [anon_sym_DASH] = ACTIONS(17), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_BANG] = ACTIONS(17), + [anon_sym_PIPE] = ACTIONS(17), + [anon_sym_AMP] = ACTIONS(17), + [anon_sym_CARET] = ACTIONS(17), + [anon_sym_LPAREN] = ACTIONS(19), + [aux_sym__at_least_one_newline_token1] = ACTIONS(21), + [anon_sym_LBRACE] = ACTIONS(23), + [anon_sym_RBRACE] = ACTIONS(41), + [anon_sym_reg] = ACTIONS(27), + [anon_sym_initial] = ACTIONS(29), + [anon_sym_if] = ACTIONS(31), + [anon_sym_for] = ACTIONS(33), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), + }, + [7] = { + [sym_global_identifier] = STATE(35), + [sym_array_type] = STATE(120), + [sym__type] = STATE(120), + [sym_declaration] = STATE(112), + [sym_unary_op] = STATE(31), + [sym_binary_op] = STATE(31), + [sym_array_op] = STATE(31), + [sym_func_call] = STATE(31), + [sym_parenthesis_expression] = STATE(31), + [sym__expression] = STATE(31), + [aux_sym__at_least_one_newline] = STATE(34), + [sym_block] = STATE(127), + [sym_write_modifiers] = STATE(32), + [sym_assign_to] = STATE(81), + [sym_assign_left_side] = STATE(121), + [sym_decl_assign_statement] = STATE(127), + [sym_if_statement] = STATE(127), + [sym_for_statement] = STATE(127), + [aux_sym_write_modifiers_repeat1] = STATE(60), + [sym_identifier] = ACTIONS(11), + [sym_number] = ACTIONS(13), + [anon_sym_state] = ACTIONS(15), + [anon_sym_gen] = ACTIONS(15), + [anon_sym_PLUS] = ACTIONS(17), + [anon_sym_DASH] = ACTIONS(17), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_BANG] = ACTIONS(17), + [anon_sym_PIPE] = ACTIONS(17), + [anon_sym_AMP] = ACTIONS(17), + [anon_sym_CARET] = ACTIONS(17), + [anon_sym_LPAREN] = ACTIONS(19), + [aux_sym__at_least_one_newline_token1] = ACTIONS(21), + [anon_sym_LBRACE] = ACTIONS(23), + [anon_sym_RBRACE] = ACTIONS(43), + [anon_sym_reg] = ACTIONS(27), + [anon_sym_initial] = ACTIONS(29), + [anon_sym_if] = ACTIONS(31), + [anon_sym_for] = ACTIONS(33), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), + }, + [8] = { + [sym_global_identifier] = STATE(35), + [sym_array_type] = STATE(120), + [sym__type] = STATE(120), + [sym_declaration] = STATE(112), + [sym_unary_op] = STATE(31), + [sym_binary_op] = STATE(31), + [sym_array_op] = STATE(31), + [sym_func_call] = STATE(31), + [sym_parenthesis_expression] = STATE(31), + [sym__expression] = STATE(31), + [aux_sym__at_least_one_newline] = STATE(5), + [sym_block] = STATE(109), + [sym_write_modifiers] = STATE(32), + [sym_assign_to] = STATE(81), + [sym_assign_left_side] = STATE(78), + [sym_decl_assign_statement] = STATE(109), + [sym_if_statement] = STATE(109), + [sym_for_statement] = STATE(109), + [aux_sym_write_modifiers_repeat1] = STATE(60), + [sym_identifier] = ACTIONS(11), + [sym_number] = ACTIONS(13), + [anon_sym_state] = ACTIONS(15), + [anon_sym_gen] = ACTIONS(15), + [anon_sym_PLUS] = ACTIONS(17), + [anon_sym_DASH] = ACTIONS(17), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_BANG] = ACTIONS(17), + [anon_sym_PIPE] = ACTIONS(17), + [anon_sym_AMP] = ACTIONS(17), + [anon_sym_CARET] = ACTIONS(17), + [anon_sym_LPAREN] = ACTIONS(19), + [aux_sym__at_least_one_newline_token1] = ACTIONS(45), + [anon_sym_LBRACE] = ACTIONS(23), + [anon_sym_RBRACE] = ACTIONS(47), + [anon_sym_reg] = ACTIONS(27), + [anon_sym_initial] = ACTIONS(29), + [anon_sym_if] = ACTIONS(31), + [anon_sym_for] = ACTIONS(33), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), + }, + [9] = { + [sym_global_identifier] = STATE(35), + [sym_array_type] = STATE(120), + [sym__type] = STATE(120), + [sym_declaration] = STATE(112), + [sym_unary_op] = STATE(31), + [sym_binary_op] = STATE(31), + [sym_array_op] = STATE(31), + [sym_func_call] = STATE(31), + [sym_parenthesis_expression] = STATE(31), + [sym__expression] = STATE(31), + [aux_sym__at_least_one_newline] = STATE(34), + [sym_block] = STATE(127), + [sym_write_modifiers] = STATE(32), + [sym_assign_to] = STATE(81), + [sym_assign_left_side] = STATE(121), + [sym_decl_assign_statement] = STATE(127), + [sym_if_statement] = STATE(127), + [sym_for_statement] = STATE(127), + [aux_sym_write_modifiers_repeat1] = STATE(60), + [sym_identifier] = ACTIONS(11), + [sym_number] = ACTIONS(13), + [anon_sym_state] = ACTIONS(15), + [anon_sym_gen] = ACTIONS(15), + [anon_sym_PLUS] = ACTIONS(17), + [anon_sym_DASH] = ACTIONS(17), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_BANG] = ACTIONS(17), + [anon_sym_PIPE] = ACTIONS(17), + [anon_sym_AMP] = ACTIONS(17), + [anon_sym_CARET] = ACTIONS(17), + [anon_sym_LPAREN] = ACTIONS(19), + [aux_sym__at_least_one_newline_token1] = ACTIONS(21), + [anon_sym_LBRACE] = ACTIONS(23), + [anon_sym_RBRACE] = ACTIONS(49), + [anon_sym_reg] = ACTIONS(27), + [anon_sym_initial] = ACTIONS(29), + [anon_sym_if] = ACTIONS(31), + [anon_sym_for] = ACTIONS(33), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), + }, + [10] = { + [sym_global_identifier] = STATE(35), + [sym_array_type] = STATE(120), + [sym__type] = STATE(120), + [sym_declaration] = STATE(112), + [sym_unary_op] = STATE(31), + [sym_binary_op] = STATE(31), + [sym_array_op] = STATE(31), + [sym_func_call] = STATE(31), + [sym_parenthesis_expression] = STATE(31), + [sym__expression] = STATE(31), + [aux_sym__at_least_one_newline] = STATE(34), + [sym_block] = STATE(127), + [sym_write_modifiers] = STATE(32), + [sym_assign_to] = STATE(81), + [sym_assign_left_side] = STATE(121), + [sym_decl_assign_statement] = STATE(127), + [sym_if_statement] = STATE(127), + [sym_for_statement] = STATE(127), [aux_sym_write_modifiers_repeat1] = STATE(60), - [sym_identifier] = ACTIONS(41), - [sym_number] = ACTIONS(43), - [anon_sym_state] = ACTIONS(45), - [anon_sym_gen] = ACTIONS(45), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_STAR] = ACTIONS(47), - [anon_sym_BANG] = ACTIONS(47), - [anon_sym_PIPE] = ACTIONS(47), - [anon_sym_AMP] = ACTIONS(47), - [anon_sym_CARET] = ACTIONS(47), - [anon_sym_LPAREN] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_RBRACE] = ACTIONS(63), - [anon_sym_reg] = ACTIONS(55), - [anon_sym_initial] = ACTIONS(57), - [anon_sym_if] = ACTIONS(59), - [anon_sym_for] = ACTIONS(61), + [sym_identifier] = ACTIONS(11), + [sym_number] = ACTIONS(13), + [anon_sym_state] = ACTIONS(15), + [anon_sym_gen] = ACTIONS(15), + [anon_sym_PLUS] = ACTIONS(17), + [anon_sym_DASH] = ACTIONS(17), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_BANG] = ACTIONS(17), + [anon_sym_PIPE] = ACTIONS(17), + [anon_sym_AMP] = ACTIONS(17), + [anon_sym_CARET] = ACTIONS(17), + [anon_sym_LPAREN] = ACTIONS(19), + [aux_sym__at_least_one_newline_token1] = ACTIONS(21), + [anon_sym_LBRACE] = ACTIONS(23), + [anon_sym_reg] = ACTIONS(27), + [anon_sym_initial] = ACTIONS(29), + [anon_sym_if] = ACTIONS(31), + [anon_sym_for] = ACTIONS(33), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, @@ -3404,14 +3727,14 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { static const uint16_t ts_small_parse_table[] = { [0] = 5, - ACTIONS(69), 1, + ACTIONS(55), 1, anon_sym_COLON_COLON, - STATE(6), 1, + STATE(12), 1, aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(65), 7, + ACTIONS(51), 7, sym_identifier, anon_sym_DASH, anon_sym_LT, @@ -3419,7 +3742,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_EQ, anon_sym_in, - ACTIONS(67), 19, + ACTIONS(53), 20, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -3436,18 +3759,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + aux_sym__at_least_one_newline_token1, anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_DOT_DOT, - anon_sym_SEMI, - [41] = 5, - ACTIONS(75), 1, + [42] = 5, + ACTIONS(55), 1, anon_sym_COLON_COLON, - STATE(6), 1, + STATE(13), 1, aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(71), 7, + ACTIONS(57), 7, sym_identifier, anon_sym_DASH, anon_sym_LT, @@ -3455,7 +3779,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_EQ, anon_sym_in, - ACTIONS(73), 19, + ACTIONS(59), 20, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -3472,18 +3796,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + aux_sym__at_least_one_newline_token1, anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_DOT_DOT, - anon_sym_SEMI, - [82] = 5, - ACTIONS(69), 1, + [84] = 5, + ACTIONS(65), 1, anon_sym_COLON_COLON, - STATE(5), 1, + STATE(13), 1, aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 7, + ACTIONS(61), 7, sym_identifier, anon_sym_DASH, anon_sym_LT, @@ -3491,7 +3816,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_EQ, anon_sym_in, - ACTIONS(80), 19, + ACTIONS(63), 20, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -3508,37 +3833,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + aux_sym__at_least_one_newline_token1, anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_DOT_DOT, - anon_sym_SEMI, - [123] = 11, - ACTIONS(84), 1, - anon_sym_PLUS, - ACTIONS(86), 1, - anon_sym_DASH, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(94), 1, - anon_sym_LPAREN, - ACTIONS(96), 1, - anon_sym_LBRACK, - STATE(19), 1, - sym_parenthesis_expression_list, - STATE(23), 1, - sym_array_bracket_expression, + [126] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(90), 3, + ACTIONS(68), 7, + sym_identifier, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, + anon_sym_SLASH, anon_sym_EQ, - ACTIONS(82), 15, + anon_sym_in, + ACTIONS(70), 21, anon_sym_DASH_GT, anon_sym_COMMA, + anon_sym_COLON_COLON, + anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -3546,123 +3862,133 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + aux_sym__at_least_one_newline_token1, anon_sym_LBRACE, - anon_sym_in, + anon_sym_RBRACE, anon_sym_DOT_DOT, - anon_sym_SEMI, - [175] = 14, - ACTIONS(84), 1, + [163] = 12, + ACTIONS(74), 1, anon_sym_PLUS, - ACTIONS(86), 1, + ACTIONS(76), 1, anon_sym_DASH, - ACTIONS(92), 1, + ACTIONS(80), 1, + anon_sym_CARET, + ACTIONS(84), 1, anon_sym_SLASH, - ACTIONS(94), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(98), 1, - anon_sym_PIPE, - ACTIONS(100), 1, - anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_CARET, - STATE(19), 1, - sym_parenthesis_expression_list, - STATE(23), 1, + STATE(25), 1, sym_array_bracket_expression, + STATE(26), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(90), 3, + ACTIONS(82), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(82), 12, + ACTIONS(72), 15, anon_sym_DASH_GT, anon_sym_COMMA, + anon_sym_PIPE, + anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_RPAREN, anon_sym_RBRACK, + aux_sym__at_least_one_newline_token1, anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - anon_sym_SEMI, - [233] = 7, - ACTIONS(94), 1, + [218] = 14, + ACTIONS(74), 1, + anon_sym_PLUS, + ACTIONS(76), 1, + anon_sym_DASH, + ACTIONS(80), 1, + anon_sym_CARET, + ACTIONS(84), 1, + anon_sym_SLASH, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - STATE(19), 1, - sym_parenthesis_expression_list, - STATE(23), 1, + ACTIONS(90), 1, + anon_sym_PIPE, + ACTIONS(92), 1, + anon_sym_AMP, + STATE(25), 1, sym_array_bracket_expression, + STATE(26), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(106), 5, - anon_sym_DASH, + ACTIONS(78), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(82), 3, anon_sym_LT, anon_sym_GT, - anon_sym_SLASH, anon_sym_EQ, - ACTIONS(104), 18, + ACTIONS(72), 13, anon_sym_DASH_GT, anon_sym_COMMA, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, + aux_sym__at_least_one_newline_token1, anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - anon_sym_SEMI, [277] = 13, - ACTIONS(84), 1, + ACTIONS(74), 1, anon_sym_PLUS, - ACTIONS(86), 1, + ACTIONS(76), 1, anon_sym_DASH, - ACTIONS(92), 1, + ACTIONS(80), 1, + anon_sym_CARET, + ACTIONS(84), 1, anon_sym_SLASH, - ACTIONS(94), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(98), 1, + ACTIONS(90), 1, anon_sym_PIPE, - ACTIONS(102), 1, - anon_sym_CARET, - STATE(19), 1, - sym_parenthesis_expression_list, - STATE(23), 1, + STATE(25), 1, sym_array_bracket_expression, + STATE(26), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(90), 3, + ACTIONS(82), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(82), 13, + ACTIONS(72), 14, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_AMP, @@ -3672,75 +3998,79 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_RPAREN, anon_sym_RBRACK, + aux_sym__at_least_one_newline_token1, anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - anon_sym_SEMI, - [333] = 12, - ACTIONS(84), 1, + [334] = 11, + ACTIONS(74), 1, anon_sym_PLUS, - ACTIONS(86), 1, + ACTIONS(76), 1, anon_sym_DASH, - ACTIONS(92), 1, + ACTIONS(84), 1, anon_sym_SLASH, - ACTIONS(94), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(102), 1, - anon_sym_CARET, - STATE(19), 1, - sym_parenthesis_expression_list, - STATE(23), 1, + STATE(25), 1, sym_array_bracket_expression, + STATE(26), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(90), 3, + ACTIONS(82), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(82), 14, + ACTIONS(72), 16, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_RPAREN, anon_sym_RBRACK, + aux_sym__at_least_one_newline_token1, anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - anon_sym_SEMI, - [387] = 7, - ACTIONS(94), 1, + [387] = 9, + ACTIONS(84), 1, + anon_sym_SLASH, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - STATE(19), 1, - sym_parenthesis_expression_list, - STATE(23), 1, + STATE(25), 1, sym_array_bracket_expression, + STATE(26), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(90), 5, + ACTIONS(78), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(82), 4, anon_sym_DASH, anon_sym_LT, anon_sym_GT, - anon_sym_SLASH, anon_sym_EQ, - ACTIONS(82), 18, + ACTIONS(72), 17, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, - anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -3748,39 +4078,36 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, + aux_sym__at_least_one_newline_token1, anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - anon_sym_SEMI, - [431] = 9, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(94), 1, + [436] = 7, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - STATE(19), 1, - sym_parenthesis_expression_list, - STATE(23), 1, + STATE(25), 1, sym_array_bracket_expression, + STATE(26), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(90), 4, + ACTIONS(96), 5, anon_sym_DASH, anon_sym_LT, anon_sym_GT, + anon_sym_SLASH, anon_sym_EQ, - ACTIONS(82), 16, + ACTIONS(94), 19, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -3788,28 +4115,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, + aux_sym__at_least_one_newline_token1, anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - anon_sym_SEMI, - [479] = 3, + [481] = 7, + ACTIONS(86), 1, + anon_sym_LPAREN, + ACTIONS(88), 1, + anon_sym_LBRACK, + STATE(25), 1, + sym_array_bracket_expression, + STATE(26), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(108), 7, - sym_identifier, + ACTIONS(82), 5, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_EQ, - anon_sym_in, - ACTIONS(110), 20, + ACTIONS(72), 19, anon_sym_DASH_GT, anon_sym_COMMA, - anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -3820,51 +4154,51 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, + aux_sym__at_least_one_newline_token1, anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, - anon_sym_SEMI, - [515] = 15, - ACTIONS(41), 1, + [526] = 15, + ACTIONS(11), 1, sym_identifier, - ACTIONS(43), 1, + ACTIONS(13), 1, sym_number, - ACTIONS(49), 1, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(55), 1, + ACTIONS(27), 1, anon_sym_reg, - ACTIONS(57), 1, + ACTIONS(29), 1, anon_sym_initial, - STATE(25), 1, + STATE(32), 1, sym_write_modifiers, - STATE(31), 1, + STATE(35), 1, sym_global_identifier, STATE(60), 1, aux_sym_write_modifiers_repeat1, - STATE(88), 1, + STATE(111), 1, sym_assign_to, - STATE(91), 1, + STATE(112), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(45), 2, + ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - STATE(85), 2, + STATE(120), 2, sym_array_type, sym__type, - STATE(27), 6, + STATE(31), 6, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_parenthesis_expression, sym__expression, - ACTIONS(47), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -3872,11 +4206,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [575] = 3, + [586] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(112), 7, + ACTIONS(98), 7, sym_identifier, anon_sym_DASH, anon_sym_LT, @@ -3884,7 +4218,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_EQ, anon_sym_in, - ACTIONS(114), 19, + ACTIONS(100), 20, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -3901,20 +4235,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + aux_sym__at_least_one_newline_token1, anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_DOT_DOT, - anon_sym_SEMI, - [610] = 3, + [622] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(118), 5, + ACTIONS(104), 5, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_EQ, - ACTIONS(116), 20, + ACTIONS(102), 21, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -3931,21 +4266,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + aux_sym__at_least_one_newline_token1, anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - anon_sym_SEMI, - [644] = 3, + [657] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(122), 5, + ACTIONS(108), 5, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_EQ, - ACTIONS(120), 20, + ACTIONS(106), 21, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -3962,21 +4298,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + aux_sym__at_least_one_newline_token1, anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - anon_sym_SEMI, - [678] = 3, + [692] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(126), 5, + ACTIONS(112), 5, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_EQ, - ACTIONS(124), 20, + ACTIONS(110), 21, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -3993,21 +4330,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + aux_sym__at_least_one_newline_token1, anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - anon_sym_SEMI, - [712] = 3, + [727] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 5, + ACTIONS(116), 5, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_EQ, - ACTIONS(128), 20, + ACTIONS(114), 21, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -4024,21 +4362,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + aux_sym__at_least_one_newline_token1, anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - anon_sym_SEMI, - [746] = 3, + [762] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(134), 5, + ACTIONS(120), 5, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_EQ, - ACTIONS(132), 20, + ACTIONS(118), 21, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -4055,21 +4394,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + aux_sym__at_least_one_newline_token1, anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - anon_sym_SEMI, - [780] = 3, + [797] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(138), 5, + ACTIONS(124), 5, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_EQ, - ACTIONS(136), 20, + ACTIONS(122), 21, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_PLUS, @@ -4086,184 +4426,123 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + aux_sym__at_least_one_newline_token1, anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - anon_sym_SEMI, - [814] = 16, - ACTIONS(84), 1, + [832] = 16, + ACTIONS(74), 1, anon_sym_PLUS, - ACTIONS(86), 1, + ACTIONS(76), 1, anon_sym_DASH, - ACTIONS(92), 1, + ACTIONS(80), 1, + anon_sym_CARET, + ACTIONS(84), 1, anon_sym_SLASH, - ACTIONS(94), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(98), 1, + ACTIONS(90), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(92), 1, anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(146), 1, + ACTIONS(132), 1, anon_sym_EQ, - STATE(19), 1, - sym_parenthesis_expression_list, - STATE(23), 1, + STATE(25), 1, sym_array_bracket_expression, + STATE(26), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(144), 2, + ACTIONS(130), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(142), 4, + ACTIONS(128), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(140), 5, + ACTIONS(126), 6, anon_sym_DASH_GT, anon_sym_COMMA, + aux_sym__at_least_one_newline_token1, anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_in, - anon_sym_SEMI, - [873] = 10, - ACTIONS(41), 1, - sym_identifier, - ACTIONS(49), 1, + [892] = 15, + ACTIONS(80), 1, + anon_sym_CARET, + ACTIONS(84), 1, + anon_sym_SLASH, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(148), 1, - sym_number, - STATE(31), 1, - sym_global_identifier, - STATE(90), 1, - sym_declaration, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(45), 2, - anon_sym_state, - anon_sym_gen, - STATE(85), 2, - sym_array_type, - sym__type, - STATE(29), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(47), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [918] = 16, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(94), 1, - anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(98), 1, + ACTIONS(90), 1, anon_sym_PIPE, - ACTIONS(100), 1, - anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(150), 1, - anon_sym_COMMA, - ACTIONS(152), 1, - anon_sym_RPAREN, - STATE(19), 1, - sym_parenthesis_expression_list, - STATE(23), 1, - sym_array_bracket_expression, - STATE(84), 1, - aux_sym_parenthesis_expression_list_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(84), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(88), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(144), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(142), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [974] = 15, ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(94), 1, - anon_sym_LPAREN, - ACTIONS(96), 1, - anon_sym_LBRACK, - ACTIONS(98), 1, - anon_sym_PIPE, - ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(156), 1, + ACTIONS(136), 1, anon_sym_EQ, - STATE(19), 1, - sym_parenthesis_expression_list, - STATE(23), 1, + STATE(25), 1, sym_array_bracket_expression, + STATE(26), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(84), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(88), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(144), 2, + ACTIONS(130), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(154), 2, + ACTIONS(134), 3, anon_sym_COMMA, - anon_sym_SEMI, - ACTIONS(142), 4, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, + ACTIONS(128), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1028] = 3, + [947] = 10, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(138), 1, + sym_number, + STATE(35), 1, + sym_global_identifier, + STATE(86), 1, + sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(160), 9, - anon_sym_module, - sym_identifier, + ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_else, - anon_sym_for, - ACTIONS(158), 12, - ts_builtin_sym_end, - sym_number, + STATE(120), 2, + sym_array_type, + sym__type, + STATE(33), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4271,53 +4550,55 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1058] = 15, - ACTIONS(92), 1, + [992] = 15, + ACTIONS(80), 1, + anon_sym_CARET, + ACTIONS(84), 1, anon_sym_SLASH, - ACTIONS(94), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(98), 1, + ACTIONS(90), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(92), 1, anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(164), 1, + ACTIONS(142), 1, anon_sym_EQ, - STATE(19), 1, - sym_parenthesis_expression_list, - STATE(23), 1, + STATE(25), 1, sym_array_bracket_expression, + STATE(26), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(84), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(88), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(144), 2, + ACTIONS(130), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(162), 2, + ACTIONS(140), 3, anon_sym_COMMA, - anon_sym_SEMI, - ACTIONS(142), 4, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, + ACTIONS(128), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1112] = 3, + [1047] = 5, + ACTIONS(148), 1, + aux_sym__at_least_one_newline_token1, + STATE(34), 1, + aux_sym__at_least_one_newline, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(168), 9, + ACTIONS(146), 8, anon_sym_module, sym_identifier, anon_sym_state, @@ -4325,9 +4606,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_reg, anon_sym_initial, anon_sym_if, - anon_sym_else, anon_sym_for, - ACTIONS(166), 12, + ACTIONS(144), 12, ts_builtin_sym_end, sym_number, anon_sym_PLUS, @@ -4340,20 +4620,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1142] = 5, - ACTIONS(170), 1, + [1082] = 5, + ACTIONS(151), 1, sym_identifier, - ACTIONS(176), 1, + ACTIONS(157), 1, anon_sym_LBRACK, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(174), 4, + ACTIONS(155), 4, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_EQ, - ACTIONS(172), 14, + ACTIONS(153), 15, anon_sym_COMMA, anon_sym_PLUS, anon_sym_DASH, @@ -4367,304 +4647,319 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_SEMI, - [1175] = 15, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(92), 1, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, + [1116] = 16, + ACTIONS(80), 1, + anon_sym_CARET, + ACTIONS(84), 1, anon_sym_SLASH, - ACTIONS(94), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(98), 1, + ACTIONS(90), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(92), 1, anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_CARET, - STATE(19), 1, - sym_parenthesis_expression_list, - STATE(23), 1, + ACTIONS(160), 1, + anon_sym_COMMA, + ACTIONS(162), 1, + anon_sym_RPAREN, + STATE(25), 1, sym_array_bracket_expression, - STATE(35), 1, - sym_block, + STATE(26), 1, + sym_parenthesis_expression_list, + STATE(122), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(84), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(88), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(144), 2, + ACTIONS(130), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(142), 4, + ACTIONS(128), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1228] = 15, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(92), 1, + [1172] = 14, + ACTIONS(80), 1, + anon_sym_CARET, + ACTIONS(84), 1, anon_sym_SLASH, - ACTIONS(94), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(98), 1, + ACTIONS(90), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(92), 1, anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_CARET, - STATE(19), 1, - sym_parenthesis_expression_list, - STATE(23), 1, + STATE(25), 1, sym_array_bracket_expression, - STATE(40), 1, - sym_block, + STATE(26), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(84), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(88), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(144), 2, + ACTIONS(130), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(142), 4, + ACTIONS(164), 2, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, + ACTIONS(128), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1281] = 14, - ACTIONS(92), 1, + [1223] = 15, + ACTIONS(23), 1, + anon_sym_LBRACE, + ACTIONS(80), 1, + anon_sym_CARET, + ACTIONS(84), 1, anon_sym_SLASH, - ACTIONS(94), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(98), 1, + ACTIONS(90), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(92), 1, anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_CARET, - STATE(19), 1, - sym_parenthesis_expression_list, - STATE(23), 1, + STATE(25), 1, sym_array_bracket_expression, + STATE(26), 1, + sym_parenthesis_expression_list, + STATE(119), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(84), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(88), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(144), 2, + ACTIONS(130), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(179), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - ACTIONS(142), 4, + ACTIONS(128), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1332] = 4, - ACTIONS(185), 1, - anon_sym_else, + [1276] = 15, + ACTIONS(23), 1, + anon_sym_LBRACE, + ACTIONS(80), 1, + anon_sym_CARET, + ACTIONS(84), 1, + anon_sym_SLASH, + ACTIONS(86), 1, + anon_sym_LPAREN, + ACTIONS(88), 1, + anon_sym_LBRACK, + ACTIONS(90), 1, + anon_sym_PIPE, + ACTIONS(92), 1, + anon_sym_AMP, + STATE(25), 1, + sym_array_bracket_expression, + STATE(26), 1, + sym_parenthesis_expression_list, + STATE(130), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(181), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(183), 11, - sym_number, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(78), 2, anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, + anon_sym_PERCENT, + ACTIONS(130), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(128), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [1329] = 14, + ACTIONS(80), 1, anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1362] = 14, - ACTIONS(92), 1, + ACTIONS(84), 1, anon_sym_SLASH, - ACTIONS(94), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(98), 1, + ACTIONS(90), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(92), 1, anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(187), 1, - anon_sym_RPAREN, - STATE(19), 1, - sym_parenthesis_expression_list, - STATE(23), 1, + STATE(25), 1, sym_array_bracket_expression, + STATE(26), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(84), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(88), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(144), 2, + ACTIONS(130), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(142), 4, + ACTIONS(166), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + ACTIONS(128), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1412] = 14, - ACTIONS(92), 1, + [1380] = 14, + ACTIONS(80), 1, + anon_sym_CARET, + ACTIONS(84), 1, anon_sym_SLASH, - ACTIONS(94), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(98), 1, + ACTIONS(90), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(92), 1, anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(189), 1, - anon_sym_RBRACK, - STATE(19), 1, - sym_parenthesis_expression_list, - STATE(23), 1, + ACTIONS(168), 1, + anon_sym_RPAREN, + STATE(25), 1, sym_array_bracket_expression, + STATE(26), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(84), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(88), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(144), 2, + ACTIONS(130), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(142), 4, + ACTIONS(128), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1462] = 14, - ACTIONS(92), 1, + [1430] = 14, + ACTIONS(80), 1, + anon_sym_CARET, + ACTIONS(84), 1, anon_sym_SLASH, - ACTIONS(94), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(98), 1, + ACTIONS(90), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(92), 1, anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(191), 1, - anon_sym_SEMI, - STATE(19), 1, - sym_parenthesis_expression_list, - STATE(23), 1, + ACTIONS(170), 1, + anon_sym_DOT_DOT, + STATE(25), 1, sym_array_bracket_expression, + STATE(26), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(84), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(88), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(144), 2, + ACTIONS(130), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(142), 4, + ACTIONS(128), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1512] = 14, - ACTIONS(92), 1, + [1480] = 14, + ACTIONS(80), 1, + anon_sym_CARET, + ACTIONS(84), 1, anon_sym_SLASH, - ACTIONS(94), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(98), 1, + ACTIONS(90), 1, anon_sym_PIPE, - ACTIONS(100), 1, + ACTIONS(92), 1, anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(193), 1, - anon_sym_DOT_DOT, - STATE(19), 1, - sym_parenthesis_expression_list, - STATE(23), 1, + ACTIONS(172), 1, + anon_sym_RBRACK, + STATE(25), 1, sym_array_bracket_expression, + STATE(26), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(84), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(88), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(144), 2, + ACTIONS(130), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(142), 4, + ACTIONS(128), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1562] = 3, + [1530] = 7, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(174), 1, + sym_identifier, + ACTIONS(176), 1, + sym_number, + ACTIONS(178), 1, + anon_sym_RPAREN, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(195), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(197), 11, - sym_number, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4672,23 +4967,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, + STATE(36), 7, + sym_global_identifier, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + [1565] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1589] = 3, + ACTIONS(174), 1, + sym_identifier, + ACTIONS(180), 1, + sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(199), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(201), 11, - sym_number, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4696,22 +4993,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, + STATE(21), 7, + sym_global_identifier, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + [1597] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1616] = 7, - ACTIONS(49), 1, - anon_sym_LPAREN, - ACTIONS(203), 1, + ACTIONS(174), 1, sym_identifier, - ACTIONS(205), 1, + ACTIONS(182), 1, sym_number, - ACTIONS(207), 1, - anon_sym_RPAREN, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(47), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4719,7 +5019,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(26), 7, + STATE(40), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -4727,117 +5027,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1651] = 3, + [1629] = 6, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(174), 1, + sym_identifier, + ACTIONS(184), 1, + sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(209), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(211), 11, - sym_number, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1678] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(213), 7, - sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(215), 11, - sym_number, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1705] = 6, - ACTIONS(49), 1, - anon_sym_LPAREN, - ACTIONS(203), 1, - sym_identifier, - ACTIONS(217), 1, - sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(47), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(14), 7, - sym_global_identifier, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - [1737] = 6, - ACTIONS(49), 1, - anon_sym_LPAREN, - ACTIONS(203), 1, - sym_identifier, - ACTIONS(219), 1, - sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(47), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(10), 7, - sym_global_identifier, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - [1769] = 6, - ACTIONS(49), 1, - anon_sym_LPAREN, - ACTIONS(203), 1, - sym_identifier, - ACTIONS(221), 1, - sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(47), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4853,17 +5053,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1801] = 6, - ACTIONS(49), 1, + [1661] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(203), 1, + ACTIONS(174), 1, sym_identifier, - ACTIONS(223), 1, + ACTIONS(186), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(47), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4871,7 +5071,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(38), 7, + STATE(30), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -4879,17 +5079,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1833] = 6, - ACTIONS(49), 1, + [1693] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(203), 1, + ACTIONS(174), 1, sym_identifier, - ACTIONS(225), 1, + ACTIONS(188), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(47), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4897,7 +5097,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(36), 7, + STATE(37), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -4905,17 +5105,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1865] = 6, - ACTIONS(49), 1, + [1725] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(203), 1, + ACTIONS(174), 1, sym_identifier, - ACTIONS(227), 1, + ACTIONS(190), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(47), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4923,7 +5123,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(34), 7, + STATE(42), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -4931,17 +5131,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1897] = 6, - ACTIONS(49), 1, + [1757] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(203), 1, + ACTIONS(174), 1, sym_identifier, - ACTIONS(229), 1, + ACTIONS(192), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(47), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4949,7 +5149,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(13), 7, + STATE(43), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -4957,17 +5157,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1929] = 6, - ACTIONS(49), 1, + [1789] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(203), 1, + ACTIONS(174), 1, sym_identifier, - ACTIONS(231), 1, + ACTIONS(194), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(47), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4975,7 +5175,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(12), 7, + STATE(20), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -4983,17 +5183,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1961] = 6, - ACTIONS(49), 1, + [1821] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(203), 1, + ACTIONS(174), 1, sym_identifier, - ACTIONS(233), 1, + ACTIONS(196), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(47), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5001,7 +5201,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(11), 7, + STATE(41), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5009,17 +5209,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1993] = 6, - ACTIONS(49), 1, + [1853] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(203), 1, + ACTIONS(174), 1, sym_identifier, - ACTIONS(235), 1, + ACTIONS(198), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(47), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5027,7 +5227,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(8), 7, + STATE(16), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5035,17 +5235,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [2025] = 6, - ACTIONS(49), 1, + [1885] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(203), 1, + ACTIONS(174), 1, sym_identifier, - ACTIONS(237), 1, + ACTIONS(200), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(47), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5053,7 +5253,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(9), 7, + STATE(18), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5061,17 +5261,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [2057] = 6, - ACTIONS(49), 1, + [1917] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(203), 1, + ACTIONS(174), 1, sym_identifier, - ACTIONS(239), 1, + ACTIONS(202), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(47), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5079,7 +5279,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(37), 7, + STATE(38), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5087,17 +5287,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [2089] = 6, - ACTIONS(49), 1, + [1949] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(203), 1, + ACTIONS(174), 1, sym_identifier, - ACTIONS(241), 1, + ACTIONS(204), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(47), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5105,7 +5305,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(24), 7, + STATE(17), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5113,17 +5313,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [2121] = 6, - ACTIONS(49), 1, + [1981] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(203), 1, + ACTIONS(174), 1, sym_identifier, - ACTIONS(243), 1, + ACTIONS(206), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(47), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5131,7 +5331,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(33), 7, + STATE(15), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5139,17 +5339,17 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [2153] = 6, - ACTIONS(49), 1, + [2013] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(203), 1, + ACTIONS(174), 1, sym_identifier, - ACTIONS(245), 1, + ACTIONS(208), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(47), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5157,7 +5357,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(32), 7, + STATE(19), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5165,19 +5365,19 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [2185] = 5, - ACTIONS(55), 1, + [2045] = 5, + ACTIONS(27), 1, anon_sym_reg, STATE(61), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(247), 3, + ACTIONS(210), 3, sym_identifier, anon_sym_state, anon_sym_gen, - ACTIONS(249), 9, + ACTIONS(212), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -5187,19 +5387,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2212] = 5, - ACTIONS(255), 1, + [2072] = 5, + ACTIONS(218), 1, anon_sym_reg, STATE(61), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(251), 3, + ACTIONS(214), 3, sym_identifier, anon_sym_state, anon_sym_gen, - ACTIONS(253), 9, + ACTIONS(216), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -5209,16 +5409,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2239] = 3, + [2099] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(258), 4, + ACTIONS(221), 4, sym_identifier, anon_sym_state, anon_sym_gen, anon_sym_reg, - ACTIONS(260), 9, + ACTIONS(223), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -5228,15 +5428,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2261] = 3, + [2121] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(262), 3, + ACTIONS(225), 3, sym_identifier, anon_sym_state, anon_sym_gen, - ACTIONS(264), 9, + ACTIONS(227), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -5246,536 +5446,956 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2282] = 8, - ACTIONS(41), 1, + [2142] = 8, + ACTIONS(11), 1, sym_identifier, - ACTIONS(266), 1, + ACTIONS(229), 1, anon_sym_DASH_GT, - ACTIONS(268), 1, + ACTIONS(231), 1, anon_sym_LBRACE, - STATE(81), 1, + STATE(115), 1, sym_declaration, - STATE(95), 1, + STATE(132), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(45), 2, + ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - STATE(85), 3, + STATE(120), 3, sym_global_identifier, sym_array_type, sym__type, - [2311] = 4, - ACTIONS(272), 1, + [2171] = 4, + ACTIONS(235), 1, + anon_sym_SQUOTE, + STATE(71), 1, + sym_latency_specifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(233), 7, + anon_sym_DASH_GT, + anon_sym_COMMA, + aux_sym__at_least_one_newline_token1, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + [2191] = 4, + ACTIONS(235), 1, anon_sym_SQUOTE, STATE(72), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(270), 6, + ACTIONS(237), 7, anon_sym_DASH_GT, anon_sym_COMMA, + aux_sym__at_least_one_newline_token1, anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, - anon_sym_SEMI, - [2330] = 6, - ACTIONS(41), 1, + [2211] = 6, + ACTIONS(11), 1, sym_identifier, - STATE(81), 1, + STATE(115), 1, sym_declaration, - STATE(102), 1, + STATE(135), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(45), 2, + ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - STATE(85), 3, + STATE(120), 3, sym_global_identifier, sym_array_type, sym__type, - [2353] = 4, - ACTIONS(272), 1, - anon_sym_SQUOTE, - STATE(71), 1, - sym_latency_specifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(274), 6, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_SEMI, - [2372] = 6, - ACTIONS(41), 1, + [2234] = 6, + ACTIONS(11), 1, sym_identifier, - STATE(81), 1, + STATE(115), 1, sym_declaration, - STATE(105), 1, + STATE(138), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(45), 2, + ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - STATE(85), 3, + STATE(120), 3, sym_global_identifier, sym_array_type, sym__type, - [2395] = 5, - ACTIONS(41), 1, + [2257] = 5, + ACTIONS(11), 1, sym_identifier, - STATE(99), 1, + STATE(123), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(45), 2, + ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - STATE(85), 3, + STATE(120), 3, sym_global_identifier, sym_array_type, sym__type, - [2415] = 5, - ACTIONS(41), 1, + [2277] = 5, + ACTIONS(11), 1, sym_identifier, - STATE(89), 1, + STATE(136), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(45), 2, + ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - STATE(85), 3, + STATE(120), 3, sym_global_identifier, sym_array_type, sym__type, - [2435] = 2, + [2297] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(276), 6, + ACTIONS(239), 7, anon_sym_DASH_GT, anon_sym_COMMA, + aux_sym__at_least_one_newline_token1, anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, - anon_sym_SEMI, - [2448] = 2, + [2311] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(278), 6, + ACTIONS(241), 7, anon_sym_DASH_GT, anon_sym_COMMA, + aux_sym__at_least_one_newline_token1, anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, - anon_sym_SEMI, - [2461] = 4, - ACTIONS(282), 1, - anon_sym_COMMA, - STATE(73), 1, - aux_sym_declaration_list_repeat1, + [2325] = 6, + ACTIONS(243), 1, + aux_sym__at_least_one_newline_token1, + ACTIONS(245), 1, + anon_sym_RBRACE, + ACTIONS(247), 1, + anon_sym_EQ, + STATE(7), 1, + aux_sym__at_least_one_newline, + STATE(104), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(280), 2, - anon_sym_DASH_GT, - anon_sym_LBRACE, - [2476] = 3, - ACTIONS(203), 1, - sym_identifier, + [2345] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(21), 1, + aux_sym__at_least_one_newline_token1, + ACTIONS(249), 1, + ts_builtin_sym_end, + STATE(34), 1, + aux_sym__at_least_one_newline, + STATE(126), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(87), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [2489] = 5, + [2365] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(285), 1, + ACTIONS(21), 1, + aux_sym__at_least_one_newline_token1, + ACTIONS(251), 1, ts_builtin_sym_end, - STATE(79), 1, - aux_sym_source_file_repeat1, - STATE(97), 1, + STATE(34), 1, + aux_sym__at_least_one_newline, + STATE(126), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2506] = 5, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(287), 1, - anon_sym_COLON, - STATE(94), 1, - sym_block, - STATE(98), 1, - sym_interface_ports, + [2385] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(21), 1, + aux_sym__at_least_one_newline_token1, + ACTIONS(253), 1, + ts_builtin_sym_end, + STATE(34), 1, + aux_sym__at_least_one_newline, + STATE(126), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2523] = 4, - ACTIONS(289), 1, + [2405] = 4, + ACTIONS(255), 1, anon_sym_COMMA, - STATE(82), 1, + STATE(80), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(291), 2, + ACTIONS(257), 3, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, anon_sym_EQ, - anon_sym_SEMI, - [2538] = 4, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(293), 1, - anon_sym_if, + [2421] = 6, + ACTIONS(247), 1, + anon_sym_EQ, + ACTIONS(259), 1, + aux_sym__at_least_one_newline_token1, + ACTIONS(261), 1, + anon_sym_RBRACE, + STATE(2), 1, + aux_sym__at_least_one_newline, + STATE(90), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(44), 2, - sym_block, - sym_if_statement, - [2553] = 5, - ACTIONS(295), 1, + [2441] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(21), 1, + aux_sym__at_least_one_newline_token1, + ACTIONS(263), 1, ts_builtin_sym_end, - ACTIONS(297), 1, + STATE(34), 1, + aux_sym__at_least_one_newline, + STATE(126), 1, + sym_module, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2461] = 4, + ACTIONS(265), 1, + anon_sym_COMMA, + STATE(80), 1, + aux_sym_assign_left_side_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(268), 3, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, + anon_sym_EQ, + [2477] = 4, + ACTIONS(255), 1, + anon_sym_COMMA, + STATE(77), 1, + aux_sym_assign_left_side_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(270), 3, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, + anon_sym_EQ, + [2493] = 6, + ACTIONS(7), 1, anon_sym_module, - STATE(79), 1, - aux_sym_source_file_repeat1, - STATE(97), 1, + ACTIONS(21), 1, + aux_sym__at_least_one_newline_token1, + ACTIONS(272), 1, + ts_builtin_sym_end, + STATE(34), 1, + aux_sym__at_least_one_newline, + STATE(98), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2570] = 4, - ACTIONS(302), 1, + [2513] = 5, + ACTIONS(243), 1, + aux_sym__at_least_one_newline_token1, + ACTIONS(245), 1, + anon_sym_RBRACE, + STATE(7), 1, + aux_sym__at_least_one_newline, + STATE(103), 1, + aux_sym_block_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2530] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(274), 4, + ts_builtin_sym_end, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, + anon_sym_else, + [2541] = 5, + ACTIONS(276), 1, + aux_sym__at_least_one_newline_token1, + ACTIONS(278), 1, + anon_sym_RBRACE, + STATE(3), 1, + aux_sym__at_least_one_newline, + STATE(110), 1, + aux_sym_block_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2558] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(140), 4, anon_sym_COMMA, - STATE(73), 1, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, + anon_sym_EQ, + [2569] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(280), 4, + ts_builtin_sym_end, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, + anon_sym_else, + [2580] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(282), 4, + ts_builtin_sym_end, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, + anon_sym_else, + [2591] = 4, + ACTIONS(286), 1, + anon_sym_COMMA, + STATE(89), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(300), 2, + ACTIONS(284), 2, anon_sym_DASH_GT, anon_sym_LBRACE, - [2585] = 4, - ACTIONS(302), 1, + [2606] = 5, + ACTIONS(289), 1, + aux_sym__at_least_one_newline_token1, + ACTIONS(291), 1, + anon_sym_RBRACE, + STATE(4), 1, + aux_sym__at_least_one_newline, + STATE(110), 1, + aux_sym_block_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2623] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(282), 4, + ts_builtin_sym_end, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, + anon_sym_else, + [2634] = 5, + ACTIONS(293), 1, + ts_builtin_sym_end, + ACTIONS(295), 1, + aux_sym__at_least_one_newline_token1, + STATE(79), 1, + aux_sym__at_least_one_newline, + STATE(96), 1, + aux_sym_source_file_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2651] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(297), 4, + ts_builtin_sym_end, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, + anon_sym_else, + [2662] = 5, + ACTIONS(23), 1, + anon_sym_LBRACE, + ACTIONS(299), 1, + anon_sym_COLON, + STATE(129), 1, + sym_block, + STATE(131), 1, + sym_interface_ports, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2679] = 4, + ACTIONS(303), 1, anon_sym_COMMA, - STATE(80), 1, + STATE(89), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(304), 2, + ACTIONS(301), 2, anon_sym_DASH_GT, anon_sym_LBRACE, - [2600] = 4, - ACTIONS(306), 1, - anon_sym_COMMA, - STATE(82), 1, - aux_sym_assign_left_side_repeat1, + [2694] = 5, + ACTIONS(305), 1, + ts_builtin_sym_end, + ACTIONS(307), 1, + aux_sym__at_least_one_newline_token1, + STATE(75), 1, + aux_sym__at_least_one_newline, + STATE(107), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(309), 2, - anon_sym_EQ, - anon_sym_SEMI, - [2615] = 4, - ACTIONS(289), 1, - anon_sym_COMMA, - STATE(77), 1, - aux_sym_assign_left_side_repeat1, + [2711] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(311), 2, - anon_sym_EQ, - anon_sym_SEMI, - [2630] = 4, - ACTIONS(150), 1, - anon_sym_COMMA, + ACTIONS(309), 4, + ts_builtin_sym_end, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, + anon_sym_else, + [2722] = 5, + ACTIONS(311), 1, + ts_builtin_sym_end, ACTIONS(313), 1, - anon_sym_RPAREN, - STATE(86), 1, - aux_sym_parenthesis_expression_list_repeat1, + aux_sym__at_least_one_newline_token1, + STATE(74), 1, + aux_sym__at_least_one_newline, + STATE(116), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2644] = 4, - ACTIONS(96), 1, - anon_sym_LBRACK, - ACTIONS(315), 1, - sym_identifier, - STATE(93), 1, - sym_array_bracket_expression, + [2739] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2658] = 4, + ACTIONS(309), 4, + ts_builtin_sym_end, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, + anon_sym_else, + [2750] = 5, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(21), 1, + aux_sym__at_least_one_newline_token1, + STATE(34), 1, + aux_sym__at_least_one_newline, + STATE(126), 1, + sym_module, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2767] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(315), 4, + ts_builtin_sym_end, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, + anon_sym_else, + [2778] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(274), 4, + ts_builtin_sym_end, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, + anon_sym_else, + [2789] = 5, ACTIONS(317), 1, - anon_sym_COMMA, - ACTIONS(320), 1, - anon_sym_RPAREN, - STATE(86), 1, - aux_sym_parenthesis_expression_list_repeat1, + aux_sym__at_least_one_newline_token1, + ACTIONS(319), 1, + anon_sym_RBRACE, + STATE(9), 1, + aux_sym__at_least_one_newline, + STATE(110), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2672] = 4, - ACTIONS(96), 1, - anon_sym_LBRACK, - ACTIONS(322), 1, - sym_identifier, - STATE(93), 1, - sym_array_bracket_expression, + [2806] = 5, + ACTIONS(321), 1, + aux_sym__at_least_one_newline_token1, + ACTIONS(323), 1, + anon_sym_RBRACE, + STATE(6), 1, + aux_sym__at_least_one_newline, + STATE(110), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2686] = 2, + [2823] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(324), 3, - anon_sym_COMMA, - anon_sym_EQ, - anon_sym_SEMI, - [2696] = 2, + ACTIONS(325), 4, + ts_builtin_sym_end, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, + anon_sym_else, + [2834] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(326), 3, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LBRACE, - [2706] = 2, + ACTIONS(327), 4, + ts_builtin_sym_end, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, + anon_sym_else, + [2845] = 5, + ACTIONS(329), 1, + ts_builtin_sym_end, + ACTIONS(331), 1, + aux_sym__at_least_one_newline_token1, + STATE(100), 1, + aux_sym__at_least_one_newline, + STATE(107), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(162), 3, + [2862] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(334), 4, + ts_builtin_sym_end, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, + anon_sym_else, + [2873] = 5, + ACTIONS(259), 1, + aux_sym__at_least_one_newline_token1, + ACTIONS(261), 1, + anon_sym_RBRACE, + STATE(2), 1, + aux_sym__at_least_one_newline, + STATE(85), 1, + aux_sym_block_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2890] = 5, + ACTIONS(336), 1, + aux_sym__at_least_one_newline_token1, + ACTIONS(339), 1, + anon_sym_RBRACE, + STATE(10), 1, + aux_sym__at_least_one_newline, + STATE(110), 1, + aux_sym_block_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2907] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(341), 4, anon_sym_COMMA, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, anon_sym_EQ, - anon_sym_SEMI, - [2716] = 2, + [2918] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(154), 3, + ACTIONS(134), 4, anon_sym_COMMA, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, anon_sym_EQ, - anon_sym_SEMI, - [2726] = 2, + [2929] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(328), 2, + ACTIONS(343), 4, ts_builtin_sym_end, - anon_sym_module, - [2735] = 2, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, + anon_sym_else, + [2940] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(334), 4, + ts_builtin_sym_end, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, + anon_sym_else, + [2951] = 4, + ACTIONS(303), 1, + anon_sym_COMMA, + STATE(95), 1, + aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(330), 2, + ACTIONS(345), 2, + anon_sym_DASH_GT, + anon_sym_LBRACE, + [2966] = 5, + ACTIONS(347), 1, + ts_builtin_sym_end, + ACTIONS(349), 1, + aux_sym__at_least_one_newline_token1, + STATE(76), 1, + aux_sym__at_least_one_newline, + STATE(107), 1, + aux_sym_source_file_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2983] = 4, + ACTIONS(23), 1, + anon_sym_LBRACE, + ACTIONS(351), 1, + anon_sym_if, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(133), 2, + sym_block, + sym_if_statement, + [2998] = 3, + ACTIONS(174), 1, sym_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(124), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [3011] = 3, + ACTIONS(355), 1, + anon_sym_else, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(353), 2, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, + [3023] = 4, + ACTIONS(88), 1, anon_sym_LBRACK, - [2744] = 2, + ACTIONS(357), 1, + sym_identifier, + STATE(134), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(332), 2, - ts_builtin_sym_end, - anon_sym_module, - [2753] = 3, - ACTIONS(334), 1, + [3037] = 3, + ACTIONS(247), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(359), 2, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, + [3049] = 4, + ACTIONS(160), 1, + anon_sym_COMMA, + ACTIONS(361), 1, + anon_sym_RPAREN, + STATE(125), 1, + aux_sym_parenthesis_expression_list_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [3063] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(363), 3, anon_sym_DASH_GT, - ACTIONS(336), 1, + anon_sym_COMMA, anon_sym_LBRACE, + [3073] = 4, + ACTIONS(88), 1, + anon_sym_LBRACK, + ACTIONS(365), 1, + sym_identifier, + STATE(134), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2764] = 3, - ACTIONS(338), 1, - anon_sym_EQ, - ACTIONS(340), 1, - anon_sym_SEMI, + [3087] = 4, + ACTIONS(367), 1, + anon_sym_COMMA, + ACTIONS(370), 1, + anon_sym_RPAREN, + STATE(125), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2775] = 2, + [3101] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(342), 2, + ACTIONS(372), 2, ts_builtin_sym_end, - anon_sym_module, - [2784] = 3, - ACTIONS(51), 1, + aux_sym__at_least_one_newline_token1, + [3110] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(359), 2, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, + [3119] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(374), 2, + ts_builtin_sym_end, + aux_sym__at_least_one_newline_token1, + [3128] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(376), 2, + ts_builtin_sym_end, + aux_sym__at_least_one_newline_token1, + [3137] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(378), 2, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, + [3146] = 3, + ACTIONS(23), 1, anon_sym_LBRACE, - STATE(92), 1, + STATE(128), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2795] = 2, - ACTIONS(344), 1, - anon_sym_in, + [3157] = 3, + ACTIONS(380), 1, + anon_sym_DASH_GT, + ACTIONS(382), 1, + anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2803] = 2, - ACTIONS(346), 1, - sym_identifier, + [3168] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2811] = 2, - ACTIONS(340), 1, - anon_sym_SEMI, + ACTIONS(384), 2, + aux_sym__at_least_one_newline_token1, + anon_sym_RBRACE, + [3177] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2819] = 2, - ACTIONS(348), 1, + ACTIONS(386), 2, + sym_identifier, + anon_sym_LBRACK, + [3186] = 2, + ACTIONS(388), 1, anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2827] = 2, - ACTIONS(350), 1, + [3194] = 2, + ACTIONS(390), 1, + anon_sym_in, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [3202] = 2, + ACTIONS(392), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2835] = 2, - ACTIONS(352), 1, + [3210] = 2, + ACTIONS(394), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [3218] = 2, + ACTIONS(396), 1, ts_builtin_sym_end, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2843] = 2, - ACTIONS(354), 1, - anon_sym_LBRACE, + [3226] = 2, + ACTIONS(398), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, }; static const uint32_t ts_small_parse_table_map[] = { - [SMALL_STATE(5)] = 0, - [SMALL_STATE(6)] = 41, - [SMALL_STATE(7)] = 82, - [SMALL_STATE(8)] = 123, - [SMALL_STATE(9)] = 175, - [SMALL_STATE(10)] = 233, - [SMALL_STATE(11)] = 277, - [SMALL_STATE(12)] = 333, - [SMALL_STATE(13)] = 387, - [SMALL_STATE(14)] = 431, - [SMALL_STATE(15)] = 479, - [SMALL_STATE(16)] = 515, - [SMALL_STATE(17)] = 575, - [SMALL_STATE(18)] = 610, - [SMALL_STATE(19)] = 644, - [SMALL_STATE(20)] = 678, - [SMALL_STATE(21)] = 712, - [SMALL_STATE(22)] = 746, - [SMALL_STATE(23)] = 780, - [SMALL_STATE(24)] = 814, - [SMALL_STATE(25)] = 873, - [SMALL_STATE(26)] = 918, - [SMALL_STATE(27)] = 974, - [SMALL_STATE(28)] = 1028, - [SMALL_STATE(29)] = 1058, - [SMALL_STATE(30)] = 1112, - [SMALL_STATE(31)] = 1142, - [SMALL_STATE(32)] = 1175, - [SMALL_STATE(33)] = 1228, - [SMALL_STATE(34)] = 1281, - [SMALL_STATE(35)] = 1332, - [SMALL_STATE(36)] = 1362, - [SMALL_STATE(37)] = 1412, - [SMALL_STATE(38)] = 1462, - [SMALL_STATE(39)] = 1512, - [SMALL_STATE(40)] = 1562, - [SMALL_STATE(41)] = 1589, - [SMALL_STATE(42)] = 1616, - [SMALL_STATE(43)] = 1651, - [SMALL_STATE(44)] = 1678, - [SMALL_STATE(45)] = 1705, - [SMALL_STATE(46)] = 1737, - [SMALL_STATE(47)] = 1769, - [SMALL_STATE(48)] = 1801, - [SMALL_STATE(49)] = 1833, - [SMALL_STATE(50)] = 1865, - [SMALL_STATE(51)] = 1897, - [SMALL_STATE(52)] = 1929, - [SMALL_STATE(53)] = 1961, - [SMALL_STATE(54)] = 1993, - [SMALL_STATE(55)] = 2025, - [SMALL_STATE(56)] = 2057, - [SMALL_STATE(57)] = 2089, - [SMALL_STATE(58)] = 2121, - [SMALL_STATE(59)] = 2153, - [SMALL_STATE(60)] = 2185, - [SMALL_STATE(61)] = 2212, - [SMALL_STATE(62)] = 2239, - [SMALL_STATE(63)] = 2261, - [SMALL_STATE(64)] = 2282, - [SMALL_STATE(65)] = 2311, - [SMALL_STATE(66)] = 2330, - [SMALL_STATE(67)] = 2353, - [SMALL_STATE(68)] = 2372, - [SMALL_STATE(69)] = 2395, - [SMALL_STATE(70)] = 2415, - [SMALL_STATE(71)] = 2435, - [SMALL_STATE(72)] = 2448, - [SMALL_STATE(73)] = 2461, - [SMALL_STATE(74)] = 2476, - [SMALL_STATE(75)] = 2489, - [SMALL_STATE(76)] = 2506, - [SMALL_STATE(77)] = 2523, - [SMALL_STATE(78)] = 2538, - [SMALL_STATE(79)] = 2553, - [SMALL_STATE(80)] = 2570, - [SMALL_STATE(81)] = 2585, - [SMALL_STATE(82)] = 2600, - [SMALL_STATE(83)] = 2615, - [SMALL_STATE(84)] = 2630, - [SMALL_STATE(85)] = 2644, - [SMALL_STATE(86)] = 2658, - [SMALL_STATE(87)] = 2672, - [SMALL_STATE(88)] = 2686, - [SMALL_STATE(89)] = 2696, - [SMALL_STATE(90)] = 2706, - [SMALL_STATE(91)] = 2716, - [SMALL_STATE(92)] = 2726, - [SMALL_STATE(93)] = 2735, - [SMALL_STATE(94)] = 2744, - [SMALL_STATE(95)] = 2753, - [SMALL_STATE(96)] = 2764, - [SMALL_STATE(97)] = 2775, - [SMALL_STATE(98)] = 2784, - [SMALL_STATE(99)] = 2795, - [SMALL_STATE(100)] = 2803, - [SMALL_STATE(101)] = 2811, - [SMALL_STATE(102)] = 2819, - [SMALL_STATE(103)] = 2827, - [SMALL_STATE(104)] = 2835, - [SMALL_STATE(105)] = 2843, + [SMALL_STATE(11)] = 0, + [SMALL_STATE(12)] = 42, + [SMALL_STATE(13)] = 84, + [SMALL_STATE(14)] = 126, + [SMALL_STATE(15)] = 163, + [SMALL_STATE(16)] = 218, + [SMALL_STATE(17)] = 277, + [SMALL_STATE(18)] = 334, + [SMALL_STATE(19)] = 387, + [SMALL_STATE(20)] = 436, + [SMALL_STATE(21)] = 481, + [SMALL_STATE(22)] = 526, + [SMALL_STATE(23)] = 586, + [SMALL_STATE(24)] = 622, + [SMALL_STATE(25)] = 657, + [SMALL_STATE(26)] = 692, + [SMALL_STATE(27)] = 727, + [SMALL_STATE(28)] = 762, + [SMALL_STATE(29)] = 797, + [SMALL_STATE(30)] = 832, + [SMALL_STATE(31)] = 892, + [SMALL_STATE(32)] = 947, + [SMALL_STATE(33)] = 992, + [SMALL_STATE(34)] = 1047, + [SMALL_STATE(35)] = 1082, + [SMALL_STATE(36)] = 1116, + [SMALL_STATE(37)] = 1172, + [SMALL_STATE(38)] = 1223, + [SMALL_STATE(39)] = 1276, + [SMALL_STATE(40)] = 1329, + [SMALL_STATE(41)] = 1380, + [SMALL_STATE(42)] = 1430, + [SMALL_STATE(43)] = 1480, + [SMALL_STATE(44)] = 1530, + [SMALL_STATE(45)] = 1565, + [SMALL_STATE(46)] = 1597, + [SMALL_STATE(47)] = 1629, + [SMALL_STATE(48)] = 1661, + [SMALL_STATE(49)] = 1693, + [SMALL_STATE(50)] = 1725, + [SMALL_STATE(51)] = 1757, + [SMALL_STATE(52)] = 1789, + [SMALL_STATE(53)] = 1821, + [SMALL_STATE(54)] = 1853, + [SMALL_STATE(55)] = 1885, + [SMALL_STATE(56)] = 1917, + [SMALL_STATE(57)] = 1949, + [SMALL_STATE(58)] = 1981, + [SMALL_STATE(59)] = 2013, + [SMALL_STATE(60)] = 2045, + [SMALL_STATE(61)] = 2072, + [SMALL_STATE(62)] = 2099, + [SMALL_STATE(63)] = 2121, + [SMALL_STATE(64)] = 2142, + [SMALL_STATE(65)] = 2171, + [SMALL_STATE(66)] = 2191, + [SMALL_STATE(67)] = 2211, + [SMALL_STATE(68)] = 2234, + [SMALL_STATE(69)] = 2257, + [SMALL_STATE(70)] = 2277, + [SMALL_STATE(71)] = 2297, + [SMALL_STATE(72)] = 2311, + [SMALL_STATE(73)] = 2325, + [SMALL_STATE(74)] = 2345, + [SMALL_STATE(75)] = 2365, + [SMALL_STATE(76)] = 2385, + [SMALL_STATE(77)] = 2405, + [SMALL_STATE(78)] = 2421, + [SMALL_STATE(79)] = 2441, + [SMALL_STATE(80)] = 2461, + [SMALL_STATE(81)] = 2477, + [SMALL_STATE(82)] = 2493, + [SMALL_STATE(83)] = 2513, + [SMALL_STATE(84)] = 2530, + [SMALL_STATE(85)] = 2541, + [SMALL_STATE(86)] = 2558, + [SMALL_STATE(87)] = 2569, + [SMALL_STATE(88)] = 2580, + [SMALL_STATE(89)] = 2591, + [SMALL_STATE(90)] = 2606, + [SMALL_STATE(91)] = 2623, + [SMALL_STATE(92)] = 2634, + [SMALL_STATE(93)] = 2651, + [SMALL_STATE(94)] = 2662, + [SMALL_STATE(95)] = 2679, + [SMALL_STATE(96)] = 2694, + [SMALL_STATE(97)] = 2711, + [SMALL_STATE(98)] = 2722, + [SMALL_STATE(99)] = 2739, + [SMALL_STATE(100)] = 2750, + [SMALL_STATE(101)] = 2767, + [SMALL_STATE(102)] = 2778, + [SMALL_STATE(103)] = 2789, + [SMALL_STATE(104)] = 2806, + [SMALL_STATE(105)] = 2823, + [SMALL_STATE(106)] = 2834, + [SMALL_STATE(107)] = 2845, + [SMALL_STATE(108)] = 2862, + [SMALL_STATE(109)] = 2873, + [SMALL_STATE(110)] = 2890, + [SMALL_STATE(111)] = 2907, + [SMALL_STATE(112)] = 2918, + [SMALL_STATE(113)] = 2929, + [SMALL_STATE(114)] = 2940, + [SMALL_STATE(115)] = 2951, + [SMALL_STATE(116)] = 2966, + [SMALL_STATE(117)] = 2983, + [SMALL_STATE(118)] = 2998, + [SMALL_STATE(119)] = 3011, + [SMALL_STATE(120)] = 3023, + [SMALL_STATE(121)] = 3037, + [SMALL_STATE(122)] = 3049, + [SMALL_STATE(123)] = 3063, + [SMALL_STATE(124)] = 3073, + [SMALL_STATE(125)] = 3087, + [SMALL_STATE(126)] = 3101, + [SMALL_STATE(127)] = 3110, + [SMALL_STATE(128)] = 3119, + [SMALL_STATE(129)] = 3128, + [SMALL_STATE(130)] = 3137, + [SMALL_STATE(131)] = 3146, + [SMALL_STATE(132)] = 3157, + [SMALL_STATE(133)] = 3168, + [SMALL_STATE(134)] = 3177, + [SMALL_STATE(135)] = 3186, + [SMALL_STATE(136)] = 3194, + [SMALL_STATE(137)] = 3202, + [SMALL_STATE(138)] = 3210, + [SMALL_STATE(139)] = 3218, + [SMALL_STATE(140)] = 3226, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -5783,182 +6403,212 @@ static const TSParseActionEntry ts_parse_actions[] = { [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 = true}}, SHIFT(100), - [9] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(7), - [12] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(27), - [15] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(74), - [18] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(46), - [21] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(49), - [24] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(4), - [27] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), - [29] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(62), - [32] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(63), - [35] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(59), - [38] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), SHIFT_REPEAT(69), - [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7), - [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), - [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), - [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), - [61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69), - [63] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [65] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 9), - [67] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 9), - [69] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [71] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), - [73] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), - [75] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), SHIFT_REPEAT(103), - [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 1), - [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 1), - [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 22), - [84] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [86] = {.entry = {.count = 1, .reusable = false}}, SHIFT(45), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(118), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), + [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), + [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [51] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 1), + [53] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 1), + [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), + [57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 2), + [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 2), + [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), + [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), + [65] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), SHIFT_REPEAT(140), + [68] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), + [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), + [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 22), + [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [76] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), + [78] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 22), + [84] = {.entry = {.count = 1, .reusable = false}}, SHIFT(45), + [86] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), [88] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 22), - [92] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51), - [94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 12), - [106] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 12), - [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 16), - [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 16), - [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 20), - [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 20), - [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), - [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 13), - [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 13), - [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 20), - [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 20), - [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 16), - [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 16), - [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 26), - [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 26), - [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 11), - [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 11), - [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 20), - [142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [144] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), - [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 20), - [148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 6), - [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 6), - [158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 15), - [160] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3, .production_id = 15), - [162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 14), - [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 14), - [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), - [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), - [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [174] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [176] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [179] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 16), - [181] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 21), - [183] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 21), - [185] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), - [187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [191] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 23), - [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [195] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 27), - [197] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 27), - [199] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 1), - [201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 1, .production_id = 1), - [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [209] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 2), - [211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2), - [213] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 25), - [215] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 25), - [217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [247] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 2), - [249] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 2), - [251] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 3), - [253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 3), - [255] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 3), SHIFT_REPEAT(62), - [258] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [262] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 1), - [270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 17), - [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 10), - [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 19), - [278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 24), - [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), - [282] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), SHIFT_REPEAT(70), - [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 2), - [287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [289] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [291] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 9), - [293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [295] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), - [297] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), SHIFT_REPEAT(100), - [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 9), - [302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), - [306] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), SHIFT_REPEAT(16), - [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), - [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), - [313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [317] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), SHIFT_REPEAT(50), - [320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), - [322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 16), - [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 16), - [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 7), - [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 11), - [332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), - [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 5), - [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 1, .production_id = 1), - [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 18), - [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [352] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 8), + [90] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [94] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 14), + [96] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 14), + [98] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 20), + [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 20), + [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 13), + [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 13), + [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 15), + [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 15), + [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), + [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 20), + [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 20), + [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 20), + [128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [130] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), + [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 20), + [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 8), + [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 8), + [138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 16), + [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 16), + [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__at_least_one_newline, 2), + [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__at_least_one_newline, 2), + [148] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__at_least_one_newline, 2), SHIFT_REPEAT(34), + [151] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), + [153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [155] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [157] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), + [160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 24), + [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), + [168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [210] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 9), + [212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 9), + [214] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [218] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(62), + [221] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [223] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [225] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [227] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [231] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 1), + [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 17), + [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [237] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 12), + [239] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 25), + [241] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 19), + [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [249] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), + [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), + [253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), + [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), + [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), + [265] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(22), + [268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), + [270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), + [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 26), + [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), + [282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 26), + [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), + [286] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(69), + [289] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [293] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), + [295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), + [303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), + [307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), + [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), + [313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 23), + [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), + [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 23), + [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), + [331] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(100), + [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), + [336] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), + [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), + [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), + [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), + [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), + [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 21), + [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [359] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), + [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [363] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), + [365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [367] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(46), + [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), + [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), + [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 10), + [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), + [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 28), + [380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), + [384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 27), + [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 13), + [388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 11), + [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 18), + [396] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), }; #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_sus(void) { +TS_PUBLIC const TSLanguage *tree_sitter_sus() { 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..1f4466d --- /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); +extern void *(*ts_current_calloc)(size_t, size_t); +extern void *(*ts_current_realloc)(void *, size_t); +extern void (*ts_current_free)(void *); + +#ifndef ts_malloc +#define ts_malloc ts_current_malloc +#endif +#ifndef ts_calloc +#define ts_calloc ts_current_calloc +#endif +#ifndef ts_realloc +#define ts_realloc ts_current_realloc +#endif +#ifndef ts_free +#define ts_free ts_current_free +#endif + +#else + +#ifndef ts_malloc +#define ts_malloc malloc +#endif +#ifndef ts_calloc +#define ts_calloc calloc +#endif +#ifndef ts_realloc +#define ts_realloc realloc +#endif +#ifndef ts_free +#define ts_free free +#endif + +#endif + +#ifdef __cplusplus +} +#endif + +#endif // TREE_SITTER_ALLOC_H_ diff --git a/src/tree_sitter/array.h b/src/tree_sitter/array.h new file mode 100644 index 0000000..15a3b23 --- /dev/null +++ b/src/tree_sitter/array.h @@ -0,0 +1,290 @@ +#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(disable : 4101) +#elif defined(__GNUC__) || defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-variable" +#endif + +#define Array(T) \ + struct { \ + T *contents; \ + uint32_t size; \ + uint32_t capacity; \ + } + +/// Initialize an array. +#define array_init(self) \ + ((self)->size = 0, (self)->capacity = 0, (self)->contents = NULL) + +/// Create an empty array. +#define array_new() \ + { NULL, 0, 0 } + +/// Get a pointer to the element at a given `index` in the array. +#define array_get(self, _index) \ + (assert((uint32_t)(_index) < (self)->size), &(self)->contents[_index]) + +/// Get a pointer to the first element in the array. +#define array_front(self) array_get(self, 0) + +/// Get a pointer to the last element in the array. +#define array_back(self) array_get(self, (self)->size - 1) + +/// Clear the array, setting its size to zero. Note that this does not free any +/// memory allocated for the array's contents. +#define array_clear(self) ((self)->size = 0) + +/// Reserve `new_capacity` elements of space in the array. If `new_capacity` is +/// less than the array's current capacity, this function has no effect. +#define array_reserve(self, new_capacity) \ + _array__reserve((Array *)(self), array_elem_size(self), new_capacity) + +/// Free any memory allocated for this array. Note that this does not free any +/// memory allocated for the array's contents. +#define array_delete(self) _array__delete((Array *)(self)) + +/// Push a new `element` onto the end of the array. +#define array_push(self, element) \ + (_array__grow((Array *)(self), 1, array_elem_size(self)), \ + (self)->contents[(self)->size++] = (element)) + +/// Increase the array's size by `count` elements. +/// New elements are zero-initialized. +#define array_grow_by(self, count) \ + do { \ + if ((count) == 0) break; \ + _array__grow((Array *)(self), count, array_elem_size(self)); \ + memset((self)->contents + (self)->size, 0, (count) * array_elem_size(self)); \ + (self)->size += (count); \ + } while (0) + +/// Append all elements from one array to the end of another. +#define array_push_all(self, other) \ + array_extend((self), (other)->size, (other)->contents) + +/// Append `count` elements to the end of the array, reading their values from the +/// `contents` pointer. +#define array_extend(self, count, contents) \ + _array__splice( \ + (Array *)(self), array_elem_size(self), (self)->size, \ + 0, count, contents \ + ) + +/// Remove `old_count` elements from the array starting at the given `index`. At +/// the same index, insert `new_count` new elements, reading their values from the +/// `new_contents` pointer. +#define array_splice(self, _index, old_count, new_count, new_contents) \ + _array__splice( \ + (Array *)(self), array_elem_size(self), _index, \ + old_count, new_count, new_contents \ + ) + +/// Insert one `element` into the array at the given `index`. +#define array_insert(self, _index, element) \ + _array__splice((Array *)(self), array_elem_size(self), _index, 0, 1, &(element)) + +/// Remove one element from the array at the given `index`. +#define array_erase(self, _index) \ + _array__erase((Array *)(self), array_elem_size(self), _index) + +/// Pop the last element off the array, returning the element by value. +#define array_pop(self) ((self)->contents[--(self)->size]) + +/// Assign the contents of one array to another, reallocating if necessary. +#define array_assign(self, other) \ + _array__assign((Array *)(self), (const Array *)(other), array_elem_size(self)) + +/// Swap one array with another +#define array_swap(self, other) \ + _array__swap((Array *)(self), (Array *)(other)) + +/// Get the size of the array contents +#define array_elem_size(self) (sizeof *(self)->contents) + +/// Search a sorted array for a given `needle` value, using the given `compare` +/// callback to determine the order. +/// +/// If an existing element is found to be equal to `needle`, then the `index` +/// out-parameter is set to the existing value's index, and the `exists` +/// out-parameter is set to true. Otherwise, `index` is set to an index where +/// `needle` should be inserted in order to preserve the sorting, and `exists` +/// is set to false. +#define array_search_sorted_with(self, compare, needle, _index, _exists) \ + _array__search_sorted(self, 0, compare, , needle, _index, _exists) + +/// Search a sorted array for a given `needle` value, using integer comparisons +/// of a given struct field (specified with a leading dot) to determine the order. +/// +/// See also `array_search_sorted_with`. +#define array_search_sorted_by(self, field, needle, _index, _exists) \ + _array__search_sorted(self, 0, _compare_int, field, needle, _index, _exists) + +/// Insert a given `value` into a sorted array, using the given `compare` +/// callback to determine the order. +#define array_insert_sorted_with(self, compare, value) \ + do { \ + unsigned _index, _exists; \ + array_search_sorted_with(self, compare, &(value), &_index, &_exists); \ + if (!_exists) array_insert(self, _index, value); \ + } while (0) + +/// Insert a given `value` into a sorted array, using integer comparisons of +/// a given struct field (specified with a leading dot) to determine the order. +/// +/// See also `array_search_sorted_by`. +#define array_insert_sorted_by(self, field, value) \ + do { \ + unsigned _index, _exists; \ + array_search_sorted_by(self, field, (value) field, &_index, &_exists); \ + if (!_exists) array_insert(self, _index, value); \ + } while (0) + +// Private + +typedef Array(void) Array; + +/// This is not what you're looking for, see `array_delete`. +static inline void _array__delete(Array *self) { + if (self->contents) { + ts_free(self->contents); + self->contents = NULL; + self->size = 0; + self->capacity = 0; + } +} + +/// This is not what you're looking for, see `array_erase`. +static inline void _array__erase(Array *self, size_t element_size, + uint32_t index) { + assert(index < self->size); + char *contents = (char *)self->contents; + memmove(contents + index * element_size, contents + (index + 1) * element_size, + (self->size - index - 1) * element_size); + self->size--; +} + +/// This is not what you're looking for, see `array_reserve`. +static inline void _array__reserve(Array *self, size_t element_size, uint32_t new_capacity) { + if (new_capacity > self->capacity) { + if (self->contents) { + self->contents = ts_realloc(self->contents, new_capacity * element_size); + } else { + self->contents = ts_malloc(new_capacity * element_size); + } + self->capacity = new_capacity; + } +} + +/// This is not what you're looking for, see `array_assign`. +static inline void _array__assign(Array *self, const Array *other, size_t element_size) { + _array__reserve(self, element_size, other->size); + self->size = other->size; + memcpy(self->contents, other->contents, self->size * element_size); +} + +/// This is not what you're looking for, see `array_swap`. +static inline void _array__swap(Array *self, Array *other) { + Array swap = *other; + *other = *self; + *self = swap; +} + +/// This is not what you're looking for, see `array_push` or `array_grow_by`. +static inline void _array__grow(Array *self, uint32_t count, size_t element_size) { + uint32_t new_size = self->size + count; + if (new_size > self->capacity) { + uint32_t new_capacity = self->capacity * 2; + if (new_capacity < 8) new_capacity = 8; + if (new_capacity < new_size) new_capacity = new_size; + _array__reserve(self, element_size, new_capacity); + } +} + +/// This is not what you're looking for, see `array_splice`. +static inline void _array__splice(Array *self, size_t element_size, + uint32_t index, uint32_t old_count, + uint32_t new_count, const void *elements) { + uint32_t new_size = self->size + new_count - old_count; + uint32_t old_end = index + old_count; + uint32_t new_end = index + new_count; + assert(old_end <= self->size); + + _array__reserve(self, element_size, new_size); + + char *contents = (char *)self->contents; + if (self->size > old_end) { + memmove( + contents + new_end * element_size, + contents + old_end * element_size, + (self->size - old_end) * element_size + ); + } + if (new_count > 0) { + if (elements) { + memcpy( + (contents + index * element_size), + elements, + new_count * element_size + ); + } else { + memset( + (contents + index * element_size), + 0, + new_count * element_size + ); + } + } + self->size += new_count - old_count; +} + +/// A binary search routine, based on Rust's `std::slice::binary_search_by`. +/// This is not what you're looking for, see `array_search_sorted_with` or `array_search_sorted_by`. +#define _array__search_sorted(self, start, compare, suffix, needle, _index, _exists) \ + do { \ + *(_index) = start; \ + *(_exists) = false; \ + uint32_t size = (self)->size - *(_index); \ + if (size == 0) break; \ + int comparison; \ + while (size > 1) { \ + uint32_t half_size = size / 2; \ + uint32_t mid_index = *(_index) + half_size; \ + comparison = compare(&((self)->contents[mid_index] suffix), (needle)); \ + if (comparison <= 0) *(_index) = mid_index; \ + size -= half_size; \ + } \ + comparison = compare(&((self)->contents[*(_index)] suffix), (needle)); \ + if (comparison == 0) *(_exists) = true; \ + else if (comparison < 0) *(_index) += 1; \ + } while (0) + +/// Helper macro for the `_sorted_by` routines below. This takes the left (existing) +/// parameter by reference in order to work with the generic sorting function above. +#define _compare_int(a, b) ((int)*(a) - (int)(b)) + +#ifdef _MSC_VER +#pragma warning(default : 4101) +#elif defined(__GNUC__) || defined(__clang__) +#pragma GCC diagnostic pop +#endif + +#ifdef __cplusplus +} +#endif + +#endif // TREE_SITTER_ARRAY_H_ diff --git a/src/tree_sitter/parser.h b/src/tree_sitter/parser.h index 2b14ac1..17b4fde 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; @@ -130,9 +129,16 @@ struct TSLanguage { * 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; \ @@ -166,7 +172,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 +182,7 @@ struct TSLanguage { {{ \ .shift = { \ .type = TSParseActionTypeShift, \ - .state = state_value \ + .state = (state_value) \ } \ }} @@ -184,7 +190,7 @@ struct TSLanguage { {{ \ .shift = { \ .type = TSParseActionTypeShift, \ - .state = state_value, \ + .state = (state_value), \ .repetition = true \ } \ }} From 23011682e2475c8aa2a37fba2e7455fbcbedb9cb Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Wed, 10 Apr 2024 13:35:05 +0200 Subject: [PATCH 22/49] Allow line breaks in more situations --- grammar.js | 21 +- src/grammar.json | 71 +- src/parser.c | 3337 +++++++++++++++++++++++++--------------------- 3 files changed, 1918 insertions(+), 1511 deletions(-) diff --git a/grammar.js b/grammar.js index bd88e9c..82952ae 100644 --- a/grammar.js +++ b/grammar.js @@ -9,14 +9,14 @@ function sepSeq(rule, sepChar) { function newlineSepSeq($, rule) { return seq( - optional($._at_least_one_newline), + optional($._linebreak), optional(seq( field('item', rule), repeat(seq( - $._at_least_one_newline, + $._linebreak, field('item', rule) )), - optional($._at_least_one_newline) + optional($._linebreak) )) ) } @@ -39,15 +39,22 @@ module.exports = grammar({ rules: { source_file: $ => newlineSepSeq($, $.module), + _comma: $ => seq( + ',', + optional($._linebreak) + ), + interface_ports : $ => seq( ':', + optional($._linebreak), optional(field('inputs', $.declaration_list)), optional(seq( '->', + optional($._linebreak), field('outputs', $.declaration_list) )) ), - declaration_list : $ => sepSeq1(field('item', $.declaration), ','), + declaration_list : $ => sepSeq1(field('item', $.declaration), $._comma), module: $ => seq( 'module', @@ -121,7 +128,7 @@ module.exports = grammar({ parenthesis_expression_list: $ => seq( '(', - sepSeq(field('item', $._expression), ','), + sepSeq(field('item', $._expression), $._comma), ')' ), @@ -147,7 +154,7 @@ module.exports = grammar({ $.func_call ), - _at_least_one_newline: $ => repeat1(/\n/), // For things that must be separated by at least one newline (whitespace after is to optimize gobbling up any extra newlines) + _linebreak: $ => repeat1(/\n/), // For things that must be separated by at least one newline (whitespace after is to optimize gobbling up any extra newlines) block: $ => seq( '{', @@ -178,7 +185,7 @@ module.exports = grammar({ ), assign_left_side: $ => sepSeq1( field('item', $.assign_to), - ',' + $._comma ), decl_assign_statement: $ => seq( diff --git a/src/grammar.json b/src/grammar.json index 03c555a..6fe9264 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -10,7 +10,7 @@ "members": [ { "type": "SYMBOL", - "name": "_at_least_one_newline" + "name": "_linebreak" }, { "type": "BLANK" @@ -38,7 +38,7 @@ "members": [ { "type": "SYMBOL", - "name": "_at_least_one_newline" + "name": "_linebreak" }, { "type": "FIELD", @@ -56,7 +56,7 @@ "members": [ { "type": "SYMBOL", - "name": "_at_least_one_newline" + "name": "_linebreak" }, { "type": "BLANK" @@ -72,6 +72,27 @@ } ] }, + "_comma": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_linebreak" + }, + { + "type": "BLANK" + } + ] + } + ] + }, "interface_ports": { "type": "SEQ", "members": [ @@ -79,6 +100,18 @@ "type": "STRING", "value": ":" }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_linebreak" + }, + { + "type": "BLANK" + } + ] + }, { "type": "CHOICE", "members": [ @@ -105,6 +138,18 @@ "type": "STRING", "value": "->" }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_linebreak" + }, + { + "type": "BLANK" + } + ] + }, { "type": "FIELD", "name": "outputs", @@ -139,8 +184,8 @@ "type": "SEQ", "members": [ { - "type": "STRING", - "value": "," + "type": "SYMBOL", + "name": "_comma" }, { "type": "FIELD", @@ -745,8 +790,8 @@ "type": "SEQ", "members": [ { - "type": "STRING", - "value": "," + "type": "SYMBOL", + "name": "_comma" }, { "type": "FIELD", @@ -847,7 +892,7 @@ } ] }, - "_at_least_one_newline": { + "_linebreak": { "type": "REPEAT1", "content": { "type": "PATTERN", @@ -869,7 +914,7 @@ "members": [ { "type": "SYMBOL", - "name": "_at_least_one_newline" + "name": "_linebreak" }, { "type": "BLANK" @@ -918,7 +963,7 @@ "members": [ { "type": "SYMBOL", - "name": "_at_least_one_newline" + "name": "_linebreak" }, { "type": "FIELD", @@ -957,7 +1002,7 @@ "members": [ { "type": "SYMBOL", - "name": "_at_least_one_newline" + "name": "_linebreak" }, { "type": "BLANK" @@ -1058,8 +1103,8 @@ "type": "SEQ", "members": [ { - "type": "STRING", - "value": "," + "type": "SYMBOL", + "name": "_comma" }, { "type": "FIELD", diff --git a/src/parser.c b/src/parser.c index 75da8b9..1b1f099 100644 --- a/src/parser.c +++ b/src/parser.c @@ -5,21 +5,21 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 141 +#define STATE_COUNT 156 #define LARGE_STATE_COUNT 11 -#define SYMBOL_COUNT 75 +#define SYMBOL_COUNT 76 #define ALIAS_COUNT 0 #define TOKEN_COUNT 43 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 26 #define MAX_ALIAS_SEQUENCE_LENGTH 7 -#define PRODUCTION_ID_COUNT 29 +#define PRODUCTION_ID_COUNT 35 enum ts_symbol_identifiers { sym_identifier = 1, - anon_sym_COLON = 2, - anon_sym_DASH_GT = 3, - anon_sym_COMMA = 4, + anon_sym_COMMA = 2, + anon_sym_COLON = 3, + anon_sym_DASH_GT = 4, anon_sym_module = 5, sym_number = 6, anon_sym_COLON_COLON = 7, @@ -45,7 +45,7 @@ enum ts_symbol_identifiers { anon_sym_RPAREN = 27, anon_sym_LBRACK = 28, anon_sym_RBRACK = 29, - aux_sym__at_least_one_newline_token1 = 30, + aux_sym__linebreak_token1 = 30, anon_sym_LBRACE = 31, anon_sym_RBRACE = 32, anon_sym_reg = 33, @@ -59,45 +59,46 @@ enum ts_symbol_identifiers { sym_single_line_comment = 41, sym_multi_line_comment = 42, sym_source_file = 43, - sym_interface_ports = 44, - sym_declaration_list = 45, - sym_module = 46, - sym_global_identifier = 47, - sym_array_type = 48, - sym__type = 49, - sym_latency_specifier = 50, - sym_declaration = 51, - sym_unary_op = 52, - sym_binary_op = 53, - sym_array_op = 54, - sym_func_call = 55, - sym_parenthesis_expression_list = 56, - sym_parenthesis_expression = 57, - sym_array_bracket_expression = 58, - sym__expression = 59, - aux_sym__at_least_one_newline = 60, - sym_block = 61, - sym_write_modifiers = 62, - sym_assign_to = 63, - sym_assign_left_side = 64, - sym_decl_assign_statement = 65, - sym_if_statement = 66, - sym_for_statement = 67, - aux_sym_source_file_repeat1 = 68, - aux_sym_declaration_list_repeat1 = 69, - aux_sym_global_identifier_repeat1 = 70, - aux_sym_parenthesis_expression_list_repeat1 = 71, - aux_sym_block_repeat1 = 72, - aux_sym_write_modifiers_repeat1 = 73, - aux_sym_assign_left_side_repeat1 = 74, + sym__comma = 44, + sym_interface_ports = 45, + sym_declaration_list = 46, + sym_module = 47, + sym_global_identifier = 48, + sym_array_type = 49, + sym__type = 50, + sym_latency_specifier = 51, + sym_declaration = 52, + sym_unary_op = 53, + sym_binary_op = 54, + sym_array_op = 55, + sym_func_call = 56, + sym_parenthesis_expression_list = 57, + sym_parenthesis_expression = 58, + sym_array_bracket_expression = 59, + sym__expression = 60, + aux_sym__linebreak = 61, + sym_block = 62, + sym_write_modifiers = 63, + sym_assign_to = 64, + sym_assign_left_side = 65, + sym_decl_assign_statement = 66, + sym_if_statement = 67, + sym_for_statement = 68, + aux_sym_source_file_repeat1 = 69, + aux_sym_declaration_list_repeat1 = 70, + aux_sym_global_identifier_repeat1 = 71, + aux_sym_parenthesis_expression_list_repeat1 = 72, + aux_sym_block_repeat1 = 73, + aux_sym_write_modifiers_repeat1 = 74, + aux_sym_assign_left_side_repeat1 = 75, }; static const char * const ts_symbol_names[] = { [ts_builtin_sym_end] = "end", [sym_identifier] = "identifier", + [anon_sym_COMMA] = ",", [anon_sym_COLON] = ":", [anon_sym_DASH_GT] = "->", - [anon_sym_COMMA] = ",", [anon_sym_module] = "module", [sym_number] = "number", [anon_sym_COLON_COLON] = "::", @@ -123,7 +124,7 @@ static const char * const ts_symbol_names[] = { [anon_sym_RPAREN] = ")", [anon_sym_LBRACK] = "[", [anon_sym_RBRACK] = "]", - [aux_sym__at_least_one_newline_token1] = "_at_least_one_newline_token1", + [aux_sym__linebreak_token1] = "_linebreak_token1", [anon_sym_LBRACE] = "{", [anon_sym_RBRACE] = "}", [anon_sym_reg] = "reg", @@ -137,6 +138,7 @@ static const char * const ts_symbol_names[] = { [sym_single_line_comment] = "single_line_comment", [sym_multi_line_comment] = "multi_line_comment", [sym_source_file] = "source_file", + [sym__comma] = "_comma", [sym_interface_ports] = "interface_ports", [sym_declaration_list] = "declaration_list", [sym_module] = "module", @@ -153,7 +155,7 @@ static const char * const ts_symbol_names[] = { [sym_parenthesis_expression] = "parenthesis_expression", [sym_array_bracket_expression] = "array_bracket_expression", [sym__expression] = "_expression", - [aux_sym__at_least_one_newline] = "_at_least_one_newline", + [aux_sym__linebreak] = "_linebreak", [sym_block] = "block", [sym_write_modifiers] = "write_modifiers", [sym_assign_to] = "assign_to", @@ -173,9 +175,9 @@ static const char * const ts_symbol_names[] = { static const TSSymbol ts_symbol_map[] = { [ts_builtin_sym_end] = ts_builtin_sym_end, [sym_identifier] = sym_identifier, + [anon_sym_COMMA] = anon_sym_COMMA, [anon_sym_COLON] = anon_sym_COLON, [anon_sym_DASH_GT] = anon_sym_DASH_GT, - [anon_sym_COMMA] = anon_sym_COMMA, [anon_sym_module] = anon_sym_module, [sym_number] = sym_number, [anon_sym_COLON_COLON] = anon_sym_COLON_COLON, @@ -201,7 +203,7 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_RPAREN] = anon_sym_RPAREN, [anon_sym_LBRACK] = anon_sym_LBRACK, [anon_sym_RBRACK] = anon_sym_RBRACK, - [aux_sym__at_least_one_newline_token1] = aux_sym__at_least_one_newline_token1, + [aux_sym__linebreak_token1] = aux_sym__linebreak_token1, [anon_sym_LBRACE] = anon_sym_LBRACE, [anon_sym_RBRACE] = anon_sym_RBRACE, [anon_sym_reg] = anon_sym_reg, @@ -215,6 +217,7 @@ static const TSSymbol ts_symbol_map[] = { [sym_single_line_comment] = sym_single_line_comment, [sym_multi_line_comment] = sym_multi_line_comment, [sym_source_file] = sym_source_file, + [sym__comma] = sym__comma, [sym_interface_ports] = sym_interface_ports, [sym_declaration_list] = sym_declaration_list, [sym_module] = sym_module, @@ -231,7 +234,7 @@ static const TSSymbol ts_symbol_map[] = { [sym_parenthesis_expression] = sym_parenthesis_expression, [sym_array_bracket_expression] = sym_array_bracket_expression, [sym__expression] = sym__expression, - [aux_sym__at_least_one_newline] = aux_sym__at_least_one_newline, + [aux_sym__linebreak] = aux_sym__linebreak, [sym_block] = sym_block, [sym_write_modifiers] = sym_write_modifiers, [sym_assign_to] = sym_assign_to, @@ -257,15 +260,15 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [anon_sym_COLON] = { + [anon_sym_COMMA] = { .visible = true, .named = false, }, - [anon_sym_DASH_GT] = { + [anon_sym_COLON] = { .visible = true, .named = false, }, - [anon_sym_COMMA] = { + [anon_sym_DASH_GT] = { .visible = true, .named = false, }, @@ -369,7 +372,7 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [aux_sym__at_least_one_newline_token1] = { + [aux_sym__linebreak_token1] = { .visible = false, .named = false, }, @@ -425,6 +428,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym__comma] = { + .visible = false, + .named = true, + }, [sym_interface_ports] = { .visible = true, .named = true, @@ -489,7 +496,7 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = true, }, - [aux_sym__at_least_one_newline] = { + [aux_sym__linebreak] = { .visible = false, .named = false, }, @@ -624,21 +631,27 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [11] = {.index = 16, .length = 1}, [12] = {.index = 17, .length = 2}, [13] = {.index = 19, .length = 2}, - [14] = {.index = 21, .length = 2}, - [15] = {.index = 23, .length = 2}, - [16] = {.index = 25, .length = 2}, - [17] = {.index = 27, .length = 3}, - [18] = {.index = 30, .length = 2}, - [19] = {.index = 32, .length = 3}, - [20] = {.index = 35, .length = 1}, - [21] = {.index = 36, .length = 2}, - [22] = {.index = 38, .length = 3}, - [23] = {.index = 41, .length = 1}, - [24] = {.index = 42, .length = 2}, - [25] = {.index = 44, .length = 4}, - [26] = {.index = 48, .length = 2}, - [27] = {.index = 50, .length = 3}, - [28] = {.index = 53, .length = 4}, + [14] = {.index = 21, .length = 1}, + [15] = {.index = 22, .length = 2}, + [16] = {.index = 24, .length = 2}, + [17] = {.index = 26, .length = 2}, + [18] = {.index = 28, .length = 1}, + [19] = {.index = 29, .length = 3}, + [20] = {.index = 32, .length = 2}, + [21] = {.index = 34, .length = 3}, + [22] = {.index = 37, .length = 1}, + [23] = {.index = 38, .length = 2}, + [24] = {.index = 40, .length = 3}, + [25] = {.index = 43, .length = 1}, + [26] = {.index = 44, .length = 2}, + [27] = {.index = 46, .length = 4}, + [28] = {.index = 50, .length = 2}, + [29] = {.index = 52, .length = 1}, + [30] = {.index = 53, .length = 2}, + [31] = {.index = 55, .length = 2}, + [32] = {.index = 57, .length = 2}, + [33] = {.index = 59, .length = 3}, + [34] = {.index = 62, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -677,52 +690,67 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_arr, 0}, {field_arr_idx, 1}, [21] = + {field_inputs, 2}, + [22] = {field_operator, 0}, {field_right, 1}, - [23] = + [24] = {field_arguments, 1}, {field_name, 0}, - [25] = + [26] = {field_expr_or_decl, 1}, {field_write_modifiers, 0}, - [27] = + [28] = + {field_outputs, 3}, + [29] = {field_declaration_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [30] = + [32] = {field_inputs, 1}, {field_outputs, 3}, - [32] = + [34] = {field_latency_specifier, 2}, {field_name, 1}, {field_type, 0}, - [35] = + [37] = {field_content, 1}, - [36] = + [38] = {field_condition, 1}, {field_then_block, 2}, - [38] = + [40] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [41] = + [43] = {field_item, 2}, - [42] = + [44] = {field_assign_left, 0}, {field_assign_value, 2}, - [44] = + [46] = {field_declaration_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [48] = + [50] = + {field_inputs, 1}, + {field_outputs, 4}, + [52] = + {field_outputs, 4}, + [53] = + {field_inputs, 2}, + {field_outputs, 4}, + [55] = {field_item, 2}, {field_item, 3, .inherited = true}, - [50] = + [57] = + {field_inputs, 2}, + {field_outputs, 5}, + [59] = {field_condition, 1}, {field_else_block, 4}, {field_then_block, 2}, - [53] = + [62] = {field_block, 6}, {field_for_decl, 1}, {field_from, 3}, @@ -879,6 +907,21 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [138] = 138, [139] = 139, [140] = 140, + [141] = 141, + [142] = 142, + [143] = 143, + [144] = 144, + [145] = 145, + [146] = 146, + [147] = 147, + [148] = 148, + [149] = 149, + [150] = 150, + [151] = 151, + [152] = 152, + [153] = 153, + [154] = 154, + [155] = 155, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -2797,29 +2840,29 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { switch (state) { case 0: if (eof) ADVANCE(9); - if (lookahead == '\n') ADVANCE(39); - if (lookahead == '!') ADVANCE(23); - if (lookahead == '%') ADVANCE(34); - if (lookahead == '&') ADVANCE(25); + if (lookahead == '\n') ADVANCE(38); + if (lookahead == '!') ADVANCE(22); + if (lookahead == '%') ADVANCE(33); + if (lookahead == '&') ADVANCE(24); if (lookahead == '\'') ADVANCE(17); - if (lookahead == '(') ADVANCE(35); - if (lookahead == ')') ADVANCE(36); - if (lookahead == '*') ADVANCE(21); + if (lookahead == '(') ADVANCE(34); + if (lookahead == ')') ADVANCE(35); + if (lookahead == '*') ADVANCE(20); if (lookahead == '+') ADVANCE(18); - if (lookahead == ',') ADVANCE(13); - if (lookahead == '-') ADVANCE(20); + if (lookahead == ',') ADVANCE(10); + if (lookahead == '-') ADVANCE(19); if (lookahead == '.') ADVANCE(5); - if (lookahead == '/') ADVANCE(33); - if (lookahead == ':') ADVANCE(11); - if (lookahead == '<') ADVANCE(29); - if (lookahead == '=') ADVANCE(42); - if (lookahead == '>') ADVANCE(31); - if (lookahead == '[') ADVANCE(37); - if (lookahead == ']') ADVANCE(38); - if (lookahead == '^') ADVANCE(26); - if (lookahead == '{') ADVANCE(40); - if (lookahead == '|') ADVANCE(24); - if (lookahead == '}') ADVANCE(41); + if (lookahead == '/') ADVANCE(32); + if (lookahead == ':') ADVANCE(12); + if (lookahead == '<') ADVANCE(28); + if (lookahead == '=') ADVANCE(41); + if (lookahead == '>') ADVANCE(30); + if (lookahead == '[') ADVANCE(36); + if (lookahead == ']') ADVANCE(37); + if (lookahead == '^') ADVANCE(25); + if (lookahead == '{') ADVANCE(39); + if (lookahead == '|') ADVANCE(23); + if (lookahead == '}') ADVANCE(40); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(0) @@ -2827,28 +2870,28 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (sym_identifier_character_set_1(lookahead)) ADVANCE(14); END_STATE(); case 1: - if (lookahead == '\n') ADVANCE(39); + if (lookahead == '\n') ADVANCE(38); if (lookahead == '!') ADVANCE(7); - if (lookahead == '%') ADVANCE(34); - if (lookahead == '&') ADVANCE(25); - if (lookahead == '(') ADVANCE(35); - if (lookahead == ')') ADVANCE(36); - if (lookahead == '*') ADVANCE(21); + if (lookahead == '%') ADVANCE(33); + if (lookahead == '&') ADVANCE(24); + if (lookahead == '(') ADVANCE(34); + if (lookahead == ')') ADVANCE(35); + if (lookahead == '*') ADVANCE(20); if (lookahead == '+') ADVANCE(18); - if (lookahead == ',') ADVANCE(13); - if (lookahead == '-') ADVANCE(20); + if (lookahead == ',') ADVANCE(10); + if (lookahead == '-') ADVANCE(19); if (lookahead == '.') ADVANCE(5); - if (lookahead == '/') ADVANCE(33); + if (lookahead == '/') ADVANCE(32); if (lookahead == ':') ADVANCE(6); - if (lookahead == '<') ADVANCE(29); - if (lookahead == '=') ADVANCE(42); - if (lookahead == '>') ADVANCE(31); - if (lookahead == '[') ADVANCE(37); - if (lookahead == ']') ADVANCE(38); - if (lookahead == '^') ADVANCE(26); - if (lookahead == '{') ADVANCE(40); - if (lookahead == '|') ADVANCE(24); - if (lookahead == '}') ADVANCE(41); + if (lookahead == '<') ADVANCE(28); + if (lookahead == '=') ADVANCE(41); + if (lookahead == '>') ADVANCE(30); + if (lookahead == '[') ADVANCE(36); + if (lookahead == ']') ADVANCE(37); + if (lookahead == '^') ADVANCE(25); + if (lookahead == '{') ADVANCE(39); + if (lookahead == '|') ADVANCE(23); + if (lookahead == '}') ADVANCE(40); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(1) @@ -2856,11 +2899,11 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 2: if (lookahead == '*') ADVANCE(4); - if (lookahead == '/') ADVANCE(44); + if (lookahead == '/') ADVANCE(43); END_STATE(); case 3: if (lookahead == '*') ADVANCE(3); - if (lookahead == '/') ADVANCE(45); + if (lookahead == '/') ADVANCE(44); if (lookahead != 0) ADVANCE(4); END_STATE(); case 4: @@ -2868,30 +2911,30 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead != 0) ADVANCE(4); END_STATE(); case 5: - if (lookahead == '.') ADVANCE(43); + if (lookahead == '.') ADVANCE(42); END_STATE(); case 6: if (lookahead == ':') ADVANCE(16); END_STATE(); case 7: - if (lookahead == '=') ADVANCE(28); + if (lookahead == '=') ADVANCE(27); END_STATE(); case 8: if (eof) ADVANCE(9); - if (lookahead == '\n') ADVANCE(39); - if (lookahead == '!') ADVANCE(22); - if (lookahead == '&') ADVANCE(25); - if (lookahead == '(') ADVANCE(35); - if (lookahead == ')') ADVANCE(36); - if (lookahead == '*') ADVANCE(21); + if (lookahead == '\n') ADVANCE(38); + if (lookahead == '!') ADVANCE(21); + if (lookahead == '&') ADVANCE(24); + if (lookahead == '(') ADVANCE(34); + if (lookahead == ')') ADVANCE(35); + if (lookahead == '*') ADVANCE(20); if (lookahead == '+') ADVANCE(18); if (lookahead == '-') ADVANCE(19); if (lookahead == '/') ADVANCE(2); - if (lookahead == ':') ADVANCE(10); - if (lookahead == '^') ADVANCE(26); - if (lookahead == '{') ADVANCE(40); - if (lookahead == '|') ADVANCE(24); - if (lookahead == '}') ADVANCE(41); + if (lookahead == ':') ADVANCE(11); + if (lookahead == '^') ADVANCE(25); + if (lookahead == '{') ADVANCE(39); + if (lookahead == '|') ADVANCE(23); + if (lookahead == '}') ADVANCE(40); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(8) @@ -2902,17 +2945,17 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); case 10: - ACCEPT_TOKEN(anon_sym_COLON); + ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); case 11: ACCEPT_TOKEN(anon_sym_COLON); - if (lookahead == ':') ADVANCE(16); END_STATE(); case 12: - ACCEPT_TOKEN(anon_sym_DASH_GT); + ACCEPT_TOKEN(anon_sym_COLON); + if (lookahead == ':') ADVANCE(16); END_STATE(); case 13: - ACCEPT_TOKEN(anon_sym_COMMA); + ACCEPT_TOKEN(anon_sym_DASH_GT); END_STATE(); case 14: ACCEPT_TOKEN(sym_identifier); @@ -2934,92 +2977,89 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 19: ACCEPT_TOKEN(anon_sym_DASH); + if (lookahead == '>') ADVANCE(13); END_STATE(); case 20: - ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '>') ADVANCE(12); + ACCEPT_TOKEN(anon_sym_STAR); END_STATE(); case 21: - ACCEPT_TOKEN(anon_sym_STAR); + ACCEPT_TOKEN(anon_sym_BANG); END_STATE(); case 22: ACCEPT_TOKEN(anon_sym_BANG); + if (lookahead == '=') ADVANCE(27); END_STATE(); case 23: - ACCEPT_TOKEN(anon_sym_BANG); - if (lookahead == '=') ADVANCE(28); - END_STATE(); - case 24: ACCEPT_TOKEN(anon_sym_PIPE); END_STATE(); - case 25: + case 24: ACCEPT_TOKEN(anon_sym_AMP); END_STATE(); - case 26: + case 25: ACCEPT_TOKEN(anon_sym_CARET); END_STATE(); - case 27: + case 26: ACCEPT_TOKEN(anon_sym_EQ_EQ); END_STATE(); - case 28: + case 27: ACCEPT_TOKEN(anon_sym_BANG_EQ); END_STATE(); - case 29: + case 28: ACCEPT_TOKEN(anon_sym_LT); - if (lookahead == '=') ADVANCE(30); + if (lookahead == '=') ADVANCE(29); END_STATE(); - case 30: + case 29: ACCEPT_TOKEN(anon_sym_LT_EQ); END_STATE(); - case 31: + case 30: ACCEPT_TOKEN(anon_sym_GT); - if (lookahead == '=') ADVANCE(32); + if (lookahead == '=') ADVANCE(31); END_STATE(); - case 32: + case 31: ACCEPT_TOKEN(anon_sym_GT_EQ); END_STATE(); - case 33: + case 32: ACCEPT_TOKEN(anon_sym_SLASH); if (lookahead == '*') ADVANCE(4); - if (lookahead == '/') ADVANCE(44); + if (lookahead == '/') ADVANCE(43); END_STATE(); - case 34: + case 33: ACCEPT_TOKEN(anon_sym_PERCENT); END_STATE(); - case 35: + case 34: ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); - case 36: + case 35: ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); - case 37: + case 36: ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); - case 38: + case 37: ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); - case 39: - ACCEPT_TOKEN(aux_sym__at_least_one_newline_token1); + case 38: + ACCEPT_TOKEN(aux_sym__linebreak_token1); END_STATE(); - case 40: + case 39: ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); - case 41: + case 40: ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); - case 42: + case 41: ACCEPT_TOKEN(anon_sym_EQ); - if (lookahead == '=') ADVANCE(27); + if (lookahead == '=') ADVANCE(26); END_STATE(); - case 43: + case 42: ACCEPT_TOKEN(anon_sym_DOT_DOT); END_STATE(); - case 44: + case 43: ACCEPT_TOKEN(sym_single_line_comment); if (lookahead != 0 && - lookahead != '\n') ADVANCE(44); + lookahead != '\n') ADVANCE(43); END_STATE(); - case 45: + case 44: ACCEPT_TOKEN(sym_multi_line_comment); END_STATE(); default: @@ -3178,11 +3218,11 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [28] = {.lex_state = 1}, [29] = {.lex_state = 1}, [30] = {.lex_state = 1}, - [31] = {.lex_state = 1}, - [32] = {.lex_state = 8}, + [31] = {.lex_state = 8}, + [32] = {.lex_state = 1}, [33] = {.lex_state = 1}, - [34] = {.lex_state = 8}, - [35] = {.lex_state = 1}, + [34] = {.lex_state = 1}, + [35] = {.lex_state = 8}, [36] = {.lex_state = 1}, [37] = {.lex_state = 1}, [38] = {.lex_state = 1}, @@ -3211,10 +3251,10 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [61] = {.lex_state = 8}, [62] = {.lex_state = 8}, [63] = {.lex_state = 8}, - [64] = {.lex_state = 0}, + [64] = {.lex_state = 8}, [65] = {.lex_state = 0}, [66] = {.lex_state = 0}, - [67] = {.lex_state = 0}, + [67] = {.lex_state = 8}, [68] = {.lex_state = 0}, [69] = {.lex_state = 0}, [70] = {.lex_state = 0}, @@ -3241,7 +3281,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [91] = {.lex_state = 0}, [92] = {.lex_state = 0}, [93] = {.lex_state = 0}, - [94] = {.lex_state = 8}, + [94] = {.lex_state = 0}, [95] = {.lex_state = 0}, [96] = {.lex_state = 0}, [97] = {.lex_state = 0}, @@ -3254,7 +3294,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [104] = {.lex_state = 0}, [105] = {.lex_state = 0}, [106] = {.lex_state = 0}, - [107] = {.lex_state = 0}, + [107] = {.lex_state = 8}, [108] = {.lex_state = 0}, [109] = {.lex_state = 0}, [110] = {.lex_state = 0}, @@ -3288,15 +3328,30 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [138] = {.lex_state = 0}, [139] = {.lex_state = 0}, [140] = {.lex_state = 0}, + [141] = {.lex_state = 0}, + [142] = {.lex_state = 0}, + [143] = {.lex_state = 0}, + [144] = {.lex_state = 0}, + [145] = {.lex_state = 0}, + [146] = {.lex_state = 0}, + [147] = {.lex_state = 0}, + [148] = {.lex_state = 0}, + [149] = {.lex_state = 0}, + [150] = {.lex_state = 0}, + [151] = {.lex_state = 0}, + [152] = {.lex_state = 0}, + [153] = {.lex_state = 0}, + [154] = {.lex_state = 0}, + [155] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [0] = { [ts_builtin_sym_end] = ACTIONS(1), [sym_identifier] = ACTIONS(1), + [anon_sym_COMMA] = ACTIONS(1), [anon_sym_COLON] = ACTIONS(1), [anon_sym_DASH_GT] = ACTIONS(1), - [anon_sym_COMMA] = ACTIONS(1), [anon_sym_module] = ACTIONS(1), [sym_number] = ACTIONS(1), [anon_sym_COLON_COLON] = ACTIONS(1), @@ -3322,7 +3377,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_RPAREN] = ACTIONS(1), [anon_sym_LBRACK] = ACTIONS(1), [anon_sym_RBRACK] = ACTIONS(1), - [aux_sym__at_least_one_newline_token1] = ACTIONS(1), + [aux_sym__linebreak_token1] = ACTIONS(1), [anon_sym_LBRACE] = ACTIONS(1), [anon_sym_RBRACE] = ACTIONS(1), [anon_sym_reg] = ACTIONS(1), @@ -3337,35 +3392,35 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(139), - [sym_module] = STATE(92), - [aux_sym__at_least_one_newline] = STATE(82), + [sym_source_file] = STATE(155), + [sym_module] = STATE(106), + [aux_sym__linebreak] = STATE(89), [ts_builtin_sym_end] = ACTIONS(5), [anon_sym_module] = ACTIONS(7), - [aux_sym__at_least_one_newline_token1] = ACTIONS(9), + [aux_sym__linebreak_token1] = ACTIONS(9), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [2] = { - [sym_global_identifier] = STATE(35), - [sym_array_type] = STATE(120), - [sym__type] = STATE(120), - [sym_declaration] = STATE(112), - [sym_unary_op] = STATE(31), - [sym_binary_op] = STATE(31), - [sym_array_op] = STATE(31), - [sym_func_call] = STATE(31), - [sym_parenthesis_expression] = STATE(31), - [sym__expression] = STATE(31), - [aux_sym__at_least_one_newline] = STATE(34), - [sym_block] = STATE(127), - [sym_write_modifiers] = STATE(32), - [sym_assign_to] = STATE(81), - [sym_assign_left_side] = STATE(121), - [sym_decl_assign_statement] = STATE(127), - [sym_if_statement] = STATE(127), - [sym_for_statement] = STATE(127), - [aux_sym_write_modifiers_repeat1] = STATE(60), + [sym_global_identifier] = STATE(36), + [sym_array_type] = STATE(130), + [sym__type] = STATE(130), + [sym_declaration] = STATE(125), + [sym_unary_op] = STATE(33), + [sym_binary_op] = STATE(33), + [sym_array_op] = STATE(33), + [sym_func_call] = STATE(33), + [sym_parenthesis_expression] = STATE(33), + [sym__expression] = STATE(33), + [aux_sym__linebreak] = STATE(31), + [sym_block] = STATE(140), + [sym_write_modifiers] = STATE(35), + [sym_assign_to] = STATE(82), + [sym_assign_left_side] = STATE(131), + [sym_decl_assign_statement] = STATE(140), + [sym_if_statement] = STATE(140), + [sym_for_statement] = STATE(140), + [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), [sym_number] = ACTIONS(13), [anon_sym_state] = ACTIONS(15), @@ -3378,7 +3433,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_AMP] = ACTIONS(17), [anon_sym_CARET] = ACTIONS(17), [anon_sym_LPAREN] = ACTIONS(19), - [aux_sym__at_least_one_newline_token1] = ACTIONS(21), + [aux_sym__linebreak_token1] = ACTIONS(21), [anon_sym_LBRACE] = ACTIONS(23), [anon_sym_RBRACE] = ACTIONS(25), [anon_sym_reg] = ACTIONS(27), @@ -3389,25 +3444,25 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [3] = { - [sym_global_identifier] = STATE(35), - [sym_array_type] = STATE(120), - [sym__type] = STATE(120), - [sym_declaration] = STATE(112), - [sym_unary_op] = STATE(31), - [sym_binary_op] = STATE(31), - [sym_array_op] = STATE(31), - [sym_func_call] = STATE(31), - [sym_parenthesis_expression] = STATE(31), - [sym__expression] = STATE(31), - [aux_sym__at_least_one_newline] = STATE(34), - [sym_block] = STATE(127), - [sym_write_modifiers] = STATE(32), - [sym_assign_to] = STATE(81), - [sym_assign_left_side] = STATE(121), - [sym_decl_assign_statement] = STATE(127), - [sym_if_statement] = STATE(127), - [sym_for_statement] = STATE(127), - [aux_sym_write_modifiers_repeat1] = STATE(60), + [sym_global_identifier] = STATE(36), + [sym_array_type] = STATE(130), + [sym__type] = STATE(130), + [sym_declaration] = STATE(125), + [sym_unary_op] = STATE(33), + [sym_binary_op] = STATE(33), + [sym_array_op] = STATE(33), + [sym_func_call] = STATE(33), + [sym_parenthesis_expression] = STATE(33), + [sym__expression] = STATE(33), + [aux_sym__linebreak] = STATE(31), + [sym_block] = STATE(140), + [sym_write_modifiers] = STATE(35), + [sym_assign_to] = STATE(82), + [sym_assign_left_side] = STATE(131), + [sym_decl_assign_statement] = STATE(140), + [sym_if_statement] = STATE(140), + [sym_for_statement] = STATE(140), + [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), [sym_number] = ACTIONS(13), [anon_sym_state] = ACTIONS(15), @@ -3420,7 +3475,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_AMP] = ACTIONS(17), [anon_sym_CARET] = ACTIONS(17), [anon_sym_LPAREN] = ACTIONS(19), - [aux_sym__at_least_one_newline_token1] = ACTIONS(21), + [aux_sym__linebreak_token1] = ACTIONS(21), [anon_sym_LBRACE] = ACTIONS(23), [anon_sym_RBRACE] = ACTIONS(35), [anon_sym_reg] = ACTIONS(27), @@ -3431,25 +3486,25 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [4] = { - [sym_global_identifier] = STATE(35), - [sym_array_type] = STATE(120), - [sym__type] = STATE(120), - [sym_declaration] = STATE(112), - [sym_unary_op] = STATE(31), - [sym_binary_op] = STATE(31), - [sym_array_op] = STATE(31), - [sym_func_call] = STATE(31), - [sym_parenthesis_expression] = STATE(31), - [sym__expression] = STATE(31), - [aux_sym__at_least_one_newline] = STATE(34), - [sym_block] = STATE(127), - [sym_write_modifiers] = STATE(32), - [sym_assign_to] = STATE(81), - [sym_assign_left_side] = STATE(121), - [sym_decl_assign_statement] = STATE(127), - [sym_if_statement] = STATE(127), - [sym_for_statement] = STATE(127), - [aux_sym_write_modifiers_repeat1] = STATE(60), + [sym_global_identifier] = STATE(36), + [sym_array_type] = STATE(130), + [sym__type] = STATE(130), + [sym_declaration] = STATE(125), + [sym_unary_op] = STATE(33), + [sym_binary_op] = STATE(33), + [sym_array_op] = STATE(33), + [sym_func_call] = STATE(33), + [sym_parenthesis_expression] = STATE(33), + [sym__expression] = STATE(33), + [aux_sym__linebreak] = STATE(31), + [sym_block] = STATE(140), + [sym_write_modifiers] = STATE(35), + [sym_assign_to] = STATE(82), + [sym_assign_left_side] = STATE(131), + [sym_decl_assign_statement] = STATE(140), + [sym_if_statement] = STATE(140), + [sym_for_statement] = STATE(140), + [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), [sym_number] = ACTIONS(13), [anon_sym_state] = ACTIONS(15), @@ -3462,7 +3517,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_AMP] = ACTIONS(17), [anon_sym_CARET] = ACTIONS(17), [anon_sym_LPAREN] = ACTIONS(19), - [aux_sym__at_least_one_newline_token1] = ACTIONS(21), + [aux_sym__linebreak_token1] = ACTIONS(21), [anon_sym_LBRACE] = ACTIONS(23), [anon_sym_RBRACE] = ACTIONS(37), [anon_sym_reg] = ACTIONS(27), @@ -3473,25 +3528,25 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [5] = { - [sym_global_identifier] = STATE(35), - [sym_array_type] = STATE(120), - [sym__type] = STATE(120), - [sym_declaration] = STATE(112), - [sym_unary_op] = STATE(31), - [sym_binary_op] = STATE(31), - [sym_array_op] = STATE(31), - [sym_func_call] = STATE(31), - [sym_parenthesis_expression] = STATE(31), - [sym__expression] = STATE(31), - [aux_sym__at_least_one_newline] = STATE(34), - [sym_block] = STATE(83), - [sym_write_modifiers] = STATE(32), - [sym_assign_to] = STATE(81), - [sym_assign_left_side] = STATE(73), - [sym_decl_assign_statement] = STATE(83), - [sym_if_statement] = STATE(83), - [sym_for_statement] = STATE(83), - [aux_sym_write_modifiers_repeat1] = STATE(60), + [sym_global_identifier] = STATE(36), + [sym_array_type] = STATE(130), + [sym__type] = STATE(130), + [sym_declaration] = STATE(125), + [sym_unary_op] = STATE(33), + [sym_binary_op] = STATE(33), + [sym_array_op] = STATE(33), + [sym_func_call] = STATE(33), + [sym_parenthesis_expression] = STATE(33), + [sym__expression] = STATE(33), + [aux_sym__linebreak] = STATE(31), + [sym_block] = STATE(140), + [sym_write_modifiers] = STATE(35), + [sym_assign_to] = STATE(82), + [sym_assign_left_side] = STATE(131), + [sym_decl_assign_statement] = STATE(140), + [sym_if_statement] = STATE(140), + [sym_for_statement] = STATE(140), + [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), [sym_number] = ACTIONS(13), [anon_sym_state] = ACTIONS(15), @@ -3504,7 +3559,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_AMP] = ACTIONS(17), [anon_sym_CARET] = ACTIONS(17), [anon_sym_LPAREN] = ACTIONS(19), - [aux_sym__at_least_one_newline_token1] = ACTIONS(21), + [aux_sym__linebreak_token1] = ACTIONS(21), [anon_sym_LBRACE] = ACTIONS(23), [anon_sym_RBRACE] = ACTIONS(39), [anon_sym_reg] = ACTIONS(27), @@ -3515,25 +3570,25 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [6] = { - [sym_global_identifier] = STATE(35), - [sym_array_type] = STATE(120), - [sym__type] = STATE(120), - [sym_declaration] = STATE(112), - [sym_unary_op] = STATE(31), - [sym_binary_op] = STATE(31), - [sym_array_op] = STATE(31), - [sym_func_call] = STATE(31), - [sym_parenthesis_expression] = STATE(31), - [sym__expression] = STATE(31), - [aux_sym__at_least_one_newline] = STATE(34), - [sym_block] = STATE(127), - [sym_write_modifiers] = STATE(32), - [sym_assign_to] = STATE(81), - [sym_assign_left_side] = STATE(121), - [sym_decl_assign_statement] = STATE(127), - [sym_if_statement] = STATE(127), - [sym_for_statement] = STATE(127), - [aux_sym_write_modifiers_repeat1] = STATE(60), + [sym_global_identifier] = STATE(36), + [sym_array_type] = STATE(130), + [sym__type] = STATE(130), + [sym_declaration] = STATE(125), + [sym_unary_op] = STATE(33), + [sym_binary_op] = STATE(33), + [sym_array_op] = STATE(33), + [sym_func_call] = STATE(33), + [sym_parenthesis_expression] = STATE(33), + [sym__expression] = STATE(33), + [aux_sym__linebreak] = STATE(31), + [sym_block] = STATE(140), + [sym_write_modifiers] = STATE(35), + [sym_assign_to] = STATE(82), + [sym_assign_left_side] = STATE(131), + [sym_decl_assign_statement] = STATE(140), + [sym_if_statement] = STATE(140), + [sym_for_statement] = STATE(140), + [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), [sym_number] = ACTIONS(13), [anon_sym_state] = ACTIONS(15), @@ -3546,7 +3601,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_AMP] = ACTIONS(17), [anon_sym_CARET] = ACTIONS(17), [anon_sym_LPAREN] = ACTIONS(19), - [aux_sym__at_least_one_newline_token1] = ACTIONS(21), + [aux_sym__linebreak_token1] = ACTIONS(21), [anon_sym_LBRACE] = ACTIONS(23), [anon_sym_RBRACE] = ACTIONS(41), [anon_sym_reg] = ACTIONS(27), @@ -3557,25 +3612,25 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [7] = { - [sym_global_identifier] = STATE(35), - [sym_array_type] = STATE(120), - [sym__type] = STATE(120), - [sym_declaration] = STATE(112), - [sym_unary_op] = STATE(31), - [sym_binary_op] = STATE(31), - [sym_array_op] = STATE(31), - [sym_func_call] = STATE(31), - [sym_parenthesis_expression] = STATE(31), - [sym__expression] = STATE(31), - [aux_sym__at_least_one_newline] = STATE(34), - [sym_block] = STATE(127), - [sym_write_modifiers] = STATE(32), - [sym_assign_to] = STATE(81), - [sym_assign_left_side] = STATE(121), - [sym_decl_assign_statement] = STATE(127), - [sym_if_statement] = STATE(127), - [sym_for_statement] = STATE(127), - [aux_sym_write_modifiers_repeat1] = STATE(60), + [sym_global_identifier] = STATE(36), + [sym_array_type] = STATE(130), + [sym__type] = STATE(130), + [sym_declaration] = STATE(125), + [sym_unary_op] = STATE(33), + [sym_binary_op] = STATE(33), + [sym_array_op] = STATE(33), + [sym_func_call] = STATE(33), + [sym_parenthesis_expression] = STATE(33), + [sym__expression] = STATE(33), + [aux_sym__linebreak] = STATE(31), + [sym_block] = STATE(104), + [sym_write_modifiers] = STATE(35), + [sym_assign_to] = STATE(82), + [sym_assign_left_side] = STATE(91), + [sym_decl_assign_statement] = STATE(104), + [sym_if_statement] = STATE(104), + [sym_for_statement] = STATE(104), + [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), [sym_number] = ACTIONS(13), [anon_sym_state] = ACTIONS(15), @@ -3588,7 +3643,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_AMP] = ACTIONS(17), [anon_sym_CARET] = ACTIONS(17), [anon_sym_LPAREN] = ACTIONS(19), - [aux_sym__at_least_one_newline_token1] = ACTIONS(21), + [aux_sym__linebreak_token1] = ACTIONS(21), [anon_sym_LBRACE] = ACTIONS(23), [anon_sym_RBRACE] = ACTIONS(43), [anon_sym_reg] = ACTIONS(27), @@ -3599,25 +3654,25 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [8] = { - [sym_global_identifier] = STATE(35), - [sym_array_type] = STATE(120), - [sym__type] = STATE(120), - [sym_declaration] = STATE(112), - [sym_unary_op] = STATE(31), - [sym_binary_op] = STATE(31), - [sym_array_op] = STATE(31), - [sym_func_call] = STATE(31), - [sym_parenthesis_expression] = STATE(31), - [sym__expression] = STATE(31), - [aux_sym__at_least_one_newline] = STATE(5), - [sym_block] = STATE(109), - [sym_write_modifiers] = STATE(32), - [sym_assign_to] = STATE(81), - [sym_assign_left_side] = STATE(78), - [sym_decl_assign_statement] = STATE(109), - [sym_if_statement] = STATE(109), - [sym_for_statement] = STATE(109), - [aux_sym_write_modifiers_repeat1] = STATE(60), + [sym_global_identifier] = STATE(36), + [sym_array_type] = STATE(130), + [sym__type] = STATE(130), + [sym_declaration] = STATE(125), + [sym_unary_op] = STATE(33), + [sym_binary_op] = STATE(33), + [sym_array_op] = STATE(33), + [sym_func_call] = STATE(33), + [sym_parenthesis_expression] = STATE(33), + [sym__expression] = STATE(33), + [aux_sym__linebreak] = STATE(7), + [sym_block] = STATE(123), + [sym_write_modifiers] = STATE(35), + [sym_assign_to] = STATE(82), + [sym_assign_left_side] = STATE(90), + [sym_decl_assign_statement] = STATE(123), + [sym_if_statement] = STATE(123), + [sym_for_statement] = STATE(123), + [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), [sym_number] = ACTIONS(13), [anon_sym_state] = ACTIONS(15), @@ -3630,7 +3685,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_AMP] = ACTIONS(17), [anon_sym_CARET] = ACTIONS(17), [anon_sym_LPAREN] = ACTIONS(19), - [aux_sym__at_least_one_newline_token1] = ACTIONS(45), + [aux_sym__linebreak_token1] = ACTIONS(45), [anon_sym_LBRACE] = ACTIONS(23), [anon_sym_RBRACE] = ACTIONS(47), [anon_sym_reg] = ACTIONS(27), @@ -3641,25 +3696,25 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [9] = { - [sym_global_identifier] = STATE(35), - [sym_array_type] = STATE(120), - [sym__type] = STATE(120), - [sym_declaration] = STATE(112), - [sym_unary_op] = STATE(31), - [sym_binary_op] = STATE(31), - [sym_array_op] = STATE(31), - [sym_func_call] = STATE(31), - [sym_parenthesis_expression] = STATE(31), - [sym__expression] = STATE(31), - [aux_sym__at_least_one_newline] = STATE(34), - [sym_block] = STATE(127), - [sym_write_modifiers] = STATE(32), - [sym_assign_to] = STATE(81), - [sym_assign_left_side] = STATE(121), - [sym_decl_assign_statement] = STATE(127), - [sym_if_statement] = STATE(127), - [sym_for_statement] = STATE(127), - [aux_sym_write_modifiers_repeat1] = STATE(60), + [sym_global_identifier] = STATE(36), + [sym_array_type] = STATE(130), + [sym__type] = STATE(130), + [sym_declaration] = STATE(125), + [sym_unary_op] = STATE(33), + [sym_binary_op] = STATE(33), + [sym_array_op] = STATE(33), + [sym_func_call] = STATE(33), + [sym_parenthesis_expression] = STATE(33), + [sym__expression] = STATE(33), + [aux_sym__linebreak] = STATE(31), + [sym_block] = STATE(140), + [sym_write_modifiers] = STATE(35), + [sym_assign_to] = STATE(82), + [sym_assign_left_side] = STATE(131), + [sym_decl_assign_statement] = STATE(140), + [sym_if_statement] = STATE(140), + [sym_for_statement] = STATE(140), + [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), [sym_number] = ACTIONS(13), [anon_sym_state] = ACTIONS(15), @@ -3672,7 +3727,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_AMP] = ACTIONS(17), [anon_sym_CARET] = ACTIONS(17), [anon_sym_LPAREN] = ACTIONS(19), - [aux_sym__at_least_one_newline_token1] = ACTIONS(21), + [aux_sym__linebreak_token1] = ACTIONS(21), [anon_sym_LBRACE] = ACTIONS(23), [anon_sym_RBRACE] = ACTIONS(49), [anon_sym_reg] = ACTIONS(27), @@ -3683,25 +3738,25 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [10] = { - [sym_global_identifier] = STATE(35), - [sym_array_type] = STATE(120), - [sym__type] = STATE(120), - [sym_declaration] = STATE(112), - [sym_unary_op] = STATE(31), - [sym_binary_op] = STATE(31), - [sym_array_op] = STATE(31), - [sym_func_call] = STATE(31), - [sym_parenthesis_expression] = STATE(31), - [sym__expression] = STATE(31), - [aux_sym__at_least_one_newline] = STATE(34), - [sym_block] = STATE(127), - [sym_write_modifiers] = STATE(32), - [sym_assign_to] = STATE(81), - [sym_assign_left_side] = STATE(121), - [sym_decl_assign_statement] = STATE(127), - [sym_if_statement] = STATE(127), - [sym_for_statement] = STATE(127), - [aux_sym_write_modifiers_repeat1] = STATE(60), + [sym_global_identifier] = STATE(36), + [sym_array_type] = STATE(130), + [sym__type] = STATE(130), + [sym_declaration] = STATE(125), + [sym_unary_op] = STATE(33), + [sym_binary_op] = STATE(33), + [sym_array_op] = STATE(33), + [sym_func_call] = STATE(33), + [sym_parenthesis_expression] = STATE(33), + [sym__expression] = STATE(33), + [aux_sym__linebreak] = STATE(31), + [sym_block] = STATE(140), + [sym_write_modifiers] = STATE(35), + [sym_assign_to] = STATE(82), + [sym_assign_left_side] = STATE(131), + [sym_decl_assign_statement] = STATE(140), + [sym_if_statement] = STATE(140), + [sym_for_statement] = STATE(140), + [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), [sym_number] = ACTIONS(13), [anon_sym_state] = ACTIONS(15), @@ -3714,7 +3769,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_AMP] = ACTIONS(17), [anon_sym_CARET] = ACTIONS(17), [anon_sym_LPAREN] = ACTIONS(19), - [aux_sym__at_least_one_newline_token1] = ACTIONS(21), + [aux_sym__linebreak_token1] = ACTIONS(21), [anon_sym_LBRACE] = ACTIONS(23), [anon_sym_reg] = ACTIONS(27), [anon_sym_initial] = ACTIONS(29), @@ -3729,7 +3784,7 @@ static const uint16_t ts_small_parse_table[] = { [0] = 5, ACTIONS(55), 1, anon_sym_COLON_COLON, - STATE(12), 1, + STATE(13), 1, aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, @@ -3743,8 +3798,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, ACTIONS(53), 20, - anon_sym_DASH_GT, anon_sym_COMMA, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -3759,14 +3814,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, [42] = 5, ACTIONS(55), 1, anon_sym_COLON_COLON, - STATE(13), 1, + STATE(11), 1, aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, @@ -3780,8 +3835,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, ACTIONS(59), 20, - anon_sym_DASH_GT, anon_sym_COMMA, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -3796,7 +3851,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -3817,8 +3872,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, ACTIONS(63), 20, - anon_sym_DASH_GT, anon_sym_COMMA, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -3833,28 +3888,38 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, - [126] = 3, + [126] = 11, + ACTIONS(70), 1, + anon_sym_PLUS, + ACTIONS(72), 1, + anon_sym_DASH, + ACTIONS(78), 1, + anon_sym_SLASH, + ACTIONS(80), 1, + anon_sym_LPAREN, + ACTIONS(82), 1, + anon_sym_LBRACK, + STATE(25), 1, + sym_array_bracket_expression, + STATE(26), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(68), 7, - sym_identifier, - anon_sym_DASH, + ACTIONS(74), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(76), 3, anon_sym_LT, anon_sym_GT, - anon_sym_SLASH, anon_sym_EQ, - anon_sym_in, - ACTIONS(70), 21, - anon_sym_DASH_GT, + ACTIONS(68), 16, anon_sym_COMMA, - anon_sym_COLON_COLON, - anon_sym_PLUS, - anon_sym_STAR, + anon_sym_DASH_GT, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -3862,27 +3927,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, - [163] = 12, - ACTIONS(74), 1, - anon_sym_PLUS, - ACTIONS(76), 1, - anon_sym_DASH, + [179] = 7, ACTIONS(80), 1, - anon_sym_CARET, - ACTIONS(84), 1, - anon_sym_SLASH, - ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_LBRACK, STATE(25), 1, sym_array_bracket_expression, @@ -3891,46 +3946,47 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(82), 3, + ACTIONS(86), 5, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, + anon_sym_SLASH, anon_sym_EQ, - ACTIONS(72), 15, - anon_sym_DASH_GT, + ACTIONS(84), 19, anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [218] = 14, - ACTIONS(74), 1, + [224] = 13, + ACTIONS(70), 1, anon_sym_PLUS, - ACTIONS(76), 1, + ACTIONS(72), 1, anon_sym_DASH, - ACTIONS(80), 1, - anon_sym_CARET, - ACTIONS(84), 1, + ACTIONS(78), 1, anon_sym_SLASH, - ACTIONS(86), 1, + ACTIONS(80), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_LBRACK, - ACTIONS(90), 1, + ACTIONS(88), 1, anon_sym_PIPE, - ACTIONS(92), 1, - anon_sym_AMP, + ACTIONS(90), 1, + anon_sym_CARET, STATE(25), 1, sym_array_bracket_expression, STATE(26), 1, @@ -3938,42 +3994,45 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 2, + ACTIONS(74), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(82), 3, + ACTIONS(76), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(72), 13, - anon_sym_DASH_GT, + ACTIONS(68), 14, anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_RPAREN, anon_sym_RBRACK, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [277] = 13, - ACTIONS(74), 1, + [281] = 14, + ACTIONS(70), 1, anon_sym_PLUS, - ACTIONS(76), 1, + ACTIONS(72), 1, anon_sym_DASH, - ACTIONS(80), 1, - anon_sym_CARET, - ACTIONS(84), 1, + ACTIONS(78), 1, anon_sym_SLASH, - ACTIONS(86), 1, + ACTIONS(80), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_LBRACK, - ACTIONS(90), 1, + ACTIONS(88), 1, anon_sym_PIPE, + ACTIONS(90), 1, + anon_sym_CARET, + ACTIONS(92), 1, + anon_sym_AMP, STATE(25), 1, sym_array_bracket_expression, STATE(26), 1, @@ -3981,39 +4040,40 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 2, + ACTIONS(74), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(82), 3, + ACTIONS(76), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(72), 14, - anon_sym_DASH_GT, + ACTIONS(68), 13, anon_sym_COMMA, - anon_sym_AMP, + anon_sym_DASH_GT, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_RPAREN, anon_sym_RBRACK, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [334] = 11, - ACTIONS(74), 1, + [340] = 12, + ACTIONS(70), 1, anon_sym_PLUS, - ACTIONS(76), 1, + ACTIONS(72), 1, anon_sym_DASH, - ACTIONS(84), 1, + ACTIONS(78), 1, anon_sym_SLASH, - ACTIONS(86), 1, + ACTIONS(80), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_LBRACK, + ACTIONS(90), 1, + anon_sym_CARET, STATE(25), 1, sym_array_bracket_expression, STATE(26), 1, @@ -4021,36 +4081,35 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 2, + ACTIONS(74), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(82), 3, + ACTIONS(76), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(72), 16, - anon_sym_DASH_GT, + ACTIONS(68), 15, anon_sym_COMMA, + anon_sym_DASH_GT, anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_RPAREN, anon_sym_RBRACK, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [387] = 9, - ACTIONS(84), 1, + [395] = 9, + ACTIONS(78), 1, anon_sym_SLASH, - ACTIONS(86), 1, + ACTIONS(80), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_LBRACK, STATE(25), 1, sym_array_bracket_expression, @@ -4059,17 +4118,17 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 2, + ACTIONS(74), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(82), 4, + ACTIONS(76), 4, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(72), 17, - anon_sym_DASH_GT, + ACTIONS(68), 17, anon_sym_COMMA, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_PIPE, anon_sym_AMP, @@ -4080,15 +4139,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_RPAREN, anon_sym_RBRACK, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [436] = 7, - ACTIONS(86), 1, + [444] = 7, + ACTIONS(80), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_LBRACK, STATE(25), 1, sym_array_bracket_expression, @@ -4097,15 +4156,15 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(96), 5, + ACTIONS(76), 5, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_EQ, - ACTIONS(94), 19, - anon_sym_DASH_GT, + ACTIONS(68), 19, anon_sym_COMMA, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4118,32 +4177,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [481] = 7, - ACTIONS(86), 1, - anon_sym_LPAREN, - ACTIONS(88), 1, - anon_sym_LBRACK, - STATE(25), 1, - sym_array_bracket_expression, - STATE(26), 1, - sym_parenthesis_expression_list, + [489] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(82), 5, + ACTIONS(94), 7, + sym_identifier, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_EQ, - ACTIONS(72), 19, - anon_sym_DASH_GT, + anon_sym_in, + ACTIONS(96), 21, anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4154,12 +4208,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, [526] = 15, ACTIONS(11), 1, @@ -4172,15 +4227,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_reg, ACTIONS(29), 1, anon_sym_initial, - STATE(32), 1, - sym_write_modifiers, STATE(35), 1, + sym_write_modifiers, + STATE(36), 1, sym_global_identifier, - STATE(60), 1, + STATE(63), 1, aux_sym_write_modifiers_repeat1, - STATE(111), 1, + STATE(121), 1, sym_assign_to, - STATE(112), 1, + STATE(125), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -4188,10 +4243,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - STATE(120), 2, + STATE(130), 2, sym_array_type, sym__type, - STATE(31), 6, + STATE(33), 6, sym_unary_op, sym_binary_op, sym_array_op, @@ -4219,8 +4274,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_in, ACTIONS(100), 20, - anon_sym_DASH_GT, anon_sym_COMMA, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4235,7 +4290,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4250,8 +4305,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_EQ, ACTIONS(102), 21, - anon_sym_DASH_GT, anon_sym_COMMA, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4266,7 +4321,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, @@ -4282,8 +4337,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_EQ, ACTIONS(106), 21, - anon_sym_DASH_GT, anon_sym_COMMA, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4298,7 +4353,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, @@ -4314,8 +4369,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_EQ, ACTIONS(110), 21, - anon_sym_DASH_GT, anon_sym_COMMA, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4330,7 +4385,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, @@ -4346,8 +4401,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_EQ, ACTIONS(114), 21, - anon_sym_DASH_GT, anon_sym_COMMA, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4362,7 +4417,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, @@ -4378,8 +4433,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_EQ, ACTIONS(118), 21, - anon_sym_DASH_GT, anon_sym_COMMA, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4394,7 +4449,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, @@ -4410,8 +4465,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_EQ, ACTIONS(122), 21, - anon_sym_DASH_GT, anon_sym_COMMA, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4426,26 +4481,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, [832] = 16, - ACTIONS(74), 1, + ACTIONS(70), 1, anon_sym_PLUS, - ACTIONS(76), 1, + ACTIONS(72), 1, anon_sym_DASH, - ACTIONS(80), 1, - anon_sym_CARET, - ACTIONS(84), 1, + ACTIONS(78), 1, anon_sym_SLASH, - ACTIONS(86), 1, + ACTIONS(80), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_LBRACK, - ACTIONS(90), 1, + ACTIONS(88), 1, anon_sym_PIPE, + ACTIONS(90), 1, + anon_sym_CARET, ACTIONS(92), 1, anon_sym_AMP, ACTIONS(132), 1, @@ -4457,7 +4512,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 2, + ACTIONS(74), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(130), 2, @@ -4469,101 +4524,139 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, ACTIONS(126), 6, - anon_sym_DASH_GT, anon_sym_COMMA, - aux_sym__at_least_one_newline_token1, + anon_sym_DASH_GT, + aux_sym__linebreak_token1, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, - [892] = 15, - ACTIONS(80), 1, - anon_sym_CARET, - ACTIONS(84), 1, - anon_sym_SLASH, - ACTIONS(86), 1, - anon_sym_LPAREN, - ACTIONS(88), 1, - anon_sym_LBRACK, - ACTIONS(90), 1, - anon_sym_PIPE, - ACTIONS(92), 1, - anon_sym_AMP, - ACTIONS(136), 1, - anon_sym_EQ, - STATE(25), 1, - sym_array_bracket_expression, - STATE(26), 1, - sym_parenthesis_expression_list, + [892] = 5, + ACTIONS(138), 1, + aux_sym__linebreak_token1, + STATE(31), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(78), 2, - anon_sym_STAR, - anon_sym_PERCENT, + ACTIONS(136), 9, + anon_sym_module, + sym_identifier, + anon_sym_state, + anon_sym_gen, + anon_sym_DASH, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + ACTIONS(134), 12, + ts_builtin_sym_end, + anon_sym_DASH_GT, + sym_number, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + [928] = 17, + ACTIONS(78), 1, + anon_sym_SLASH, + ACTIONS(80), 1, + anon_sym_LPAREN, + ACTIONS(82), 1, + anon_sym_LBRACK, + ACTIONS(88), 1, + anon_sym_PIPE, + ACTIONS(90), 1, + anon_sym_CARET, + ACTIONS(92), 1, + anon_sym_AMP, + ACTIONS(141), 1, + anon_sym_COMMA, + ACTIONS(143), 1, + anon_sym_RPAREN, + STATE(25), 1, + sym_array_bracket_expression, + STATE(26), 1, + sym_parenthesis_expression_list, + STATE(49), 1, + sym__comma, + STATE(114), 1, + aux_sym_parenthesis_expression_list_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(70), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(74), 2, + anon_sym_STAR, + anon_sym_PERCENT, ACTIONS(130), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(134), 3, - anon_sym_COMMA, - aux_sym__at_least_one_newline_token1, - anon_sym_RBRACE, ACTIONS(128), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [947] = 10, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(19), 1, + [987] = 15, + ACTIONS(78), 1, + anon_sym_SLASH, + ACTIONS(80), 1, anon_sym_LPAREN, - ACTIONS(138), 1, - sym_number, - STATE(35), 1, - sym_global_identifier, - STATE(86), 1, - sym_declaration, + ACTIONS(82), 1, + anon_sym_LBRACK, + ACTIONS(88), 1, + anon_sym_PIPE, + ACTIONS(90), 1, + anon_sym_CARET, + ACTIONS(92), 1, + anon_sym_AMP, + ACTIONS(147), 1, + anon_sym_EQ, + STATE(25), 1, + sym_array_bracket_expression, + STATE(26), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(15), 2, - anon_sym_state, - anon_sym_gen, - STATE(120), 2, - sym_array_type, - sym__type, - STATE(33), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(17), 7, + ACTIONS(70), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(74), 2, anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - [992] = 15, - ACTIONS(80), 1, - anon_sym_CARET, - ACTIONS(84), 1, + anon_sym_PERCENT, + ACTIONS(130), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(145), 3, + anon_sym_COMMA, + aux_sym__linebreak_token1, + anon_sym_RBRACE, + ACTIONS(128), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [1042] = 15, + ACTIONS(78), 1, anon_sym_SLASH, - ACTIONS(86), 1, + ACTIONS(80), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_LBRACK, - ACTIONS(90), 1, + ACTIONS(88), 1, anon_sym_PIPE, + ACTIONS(90), 1, + anon_sym_CARET, ACTIONS(92), 1, anon_sym_AMP, - ACTIONS(142), 1, + ACTIONS(151), 1, anon_sym_EQ, STATE(25), 1, sym_array_bracket_expression, @@ -4572,44 +4665,52 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, + ACTIONS(70), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(74), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(130), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(140), 3, + ACTIONS(149), 3, anon_sym_COMMA, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_RBRACE, ACTIONS(128), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1047] = 5, - ACTIONS(148), 1, - aux_sym__at_least_one_newline_token1, - STATE(34), 1, - aux_sym__at_least_one_newline, + [1097] = 10, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(153), 1, + sym_number, + STATE(36), 1, + sym_global_identifier, + STATE(97), 1, + sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(146), 8, - anon_sym_module, - sym_identifier, + ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - ACTIONS(144), 12, - ts_builtin_sym_end, - sym_number, + STATE(130), 2, + sym_array_type, + sym__type, + STATE(34), 6, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_parenthesis_expression, + sym__expression, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4617,23 +4718,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1082] = 5, - ACTIONS(151), 1, + [1142] = 5, + ACTIONS(155), 1, sym_identifier, - ACTIONS(157), 1, + ACTIONS(161), 1, anon_sym_LBRACK, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(155), 4, + ACTIONS(159), 4, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_EQ, - ACTIONS(153), 15, + ACTIONS(157), 15, anon_sym_COMMA, anon_sym_PLUS, anon_sym_DASH, @@ -4647,59 +4745,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_RBRACE, - [1116] = 16, - ACTIONS(80), 1, - anon_sym_CARET, - ACTIONS(84), 1, + [1176] = 14, + ACTIONS(78), 1, anon_sym_SLASH, - ACTIONS(86), 1, - anon_sym_LPAREN, - ACTIONS(88), 1, - anon_sym_LBRACK, - ACTIONS(90), 1, - anon_sym_PIPE, - ACTIONS(92), 1, - anon_sym_AMP, - ACTIONS(160), 1, - anon_sym_COMMA, - ACTIONS(162), 1, - anon_sym_RPAREN, - STATE(25), 1, - sym_array_bracket_expression, - STATE(26), 1, - sym_parenthesis_expression_list, - STATE(122), 1, - aux_sym_parenthesis_expression_list_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(74), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(78), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(130), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(128), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [1172] = 14, ACTIONS(80), 1, - anon_sym_CARET, - ACTIONS(84), 1, - anon_sym_SLASH, - ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_LBRACK, - ACTIONS(90), 1, + ACTIONS(88), 1, anon_sym_PIPE, + ACTIONS(90), 1, + anon_sym_CARET, ACTIONS(92), 1, anon_sym_AMP, STATE(25), 1, @@ -4709,51 +4767,51 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, + ACTIONS(70), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(74), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(130), 2, anon_sym_LT, anon_sym_GT, ACTIONS(164), 2, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_RBRACE, ACTIONS(128), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1223] = 15, + [1227] = 15, ACTIONS(23), 1, anon_sym_LBRACE, - ACTIONS(80), 1, - anon_sym_CARET, - ACTIONS(84), 1, + ACTIONS(78), 1, anon_sym_SLASH, - ACTIONS(86), 1, + ACTIONS(80), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_LBRACK, - ACTIONS(90), 1, + ACTIONS(88), 1, anon_sym_PIPE, + ACTIONS(90), 1, + anon_sym_CARET, ACTIONS(92), 1, anon_sym_AMP, STATE(25), 1, sym_array_bracket_expression, STATE(26), 1, sym_parenthesis_expression_list, - STATE(119), 1, + STATE(134), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, + ACTIONS(70), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(74), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(130), 2, @@ -4764,96 +4822,96 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1276] = 15, - ACTIONS(23), 1, - anon_sym_LBRACE, - ACTIONS(80), 1, - anon_sym_CARET, - ACTIONS(84), 1, + [1280] = 14, + ACTIONS(78), 1, anon_sym_SLASH, - ACTIONS(86), 1, + ACTIONS(80), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_LBRACK, - ACTIONS(90), 1, + ACTIONS(88), 1, anon_sym_PIPE, + ACTIONS(90), 1, + anon_sym_CARET, ACTIONS(92), 1, anon_sym_AMP, STATE(25), 1, sym_array_bracket_expression, STATE(26), 1, sym_parenthesis_expression_list, - STATE(130), 1, - sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, + ACTIONS(70), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(74), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(130), 2, anon_sym_LT, anon_sym_GT, + ACTIONS(166), 2, + anon_sym_COMMA, + anon_sym_RPAREN, ACTIONS(128), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1329] = 14, - ACTIONS(80), 1, - anon_sym_CARET, - ACTIONS(84), 1, + [1331] = 15, + ACTIONS(23), 1, + anon_sym_LBRACE, + ACTIONS(78), 1, anon_sym_SLASH, - ACTIONS(86), 1, + ACTIONS(80), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_LBRACK, - ACTIONS(90), 1, + ACTIONS(88), 1, anon_sym_PIPE, + ACTIONS(90), 1, + anon_sym_CARET, ACTIONS(92), 1, anon_sym_AMP, STATE(25), 1, sym_array_bracket_expression, STATE(26), 1, sym_parenthesis_expression_list, + STATE(144), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, + ACTIONS(70), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(74), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(130), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(166), 2, - anon_sym_COMMA, - anon_sym_RPAREN, ACTIONS(128), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1380] = 14, - ACTIONS(80), 1, - anon_sym_CARET, - ACTIONS(84), 1, + [1384] = 14, + ACTIONS(78), 1, anon_sym_SLASH, - ACTIONS(86), 1, + ACTIONS(80), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_LBRACK, - ACTIONS(90), 1, + ACTIONS(88), 1, anon_sym_PIPE, + ACTIONS(90), 1, + anon_sym_CARET, ACTIONS(92), 1, anon_sym_AMP, ACTIONS(168), 1, - anon_sym_RPAREN, + anon_sym_DOT_DOT, STATE(25), 1, sym_array_bracket_expression, STATE(26), 1, @@ -4861,10 +4919,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, + ACTIONS(70), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(74), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(130), 2, @@ -4875,21 +4933,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1430] = 14, - ACTIONS(80), 1, - anon_sym_CARET, - ACTIONS(84), 1, + [1434] = 14, + ACTIONS(78), 1, anon_sym_SLASH, - ACTIONS(86), 1, + ACTIONS(80), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_LBRACK, - ACTIONS(90), 1, + ACTIONS(88), 1, anon_sym_PIPE, + ACTIONS(90), 1, + anon_sym_CARET, ACTIONS(92), 1, anon_sym_AMP, ACTIONS(170), 1, - anon_sym_DOT_DOT, + anon_sym_RPAREN, STATE(25), 1, sym_array_bracket_expression, STATE(26), 1, @@ -4897,10 +4955,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, + ACTIONS(70), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(74), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(130), 2, @@ -4911,17 +4969,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1480] = 14, - ACTIONS(80), 1, - anon_sym_CARET, - ACTIONS(84), 1, + [1484] = 14, + ACTIONS(78), 1, anon_sym_SLASH, - ACTIONS(86), 1, + ACTIONS(80), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_LBRACK, - ACTIONS(90), 1, + ACTIONS(88), 1, anon_sym_PIPE, + ACTIONS(90), 1, + anon_sym_CARET, ACTIONS(92), 1, anon_sym_AMP, ACTIONS(172), 1, @@ -4933,10 +4991,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, + ACTIONS(70), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(74), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(130), 2, @@ -4947,7 +5005,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1530] = 7, + [1534] = 7, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(174), 1, @@ -4967,7 +5025,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(36), 7, + STATE(32), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -4975,7 +5033,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1565] = 6, + [1569] = 6, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(174), 1, @@ -4993,7 +5051,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(21), 7, + STATE(14), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5001,7 +5059,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1597] = 6, + [1601] = 6, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(174), 1, @@ -5019,7 +5077,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(40), 7, + STATE(37), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5027,7 +5085,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1629] = 6, + [1633] = 6, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(174), 1, @@ -5045,7 +5103,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(39), 7, + STATE(40), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5053,7 +5111,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1661] = 6, + [1665] = 6, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(174), 1, @@ -5079,7 +5137,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1693] = 6, + [1697] = 6, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(174), 1, @@ -5097,7 +5155,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(37), 7, + STATE(39), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5105,7 +5163,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1725] = 6, + [1729] = 6, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(174), 1, @@ -5123,7 +5181,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(42), 7, + STATE(41), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5131,7 +5189,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1757] = 6, + [1761] = 6, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(174), 1, @@ -5149,7 +5207,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(43), 7, + STATE(15), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5157,7 +5215,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1789] = 6, + [1793] = 6, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(174), 1, @@ -5175,7 +5233,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(20), 7, + STATE(17), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5183,7 +5241,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1821] = 6, + [1825] = 6, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(174), 1, @@ -5201,7 +5259,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(41), 7, + STATE(43), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5209,7 +5267,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1853] = 6, + [1857] = 6, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(174), 1, @@ -5227,7 +5285,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(16), 7, + STATE(42), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5235,7 +5293,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1885] = 6, + [1889] = 6, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(174), 1, @@ -5253,7 +5311,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(18), 7, + STATE(16), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5261,7 +5319,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1917] = 6, + [1921] = 6, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(174), 1, @@ -5279,7 +5337,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(38), 7, + STATE(18), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5287,7 +5345,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1949] = 6, + [1953] = 6, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(174), 1, @@ -5305,7 +5363,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(17), 7, + STATE(20), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5313,7 +5371,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [1981] = 6, + [1985] = 6, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(174), 1, @@ -5331,7 +5389,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(15), 7, + STATE(19), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5339,7 +5397,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [2013] = 6, + [2017] = 6, ACTIONS(19), 1, anon_sym_LPAREN, ACTIONS(174), 1, @@ -5357,7 +5415,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(19), 7, + STATE(38), 7, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5365,18 +5423,20 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_parenthesis_expression, sym__expression, - [2045] = 5, - ACTIONS(27), 1, - anon_sym_reg, - STATE(61), 1, - aux_sym_write_modifiers_repeat1, + [2049] = 5, + ACTIONS(21), 1, + aux_sym__linebreak_token1, + STATE(31), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(210), 3, + ACTIONS(210), 5, sym_identifier, anon_sym_state, anon_sym_gen, + anon_sym_reg, + anon_sym_initial, ACTIONS(212), 9, sym_number, anon_sym_PLUS, @@ -5387,18 +5447,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2072] = 5, + [2078] = 5, ACTIONS(218), 1, - anon_sym_reg, - STATE(61), 1, - aux_sym_write_modifiers_repeat1, + aux_sym__linebreak_token1, + STATE(60), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(214), 3, + ACTIONS(214), 5, sym_identifier, anon_sym_state, anon_sym_gen, + anon_sym_reg, + anon_sym_initial, ACTIONS(216), 9, sym_number, anon_sym_PLUS, @@ -5409,16 +5471,41 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2099] = 3, + [2107] = 5, + ACTIONS(224), 1, + anon_sym_reg, + STATE(62), 1, + aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(221), 4, + ACTIONS(220), 3, sym_identifier, anon_sym_state, anon_sym_gen, + ACTIONS(222), 9, + sym_number, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + [2134] = 5, + ACTIONS(27), 1, anon_sym_reg, - ACTIONS(223), 9, + STATE(62), 1, + aux_sym_write_modifiers_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(227), 3, + sym_identifier, + anon_sym_state, + anon_sym_gen, + ACTIONS(229), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -5428,15 +5515,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2121] = 3, + [2161] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(225), 3, + ACTIONS(231), 4, sym_identifier, anon_sym_state, anon_sym_gen, - ACTIONS(227), 9, + anon_sym_reg, + ACTIONS(233), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -5446,16 +5534,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2142] = 8, + [2183] = 10, ACTIONS(11), 1, sym_identifier, - ACTIONS(229), 1, + ACTIONS(21), 1, + aux_sym__linebreak_token1, + ACTIONS(235), 1, anon_sym_DASH_GT, - ACTIONS(231), 1, + ACTIONS(237), 1, anon_sym_LBRACE, - STATE(115), 1, + STATE(31), 1, + aux_sym__linebreak, + STATE(93), 1, sym_declaration, - STATE(132), 1, + STATE(143), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, @@ -5463,48 +5555,147 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - STATE(120), 3, + STATE(130), 3, sym_global_identifier, sym_array_type, sym__type, - [2171] = 4, - ACTIONS(235), 1, - anon_sym_SQUOTE, - STATE(71), 1, - sym_latency_specifier, + [2218] = 10, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(239), 1, + anon_sym_DASH_GT, + ACTIONS(241), 1, + aux_sym__linebreak_token1, + ACTIONS(243), 1, + anon_sym_LBRACE, + STATE(65), 1, + aux_sym__linebreak, + STATE(93), 1, + sym_declaration, + STATE(137), 1, + sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(233), 7, - anon_sym_DASH_GT, - anon_sym_COMMA, - aux_sym__at_least_one_newline_token1, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, - [2191] = 4, - ACTIONS(235), 1, - anon_sym_SQUOTE, + ACTIONS(15), 2, + anon_sym_state, + anon_sym_gen, + STATE(130), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [2253] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(245), 3, + sym_identifier, + anon_sym_state, + anon_sym_gen, + ACTIONS(247), 9, + sym_number, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + [2274] = 8, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(249), 1, + aux_sym__linebreak_token1, + STATE(69), 1, + aux_sym__linebreak, + STATE(93), 1, + sym_declaration, + STATE(154), 1, + sym_declaration_list, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(15), 2, + anon_sym_state, + anon_sym_gen, + STATE(130), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [2303] = 8, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(21), 1, + aux_sym__linebreak_token1, + STATE(31), 1, + aux_sym__linebreak, + STATE(93), 1, + sym_declaration, + STATE(145), 1, + sym_declaration_list, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(15), 2, + anon_sym_state, + anon_sym_gen, + STATE(130), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [2332] = 8, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(251), 1, + aux_sym__linebreak_token1, + STATE(73), 1, + aux_sym__linebreak, + STATE(93), 1, + sym_declaration, + STATE(147), 1, + sym_declaration_list, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(15), 2, + anon_sym_state, + anon_sym_gen, + STATE(130), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [2361] = 8, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(253), 1, + aux_sym__linebreak_token1, STATE(72), 1, - sym_latency_specifier, + aux_sym__linebreak, + STATE(93), 1, + sym_declaration, + STATE(149), 1, + sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(237), 7, - anon_sym_DASH_GT, - anon_sym_COMMA, - aux_sym__at_least_one_newline_token1, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, - [2211] = 6, + ACTIONS(15), 2, + anon_sym_state, + anon_sym_gen, + STATE(130), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [2390] = 8, ACTIONS(11), 1, sym_identifier, - STATE(115), 1, + ACTIONS(21), 1, + aux_sym__linebreak_token1, + STATE(31), 1, + aux_sym__linebreak, + STATE(93), 1, sym_declaration, - STATE(135), 1, + STATE(148), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, @@ -5512,16 +5703,20 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - STATE(120), 3, + STATE(130), 3, sym_global_identifier, sym_array_type, sym__type, - [2234] = 6, + [2419] = 8, ACTIONS(11), 1, sym_identifier, - STATE(115), 1, + ACTIONS(21), 1, + aux_sym__linebreak_token1, + STATE(31), 1, + aux_sym__linebreak, + STATE(93), 1, sym_declaration, - STATE(138), 1, + STATE(150), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, @@ -5529,737 +5724,865 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - STATE(120), 3, + STATE(130), 3, sym_global_identifier, sym_array_type, sym__type, - [2257] = 5, + [2448] = 8, ACTIONS(11), 1, sym_identifier, - STATE(123), 1, + ACTIONS(21), 1, + aux_sym__linebreak_token1, + STATE(31), 1, + aux_sym__linebreak, + STATE(93), 1, sym_declaration, + STATE(146), 1, + sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - STATE(120), 3, + STATE(130), 3, sym_global_identifier, sym_array_type, sym__type, - [2277] = 5, + [2477] = 8, ACTIONS(11), 1, sym_identifier, - STATE(136), 1, + ACTIONS(255), 1, + aux_sym__linebreak_token1, + STATE(74), 1, + aux_sym__linebreak, + STATE(93), 1, sym_declaration, + STATE(148), 1, + sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - STATE(120), 3, + STATE(130), 3, sym_global_identifier, sym_array_type, sym__type, - [2297] = 2, + [2506] = 4, + ACTIONS(259), 1, + anon_sym_SQUOTE, + STATE(80), 1, + sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(239), 7, + ACTIONS(257), 7, + anon_sym_COMMA, anon_sym_DASH_GT, + aux_sym__linebreak_token1, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + [2526] = 4, + ACTIONS(259), 1, + anon_sym_SQUOTE, + STATE(79), 1, + sym_latency_specifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(261), 7, anon_sym_COMMA, - aux_sym__at_least_one_newline_token1, + anon_sym_DASH_GT, + aux_sym__linebreak_token1, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, - [2311] = 2, + [2546] = 5, + ACTIONS(11), 1, + sym_identifier, + STATE(152), 1, + sym_declaration, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(15), 2, + anon_sym_state, + anon_sym_gen, + STATE(130), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [2566] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(241), 7, + ACTIONS(263), 7, + anon_sym_COMMA, anon_sym_DASH_GT, + aux_sym__linebreak_token1, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + [2580] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(265), 7, anon_sym_COMMA, - aux_sym__at_least_one_newline_token1, + anon_sym_DASH_GT, + aux_sym__linebreak_token1, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, - [2325] = 6, - ACTIONS(243), 1, - aux_sym__at_least_one_newline_token1, - ACTIONS(245), 1, + [2594] = 5, + ACTIONS(11), 1, + sym_identifier, + STATE(132), 1, + sym_declaration, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(15), 2, + anon_sym_state, + anon_sym_gen, + STATE(130), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [2614] = 5, + ACTIONS(141), 1, + anon_sym_COMMA, + STATE(22), 1, + sym__comma, + STATE(83), 1, + aux_sym_assign_left_side_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(267), 3, + aux_sym__linebreak_token1, anon_sym_RBRACE, - ACTIONS(247), 1, anon_sym_EQ, - STATE(7), 1, - aux_sym__at_least_one_newline, - STATE(104), 1, - aux_sym_block_repeat1, + [2633] = 5, + ACTIONS(141), 1, + anon_sym_COMMA, + STATE(22), 1, + sym__comma, + STATE(84), 1, + aux_sym_assign_left_side_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(269), 3, + aux_sym__linebreak_token1, + anon_sym_RBRACE, + anon_sym_EQ, + [2652] = 5, + ACTIONS(271), 1, + anon_sym_COMMA, + STATE(22), 1, + sym__comma, + STATE(84), 1, + aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2345] = 6, + ACTIONS(274), 3, + aux_sym__linebreak_token1, + anon_sym_RBRACE, + anon_sym_EQ, + [2671] = 6, ACTIONS(7), 1, anon_sym_module, ACTIONS(21), 1, - aux_sym__at_least_one_newline_token1, - ACTIONS(249), 1, + aux_sym__linebreak_token1, + ACTIONS(276), 1, ts_builtin_sym_end, - STATE(34), 1, - aux_sym__at_least_one_newline, - STATE(126), 1, + STATE(31), 1, + aux_sym__linebreak, + STATE(136), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2365] = 6, + [2691] = 6, ACTIONS(7), 1, anon_sym_module, ACTIONS(21), 1, - aux_sym__at_least_one_newline_token1, - ACTIONS(251), 1, + aux_sym__linebreak_token1, + ACTIONS(278), 1, ts_builtin_sym_end, - STATE(34), 1, - aux_sym__at_least_one_newline, - STATE(126), 1, + STATE(31), 1, + aux_sym__linebreak, + STATE(136), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2385] = 6, + [2711] = 6, ACTIONS(7), 1, anon_sym_module, ACTIONS(21), 1, - aux_sym__at_least_one_newline_token1, - ACTIONS(253), 1, + aux_sym__linebreak_token1, + ACTIONS(280), 1, + ts_builtin_sym_end, + STATE(31), 1, + aux_sym__linebreak, + STATE(136), 1, + sym_module, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2731] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(21), 1, + aux_sym__linebreak_token1, + ACTIONS(282), 1, + ts_builtin_sym_end, + STATE(31), 1, + aux_sym__linebreak, + STATE(136), 1, + sym_module, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2751] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(21), 1, + aux_sym__linebreak_token1, + ACTIONS(284), 1, ts_builtin_sym_end, - STATE(34), 1, - aux_sym__at_least_one_newline, - STATE(126), 1, + STATE(31), 1, + aux_sym__linebreak, + STATE(112), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2405] = 4, - ACTIONS(255), 1, - anon_sym_COMMA, - STATE(80), 1, - aux_sym_assign_left_side_repeat1, + [2771] = 6, + ACTIONS(286), 1, + aux_sym__linebreak_token1, + ACTIONS(288), 1, + anon_sym_RBRACE, + ACTIONS(290), 1, + anon_sym_EQ, + STATE(4), 1, + aux_sym__linebreak, + STATE(100), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(257), 3, - aux_sym__at_least_one_newline_token1, - anon_sym_RBRACE, + [2791] = 6, + ACTIONS(290), 1, anon_sym_EQ, - [2421] = 6, - ACTIONS(247), 1, - anon_sym_EQ, - ACTIONS(259), 1, - aux_sym__at_least_one_newline_token1, - ACTIONS(261), 1, + ACTIONS(292), 1, + aux_sym__linebreak_token1, + ACTIONS(294), 1, anon_sym_RBRACE, STATE(2), 1, - aux_sym__at_least_one_newline, - STATE(90), 1, + aux_sym__linebreak, + STATE(96), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2441] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(21), 1, - aux_sym__at_least_one_newline_token1, - ACTIONS(263), 1, - ts_builtin_sym_end, - STATE(34), 1, - aux_sym__at_least_one_newline, - STATE(126), 1, - sym_module, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [2461] = 4, - ACTIONS(265), 1, + [2811] = 5, + ACTIONS(296), 1, anon_sym_COMMA, - STATE(80), 1, - aux_sym_assign_left_side_repeat1, + STATE(81), 1, + sym__comma, + STATE(92), 1, + aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(268), 3, - aux_sym__at_least_one_newline_token1, - anon_sym_RBRACE, - anon_sym_EQ, - [2477] = 4, - ACTIONS(255), 1, + ACTIONS(299), 2, + anon_sym_DASH_GT, + anon_sym_LBRACE, + [2829] = 5, + ACTIONS(141), 1, anon_sym_COMMA, - STATE(77), 1, - aux_sym_assign_left_side_repeat1, + STATE(81), 1, + sym__comma, + STATE(94), 1, + aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(270), 3, - aux_sym__at_least_one_newline_token1, - anon_sym_RBRACE, - anon_sym_EQ, - [2493] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(21), 1, - aux_sym__at_least_one_newline_token1, - ACTIONS(272), 1, - ts_builtin_sym_end, - STATE(34), 1, - aux_sym__at_least_one_newline, - STATE(98), 1, - sym_module, + ACTIONS(301), 2, + anon_sym_DASH_GT, + anon_sym_LBRACE, + [2847] = 5, + ACTIONS(141), 1, + anon_sym_COMMA, + STATE(81), 1, + sym__comma, + STATE(92), 1, + aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2513] = 5, - ACTIONS(243), 1, - aux_sym__at_least_one_newline_token1, - ACTIONS(245), 1, + ACTIONS(303), 2, + anon_sym_DASH_GT, + anon_sym_LBRACE, + [2865] = 5, + ACTIONS(305), 1, + aux_sym__linebreak_token1, + ACTIONS(307), 1, anon_sym_RBRACE, - STATE(7), 1, - aux_sym__at_least_one_newline, - STATE(103), 1, + STATE(3), 1, + aux_sym__linebreak, + STATE(120), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2530] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(274), 4, - ts_builtin_sym_end, - aux_sym__at_least_one_newline_token1, - anon_sym_RBRACE, - anon_sym_else, - [2541] = 5, - ACTIONS(276), 1, - aux_sym__at_least_one_newline_token1, - ACTIONS(278), 1, + [2882] = 5, + ACTIONS(309), 1, + aux_sym__linebreak_token1, + ACTIONS(311), 1, anon_sym_RBRACE, - STATE(3), 1, - aux_sym__at_least_one_newline, - STATE(110), 1, + STATE(5), 1, + aux_sym__linebreak, + STATE(120), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2558] = 2, + [2899] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(140), 4, + ACTIONS(149), 4, anon_sym_COMMA, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_RBRACE, anon_sym_EQ, - [2569] = 2, + [2910] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(280), 4, + ACTIONS(313), 4, ts_builtin_sym_end, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_RBRACE, anon_sym_else, - [2580] = 2, + [2921] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(282), 4, + ACTIONS(313), 4, ts_builtin_sym_end, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_RBRACE, anon_sym_else, - [2591] = 4, - ACTIONS(286), 1, - anon_sym_COMMA, - STATE(89), 1, - aux_sym_declaration_list_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(284), 2, - anon_sym_DASH_GT, - anon_sym_LBRACE, - [2606] = 5, - ACTIONS(289), 1, - aux_sym__at_least_one_newline_token1, - ACTIONS(291), 1, + [2932] = 5, + ACTIONS(315), 1, + aux_sym__linebreak_token1, + ACTIONS(317), 1, anon_sym_RBRACE, - STATE(4), 1, - aux_sym__at_least_one_newline, - STATE(110), 1, + STATE(6), 1, + aux_sym__linebreak, + STATE(120), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2623] = 2, + [2949] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(282), 4, + ACTIONS(319), 4, ts_builtin_sym_end, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_RBRACE, anon_sym_else, - [2634] = 5, - ACTIONS(293), 1, - ts_builtin_sym_end, - ACTIONS(295), 1, - aux_sym__at_least_one_newline_token1, - STATE(79), 1, - aux_sym__at_least_one_newline, - STATE(96), 1, - aux_sym_source_file_repeat1, + [2960] = 5, + ACTIONS(321), 1, + anon_sym_COMMA, + ACTIONS(324), 1, + anon_sym_RPAREN, + STATE(49), 1, + sym__comma, + STATE(102), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2651] = 2, + [2977] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(297), 4, + ACTIONS(326), 4, ts_builtin_sym_end, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_RBRACE, anon_sym_else, - [2662] = 5, - ACTIONS(23), 1, - anon_sym_LBRACE, - ACTIONS(299), 1, - anon_sym_COLON, - STATE(129), 1, - sym_block, - STATE(131), 1, - sym_interface_ports, + [2988] = 5, + ACTIONS(292), 1, + aux_sym__linebreak_token1, + ACTIONS(294), 1, + anon_sym_RBRACE, + STATE(2), 1, + aux_sym__linebreak, + STATE(113), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2679] = 4, - ACTIONS(303), 1, - anon_sym_COMMA, - STATE(89), 1, - aux_sym_declaration_list_repeat1, + [3005] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(301), 2, - anon_sym_DASH_GT, - anon_sym_LBRACE, - [2694] = 5, - ACTIONS(305), 1, + ACTIONS(328), 4, ts_builtin_sym_end, - ACTIONS(307), 1, - aux_sym__at_least_one_newline_token1, - STATE(75), 1, - aux_sym__at_least_one_newline, - STATE(107), 1, + aux_sym__linebreak_token1, + anon_sym_RBRACE, + anon_sym_else, + [3016] = 5, + ACTIONS(330), 1, + ts_builtin_sym_end, + ACTIONS(332), 1, + aux_sym__linebreak_token1, + STATE(87), 1, + aux_sym__linebreak, + STATE(108), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2711] = 2, + [3033] = 5, + ACTIONS(23), 1, + anon_sym_LBRACE, + ACTIONS(334), 1, + anon_sym_COLON, + STATE(135), 1, + sym_block, + STATE(138), 1, + sym_interface_ports, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(309), 4, - ts_builtin_sym_end, - aux_sym__at_least_one_newline_token1, - anon_sym_RBRACE, - anon_sym_else, - [2722] = 5, - ACTIONS(311), 1, + [3050] = 5, + ACTIONS(336), 1, ts_builtin_sym_end, - ACTIONS(313), 1, - aux_sym__at_least_one_newline_token1, - STATE(74), 1, - aux_sym__at_least_one_newline, - STATE(116), 1, + ACTIONS(338), 1, + aux_sym__linebreak_token1, + STATE(85), 1, + aux_sym__linebreak, + STATE(117), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2739] = 2, + [3067] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(309), 4, + ACTIONS(340), 4, ts_builtin_sym_end, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_RBRACE, anon_sym_else, - [2750] = 5, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(21), 1, - aux_sym__at_least_one_newline_token1, - STATE(34), 1, - aux_sym__at_least_one_newline, - STATE(126), 1, - sym_module, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [2767] = 2, + [3078] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(315), 4, + ACTIONS(342), 4, ts_builtin_sym_end, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_RBRACE, anon_sym_else, - [2778] = 2, + [3089] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(274), 4, + ACTIONS(344), 4, ts_builtin_sym_end, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_RBRACE, anon_sym_else, - [2789] = 5, - ACTIONS(317), 1, - aux_sym__at_least_one_newline_token1, - ACTIONS(319), 1, + [3100] = 5, + ACTIONS(346), 1, + ts_builtin_sym_end, + ACTIONS(348), 1, + aux_sym__linebreak_token1, + STATE(86), 1, + aux_sym__linebreak, + STATE(127), 1, + aux_sym_source_file_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [3117] = 5, + ACTIONS(350), 1, + aux_sym__linebreak_token1, + ACTIONS(352), 1, anon_sym_RBRACE, STATE(9), 1, - aux_sym__at_least_one_newline, - STATE(110), 1, + aux_sym__linebreak, + STATE(120), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2806] = 5, - ACTIONS(321), 1, - aux_sym__at_least_one_newline_token1, - ACTIONS(323), 1, - anon_sym_RBRACE, - STATE(6), 1, - aux_sym__at_least_one_newline, - STATE(110), 1, - aux_sym_block_repeat1, + [3134] = 5, + ACTIONS(141), 1, + anon_sym_COMMA, + ACTIONS(354), 1, + anon_sym_RPAREN, + STATE(49), 1, + sym__comma, + STATE(102), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2823] = 2, + [3151] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(325), 4, + ACTIONS(356), 4, ts_builtin_sym_end, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_RBRACE, anon_sym_else, - [2834] = 2, + [3162] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(327), 4, + ACTIONS(342), 4, ts_builtin_sym_end, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_RBRACE, anon_sym_else, - [2845] = 5, - ACTIONS(329), 1, + [3173] = 5, + ACTIONS(358), 1, ts_builtin_sym_end, - ACTIONS(331), 1, - aux_sym__at_least_one_newline_token1, - STATE(100), 1, - aux_sym__at_least_one_newline, - STATE(107), 1, + ACTIONS(360), 1, + aux_sym__linebreak_token1, + STATE(117), 1, aux_sym_source_file_repeat1, + STATE(119), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2862] = 2, + [3190] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(334), 4, + ACTIONS(363), 4, ts_builtin_sym_end, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_RBRACE, anon_sym_else, - [2873] = 5, - ACTIONS(259), 1, - aux_sym__at_least_one_newline_token1, - ACTIONS(261), 1, - anon_sym_RBRACE, - STATE(2), 1, - aux_sym__at_least_one_newline, - STATE(85), 1, - aux_sym_block_repeat1, + [3201] = 5, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(21), 1, + aux_sym__linebreak_token1, + STATE(31), 1, + aux_sym__linebreak, + STATE(136), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2890] = 5, - ACTIONS(336), 1, - aux_sym__at_least_one_newline_token1, - ACTIONS(339), 1, + [3218] = 5, + ACTIONS(365), 1, + aux_sym__linebreak_token1, + ACTIONS(368), 1, anon_sym_RBRACE, STATE(10), 1, - aux_sym__at_least_one_newline, - STATE(110), 1, + aux_sym__linebreak, + STATE(120), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2907] = 2, + [3235] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(341), 4, + ACTIONS(370), 4, anon_sym_COMMA, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_RBRACE, anon_sym_EQ, - [2918] = 2, + [3246] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(134), 4, - anon_sym_COMMA, - aux_sym__at_least_one_newline_token1, + ACTIONS(319), 4, + ts_builtin_sym_end, + aux_sym__linebreak_token1, anon_sym_RBRACE, - anon_sym_EQ, - [2929] = 2, + anon_sym_else, + [3257] = 5, + ACTIONS(286), 1, + aux_sym__linebreak_token1, + ACTIONS(288), 1, + anon_sym_RBRACE, + STATE(4), 1, + aux_sym__linebreak, + STATE(95), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(343), 4, - ts_builtin_sym_end, - aux_sym__at_least_one_newline_token1, - anon_sym_RBRACE, - anon_sym_else, - [2940] = 2, + [3274] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(334), 4, + ACTIONS(363), 4, ts_builtin_sym_end, - aux_sym__at_least_one_newline_token1, + aux_sym__linebreak_token1, anon_sym_RBRACE, anon_sym_else, - [2951] = 4, - ACTIONS(303), 1, + [3285] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(145), 4, anon_sym_COMMA, - STATE(95), 1, - aux_sym_declaration_list_repeat1, + aux_sym__linebreak_token1, + anon_sym_RBRACE, + anon_sym_EQ, + [3296] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(345), 2, - anon_sym_DASH_GT, - anon_sym_LBRACE, - [2966] = 5, - ACTIONS(347), 1, + ACTIONS(372), 4, + ts_builtin_sym_end, + aux_sym__linebreak_token1, + anon_sym_RBRACE, + anon_sym_else, + [3307] = 5, + ACTIONS(374), 1, ts_builtin_sym_end, - ACTIONS(349), 1, - aux_sym__at_least_one_newline_token1, - STATE(76), 1, - aux_sym__at_least_one_newline, - STATE(107), 1, + ACTIONS(376), 1, + aux_sym__linebreak_token1, + STATE(88), 1, + aux_sym__linebreak, + STATE(117), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2983] = 4, + [3324] = 3, + ACTIONS(174), 1, + sym_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(133), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [3337] = 4, ACTIONS(23), 1, anon_sym_LBRACE, - ACTIONS(351), 1, + ACTIONS(378), 1, anon_sym_if, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(133), 2, + STATE(141), 2, sym_block, sym_if_statement, - [2998] = 3, - ACTIONS(174), 1, + [3352] = 4, + ACTIONS(82), 1, + anon_sym_LBRACK, + ACTIONS(380), 1, sym_identifier, + STATE(142), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(124), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [3011] = 3, - ACTIONS(355), 1, - anon_sym_else, + [3366] = 3, + ACTIONS(290), 1, + anon_sym_EQ, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(353), 2, - aux_sym__at_least_one_newline_token1, + ACTIONS(382), 2, + aux_sym__linebreak_token1, anon_sym_RBRACE, - [3023] = 4, - ACTIONS(88), 1, + [3378] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(384), 3, + anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_LBRACE, + [3388] = 4, + ACTIONS(82), 1, anon_sym_LBRACK, - ACTIONS(357), 1, + ACTIONS(386), 1, sym_identifier, - STATE(134), 1, + STATE(142), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3037] = 3, - ACTIONS(247), 1, - anon_sym_EQ, + [3402] = 3, + ACTIONS(390), 1, + anon_sym_else, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(359), 2, - aux_sym__at_least_one_newline_token1, + ACTIONS(388), 2, + aux_sym__linebreak_token1, anon_sym_RBRACE, - [3049] = 4, - ACTIONS(160), 1, - anon_sym_COMMA, - ACTIONS(361), 1, - anon_sym_RPAREN, - STATE(125), 1, - aux_sym_parenthesis_expression_list_repeat1, + [3414] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3063] = 2, + ACTIONS(392), 2, + ts_builtin_sym_end, + aux_sym__linebreak_token1, + [3423] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(363), 3, + ACTIONS(394), 2, + ts_builtin_sym_end, + aux_sym__linebreak_token1, + [3432] = 3, + ACTIONS(396), 1, anon_sym_DASH_GT, - anon_sym_COMMA, + ACTIONS(398), 1, anon_sym_LBRACE, - [3073] = 4, - ACTIONS(88), 1, - anon_sym_LBRACK, - ACTIONS(365), 1, - sym_identifier, - STATE(134), 1, - sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3087] = 4, - ACTIONS(367), 1, - anon_sym_COMMA, - ACTIONS(370), 1, - anon_sym_RPAREN, - STATE(125), 1, - aux_sym_parenthesis_expression_list_repeat1, + [3443] = 3, + ACTIONS(23), 1, + anon_sym_LBRACE, + STATE(139), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3101] = 2, + [3454] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(372), 2, + ACTIONS(400), 2, ts_builtin_sym_end, - aux_sym__at_least_one_newline_token1, - [3110] = 2, + aux_sym__linebreak_token1, + [3463] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(359), 2, - aux_sym__at_least_one_newline_token1, + ACTIONS(382), 2, + aux_sym__linebreak_token1, anon_sym_RBRACE, - [3119] = 2, + [3472] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(374), 2, - ts_builtin_sym_end, - aux_sym__at_least_one_newline_token1, - [3128] = 2, + ACTIONS(402), 2, + aux_sym__linebreak_token1, + anon_sym_RBRACE, + [3481] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(376), 2, - ts_builtin_sym_end, - aux_sym__at_least_one_newline_token1, - [3137] = 2, + ACTIONS(404), 2, + sym_identifier, + anon_sym_LBRACK, + [3490] = 3, + ACTIONS(406), 1, + anon_sym_DASH_GT, + ACTIONS(408), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [3501] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(378), 2, - aux_sym__at_least_one_newline_token1, + ACTIONS(410), 2, + aux_sym__linebreak_token1, anon_sym_RBRACE, - [3146] = 3, - ACTIONS(23), 1, + [3510] = 2, + ACTIONS(412), 1, anon_sym_LBRACE, - STATE(128), 1, - sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3157] = 3, - ACTIONS(380), 1, - anon_sym_DASH_GT, - ACTIONS(382), 1, + [3518] = 2, + ACTIONS(414), 1, anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3168] = 2, + [3526] = 2, + ACTIONS(416), 1, + anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(384), 2, - aux_sym__at_least_one_newline_token1, - anon_sym_RBRACE, - [3177] = 2, + [3534] = 2, + ACTIONS(418), 1, + anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(386), 2, - sym_identifier, - anon_sym_LBRACK, - [3186] = 2, - ACTIONS(388), 1, + [3542] = 2, + ACTIONS(420), 1, anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3194] = 2, - ACTIONS(390), 1, - anon_sym_in, + [3550] = 2, + ACTIONS(422), 1, + anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3202] = 2, - ACTIONS(392), 1, + [3558] = 2, + ACTIONS(424), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3210] = 2, - ACTIONS(394), 1, - anon_sym_LBRACE, + [3566] = 2, + ACTIONS(426), 1, + anon_sym_in, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3218] = 2, - ACTIONS(396), 1, - ts_builtin_sym_end, + [3574] = 2, + ACTIONS(428), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3226] = 2, - ACTIONS(398), 1, - sym_identifier, + [3582] = 2, + ACTIONS(430), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [3590] = 2, + ACTIONS(432), 1, + ts_builtin_sym_end, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6270,13 +6593,13 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(12)] = 42, [SMALL_STATE(13)] = 84, [SMALL_STATE(14)] = 126, - [SMALL_STATE(15)] = 163, - [SMALL_STATE(16)] = 218, - [SMALL_STATE(17)] = 277, - [SMALL_STATE(18)] = 334, - [SMALL_STATE(19)] = 387, - [SMALL_STATE(20)] = 436, - [SMALL_STATE(21)] = 481, + [SMALL_STATE(15)] = 179, + [SMALL_STATE(16)] = 224, + [SMALL_STATE(17)] = 281, + [SMALL_STATE(18)] = 340, + [SMALL_STATE(19)] = 395, + [SMALL_STATE(20)] = 444, + [SMALL_STATE(21)] = 489, [SMALL_STATE(22)] = 526, [SMALL_STATE(23)] = 586, [SMALL_STATE(24)] = 622, @@ -6287,115 +6610,130 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(29)] = 797, [SMALL_STATE(30)] = 832, [SMALL_STATE(31)] = 892, - [SMALL_STATE(32)] = 947, - [SMALL_STATE(33)] = 992, - [SMALL_STATE(34)] = 1047, - [SMALL_STATE(35)] = 1082, - [SMALL_STATE(36)] = 1116, - [SMALL_STATE(37)] = 1172, - [SMALL_STATE(38)] = 1223, - [SMALL_STATE(39)] = 1276, - [SMALL_STATE(40)] = 1329, - [SMALL_STATE(41)] = 1380, - [SMALL_STATE(42)] = 1430, - [SMALL_STATE(43)] = 1480, - [SMALL_STATE(44)] = 1530, - [SMALL_STATE(45)] = 1565, - [SMALL_STATE(46)] = 1597, - [SMALL_STATE(47)] = 1629, - [SMALL_STATE(48)] = 1661, - [SMALL_STATE(49)] = 1693, - [SMALL_STATE(50)] = 1725, - [SMALL_STATE(51)] = 1757, - [SMALL_STATE(52)] = 1789, - [SMALL_STATE(53)] = 1821, - [SMALL_STATE(54)] = 1853, - [SMALL_STATE(55)] = 1885, - [SMALL_STATE(56)] = 1917, - [SMALL_STATE(57)] = 1949, - [SMALL_STATE(58)] = 1981, - [SMALL_STATE(59)] = 2013, - [SMALL_STATE(60)] = 2045, - [SMALL_STATE(61)] = 2072, - [SMALL_STATE(62)] = 2099, - [SMALL_STATE(63)] = 2121, - [SMALL_STATE(64)] = 2142, - [SMALL_STATE(65)] = 2171, - [SMALL_STATE(66)] = 2191, - [SMALL_STATE(67)] = 2211, - [SMALL_STATE(68)] = 2234, - [SMALL_STATE(69)] = 2257, - [SMALL_STATE(70)] = 2277, - [SMALL_STATE(71)] = 2297, - [SMALL_STATE(72)] = 2311, - [SMALL_STATE(73)] = 2325, - [SMALL_STATE(74)] = 2345, - [SMALL_STATE(75)] = 2365, - [SMALL_STATE(76)] = 2385, - [SMALL_STATE(77)] = 2405, - [SMALL_STATE(78)] = 2421, - [SMALL_STATE(79)] = 2441, - [SMALL_STATE(80)] = 2461, - [SMALL_STATE(81)] = 2477, - [SMALL_STATE(82)] = 2493, - [SMALL_STATE(83)] = 2513, - [SMALL_STATE(84)] = 2530, - [SMALL_STATE(85)] = 2541, - [SMALL_STATE(86)] = 2558, - [SMALL_STATE(87)] = 2569, - [SMALL_STATE(88)] = 2580, - [SMALL_STATE(89)] = 2591, - [SMALL_STATE(90)] = 2606, - [SMALL_STATE(91)] = 2623, - [SMALL_STATE(92)] = 2634, - [SMALL_STATE(93)] = 2651, - [SMALL_STATE(94)] = 2662, - [SMALL_STATE(95)] = 2679, - [SMALL_STATE(96)] = 2694, - [SMALL_STATE(97)] = 2711, - [SMALL_STATE(98)] = 2722, - [SMALL_STATE(99)] = 2739, - [SMALL_STATE(100)] = 2750, - [SMALL_STATE(101)] = 2767, - [SMALL_STATE(102)] = 2778, - [SMALL_STATE(103)] = 2789, - [SMALL_STATE(104)] = 2806, - [SMALL_STATE(105)] = 2823, - [SMALL_STATE(106)] = 2834, - [SMALL_STATE(107)] = 2845, - [SMALL_STATE(108)] = 2862, - [SMALL_STATE(109)] = 2873, - [SMALL_STATE(110)] = 2890, - [SMALL_STATE(111)] = 2907, - [SMALL_STATE(112)] = 2918, - [SMALL_STATE(113)] = 2929, - [SMALL_STATE(114)] = 2940, - [SMALL_STATE(115)] = 2951, - [SMALL_STATE(116)] = 2966, - [SMALL_STATE(117)] = 2983, - [SMALL_STATE(118)] = 2998, - [SMALL_STATE(119)] = 3011, - [SMALL_STATE(120)] = 3023, - [SMALL_STATE(121)] = 3037, - [SMALL_STATE(122)] = 3049, - [SMALL_STATE(123)] = 3063, - [SMALL_STATE(124)] = 3073, - [SMALL_STATE(125)] = 3087, - [SMALL_STATE(126)] = 3101, - [SMALL_STATE(127)] = 3110, - [SMALL_STATE(128)] = 3119, - [SMALL_STATE(129)] = 3128, - [SMALL_STATE(130)] = 3137, - [SMALL_STATE(131)] = 3146, - [SMALL_STATE(132)] = 3157, - [SMALL_STATE(133)] = 3168, - [SMALL_STATE(134)] = 3177, - [SMALL_STATE(135)] = 3186, - [SMALL_STATE(136)] = 3194, - [SMALL_STATE(137)] = 3202, - [SMALL_STATE(138)] = 3210, - [SMALL_STATE(139)] = 3218, - [SMALL_STATE(140)] = 3226, + [SMALL_STATE(32)] = 928, + [SMALL_STATE(33)] = 987, + [SMALL_STATE(34)] = 1042, + [SMALL_STATE(35)] = 1097, + [SMALL_STATE(36)] = 1142, + [SMALL_STATE(37)] = 1176, + [SMALL_STATE(38)] = 1227, + [SMALL_STATE(39)] = 1280, + [SMALL_STATE(40)] = 1331, + [SMALL_STATE(41)] = 1384, + [SMALL_STATE(42)] = 1434, + [SMALL_STATE(43)] = 1484, + [SMALL_STATE(44)] = 1534, + [SMALL_STATE(45)] = 1569, + [SMALL_STATE(46)] = 1601, + [SMALL_STATE(47)] = 1633, + [SMALL_STATE(48)] = 1665, + [SMALL_STATE(49)] = 1697, + [SMALL_STATE(50)] = 1729, + [SMALL_STATE(51)] = 1761, + [SMALL_STATE(52)] = 1793, + [SMALL_STATE(53)] = 1825, + [SMALL_STATE(54)] = 1857, + [SMALL_STATE(55)] = 1889, + [SMALL_STATE(56)] = 1921, + [SMALL_STATE(57)] = 1953, + [SMALL_STATE(58)] = 1985, + [SMALL_STATE(59)] = 2017, + [SMALL_STATE(60)] = 2049, + [SMALL_STATE(61)] = 2078, + [SMALL_STATE(62)] = 2107, + [SMALL_STATE(63)] = 2134, + [SMALL_STATE(64)] = 2161, + [SMALL_STATE(65)] = 2183, + [SMALL_STATE(66)] = 2218, + [SMALL_STATE(67)] = 2253, + [SMALL_STATE(68)] = 2274, + [SMALL_STATE(69)] = 2303, + [SMALL_STATE(70)] = 2332, + [SMALL_STATE(71)] = 2361, + [SMALL_STATE(72)] = 2390, + [SMALL_STATE(73)] = 2419, + [SMALL_STATE(74)] = 2448, + [SMALL_STATE(75)] = 2477, + [SMALL_STATE(76)] = 2506, + [SMALL_STATE(77)] = 2526, + [SMALL_STATE(78)] = 2546, + [SMALL_STATE(79)] = 2566, + [SMALL_STATE(80)] = 2580, + [SMALL_STATE(81)] = 2594, + [SMALL_STATE(82)] = 2614, + [SMALL_STATE(83)] = 2633, + [SMALL_STATE(84)] = 2652, + [SMALL_STATE(85)] = 2671, + [SMALL_STATE(86)] = 2691, + [SMALL_STATE(87)] = 2711, + [SMALL_STATE(88)] = 2731, + [SMALL_STATE(89)] = 2751, + [SMALL_STATE(90)] = 2771, + [SMALL_STATE(91)] = 2791, + [SMALL_STATE(92)] = 2811, + [SMALL_STATE(93)] = 2829, + [SMALL_STATE(94)] = 2847, + [SMALL_STATE(95)] = 2865, + [SMALL_STATE(96)] = 2882, + [SMALL_STATE(97)] = 2899, + [SMALL_STATE(98)] = 2910, + [SMALL_STATE(99)] = 2921, + [SMALL_STATE(100)] = 2932, + [SMALL_STATE(101)] = 2949, + [SMALL_STATE(102)] = 2960, + [SMALL_STATE(103)] = 2977, + [SMALL_STATE(104)] = 2988, + [SMALL_STATE(105)] = 3005, + [SMALL_STATE(106)] = 3016, + [SMALL_STATE(107)] = 3033, + [SMALL_STATE(108)] = 3050, + [SMALL_STATE(109)] = 3067, + [SMALL_STATE(110)] = 3078, + [SMALL_STATE(111)] = 3089, + [SMALL_STATE(112)] = 3100, + [SMALL_STATE(113)] = 3117, + [SMALL_STATE(114)] = 3134, + [SMALL_STATE(115)] = 3151, + [SMALL_STATE(116)] = 3162, + [SMALL_STATE(117)] = 3173, + [SMALL_STATE(118)] = 3190, + [SMALL_STATE(119)] = 3201, + [SMALL_STATE(120)] = 3218, + [SMALL_STATE(121)] = 3235, + [SMALL_STATE(122)] = 3246, + [SMALL_STATE(123)] = 3257, + [SMALL_STATE(124)] = 3274, + [SMALL_STATE(125)] = 3285, + [SMALL_STATE(126)] = 3296, + [SMALL_STATE(127)] = 3307, + [SMALL_STATE(128)] = 3324, + [SMALL_STATE(129)] = 3337, + [SMALL_STATE(130)] = 3352, + [SMALL_STATE(131)] = 3366, + [SMALL_STATE(132)] = 3378, + [SMALL_STATE(133)] = 3388, + [SMALL_STATE(134)] = 3402, + [SMALL_STATE(135)] = 3414, + [SMALL_STATE(136)] = 3423, + [SMALL_STATE(137)] = 3432, + [SMALL_STATE(138)] = 3443, + [SMALL_STATE(139)] = 3454, + [SMALL_STATE(140)] = 3463, + [SMALL_STATE(141)] = 3472, + [SMALL_STATE(142)] = 3481, + [SMALL_STATE(143)] = 3490, + [SMALL_STATE(144)] = 3501, + [SMALL_STATE(145)] = 3510, + [SMALL_STATE(146)] = 3518, + [SMALL_STATE(147)] = 3526, + [SMALL_STATE(148)] = 3534, + [SMALL_STATE(149)] = 3542, + [SMALL_STATE(150)] = 3550, + [SMALL_STATE(151)] = 3558, + [SMALL_STATE(152)] = 3566, + [SMALL_STATE(153)] = 3574, + [SMALL_STATE(154)] = 3582, + [SMALL_STATE(155)] = 3590, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -6403,198 +6741,215 @@ static const TSParseActionEntry ts_parse_actions[] = { [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 = true}}, SHIFT(137), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(118), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(128), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), - [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), - [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), - [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), - [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), - [51] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 1), - [53] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 1), - [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), - [57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 2), - [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 2), + [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), + [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [51] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 2), + [53] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 2), + [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), + [57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 1), + [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 1), [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), - [65] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), SHIFT_REPEAT(140), - [68] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), - [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), - [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 22), - [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [76] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), - [78] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 22), - [84] = {.entry = {.count = 1, .reusable = false}}, SHIFT(45), - [86] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [88] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [90] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [94] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 14), - [96] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 14), - [98] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 20), - [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 20), + [65] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), SHIFT_REPEAT(151), + [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 24), + [70] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [72] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), + [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 24), + [78] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57), + [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [82] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 15), + [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 15), + [88] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [90] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [94] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), + [96] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), + [98] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 22), + [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 22), [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 13), [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 13), - [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 15), - [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 15), - [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), - [116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 20), - [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 20), - [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 20), - [128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [130] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), - [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 20), - [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 8), - [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 8), - [138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 16), - [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 16), - [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__at_least_one_newline, 2), - [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__at_least_one_newline, 2), - [148] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__at_least_one_newline, 2), SHIFT_REPEAT(34), - [151] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), - [153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [155] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [157] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 24), + [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 16), + [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 16), + [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 22), + [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 22), + [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), + [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 22), + [128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [130] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), + [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 22), + [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), + [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), + [138] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(31), + [141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [143] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 8), + [147] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 8), + [149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 17), + [151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 17), + [153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), + [157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [161] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), + [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 26), [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), - [168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), [172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [210] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 9), - [212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 9), - [214] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [218] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(62), - [221] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [223] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [225] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [227] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [231] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 1), - [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 17), - [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [237] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 12), - [239] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 25), - [241] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 19), - [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [249] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), - [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), - [253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), - [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), - [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), - [265] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(22), - [268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), - [270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), - [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 26), - [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), - [282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 26), - [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), - [286] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(69), - [289] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), - [293] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), - [295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), - [303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), - [307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), - [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), - [313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 23), - [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), - [321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), - [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), - [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 23), - [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), - [331] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(100), - [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), - [336] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), - [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), - [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), - [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), - [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), - [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 21), - [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), - [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [359] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), - [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [363] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), - [365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [367] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(46), - [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), - [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), - [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 10), - [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), - [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 28), - [380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), - [384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 27), - [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 13), - [388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 11), - [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 18), - [396] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [210] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), + [212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), + [214] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), + [216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), + [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [220] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [224] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(64), + [227] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 9), + [229] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 9), + [231] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [237] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2), + [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 1), + [245] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 12), + [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 19), + [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 27), + [265] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 21), + [267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), + [269] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), + [271] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(61), + [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), + [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), + [278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), + [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), + [282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), + [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [296] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(61), + [299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), + [301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), + [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), + [305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), + [309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), + [313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 31), + [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 31), + [321] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(61), + [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), + [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), + [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), + [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), + [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [340] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 25), + [342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), + [344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 25), + [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), + [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), + [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), + [360] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(119), + [363] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), + [365] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), + [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), + [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), + [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), + [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), + [384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), + [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 23), + [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), + [392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), + [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), + [396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), + [400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 10), + [402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 33), + [404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 13), + [406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 14), + [410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 34), + [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 5, .production_id = 28), + [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 5, .production_id = 29), + [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 5, .production_id = 30), + [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 18), + [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 11), + [422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 6, .production_id = 32), + [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 20), + [432] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), }; #ifdef __cplusplus From 9b5084ea4550b184c0afaeecad9ce1d148eb676c Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Sat, 20 Apr 2024 14:52:47 +0200 Subject: [PATCH 23/49] Create LICENSE --- LICENSE | 674 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 674 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. From 9ae2ee5f834493c048f0c55351d33021e61abf08 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Sat, 20 Apr 2024 14:57:59 +0200 Subject: [PATCH 24/49] Slightly extend grammar and update License in Cargo.toml --- Cargo.toml | 4 +- grammar.js | 69 +- src/grammar.json | 178 +- src/node-types.json | 176 ++ src/parser.c | 4449 +++++++++++++++++++++++-------------------- 5 files changed, 2734 insertions(+), 2142 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 175f133..b2e0d16 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,8 +5,8 @@ version = "0.0.1" keywords = ["incremental", "parsing", "sus"] categories = ["parsing", "text-editors"] repository = "https://github.com/tree-sitter/tree-sitter-sus" -edition = "2018" -license = "MIT" +edition = "2021" +license = "GPL-3.0-or-later" build = "bindings/rust/build.rs" include = [ diff --git a/grammar.js b/grammar.js index 82952ae..95aa4bb 100644 --- a/grammar.js +++ b/grammar.js @@ -29,7 +29,7 @@ const PREC = { additive: 6, multiplicative: 7, unary: 8, - array_or_func_call : 9, + postscript_op : 9, namespace_path : 10 } @@ -44,17 +44,27 @@ module.exports = grammar({ optional($._linebreak) ), - interface_ports : $ => seq( + _interface_ports_output: $ => seq( + '->', + optional($._linebreak), + field('outputs', $.declaration_list) + ), + interface_ports: $ => seq( ':', optional($._linebreak), - optional(field('inputs', $.declaration_list)), - optional(seq( - '->', - optional($._linebreak), - field('outputs', $.declaration_list) - )) + choice( + seq( + field('inputs', $.declaration_list), + optional($._interface_ports_output) + ), + $._interface_ports_output + ), + ), + + declaration_list: $ => sepSeq1( + field('item', $.declaration), + $._comma ), - declaration_list : $ => sepSeq1(field('item', $.declaration), $._comma), module: $ => seq( 'module', @@ -62,6 +72,22 @@ module.exports = grammar({ optional(field('interface_ports', $.interface_ports)), field('block', $.block) ), + + interface_statement: $ => seq( + 'interface', + field('name', $.identifier), + optional(field('interface_ports', $.interface_ports)) + //field('block', $.block) + ), + + cross_statement: $ => seq( + 'cross', + sepSeq1( + field('item', $.assign_to), + $._comma + ), + ), + identifier: $ => /[\p{Alphabetic}_][\p{Alphabetic}_\p{Decimal_Number}]*/, number: $ => /\d[\d_]*/, @@ -79,7 +105,7 @@ module.exports = grammar({ $.array_type ), - latency_specifier : $ => seq(seq( + latency_specifier: $ => seq(seq( '\'', field('content', $._expression) )), @@ -116,15 +142,21 @@ module.exports = grammar({ )))); }, - array_op: $ => prec(PREC.array_or_func_call, seq( + array_op: $ => prec(PREC.postscript_op, seq( field('arr', $._expression), field('arr_idx', $.array_bracket_expression) )), - func_call: $ => prec(PREC.array_or_func_call, seq( + func_call: $ => prec(PREC.postscript_op, seq( field('name', $._expression), field('arguments', $.parenthesis_expression_list) )), + + field_access: $ => prec(PREC.postscript_op, seq( + field('left', $._expression), + '.', + field('name', $.identifier) + )), parenthesis_expression_list: $ => seq( '(', @@ -151,10 +183,11 @@ module.exports = grammar({ $.parenthesis_expression, $.unary_op, $.binary_op, - $.func_call + $.func_call, + $.field_access ), - _linebreak: $ => repeat1(/\n/), // For things that must be separated by at least one newline (whitespace after is to optimize gobbling up any extra newlines) + _linebreak: $ => repeat1('\n'), // For things that must be separated by at least one newline (whitespace after is to optimize gobbling up any extra newlines) block: $ => seq( '{', @@ -166,7 +199,9 @@ module.exports = grammar({ // but we allow some tolerance in the grammar here, so we can generate better errors after. $.assign_left_side, $.if_statement, - $.for_statement + $.for_statement, + $.interface_statement, + $.cross_statement )), '}' ), @@ -216,8 +251,8 @@ module.exports = grammar({ field('block', $.block) ), - single_line_comment : $ => /\/\/[^\n]*/, - multi_line_comment : $ => /\/\*[^\*]*\*+([^\/\*][^\*]*\*+)*\//, + single_line_comment: $ => /\/\/[^\n]*/, + multi_line_comment: $ => /\/\*[^\*]*\*+([^\/\*][^\*]*\*+)*\//, }, conflicts: $ => [ diff --git a/src/grammar.json b/src/grammar.json index 6fe9264..dbaf3bb 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -93,12 +93,12 @@ } ] }, - "interface_ports": { + "_interface_ports_output": { "type": "SEQ", "members": [ { "type": "STRING", - "value": ":" + "value": "->" }, { "type": "CHOICE", @@ -112,16 +112,29 @@ } ] }, + { + "type": "FIELD", + "name": "outputs", + "content": { + "type": "SYMBOL", + "name": "declaration_list" + } + } + ] + }, + "interface_ports": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": ":" + }, { "type": "CHOICE", "members": [ { - "type": "FIELD", - "name": "inputs", - "content": { - "type": "SYMBOL", - "name": "declaration_list" - } + "type": "SYMBOL", + "name": "_linebreak" }, { "type": "BLANK" @@ -135,33 +148,30 @@ "type": "SEQ", "members": [ { - "type": "STRING", - "value": "->" + "type": "FIELD", + "name": "inputs", + "content": { + "type": "SYMBOL", + "name": "declaration_list" + } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", - "name": "_linebreak" + "name": "_interface_ports_output" }, { "type": "BLANK" } ] - }, - { - "type": "FIELD", - "name": "outputs", - "content": { - "type": "SYMBOL", - "name": "declaration_list" - } } ] }, { - "type": "BLANK" + "type": "SYMBOL", + "name": "_interface_ports_output" } ] } @@ -241,6 +251,81 @@ } ] }, + "interface_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "interface" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "interface_ports", + "content": { + "type": "SYMBOL", + "name": "interface_ports" + } + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "cross_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "cross" + }, + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "item", + "content": { + "type": "SYMBOL", + "name": "assign_to" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_comma" + }, + { + "type": "FIELD", + "name": "item", + "content": { + "type": "SYMBOL", + "name": "assign_to" + } + } + ] + } + } + ] + } + ] + }, "identifier": { "type": "PATTERN", "value": "[\\p{Alphabetic}_][\\p{Alphabetic}_\\p{Decimal_Number}]*" @@ -763,6 +848,35 @@ ] } }, + "field_access": { + "type": "PREC", + "value": 9, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "_expression" + } + }, + { + "type": "STRING", + "value": "." + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + } + ] + } + }, "parenthesis_expression_list": { "type": "SEQ", "members": [ @@ -889,14 +1003,18 @@ { "type": "SYMBOL", "name": "func_call" + }, + { + "type": "SYMBOL", + "name": "field_access" } ] }, "_linebreak": { "type": "REPEAT1", "content": { - "type": "PATTERN", - "value": "\\n" + "type": "STRING", + "value": "\n" } }, "block": { @@ -952,6 +1070,14 @@ { "type": "SYMBOL", "name": "for_statement" + }, + { + "type": "SYMBOL", + "name": "interface_statement" + }, + { + "type": "SYMBOL", + "name": "cross_statement" } ] } @@ -990,6 +1116,14 @@ { "type": "SYMBOL", "name": "for_statement" + }, + { + "type": "SYMBOL", + "name": "interface_statement" + }, + { + "type": "SYMBOL", + "name": "cross_statement" } ] } diff --git a/src/node-types.json b/src/node-types.json index 603e6ba..539893b 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -15,6 +15,10 @@ "type": "binary_op", "named": true }, + { + "type": "field_access", + "named": true + }, { "type": "func_call", "named": true @@ -55,6 +59,10 @@ "type": "binary_op", "named": true }, + { + "type": "field_access", + "named": true + }, { "type": "func_call", "named": true @@ -155,6 +163,10 @@ "type": "declaration", "named": true }, + { + "type": "field_access", + "named": true + }, { "type": "func_call", "named": true @@ -205,6 +217,10 @@ "type": "binary_op", "named": true }, + { + "type": "field_access", + "named": true + }, { "type": "func_call", "named": true @@ -301,6 +317,10 @@ "type": "binary_op", "named": true }, + { + "type": "field_access", + "named": true + }, { "type": "func_call", "named": true @@ -341,6 +361,10 @@ "type": "block", "named": true }, + { + "type": "cross_statement", + "named": true + }, { "type": "decl_assign_statement", "named": true @@ -352,6 +376,26 @@ { "type": "if_statement", "named": true + }, + { + "type": "interface_statement", + "named": true + } + ] + } + } + }, + { + "type": "cross_statement", + "named": true, + "fields": { + "item": { + "multiple": true, + "required": true, + "types": [ + { + "type": "assign_to", + "named": true } ] } @@ -383,6 +427,10 @@ "type": "binary_op", "named": true }, + { + "type": "field_access", + "named": true + }, { "type": "func_call", "named": true @@ -477,6 +525,60 @@ } } }, + { + "type": "field_access", + "named": true, + "fields": { + "left": { + "multiple": false, + "required": true, + "types": [ + { + "type": "array_op", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "field_access", + "named": true + }, + { + "type": "func_call", + "named": true + }, + { + "type": "global_identifier", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "parenthesis_expression", + "named": true + }, + { + "type": "unary_op", + "named": true + } + ] + }, + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + } + }, { "type": "for_statement", "named": true, @@ -513,6 +615,10 @@ "type": "binary_op", "named": true }, + { + "type": "field_access", + "named": true + }, { "type": "func_call", "named": true @@ -547,6 +653,10 @@ "type": "binary_op", "named": true }, + { + "type": "field_access", + "named": true + }, { "type": "func_call", "named": true @@ -597,6 +707,10 @@ "type": "binary_op", "named": true }, + { + "type": "field_access", + "named": true + }, { "type": "func_call", "named": true @@ -653,6 +767,10 @@ "type": "binary_op", "named": true }, + { + "type": "field_access", + "named": true + }, { "type": "func_call", "named": true @@ -727,6 +845,32 @@ } } }, + { + "type": "interface_statement", + "named": true, + "fields": { + "interface_ports": { + "multiple": false, + "required": false, + "types": [ + { + "type": "interface_ports", + "named": true + } + ] + }, + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + } + }, { "type": "latency_specifier", "named": true, @@ -743,6 +887,10 @@ "type": "binary_op", "named": true }, + { + "type": "field_access", + "named": true + }, { "type": "func_call", "named": true @@ -819,6 +967,10 @@ "type": "binary_op", "named": true }, + { + "type": "field_access", + "named": true + }, { "type": "func_call", "named": true @@ -859,6 +1011,10 @@ "type": "binary_op", "named": true }, + { + "type": "field_access", + "named": true + }, { "type": "func_call", "named": true @@ -949,6 +1105,10 @@ "type": "binary_op", "named": true }, + { + "type": "field_access", + "named": true + }, { "type": "func_call", "named": true @@ -993,6 +1153,10 @@ } } }, + { + "type": "\n", + "named": false + }, { "type": "!", "named": false @@ -1041,6 +1205,10 @@ "type": "->", "named": false }, + { + "type": ".", + "named": false + }, { "type": "..", "named": false @@ -1093,6 +1261,10 @@ "type": "^", "named": false }, + { + "type": "cross", + "named": false + }, { "type": "else", "named": false @@ -1121,6 +1293,10 @@ "type": "initial", "named": false }, + { + "type": "interface", + "named": false + }, { "type": "module", "named": false diff --git a/src/parser.c b/src/parser.c index 1b1f099..8e81afa 100644 --- a/src/parser.c +++ b/src/parser.c @@ -5,101 +5,110 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 156 +#define STATE_COUNT 157 #define LARGE_STATE_COUNT 11 -#define SYMBOL_COUNT 76 +#define SYMBOL_COUNT 83 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 43 +#define TOKEN_COUNT 46 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 26 #define MAX_ALIAS_SEQUENCE_LENGTH 7 -#define PRODUCTION_ID_COUNT 35 +#define PRODUCTION_ID_COUNT 37 enum ts_symbol_identifiers { sym_identifier = 1, anon_sym_COMMA = 2, - anon_sym_COLON = 3, - anon_sym_DASH_GT = 4, + anon_sym_DASH_GT = 3, + anon_sym_COLON = 4, anon_sym_module = 5, - sym_number = 6, - anon_sym_COLON_COLON = 7, - anon_sym_SQUOTE = 8, - anon_sym_state = 9, - anon_sym_gen = 10, - anon_sym_PLUS = 11, - anon_sym_DASH = 12, - anon_sym_STAR = 13, - anon_sym_BANG = 14, - anon_sym_PIPE = 15, - anon_sym_AMP = 16, - anon_sym_CARET = 17, - anon_sym_EQ_EQ = 18, - anon_sym_BANG_EQ = 19, - anon_sym_LT = 20, - anon_sym_LT_EQ = 21, - anon_sym_GT = 22, - anon_sym_GT_EQ = 23, - anon_sym_SLASH = 24, - anon_sym_PERCENT = 25, - anon_sym_LPAREN = 26, - anon_sym_RPAREN = 27, - anon_sym_LBRACK = 28, - anon_sym_RBRACK = 29, - aux_sym__linebreak_token1 = 30, - anon_sym_LBRACE = 31, - anon_sym_RBRACE = 32, - anon_sym_reg = 33, - anon_sym_initial = 34, - anon_sym_EQ = 35, - anon_sym_if = 36, - anon_sym_else = 37, - anon_sym_for = 38, - anon_sym_in = 39, - anon_sym_DOT_DOT = 40, - sym_single_line_comment = 41, - sym_multi_line_comment = 42, - sym_source_file = 43, - sym__comma = 44, - sym_interface_ports = 45, - sym_declaration_list = 46, - sym_module = 47, - sym_global_identifier = 48, - sym_array_type = 49, - sym__type = 50, - sym_latency_specifier = 51, - sym_declaration = 52, - sym_unary_op = 53, - sym_binary_op = 54, - sym_array_op = 55, - sym_func_call = 56, - sym_parenthesis_expression_list = 57, - sym_parenthesis_expression = 58, - sym_array_bracket_expression = 59, - sym__expression = 60, - aux_sym__linebreak = 61, - sym_block = 62, - sym_write_modifiers = 63, - sym_assign_to = 64, - sym_assign_left_side = 65, - sym_decl_assign_statement = 66, - sym_if_statement = 67, - sym_for_statement = 68, - aux_sym_source_file_repeat1 = 69, - aux_sym_declaration_list_repeat1 = 70, - aux_sym_global_identifier_repeat1 = 71, - aux_sym_parenthesis_expression_list_repeat1 = 72, - aux_sym_block_repeat1 = 73, - aux_sym_write_modifiers_repeat1 = 74, - aux_sym_assign_left_side_repeat1 = 75, + anon_sym_interface = 6, + anon_sym_cross = 7, + sym_number = 8, + anon_sym_COLON_COLON = 9, + anon_sym_SQUOTE = 10, + anon_sym_state = 11, + anon_sym_gen = 12, + anon_sym_PLUS = 13, + anon_sym_DASH = 14, + anon_sym_STAR = 15, + anon_sym_BANG = 16, + anon_sym_PIPE = 17, + anon_sym_AMP = 18, + anon_sym_CARET = 19, + anon_sym_EQ_EQ = 20, + anon_sym_BANG_EQ = 21, + anon_sym_LT = 22, + anon_sym_LT_EQ = 23, + anon_sym_GT = 24, + anon_sym_GT_EQ = 25, + anon_sym_SLASH = 26, + anon_sym_PERCENT = 27, + anon_sym_DOT = 28, + anon_sym_LPAREN = 29, + anon_sym_RPAREN = 30, + anon_sym_LBRACK = 31, + anon_sym_RBRACK = 32, + anon_sym_LF = 33, + anon_sym_LBRACE = 34, + anon_sym_RBRACE = 35, + anon_sym_reg = 36, + anon_sym_initial = 37, + anon_sym_EQ = 38, + anon_sym_if = 39, + anon_sym_else = 40, + anon_sym_for = 41, + anon_sym_in = 42, + anon_sym_DOT_DOT = 43, + sym_single_line_comment = 44, + sym_multi_line_comment = 45, + sym_source_file = 46, + sym__comma = 47, + sym__interface_ports_output = 48, + sym_interface_ports = 49, + sym_declaration_list = 50, + sym_module = 51, + sym_interface_statement = 52, + sym_cross_statement = 53, + sym_global_identifier = 54, + sym_array_type = 55, + sym__type = 56, + sym_latency_specifier = 57, + sym_declaration = 58, + sym_unary_op = 59, + sym_binary_op = 60, + sym_array_op = 61, + sym_func_call = 62, + sym_field_access = 63, + sym_parenthesis_expression_list = 64, + sym_parenthesis_expression = 65, + sym_array_bracket_expression = 66, + sym__expression = 67, + aux_sym__linebreak = 68, + sym_block = 69, + sym_write_modifiers = 70, + sym_assign_to = 71, + sym_assign_left_side = 72, + sym_decl_assign_statement = 73, + sym_if_statement = 74, + sym_for_statement = 75, + aux_sym_source_file_repeat1 = 76, + aux_sym_declaration_list_repeat1 = 77, + aux_sym_cross_statement_repeat1 = 78, + aux_sym_global_identifier_repeat1 = 79, + aux_sym_parenthesis_expression_list_repeat1 = 80, + aux_sym_block_repeat1 = 81, + aux_sym_write_modifiers_repeat1 = 82, }; static const char * const ts_symbol_names[] = { [ts_builtin_sym_end] = "end", [sym_identifier] = "identifier", [anon_sym_COMMA] = ",", - [anon_sym_COLON] = ":", [anon_sym_DASH_GT] = "->", + [anon_sym_COLON] = ":", [anon_sym_module] = "module", + [anon_sym_interface] = "interface", + [anon_sym_cross] = "cross", [sym_number] = "number", [anon_sym_COLON_COLON] = "::", [anon_sym_SQUOTE] = "'", @@ -120,11 +129,12 @@ static const char * const ts_symbol_names[] = { [anon_sym_GT_EQ] = ">=", [anon_sym_SLASH] = "/", [anon_sym_PERCENT] = "%", + [anon_sym_DOT] = ".", [anon_sym_LPAREN] = "(", [anon_sym_RPAREN] = ")", [anon_sym_LBRACK] = "[", [anon_sym_RBRACK] = "]", - [aux_sym__linebreak_token1] = "_linebreak_token1", + [anon_sym_LF] = "\n", [anon_sym_LBRACE] = "{", [anon_sym_RBRACE] = "}", [anon_sym_reg] = "reg", @@ -139,9 +149,12 @@ static const char * const ts_symbol_names[] = { [sym_multi_line_comment] = "multi_line_comment", [sym_source_file] = "source_file", [sym__comma] = "_comma", + [sym__interface_ports_output] = "_interface_ports_output", [sym_interface_ports] = "interface_ports", [sym_declaration_list] = "declaration_list", [sym_module] = "module", + [sym_interface_statement] = "interface_statement", + [sym_cross_statement] = "cross_statement", [sym_global_identifier] = "global_identifier", [sym_array_type] = "array_type", [sym__type] = "_type", @@ -151,6 +164,7 @@ static const char * const ts_symbol_names[] = { [sym_binary_op] = "binary_op", [sym_array_op] = "array_op", [sym_func_call] = "func_call", + [sym_field_access] = "field_access", [sym_parenthesis_expression_list] = "parenthesis_expression_list", [sym_parenthesis_expression] = "parenthesis_expression", [sym_array_bracket_expression] = "array_bracket_expression", @@ -165,20 +179,22 @@ static const char * const ts_symbol_names[] = { [sym_for_statement] = "for_statement", [aux_sym_source_file_repeat1] = "source_file_repeat1", [aux_sym_declaration_list_repeat1] = "declaration_list_repeat1", + [aux_sym_cross_statement_repeat1] = "cross_statement_repeat1", [aux_sym_global_identifier_repeat1] = "global_identifier_repeat1", [aux_sym_parenthesis_expression_list_repeat1] = "parenthesis_expression_list_repeat1", [aux_sym_block_repeat1] = "block_repeat1", [aux_sym_write_modifiers_repeat1] = "write_modifiers_repeat1", - [aux_sym_assign_left_side_repeat1] = "assign_left_side_repeat1", }; static const TSSymbol ts_symbol_map[] = { [ts_builtin_sym_end] = ts_builtin_sym_end, [sym_identifier] = sym_identifier, [anon_sym_COMMA] = anon_sym_COMMA, - [anon_sym_COLON] = anon_sym_COLON, [anon_sym_DASH_GT] = anon_sym_DASH_GT, + [anon_sym_COLON] = anon_sym_COLON, [anon_sym_module] = anon_sym_module, + [anon_sym_interface] = anon_sym_interface, + [anon_sym_cross] = anon_sym_cross, [sym_number] = sym_number, [anon_sym_COLON_COLON] = anon_sym_COLON_COLON, [anon_sym_SQUOTE] = anon_sym_SQUOTE, @@ -199,11 +215,12 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_GT_EQ] = anon_sym_GT_EQ, [anon_sym_SLASH] = anon_sym_SLASH, [anon_sym_PERCENT] = anon_sym_PERCENT, + [anon_sym_DOT] = anon_sym_DOT, [anon_sym_LPAREN] = anon_sym_LPAREN, [anon_sym_RPAREN] = anon_sym_RPAREN, [anon_sym_LBRACK] = anon_sym_LBRACK, [anon_sym_RBRACK] = anon_sym_RBRACK, - [aux_sym__linebreak_token1] = aux_sym__linebreak_token1, + [anon_sym_LF] = anon_sym_LF, [anon_sym_LBRACE] = anon_sym_LBRACE, [anon_sym_RBRACE] = anon_sym_RBRACE, [anon_sym_reg] = anon_sym_reg, @@ -218,9 +235,12 @@ static const TSSymbol ts_symbol_map[] = { [sym_multi_line_comment] = sym_multi_line_comment, [sym_source_file] = sym_source_file, [sym__comma] = sym__comma, + [sym__interface_ports_output] = sym__interface_ports_output, [sym_interface_ports] = sym_interface_ports, [sym_declaration_list] = sym_declaration_list, [sym_module] = sym_module, + [sym_interface_statement] = sym_interface_statement, + [sym_cross_statement] = sym_cross_statement, [sym_global_identifier] = sym_global_identifier, [sym_array_type] = sym_array_type, [sym__type] = sym__type, @@ -230,6 +250,7 @@ static const TSSymbol ts_symbol_map[] = { [sym_binary_op] = sym_binary_op, [sym_array_op] = sym_array_op, [sym_func_call] = sym_func_call, + [sym_field_access] = sym_field_access, [sym_parenthesis_expression_list] = sym_parenthesis_expression_list, [sym_parenthesis_expression] = sym_parenthesis_expression, [sym_array_bracket_expression] = sym_array_bracket_expression, @@ -244,11 +265,11 @@ static const TSSymbol ts_symbol_map[] = { [sym_for_statement] = sym_for_statement, [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1, [aux_sym_declaration_list_repeat1] = aux_sym_declaration_list_repeat1, + [aux_sym_cross_statement_repeat1] = aux_sym_cross_statement_repeat1, [aux_sym_global_identifier_repeat1] = aux_sym_global_identifier_repeat1, [aux_sym_parenthesis_expression_list_repeat1] = aux_sym_parenthesis_expression_list_repeat1, [aux_sym_block_repeat1] = aux_sym_block_repeat1, [aux_sym_write_modifiers_repeat1] = aux_sym_write_modifiers_repeat1, - [aux_sym_assign_left_side_repeat1] = aux_sym_assign_left_side_repeat1, }; static const TSSymbolMetadata ts_symbol_metadata[] = { @@ -264,11 +285,11 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_COLON] = { + [anon_sym_DASH_GT] = { .visible = true, .named = false, }, - [anon_sym_DASH_GT] = { + [anon_sym_COLON] = { .visible = true, .named = false, }, @@ -276,6 +297,14 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_interface] = { + .visible = true, + .named = false, + }, + [anon_sym_cross] = { + .visible = true, + .named = false, + }, [sym_number] = { .visible = true, .named = true, @@ -356,6 +385,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_DOT] = { + .visible = true, + .named = false, + }, [anon_sym_LPAREN] = { .visible = true, .named = false, @@ -372,8 +405,8 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [aux_sym__linebreak_token1] = { - .visible = false, + [anon_sym_LF] = { + .visible = true, .named = false, }, [anon_sym_LBRACE] = { @@ -432,6 +465,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = true, }, + [sym__interface_ports_output] = { + .visible = false, + .named = true, + }, [sym_interface_ports] = { .visible = true, .named = true, @@ -444,6 +481,14 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_interface_statement] = { + .visible = true, + .named = true, + }, + [sym_cross_statement] = { + .visible = true, + .named = true, + }, [sym_global_identifier] = { .visible = true, .named = true, @@ -480,6 +525,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_field_access] = { + .visible = true, + .named = true, + }, [sym_parenthesis_expression_list] = { .visible = true, .named = true, @@ -536,6 +585,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, + [aux_sym_cross_statement_repeat1] = { + .visible = false, + .named = false, + }, [aux_sym_global_identifier_repeat1] = { .visible = false, .named = false, @@ -552,10 +605,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, - [aux_sym_assign_left_side_repeat1] = { - .visible = false, - .named = false, - }, }; enum ts_field_identifiers { @@ -627,31 +676,33 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [7] = {.index = 10, .length = 1}, [8] = {.index = 11, .length = 1}, [9] = {.index = 12, .length = 1}, - [10] = {.index = 13, .length = 3}, - [11] = {.index = 16, .length = 1}, - [12] = {.index = 17, .length = 2}, - [13] = {.index = 19, .length = 2}, - [14] = {.index = 21, .length = 1}, + [10] = {.index = 13, .length = 1}, + [11] = {.index = 14, .length = 3}, + [12] = {.index = 17, .length = 1}, + [13] = {.index = 18, .length = 2}, + [14] = {.index = 20, .length = 2}, [15] = {.index = 22, .length = 2}, - [16] = {.index = 24, .length = 2}, - [17] = {.index = 26, .length = 2}, - [18] = {.index = 28, .length = 1}, - [19] = {.index = 29, .length = 3}, - [20] = {.index = 32, .length = 2}, - [21] = {.index = 34, .length = 3}, - [22] = {.index = 37, .length = 1}, - [23] = {.index = 38, .length = 2}, - [24] = {.index = 40, .length = 3}, - [25] = {.index = 43, .length = 1}, - [26] = {.index = 44, .length = 2}, - [27] = {.index = 46, .length = 4}, - [28] = {.index = 50, .length = 2}, - [29] = {.index = 52, .length = 1}, - [30] = {.index = 53, .length = 2}, - [31] = {.index = 55, .length = 2}, - [32] = {.index = 57, .length = 2}, - [33] = {.index = 59, .length = 3}, - [34] = {.index = 62, .length = 4}, + [16] = {.index = 24, .length = 1}, + [17] = {.index = 25, .length = 1}, + [18] = {.index = 26, .length = 1}, + [19] = {.index = 27, .length = 2}, + [20] = {.index = 29, .length = 2}, + [21] = {.index = 31, .length = 2}, + [22] = {.index = 33, .length = 1}, + [23] = {.index = 34, .length = 3}, + [24] = {.index = 37, .length = 3}, + [25] = {.index = 40, .length = 2}, + [26] = {.index = 42, .length = 2}, + [27] = {.index = 44, .length = 1}, + [28] = {.index = 45, .length = 2}, + [29] = {.index = 47, .length = 3}, + [30] = {.index = 50, .length = 2}, + [31] = {.index = 52, .length = 1}, + [32] = {.index = 53, .length = 2}, + [33] = {.index = 55, .length = 4}, + [34] = {.index = 59, .length = 2}, + [35] = {.index = 61, .length = 3}, + [36] = {.index = 64, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -672,85 +723,89 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_item, 1}, {field_item, 2, .inherited = true}, [10] = - {field_inputs, 1}, + {field_outputs, 1, .inherited = true}, [11] = - {field_expr_or_decl, 0}, + {field_inputs, 1}, [12] = - {field_item, 0, .inherited = true}, + {field_expr_or_decl, 0}, [13] = + {field_item, 0, .inherited = true}, + [14] = {field_block, 3}, {field_interface_ports, 2}, {field_name, 1}, - [16] = - {field_outputs, 2}, [17] = + {field_outputs, 1}, + [18] = + {field_inputs, 1}, + {field_outputs, 2, .inherited = true}, + [20] = {field_name, 1}, {field_type, 0}, - [19] = + [22] = {field_arr, 0}, {field_arr_idx, 1}, - [21] = + [24] = + {field_outputs, 2, .inherited = true}, + [25] = {field_inputs, 2}, - [22] = + [26] = + {field_name, 1}, + [27] = {field_operator, 0}, {field_right, 1}, - [24] = + [29] = {field_arguments, 1}, {field_name, 0}, - [26] = + [31] = {field_expr_or_decl, 1}, {field_write_modifiers, 0}, - [28] = - {field_outputs, 3}, - [29] = + [33] = + {field_outputs, 2}, + [34] = {field_declaration_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [32] = - {field_inputs, 1}, - {field_outputs, 3}, - [34] = + [37] = {field_latency_specifier, 2}, {field_name, 1}, {field_type, 0}, - [37] = + [40] = + {field_inputs, 2}, + {field_outputs, 3, .inherited = true}, + [42] = + {field_interface_ports, 2}, + {field_name, 1}, + [44] = {field_content, 1}, - [38] = + [45] = {field_condition, 1}, {field_then_block, 2}, - [40] = + [47] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [43] = + [50] = + {field_left, 0}, + {field_name, 2}, + [52] = {field_item, 2}, - [44] = + [53] = {field_assign_left, 0}, {field_assign_value, 2}, - [46] = + [55] = {field_declaration_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [50] = - {field_inputs, 1}, - {field_outputs, 4}, - [52] = - {field_outputs, 4}, - [53] = - {field_inputs, 2}, - {field_outputs, 4}, - [55] = + [59] = {field_item, 2}, {field_item, 3, .inherited = true}, - [57] = - {field_inputs, 2}, - {field_outputs, 5}, - [59] = + [61] = {field_condition, 1}, {field_else_block, 4}, {field_then_block, 2}, - [62] = + [64] = {field_block, 6}, {field_for_decl, 1}, {field_from, 3}, @@ -922,6 +977,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [153] = 153, [154] = 154, [155] = 155, + [156] = 156, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -2839,63 +2895,63 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (eof) ADVANCE(9); + if (eof) ADVANCE(8); if (lookahead == '\n') ADVANCE(38); - if (lookahead == '!') ADVANCE(22); - if (lookahead == '%') ADVANCE(33); - if (lookahead == '&') ADVANCE(24); - if (lookahead == '\'') ADVANCE(17); + if (lookahead == '!') ADVANCE(21); + if (lookahead == '%') ADVANCE(32); + if (lookahead == '&') ADVANCE(23); + if (lookahead == '\'') ADVANCE(16); if (lookahead == '(') ADVANCE(34); if (lookahead == ')') ADVANCE(35); - if (lookahead == '*') ADVANCE(20); - if (lookahead == '+') ADVANCE(18); - if (lookahead == ',') ADVANCE(10); - if (lookahead == '-') ADVANCE(19); - if (lookahead == '.') ADVANCE(5); - if (lookahead == '/') ADVANCE(32); + if (lookahead == '*') ADVANCE(19); + if (lookahead == '+') ADVANCE(17); + if (lookahead == ',') ADVANCE(9); + if (lookahead == '-') ADVANCE(18); + if (lookahead == '.') ADVANCE(33); + if (lookahead == '/') ADVANCE(31); if (lookahead == ':') ADVANCE(12); - if (lookahead == '<') ADVANCE(28); + if (lookahead == '<') ADVANCE(27); if (lookahead == '=') ADVANCE(41); - if (lookahead == '>') ADVANCE(30); + if (lookahead == '>') ADVANCE(29); if (lookahead == '[') ADVANCE(36); if (lookahead == ']') ADVANCE(37); - if (lookahead == '^') ADVANCE(25); + if (lookahead == '^') ADVANCE(24); if (lookahead == '{') ADVANCE(39); - if (lookahead == '|') ADVANCE(23); + if (lookahead == '|') ADVANCE(22); if (lookahead == '}') ADVANCE(40); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(0) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(15); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(14); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(14); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(13); END_STATE(); case 1: if (lookahead == '\n') ADVANCE(38); - if (lookahead == '!') ADVANCE(7); - if (lookahead == '%') ADVANCE(33); - if (lookahead == '&') ADVANCE(24); + if (lookahead == '!') ADVANCE(6); + if (lookahead == '%') ADVANCE(32); + if (lookahead == '&') ADVANCE(23); if (lookahead == '(') ADVANCE(34); if (lookahead == ')') ADVANCE(35); - if (lookahead == '*') ADVANCE(20); - if (lookahead == '+') ADVANCE(18); - if (lookahead == ',') ADVANCE(10); - if (lookahead == '-') ADVANCE(19); - if (lookahead == '.') ADVANCE(5); - if (lookahead == '/') ADVANCE(32); - if (lookahead == ':') ADVANCE(6); - if (lookahead == '<') ADVANCE(28); + if (lookahead == '*') ADVANCE(19); + if (lookahead == '+') ADVANCE(17); + if (lookahead == ',') ADVANCE(9); + if (lookahead == '-') ADVANCE(18); + if (lookahead == '.') ADVANCE(33); + if (lookahead == '/') ADVANCE(31); + if (lookahead == ':') ADVANCE(5); + if (lookahead == '<') ADVANCE(27); if (lookahead == '=') ADVANCE(41); - if (lookahead == '>') ADVANCE(30); + if (lookahead == '>') ADVANCE(29); if (lookahead == '[') ADVANCE(36); if (lookahead == ']') ADVANCE(37); - if (lookahead == '^') ADVANCE(25); + if (lookahead == '^') ADVANCE(24); if (lookahead == '{') ADVANCE(39); - if (lookahead == '|') ADVANCE(23); + if (lookahead == '|') ADVANCE(22); if (lookahead == '}') ADVANCE(40); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(1) - if (sym_identifier_character_set_1(lookahead)) ADVANCE(14); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(13); END_STATE(); case 2: if (lookahead == '*') ADVANCE(4); @@ -2911,121 +2967,122 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead != 0) ADVANCE(4); END_STATE(); case 5: - if (lookahead == '.') ADVANCE(42); + if (lookahead == ':') ADVANCE(15); END_STATE(); case 6: - if (lookahead == ':') ADVANCE(16); + if (lookahead == '=') ADVANCE(26); END_STATE(); case 7: - if (lookahead == '=') ADVANCE(27); - END_STATE(); - case 8: - if (eof) ADVANCE(9); + if (eof) ADVANCE(8); if (lookahead == '\n') ADVANCE(38); - if (lookahead == '!') ADVANCE(21); - if (lookahead == '&') ADVANCE(24); + if (lookahead == '!') ADVANCE(20); + if (lookahead == '&') ADVANCE(23); if (lookahead == '(') ADVANCE(34); if (lookahead == ')') ADVANCE(35); - if (lookahead == '*') ADVANCE(20); - if (lookahead == '+') ADVANCE(18); - if (lookahead == '-') ADVANCE(19); + if (lookahead == '*') ADVANCE(19); + if (lookahead == '+') ADVANCE(17); + if (lookahead == '-') ADVANCE(18); if (lookahead == '/') ADVANCE(2); if (lookahead == ':') ADVANCE(11); - if (lookahead == '^') ADVANCE(25); + if (lookahead == '^') ADVANCE(24); if (lookahead == '{') ADVANCE(39); - if (lookahead == '|') ADVANCE(23); + if (lookahead == '|') ADVANCE(22); if (lookahead == '}') ADVANCE(40); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(8) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(15); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(14); + lookahead == ' ') SKIP(7) + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(14); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(13); END_STATE(); - case 9: + case 8: ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); - case 10: + case 9: ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); + case 10: + ACCEPT_TOKEN(anon_sym_DASH_GT); + END_STATE(); case 11: ACCEPT_TOKEN(anon_sym_COLON); END_STATE(); case 12: ACCEPT_TOKEN(anon_sym_COLON); - if (lookahead == ':') ADVANCE(16); + if (lookahead == ':') ADVANCE(15); END_STATE(); case 13: - ACCEPT_TOKEN(anon_sym_DASH_GT); - END_STATE(); - case 14: ACCEPT_TOKEN(sym_identifier); - if (sym_identifier_character_set_2(lookahead)) ADVANCE(14); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(13); END_STATE(); - case 15: + case 14: ACCEPT_TOKEN(sym_number); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(15); + lookahead == '_') ADVANCE(14); END_STATE(); - case 16: + case 15: ACCEPT_TOKEN(anon_sym_COLON_COLON); END_STATE(); - case 17: + case 16: ACCEPT_TOKEN(anon_sym_SQUOTE); END_STATE(); - case 18: + case 17: ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); - case 19: + case 18: ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '>') ADVANCE(13); + if (lookahead == '>') ADVANCE(10); END_STATE(); - case 20: + case 19: ACCEPT_TOKEN(anon_sym_STAR); END_STATE(); - case 21: + case 20: ACCEPT_TOKEN(anon_sym_BANG); END_STATE(); - case 22: + case 21: ACCEPT_TOKEN(anon_sym_BANG); - if (lookahead == '=') ADVANCE(27); + if (lookahead == '=') ADVANCE(26); END_STATE(); - case 23: + case 22: ACCEPT_TOKEN(anon_sym_PIPE); END_STATE(); - case 24: + case 23: ACCEPT_TOKEN(anon_sym_AMP); END_STATE(); - case 25: + case 24: ACCEPT_TOKEN(anon_sym_CARET); END_STATE(); - case 26: + case 25: ACCEPT_TOKEN(anon_sym_EQ_EQ); END_STATE(); - case 27: + case 26: ACCEPT_TOKEN(anon_sym_BANG_EQ); END_STATE(); - case 28: + case 27: ACCEPT_TOKEN(anon_sym_LT); - if (lookahead == '=') ADVANCE(29); + if (lookahead == '=') ADVANCE(28); END_STATE(); - case 29: + case 28: ACCEPT_TOKEN(anon_sym_LT_EQ); END_STATE(); - case 30: + case 29: ACCEPT_TOKEN(anon_sym_GT); - if (lookahead == '=') ADVANCE(31); + if (lookahead == '=') ADVANCE(30); END_STATE(); - case 31: + case 30: ACCEPT_TOKEN(anon_sym_GT_EQ); END_STATE(); - case 32: + case 31: ACCEPT_TOKEN(anon_sym_SLASH); if (lookahead == '*') ADVANCE(4); if (lookahead == '/') ADVANCE(43); END_STATE(); - case 33: + case 32: ACCEPT_TOKEN(anon_sym_PERCENT); END_STATE(); + case 33: + ACCEPT_TOKEN(anon_sym_DOT); + if (lookahead == '.') ADVANCE(42); + END_STATE(); case 34: ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); @@ -3039,7 +3096,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); case 38: - ACCEPT_TOKEN(aux_sym__linebreak_token1); + ACCEPT_TOKEN(anon_sym_LF); END_STATE(); case 39: ACCEPT_TOKEN(anon_sym_LBRACE); @@ -3049,7 +3106,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 41: ACCEPT_TOKEN(anon_sym_EQ); - if (lookahead == '=') ADVANCE(26); + if (lookahead == '=') ADVANCE(25); END_STATE(); case 42: ACCEPT_TOKEN(anon_sym_DOT_DOT); @@ -3072,115 +3129,153 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (lookahead == 'e') ADVANCE(1); - if (lookahead == 'f') ADVANCE(2); - if (lookahead == 'g') ADVANCE(3); - if (lookahead == 'i') ADVANCE(4); - if (lookahead == 'm') ADVANCE(5); - if (lookahead == 'r') ADVANCE(6); - if (lookahead == 's') ADVANCE(7); + if (lookahead == 'c') ADVANCE(1); + if (lookahead == 'e') ADVANCE(2); + if (lookahead == 'f') ADVANCE(3); + if (lookahead == 'g') ADVANCE(4); + if (lookahead == 'i') ADVANCE(5); + if (lookahead == 'm') ADVANCE(6); + if (lookahead == 'r') ADVANCE(7); + if (lookahead == 's') ADVANCE(8); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(0) END_STATE(); case 1: - if (lookahead == 'l') ADVANCE(8); + if (lookahead == 'r') ADVANCE(9); END_STATE(); case 2: - if (lookahead == 'o') ADVANCE(9); + if (lookahead == 'l') ADVANCE(10); END_STATE(); case 3: - if (lookahead == 'e') ADVANCE(10); + if (lookahead == 'o') ADVANCE(11); END_STATE(); case 4: - if (lookahead == 'f') ADVANCE(11); - if (lookahead == 'n') ADVANCE(12); + if (lookahead == 'e') ADVANCE(12); END_STATE(); case 5: - if (lookahead == 'o') ADVANCE(13); + if (lookahead == 'f') ADVANCE(13); + if (lookahead == 'n') ADVANCE(14); END_STATE(); case 6: - if (lookahead == 'e') ADVANCE(14); + if (lookahead == 'o') ADVANCE(15); END_STATE(); case 7: - if (lookahead == 't') ADVANCE(15); + if (lookahead == 'e') ADVANCE(16); END_STATE(); case 8: - if (lookahead == 's') ADVANCE(16); + if (lookahead == 't') ADVANCE(17); END_STATE(); case 9: - if (lookahead == 'r') ADVANCE(17); + if (lookahead == 'o') ADVANCE(18); END_STATE(); case 10: - if (lookahead == 'n') ADVANCE(18); + if (lookahead == 's') ADVANCE(19); END_STATE(); case 11: - ACCEPT_TOKEN(anon_sym_if); + if (lookahead == 'r') ADVANCE(20); END_STATE(); case 12: - ACCEPT_TOKEN(anon_sym_in); - if (lookahead == 'i') ADVANCE(19); + if (lookahead == 'n') ADVANCE(21); END_STATE(); case 13: - if (lookahead == 'd') ADVANCE(20); + ACCEPT_TOKEN(anon_sym_if); END_STATE(); case 14: - if (lookahead == 'g') ADVANCE(21); + ACCEPT_TOKEN(anon_sym_in); + if (lookahead == 'i') ADVANCE(22); + if (lookahead == 't') ADVANCE(23); END_STATE(); case 15: - if (lookahead == 'a') ADVANCE(22); + if (lookahead == 'd') ADVANCE(24); END_STATE(); case 16: - if (lookahead == 'e') ADVANCE(23); + if (lookahead == 'g') ADVANCE(25); END_STATE(); case 17: - ACCEPT_TOKEN(anon_sym_for); + if (lookahead == 'a') ADVANCE(26); END_STATE(); case 18: - ACCEPT_TOKEN(anon_sym_gen); + if (lookahead == 's') ADVANCE(27); END_STATE(); case 19: - if (lookahead == 't') ADVANCE(24); + if (lookahead == 'e') ADVANCE(28); END_STATE(); case 20: - if (lookahead == 'u') ADVANCE(25); + ACCEPT_TOKEN(anon_sym_for); END_STATE(); case 21: - ACCEPT_TOKEN(anon_sym_reg); + ACCEPT_TOKEN(anon_sym_gen); END_STATE(); case 22: - if (lookahead == 't') ADVANCE(26); + if (lookahead == 't') ADVANCE(29); END_STATE(); case 23: - ACCEPT_TOKEN(anon_sym_else); + if (lookahead == 'e') ADVANCE(30); END_STATE(); case 24: - if (lookahead == 'i') ADVANCE(27); + if (lookahead == 'u') ADVANCE(31); END_STATE(); case 25: - if (lookahead == 'l') ADVANCE(28); + ACCEPT_TOKEN(anon_sym_reg); END_STATE(); case 26: - if (lookahead == 'e') ADVANCE(29); + if (lookahead == 't') ADVANCE(32); END_STATE(); case 27: - if (lookahead == 'a') ADVANCE(30); + if (lookahead == 's') ADVANCE(33); END_STATE(); case 28: - if (lookahead == 'e') ADVANCE(31); + ACCEPT_TOKEN(anon_sym_else); END_STATE(); case 29: - ACCEPT_TOKEN(anon_sym_state); + if (lookahead == 'i') ADVANCE(34); END_STATE(); case 30: - if (lookahead == 'l') ADVANCE(32); + if (lookahead == 'r') ADVANCE(35); END_STATE(); case 31: - ACCEPT_TOKEN(anon_sym_module); + if (lookahead == 'l') ADVANCE(36); END_STATE(); case 32: + if (lookahead == 'e') ADVANCE(37); + END_STATE(); + case 33: + ACCEPT_TOKEN(anon_sym_cross); + END_STATE(); + case 34: + if (lookahead == 'a') ADVANCE(38); + END_STATE(); + case 35: + if (lookahead == 'f') ADVANCE(39); + END_STATE(); + case 36: + if (lookahead == 'e') ADVANCE(40); + END_STATE(); + case 37: + ACCEPT_TOKEN(anon_sym_state); + END_STATE(); + case 38: + if (lookahead == 'l') ADVANCE(41); + END_STATE(); + case 39: + if (lookahead == 'a') ADVANCE(42); + END_STATE(); + case 40: + ACCEPT_TOKEN(anon_sym_module); + END_STATE(); + case 41: ACCEPT_TOKEN(anon_sym_initial); END_STATE(); + case 42: + if (lookahead == 'c') ADVANCE(43); + END_STATE(); + case 43: + if (lookahead == 'e') ADVANCE(44); + END_STATE(); + case 44: + ACCEPT_TOKEN(anon_sym_interface); + END_STATE(); default: return false; } @@ -3189,15 +3284,15 @@ 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 = 8}, - [3] = {.lex_state = 8}, - [4] = {.lex_state = 8}, - [5] = {.lex_state = 8}, - [6] = {.lex_state = 8}, - [7] = {.lex_state = 8}, - [8] = {.lex_state = 8}, - [9] = {.lex_state = 8}, - [10] = {.lex_state = 8}, + [2] = {.lex_state = 7}, + [3] = {.lex_state = 7}, + [4] = {.lex_state = 7}, + [5] = {.lex_state = 7}, + [6] = {.lex_state = 7}, + [7] = {.lex_state = 7}, + [8] = {.lex_state = 7}, + [9] = {.lex_state = 7}, + [10] = {.lex_state = 7}, [11] = {.lex_state = 1}, [12] = {.lex_state = 1}, [13] = {.lex_state = 1}, @@ -3209,54 +3304,54 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [19] = {.lex_state = 1}, [20] = {.lex_state = 1}, [21] = {.lex_state = 1}, - [22] = {.lex_state = 8}, - [23] = {.lex_state = 1}, - [24] = {.lex_state = 1}, + [22] = {.lex_state = 1}, + [23] = {.lex_state = 7}, + [24] = {.lex_state = 7}, [25] = {.lex_state = 1}, [26] = {.lex_state = 1}, [27] = {.lex_state = 1}, [28] = {.lex_state = 1}, [29] = {.lex_state = 1}, [30] = {.lex_state = 1}, - [31] = {.lex_state = 8}, + [31] = {.lex_state = 1}, [32] = {.lex_state = 1}, - [33] = {.lex_state = 1}, + [33] = {.lex_state = 7}, [34] = {.lex_state = 1}, - [35] = {.lex_state = 8}, + [35] = {.lex_state = 1}, [36] = {.lex_state = 1}, - [37] = {.lex_state = 1}, + [37] = {.lex_state = 7}, [38] = {.lex_state = 1}, [39] = {.lex_state = 1}, [40] = {.lex_state = 1}, [41] = {.lex_state = 1}, [42] = {.lex_state = 1}, [43] = {.lex_state = 1}, - [44] = {.lex_state = 8}, - [45] = {.lex_state = 8}, - [46] = {.lex_state = 8}, - [47] = {.lex_state = 8}, - [48] = {.lex_state = 8}, - [49] = {.lex_state = 8}, - [50] = {.lex_state = 8}, - [51] = {.lex_state = 8}, - [52] = {.lex_state = 8}, - [53] = {.lex_state = 8}, - [54] = {.lex_state = 8}, - [55] = {.lex_state = 8}, - [56] = {.lex_state = 8}, - [57] = {.lex_state = 8}, - [58] = {.lex_state = 8}, - [59] = {.lex_state = 8}, - [60] = {.lex_state = 8}, - [61] = {.lex_state = 8}, - [62] = {.lex_state = 8}, - [63] = {.lex_state = 8}, - [64] = {.lex_state = 8}, - [65] = {.lex_state = 0}, - [66] = {.lex_state = 0}, - [67] = {.lex_state = 8}, + [44] = {.lex_state = 1}, + [45] = {.lex_state = 1}, + [46] = {.lex_state = 7}, + [47] = {.lex_state = 7}, + [48] = {.lex_state = 7}, + [49] = {.lex_state = 7}, + [50] = {.lex_state = 7}, + [51] = {.lex_state = 7}, + [52] = {.lex_state = 7}, + [53] = {.lex_state = 7}, + [54] = {.lex_state = 7}, + [55] = {.lex_state = 7}, + [56] = {.lex_state = 7}, + [57] = {.lex_state = 7}, + [58] = {.lex_state = 7}, + [59] = {.lex_state = 7}, + [60] = {.lex_state = 7}, + [61] = {.lex_state = 7}, + [62] = {.lex_state = 7}, + [63] = {.lex_state = 7}, + [64] = {.lex_state = 7}, + [65] = {.lex_state = 7}, + [66] = {.lex_state = 7}, + [67] = {.lex_state = 0}, [68] = {.lex_state = 0}, - [69] = {.lex_state = 0}, + [69] = {.lex_state = 7}, [70] = {.lex_state = 0}, [71] = {.lex_state = 0}, [72] = {.lex_state = 0}, @@ -3294,7 +3389,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [104] = {.lex_state = 0}, [105] = {.lex_state = 0}, [106] = {.lex_state = 0}, - [107] = {.lex_state = 8}, + [107] = {.lex_state = 0}, [108] = {.lex_state = 0}, [109] = {.lex_state = 0}, [110] = {.lex_state = 0}, @@ -3307,9 +3402,9 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [117] = {.lex_state = 0}, [118] = {.lex_state = 0}, [119] = {.lex_state = 0}, - [120] = {.lex_state = 0}, + [120] = {.lex_state = 7}, [121] = {.lex_state = 0}, - [122] = {.lex_state = 0}, + [122] = {.lex_state = 7}, [123] = {.lex_state = 0}, [124] = {.lex_state = 0}, [125] = {.lex_state = 0}, @@ -3343,6 +3438,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [153] = {.lex_state = 0}, [154] = {.lex_state = 0}, [155] = {.lex_state = 0}, + [156] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -3350,9 +3446,11 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [ts_builtin_sym_end] = ACTIONS(1), [sym_identifier] = ACTIONS(1), [anon_sym_COMMA] = ACTIONS(1), - [anon_sym_COLON] = ACTIONS(1), [anon_sym_DASH_GT] = ACTIONS(1), + [anon_sym_COLON] = ACTIONS(1), [anon_sym_module] = ACTIONS(1), + [anon_sym_interface] = ACTIONS(1), + [anon_sym_cross] = ACTIONS(1), [sym_number] = ACTIONS(1), [anon_sym_COLON_COLON] = ACTIONS(1), [anon_sym_SQUOTE] = ACTIONS(1), @@ -3373,11 +3471,12 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_GT_EQ] = ACTIONS(1), [anon_sym_SLASH] = ACTIONS(1), [anon_sym_PERCENT] = ACTIONS(1), + [anon_sym_DOT] = ACTIONS(1), [anon_sym_LPAREN] = ACTIONS(1), [anon_sym_RPAREN] = ACTIONS(1), [anon_sym_LBRACK] = ACTIONS(1), [anon_sym_RBRACK] = ACTIONS(1), - [aux_sym__linebreak_token1] = ACTIONS(1), + [anon_sym_LF] = ACTIONS(1), [anon_sym_LBRACE] = ACTIONS(1), [anon_sym_RBRACE] = ACTIONS(1), [anon_sym_reg] = ACTIONS(1), @@ -3392,389 +3491,434 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(155), - [sym_module] = STATE(106), - [aux_sym__linebreak] = STATE(89), + [sym_source_file] = STATE(153), + [sym_module] = STATE(108), + [aux_sym__linebreak] = STATE(95), [ts_builtin_sym_end] = ACTIONS(5), [anon_sym_module] = ACTIONS(7), - [aux_sym__linebreak_token1] = ACTIONS(9), + [anon_sym_LF] = ACTIONS(9), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [2] = { - [sym_global_identifier] = STATE(36), - [sym_array_type] = STATE(130), - [sym__type] = STATE(130), - [sym_declaration] = STATE(125), - [sym_unary_op] = STATE(33), - [sym_binary_op] = STATE(33), - [sym_array_op] = STATE(33), - [sym_func_call] = STATE(33), - [sym_parenthesis_expression] = STATE(33), - [sym__expression] = STATE(33), - [aux_sym__linebreak] = STATE(31), - [sym_block] = STATE(140), - [sym_write_modifiers] = STATE(35), - [sym_assign_to] = STATE(82), - [sym_assign_left_side] = STATE(131), - [sym_decl_assign_statement] = STATE(140), - [sym_if_statement] = STATE(140), - [sym_for_statement] = STATE(140), - [aux_sym_write_modifiers_repeat1] = STATE(63), + [sym_interface_statement] = STATE(142), + [sym_cross_statement] = STATE(142), + [sym_global_identifier] = STATE(38), + [sym_array_type] = STATE(140), + [sym__type] = STATE(140), + [sym_declaration] = STATE(105), + [sym_unary_op] = STATE(35), + [sym_binary_op] = STATE(35), + [sym_array_op] = STATE(35), + [sym_func_call] = STATE(35), + [sym_field_access] = STATE(35), + [sym_parenthesis_expression] = STATE(35), + [sym__expression] = STATE(35), + [aux_sym__linebreak] = STATE(33), + [sym_block] = STATE(142), + [sym_write_modifiers] = STATE(37), + [sym_assign_to] = STATE(83), + [sym_assign_left_side] = STATE(138), + [sym_decl_assign_statement] = STATE(142), + [sym_if_statement] = STATE(142), + [sym_for_statement] = STATE(142), + [aux_sym_write_modifiers_repeat1] = STATE(64), [sym_identifier] = ACTIONS(11), - [sym_number] = ACTIONS(13), - [anon_sym_state] = ACTIONS(15), - [anon_sym_gen] = ACTIONS(15), - [anon_sym_PLUS] = ACTIONS(17), - [anon_sym_DASH] = ACTIONS(17), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_BANG] = ACTIONS(17), - [anon_sym_PIPE] = ACTIONS(17), - [anon_sym_AMP] = ACTIONS(17), - [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [aux_sym__linebreak_token1] = ACTIONS(21), - [anon_sym_LBRACE] = ACTIONS(23), - [anon_sym_RBRACE] = ACTIONS(25), - [anon_sym_reg] = ACTIONS(27), - [anon_sym_initial] = ACTIONS(29), - [anon_sym_if] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), + [anon_sym_interface] = ACTIONS(13), + [anon_sym_cross] = ACTIONS(15), + [sym_number] = ACTIONS(17), + [anon_sym_state] = ACTIONS(19), + [anon_sym_gen] = ACTIONS(19), + [anon_sym_PLUS] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(21), + [anon_sym_STAR] = ACTIONS(21), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_PIPE] = ACTIONS(21), + [anon_sym_AMP] = ACTIONS(21), + [anon_sym_CARET] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(23), + [anon_sym_LF] = ACTIONS(25), + [anon_sym_LBRACE] = ACTIONS(27), + [anon_sym_RBRACE] = ACTIONS(29), + [anon_sym_reg] = ACTIONS(31), + [anon_sym_initial] = ACTIONS(33), + [anon_sym_if] = ACTIONS(35), + [anon_sym_for] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [3] = { - [sym_global_identifier] = STATE(36), - [sym_array_type] = STATE(130), - [sym__type] = STATE(130), - [sym_declaration] = STATE(125), - [sym_unary_op] = STATE(33), - [sym_binary_op] = STATE(33), - [sym_array_op] = STATE(33), - [sym_func_call] = STATE(33), - [sym_parenthesis_expression] = STATE(33), - [sym__expression] = STATE(33), - [aux_sym__linebreak] = STATE(31), - [sym_block] = STATE(140), - [sym_write_modifiers] = STATE(35), - [sym_assign_to] = STATE(82), - [sym_assign_left_side] = STATE(131), - [sym_decl_assign_statement] = STATE(140), - [sym_if_statement] = STATE(140), - [sym_for_statement] = STATE(140), - [aux_sym_write_modifiers_repeat1] = STATE(63), + [sym_interface_statement] = STATE(142), + [sym_cross_statement] = STATE(142), + [sym_global_identifier] = STATE(38), + [sym_array_type] = STATE(140), + [sym__type] = STATE(140), + [sym_declaration] = STATE(105), + [sym_unary_op] = STATE(35), + [sym_binary_op] = STATE(35), + [sym_array_op] = STATE(35), + [sym_func_call] = STATE(35), + [sym_field_access] = STATE(35), + [sym_parenthesis_expression] = STATE(35), + [sym__expression] = STATE(35), + [aux_sym__linebreak] = STATE(33), + [sym_block] = STATE(142), + [sym_write_modifiers] = STATE(37), + [sym_assign_to] = STATE(83), + [sym_assign_left_side] = STATE(138), + [sym_decl_assign_statement] = STATE(142), + [sym_if_statement] = STATE(142), + [sym_for_statement] = STATE(142), + [aux_sym_write_modifiers_repeat1] = STATE(64), [sym_identifier] = ACTIONS(11), - [sym_number] = ACTIONS(13), - [anon_sym_state] = ACTIONS(15), - [anon_sym_gen] = ACTIONS(15), - [anon_sym_PLUS] = ACTIONS(17), - [anon_sym_DASH] = ACTIONS(17), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_BANG] = ACTIONS(17), - [anon_sym_PIPE] = ACTIONS(17), - [anon_sym_AMP] = ACTIONS(17), - [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [aux_sym__linebreak_token1] = ACTIONS(21), - [anon_sym_LBRACE] = ACTIONS(23), - [anon_sym_RBRACE] = ACTIONS(35), - [anon_sym_reg] = ACTIONS(27), - [anon_sym_initial] = ACTIONS(29), - [anon_sym_if] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), + [anon_sym_interface] = ACTIONS(13), + [anon_sym_cross] = ACTIONS(15), + [sym_number] = ACTIONS(17), + [anon_sym_state] = ACTIONS(19), + [anon_sym_gen] = ACTIONS(19), + [anon_sym_PLUS] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(21), + [anon_sym_STAR] = ACTIONS(21), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_PIPE] = ACTIONS(21), + [anon_sym_AMP] = ACTIONS(21), + [anon_sym_CARET] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(23), + [anon_sym_LF] = ACTIONS(25), + [anon_sym_LBRACE] = ACTIONS(27), + [anon_sym_RBRACE] = ACTIONS(39), + [anon_sym_reg] = ACTIONS(31), + [anon_sym_initial] = ACTIONS(33), + [anon_sym_if] = ACTIONS(35), + [anon_sym_for] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [4] = { - [sym_global_identifier] = STATE(36), - [sym_array_type] = STATE(130), - [sym__type] = STATE(130), - [sym_declaration] = STATE(125), - [sym_unary_op] = STATE(33), - [sym_binary_op] = STATE(33), - [sym_array_op] = STATE(33), - [sym_func_call] = STATE(33), - [sym_parenthesis_expression] = STATE(33), - [sym__expression] = STATE(33), - [aux_sym__linebreak] = STATE(31), - [sym_block] = STATE(140), - [sym_write_modifiers] = STATE(35), - [sym_assign_to] = STATE(82), - [sym_assign_left_side] = STATE(131), - [sym_decl_assign_statement] = STATE(140), - [sym_if_statement] = STATE(140), - [sym_for_statement] = STATE(140), - [aux_sym_write_modifiers_repeat1] = STATE(63), + [sym_interface_statement] = STATE(99), + [sym_cross_statement] = STATE(99), + [sym_global_identifier] = STATE(38), + [sym_array_type] = STATE(140), + [sym__type] = STATE(140), + [sym_declaration] = STATE(105), + [sym_unary_op] = STATE(35), + [sym_binary_op] = STATE(35), + [sym_array_op] = STATE(35), + [sym_func_call] = STATE(35), + [sym_field_access] = STATE(35), + [sym_parenthesis_expression] = STATE(35), + [sym__expression] = STATE(35), + [aux_sym__linebreak] = STATE(33), + [sym_block] = STATE(99), + [sym_write_modifiers] = STATE(37), + [sym_assign_to] = STATE(83), + [sym_assign_left_side] = STATE(91), + [sym_decl_assign_statement] = STATE(99), + [sym_if_statement] = STATE(99), + [sym_for_statement] = STATE(99), + [aux_sym_write_modifiers_repeat1] = STATE(64), [sym_identifier] = ACTIONS(11), - [sym_number] = ACTIONS(13), - [anon_sym_state] = ACTIONS(15), - [anon_sym_gen] = ACTIONS(15), - [anon_sym_PLUS] = ACTIONS(17), - [anon_sym_DASH] = ACTIONS(17), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_BANG] = ACTIONS(17), - [anon_sym_PIPE] = ACTIONS(17), - [anon_sym_AMP] = ACTIONS(17), - [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [aux_sym__linebreak_token1] = ACTIONS(21), - [anon_sym_LBRACE] = ACTIONS(23), - [anon_sym_RBRACE] = ACTIONS(37), - [anon_sym_reg] = ACTIONS(27), - [anon_sym_initial] = ACTIONS(29), - [anon_sym_if] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), + [anon_sym_interface] = ACTIONS(13), + [anon_sym_cross] = ACTIONS(15), + [sym_number] = ACTIONS(17), + [anon_sym_state] = ACTIONS(19), + [anon_sym_gen] = ACTIONS(19), + [anon_sym_PLUS] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(21), + [anon_sym_STAR] = ACTIONS(21), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_PIPE] = ACTIONS(21), + [anon_sym_AMP] = ACTIONS(21), + [anon_sym_CARET] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(23), + [anon_sym_LF] = ACTIONS(25), + [anon_sym_LBRACE] = ACTIONS(27), + [anon_sym_RBRACE] = ACTIONS(41), + [anon_sym_reg] = ACTIONS(31), + [anon_sym_initial] = ACTIONS(33), + [anon_sym_if] = ACTIONS(35), + [anon_sym_for] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [5] = { - [sym_global_identifier] = STATE(36), - [sym_array_type] = STATE(130), - [sym__type] = STATE(130), - [sym_declaration] = STATE(125), - [sym_unary_op] = STATE(33), - [sym_binary_op] = STATE(33), - [sym_array_op] = STATE(33), - [sym_func_call] = STATE(33), - [sym_parenthesis_expression] = STATE(33), - [sym__expression] = STATE(33), - [aux_sym__linebreak] = STATE(31), - [sym_block] = STATE(140), - [sym_write_modifiers] = STATE(35), - [sym_assign_to] = STATE(82), - [sym_assign_left_side] = STATE(131), - [sym_decl_assign_statement] = STATE(140), - [sym_if_statement] = STATE(140), - [sym_for_statement] = STATE(140), - [aux_sym_write_modifiers_repeat1] = STATE(63), + [sym_interface_statement] = STATE(142), + [sym_cross_statement] = STATE(142), + [sym_global_identifier] = STATE(38), + [sym_array_type] = STATE(140), + [sym__type] = STATE(140), + [sym_declaration] = STATE(105), + [sym_unary_op] = STATE(35), + [sym_binary_op] = STATE(35), + [sym_array_op] = STATE(35), + [sym_func_call] = STATE(35), + [sym_field_access] = STATE(35), + [sym_parenthesis_expression] = STATE(35), + [sym__expression] = STATE(35), + [aux_sym__linebreak] = STATE(33), + [sym_block] = STATE(142), + [sym_write_modifiers] = STATE(37), + [sym_assign_to] = STATE(83), + [sym_assign_left_side] = STATE(138), + [sym_decl_assign_statement] = STATE(142), + [sym_if_statement] = STATE(142), + [sym_for_statement] = STATE(142), + [aux_sym_write_modifiers_repeat1] = STATE(64), [sym_identifier] = ACTIONS(11), - [sym_number] = ACTIONS(13), - [anon_sym_state] = ACTIONS(15), - [anon_sym_gen] = ACTIONS(15), - [anon_sym_PLUS] = ACTIONS(17), - [anon_sym_DASH] = ACTIONS(17), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_BANG] = ACTIONS(17), - [anon_sym_PIPE] = ACTIONS(17), - [anon_sym_AMP] = ACTIONS(17), - [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [aux_sym__linebreak_token1] = ACTIONS(21), - [anon_sym_LBRACE] = ACTIONS(23), - [anon_sym_RBRACE] = ACTIONS(39), - [anon_sym_reg] = ACTIONS(27), - [anon_sym_initial] = ACTIONS(29), - [anon_sym_if] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), + [anon_sym_interface] = ACTIONS(13), + [anon_sym_cross] = ACTIONS(15), + [sym_number] = ACTIONS(17), + [anon_sym_state] = ACTIONS(19), + [anon_sym_gen] = ACTIONS(19), + [anon_sym_PLUS] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(21), + [anon_sym_STAR] = ACTIONS(21), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_PIPE] = ACTIONS(21), + [anon_sym_AMP] = ACTIONS(21), + [anon_sym_CARET] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(23), + [anon_sym_LF] = ACTIONS(25), + [anon_sym_LBRACE] = ACTIONS(27), + [anon_sym_RBRACE] = ACTIONS(43), + [anon_sym_reg] = ACTIONS(31), + [anon_sym_initial] = ACTIONS(33), + [anon_sym_if] = ACTIONS(35), + [anon_sym_for] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [6] = { - [sym_global_identifier] = STATE(36), - [sym_array_type] = STATE(130), - [sym__type] = STATE(130), - [sym_declaration] = STATE(125), - [sym_unary_op] = STATE(33), - [sym_binary_op] = STATE(33), - [sym_array_op] = STATE(33), - [sym_func_call] = STATE(33), - [sym_parenthesis_expression] = STATE(33), - [sym__expression] = STATE(33), - [aux_sym__linebreak] = STATE(31), - [sym_block] = STATE(140), - [sym_write_modifiers] = STATE(35), - [sym_assign_to] = STATE(82), - [sym_assign_left_side] = STATE(131), - [sym_decl_assign_statement] = STATE(140), - [sym_if_statement] = STATE(140), - [sym_for_statement] = STATE(140), - [aux_sym_write_modifiers_repeat1] = STATE(63), + [sym_interface_statement] = STATE(142), + [sym_cross_statement] = STATE(142), + [sym_global_identifier] = STATE(38), + [sym_array_type] = STATE(140), + [sym__type] = STATE(140), + [sym_declaration] = STATE(105), + [sym_unary_op] = STATE(35), + [sym_binary_op] = STATE(35), + [sym_array_op] = STATE(35), + [sym_func_call] = STATE(35), + [sym_field_access] = STATE(35), + [sym_parenthesis_expression] = STATE(35), + [sym__expression] = STATE(35), + [aux_sym__linebreak] = STATE(33), + [sym_block] = STATE(142), + [sym_write_modifiers] = STATE(37), + [sym_assign_to] = STATE(83), + [sym_assign_left_side] = STATE(138), + [sym_decl_assign_statement] = STATE(142), + [sym_if_statement] = STATE(142), + [sym_for_statement] = STATE(142), + [aux_sym_write_modifiers_repeat1] = STATE(64), [sym_identifier] = ACTIONS(11), - [sym_number] = ACTIONS(13), - [anon_sym_state] = ACTIONS(15), - [anon_sym_gen] = ACTIONS(15), - [anon_sym_PLUS] = ACTIONS(17), - [anon_sym_DASH] = ACTIONS(17), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_BANG] = ACTIONS(17), - [anon_sym_PIPE] = ACTIONS(17), - [anon_sym_AMP] = ACTIONS(17), - [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [aux_sym__linebreak_token1] = ACTIONS(21), - [anon_sym_LBRACE] = ACTIONS(23), - [anon_sym_RBRACE] = ACTIONS(41), - [anon_sym_reg] = ACTIONS(27), - [anon_sym_initial] = ACTIONS(29), - [anon_sym_if] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), + [anon_sym_interface] = ACTIONS(13), + [anon_sym_cross] = ACTIONS(15), + [sym_number] = ACTIONS(17), + [anon_sym_state] = ACTIONS(19), + [anon_sym_gen] = ACTIONS(19), + [anon_sym_PLUS] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(21), + [anon_sym_STAR] = ACTIONS(21), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_PIPE] = ACTIONS(21), + [anon_sym_AMP] = ACTIONS(21), + [anon_sym_CARET] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(23), + [anon_sym_LF] = ACTIONS(25), + [anon_sym_LBRACE] = ACTIONS(27), + [anon_sym_RBRACE] = ACTIONS(45), + [anon_sym_reg] = ACTIONS(31), + [anon_sym_initial] = ACTIONS(33), + [anon_sym_if] = ACTIONS(35), + [anon_sym_for] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [7] = { - [sym_global_identifier] = STATE(36), - [sym_array_type] = STATE(130), - [sym__type] = STATE(130), - [sym_declaration] = STATE(125), - [sym_unary_op] = STATE(33), - [sym_binary_op] = STATE(33), - [sym_array_op] = STATE(33), - [sym_func_call] = STATE(33), - [sym_parenthesis_expression] = STATE(33), - [sym__expression] = STATE(33), - [aux_sym__linebreak] = STATE(31), - [sym_block] = STATE(104), - [sym_write_modifiers] = STATE(35), - [sym_assign_to] = STATE(82), - [sym_assign_left_side] = STATE(91), - [sym_decl_assign_statement] = STATE(104), - [sym_if_statement] = STATE(104), - [sym_for_statement] = STATE(104), - [aux_sym_write_modifiers_repeat1] = STATE(63), + [sym_interface_statement] = STATE(142), + [sym_cross_statement] = STATE(142), + [sym_global_identifier] = STATE(38), + [sym_array_type] = STATE(140), + [sym__type] = STATE(140), + [sym_declaration] = STATE(105), + [sym_unary_op] = STATE(35), + [sym_binary_op] = STATE(35), + [sym_array_op] = STATE(35), + [sym_func_call] = STATE(35), + [sym_field_access] = STATE(35), + [sym_parenthesis_expression] = STATE(35), + [sym__expression] = STATE(35), + [aux_sym__linebreak] = STATE(33), + [sym_block] = STATE(142), + [sym_write_modifiers] = STATE(37), + [sym_assign_to] = STATE(83), + [sym_assign_left_side] = STATE(138), + [sym_decl_assign_statement] = STATE(142), + [sym_if_statement] = STATE(142), + [sym_for_statement] = STATE(142), + [aux_sym_write_modifiers_repeat1] = STATE(64), [sym_identifier] = ACTIONS(11), - [sym_number] = ACTIONS(13), - [anon_sym_state] = ACTIONS(15), - [anon_sym_gen] = ACTIONS(15), - [anon_sym_PLUS] = ACTIONS(17), - [anon_sym_DASH] = ACTIONS(17), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_BANG] = ACTIONS(17), - [anon_sym_PIPE] = ACTIONS(17), - [anon_sym_AMP] = ACTIONS(17), - [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [aux_sym__linebreak_token1] = ACTIONS(21), - [anon_sym_LBRACE] = ACTIONS(23), - [anon_sym_RBRACE] = ACTIONS(43), - [anon_sym_reg] = ACTIONS(27), - [anon_sym_initial] = ACTIONS(29), - [anon_sym_if] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), + [anon_sym_interface] = ACTIONS(13), + [anon_sym_cross] = ACTIONS(15), + [sym_number] = ACTIONS(17), + [anon_sym_state] = ACTIONS(19), + [anon_sym_gen] = ACTIONS(19), + [anon_sym_PLUS] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(21), + [anon_sym_STAR] = ACTIONS(21), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_PIPE] = ACTIONS(21), + [anon_sym_AMP] = ACTIONS(21), + [anon_sym_CARET] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(23), + [anon_sym_LF] = ACTIONS(25), + [anon_sym_LBRACE] = ACTIONS(27), + [anon_sym_RBRACE] = ACTIONS(47), + [anon_sym_reg] = ACTIONS(31), + [anon_sym_initial] = ACTIONS(33), + [anon_sym_if] = ACTIONS(35), + [anon_sym_for] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [8] = { - [sym_global_identifier] = STATE(36), - [sym_array_type] = STATE(130), - [sym__type] = STATE(130), - [sym_declaration] = STATE(125), - [sym_unary_op] = STATE(33), - [sym_binary_op] = STATE(33), - [sym_array_op] = STATE(33), - [sym_func_call] = STATE(33), - [sym_parenthesis_expression] = STATE(33), - [sym__expression] = STATE(33), - [aux_sym__linebreak] = STATE(7), - [sym_block] = STATE(123), - [sym_write_modifiers] = STATE(35), - [sym_assign_to] = STATE(82), - [sym_assign_left_side] = STATE(90), - [sym_decl_assign_statement] = STATE(123), - [sym_if_statement] = STATE(123), - [sym_for_statement] = STATE(123), - [aux_sym_write_modifiers_repeat1] = STATE(63), + [sym_interface_statement] = STATE(142), + [sym_cross_statement] = STATE(142), + [sym_global_identifier] = STATE(38), + [sym_array_type] = STATE(140), + [sym__type] = STATE(140), + [sym_declaration] = STATE(105), + [sym_unary_op] = STATE(35), + [sym_binary_op] = STATE(35), + [sym_array_op] = STATE(35), + [sym_func_call] = STATE(35), + [sym_field_access] = STATE(35), + [sym_parenthesis_expression] = STATE(35), + [sym__expression] = STATE(35), + [aux_sym__linebreak] = STATE(33), + [sym_block] = STATE(142), + [sym_write_modifiers] = STATE(37), + [sym_assign_to] = STATE(83), + [sym_assign_left_side] = STATE(138), + [sym_decl_assign_statement] = STATE(142), + [sym_if_statement] = STATE(142), + [sym_for_statement] = STATE(142), + [aux_sym_write_modifiers_repeat1] = STATE(64), [sym_identifier] = ACTIONS(11), - [sym_number] = ACTIONS(13), - [anon_sym_state] = ACTIONS(15), - [anon_sym_gen] = ACTIONS(15), - [anon_sym_PLUS] = ACTIONS(17), - [anon_sym_DASH] = ACTIONS(17), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_BANG] = ACTIONS(17), - [anon_sym_PIPE] = ACTIONS(17), - [anon_sym_AMP] = ACTIONS(17), - [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [aux_sym__linebreak_token1] = ACTIONS(45), - [anon_sym_LBRACE] = ACTIONS(23), - [anon_sym_RBRACE] = ACTIONS(47), - [anon_sym_reg] = ACTIONS(27), - [anon_sym_initial] = ACTIONS(29), - [anon_sym_if] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), + [anon_sym_interface] = ACTIONS(13), + [anon_sym_cross] = ACTIONS(15), + [sym_number] = ACTIONS(17), + [anon_sym_state] = ACTIONS(19), + [anon_sym_gen] = ACTIONS(19), + [anon_sym_PLUS] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(21), + [anon_sym_STAR] = ACTIONS(21), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_PIPE] = ACTIONS(21), + [anon_sym_AMP] = ACTIONS(21), + [anon_sym_CARET] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(23), + [anon_sym_LF] = ACTIONS(25), + [anon_sym_LBRACE] = ACTIONS(27), + [anon_sym_RBRACE] = ACTIONS(49), + [anon_sym_reg] = ACTIONS(31), + [anon_sym_initial] = ACTIONS(33), + [anon_sym_if] = ACTIONS(35), + [anon_sym_for] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [9] = { - [sym_global_identifier] = STATE(36), - [sym_array_type] = STATE(130), - [sym__type] = STATE(130), - [sym_declaration] = STATE(125), - [sym_unary_op] = STATE(33), - [sym_binary_op] = STATE(33), - [sym_array_op] = STATE(33), - [sym_func_call] = STATE(33), - [sym_parenthesis_expression] = STATE(33), - [sym__expression] = STATE(33), - [aux_sym__linebreak] = STATE(31), - [sym_block] = STATE(140), - [sym_write_modifiers] = STATE(35), - [sym_assign_to] = STATE(82), - [sym_assign_left_side] = STATE(131), - [sym_decl_assign_statement] = STATE(140), - [sym_if_statement] = STATE(140), - [sym_for_statement] = STATE(140), - [aux_sym_write_modifiers_repeat1] = STATE(63), + [sym_interface_statement] = STATE(129), + [sym_cross_statement] = STATE(129), + [sym_global_identifier] = STATE(38), + [sym_array_type] = STATE(140), + [sym__type] = STATE(140), + [sym_declaration] = STATE(105), + [sym_unary_op] = STATE(35), + [sym_binary_op] = STATE(35), + [sym_array_op] = STATE(35), + [sym_func_call] = STATE(35), + [sym_field_access] = STATE(35), + [sym_parenthesis_expression] = STATE(35), + [sym__expression] = STATE(35), + [aux_sym__linebreak] = STATE(4), + [sym_block] = STATE(129), + [sym_write_modifiers] = STATE(37), + [sym_assign_to] = STATE(83), + [sym_assign_left_side] = STATE(87), + [sym_decl_assign_statement] = STATE(129), + [sym_if_statement] = STATE(129), + [sym_for_statement] = STATE(129), + [aux_sym_write_modifiers_repeat1] = STATE(64), [sym_identifier] = ACTIONS(11), - [sym_number] = ACTIONS(13), - [anon_sym_state] = ACTIONS(15), - [anon_sym_gen] = ACTIONS(15), - [anon_sym_PLUS] = ACTIONS(17), - [anon_sym_DASH] = ACTIONS(17), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_BANG] = ACTIONS(17), - [anon_sym_PIPE] = ACTIONS(17), - [anon_sym_AMP] = ACTIONS(17), - [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [aux_sym__linebreak_token1] = ACTIONS(21), - [anon_sym_LBRACE] = ACTIONS(23), - [anon_sym_RBRACE] = ACTIONS(49), - [anon_sym_reg] = ACTIONS(27), - [anon_sym_initial] = ACTIONS(29), - [anon_sym_if] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), + [anon_sym_interface] = ACTIONS(13), + [anon_sym_cross] = ACTIONS(15), + [sym_number] = ACTIONS(17), + [anon_sym_state] = ACTIONS(19), + [anon_sym_gen] = ACTIONS(19), + [anon_sym_PLUS] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(21), + [anon_sym_STAR] = ACTIONS(21), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_PIPE] = ACTIONS(21), + [anon_sym_AMP] = ACTIONS(21), + [anon_sym_CARET] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(23), + [anon_sym_LF] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(27), + [anon_sym_RBRACE] = ACTIONS(53), + [anon_sym_reg] = ACTIONS(31), + [anon_sym_initial] = ACTIONS(33), + [anon_sym_if] = ACTIONS(35), + [anon_sym_for] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [10] = { - [sym_global_identifier] = STATE(36), - [sym_array_type] = STATE(130), - [sym__type] = STATE(130), - [sym_declaration] = STATE(125), - [sym_unary_op] = STATE(33), - [sym_binary_op] = STATE(33), - [sym_array_op] = STATE(33), - [sym_func_call] = STATE(33), - [sym_parenthesis_expression] = STATE(33), - [sym__expression] = STATE(33), - [aux_sym__linebreak] = STATE(31), - [sym_block] = STATE(140), - [sym_write_modifiers] = STATE(35), - [sym_assign_to] = STATE(82), - [sym_assign_left_side] = STATE(131), - [sym_decl_assign_statement] = STATE(140), - [sym_if_statement] = STATE(140), - [sym_for_statement] = STATE(140), - [aux_sym_write_modifiers_repeat1] = STATE(63), + [sym_interface_statement] = STATE(142), + [sym_cross_statement] = STATE(142), + [sym_global_identifier] = STATE(38), + [sym_array_type] = STATE(140), + [sym__type] = STATE(140), + [sym_declaration] = STATE(105), + [sym_unary_op] = STATE(35), + [sym_binary_op] = STATE(35), + [sym_array_op] = STATE(35), + [sym_func_call] = STATE(35), + [sym_field_access] = STATE(35), + [sym_parenthesis_expression] = STATE(35), + [sym__expression] = STATE(35), + [aux_sym__linebreak] = STATE(33), + [sym_block] = STATE(142), + [sym_write_modifiers] = STATE(37), + [sym_assign_to] = STATE(83), + [sym_assign_left_side] = STATE(138), + [sym_decl_assign_statement] = STATE(142), + [sym_if_statement] = STATE(142), + [sym_for_statement] = STATE(142), + [aux_sym_write_modifiers_repeat1] = STATE(64), [sym_identifier] = ACTIONS(11), - [sym_number] = ACTIONS(13), - [anon_sym_state] = ACTIONS(15), - [anon_sym_gen] = ACTIONS(15), - [anon_sym_PLUS] = ACTIONS(17), - [anon_sym_DASH] = ACTIONS(17), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_BANG] = ACTIONS(17), - [anon_sym_PIPE] = ACTIONS(17), - [anon_sym_AMP] = ACTIONS(17), - [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [aux_sym__linebreak_token1] = ACTIONS(21), - [anon_sym_LBRACE] = ACTIONS(23), - [anon_sym_reg] = ACTIONS(27), - [anon_sym_initial] = ACTIONS(29), - [anon_sym_if] = ACTIONS(31), - [anon_sym_for] = ACTIONS(33), + [anon_sym_interface] = ACTIONS(13), + [anon_sym_cross] = ACTIONS(15), + [sym_number] = ACTIONS(17), + [anon_sym_state] = ACTIONS(19), + [anon_sym_gen] = ACTIONS(19), + [anon_sym_PLUS] = ACTIONS(21), + [anon_sym_DASH] = ACTIONS(21), + [anon_sym_STAR] = ACTIONS(21), + [anon_sym_BANG] = ACTIONS(21), + [anon_sym_PIPE] = ACTIONS(21), + [anon_sym_AMP] = ACTIONS(21), + [anon_sym_CARET] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(23), + [anon_sym_LF] = ACTIONS(25), + [anon_sym_LBRACE] = ACTIONS(27), + [anon_sym_reg] = ACTIONS(31), + [anon_sym_initial] = ACTIONS(33), + [anon_sym_if] = ACTIONS(35), + [anon_sym_for] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, @@ -3782,22 +3926,23 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { static const uint16_t ts_small_parse_table[] = { [0] = 5, - ACTIONS(55), 1, + ACTIONS(59), 1, anon_sym_COLON_COLON, - STATE(13), 1, + STATE(12), 1, aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(51), 7, + ACTIONS(55), 8, sym_identifier, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, + anon_sym_DOT, anon_sym_EQ, anon_sym_in, - ACTIONS(53), 20, + ACTIONS(57), 20, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -3814,27 +3959,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, - [42] = 5, - ACTIONS(55), 1, + [43] = 5, + ACTIONS(65), 1, anon_sym_COLON_COLON, - STATE(11), 1, + STATE(12), 1, aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(57), 7, + ACTIONS(61), 8, sym_identifier, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, + anon_sym_DOT, anon_sym_EQ, anon_sym_in, - ACTIONS(59), 20, + ACTIONS(63), 20, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -3851,27 +3997,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, - [84] = 5, - ACTIONS(65), 1, + [86] = 5, + ACTIONS(59), 1, anon_sym_COLON_COLON, - STATE(13), 1, + STATE(11), 1, aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(61), 7, + ACTIONS(68), 8, sym_identifier, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, + anon_sym_DOT, anon_sym_EQ, anon_sym_in, - ACTIONS(63), 20, + ACTIONS(70), 20, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -3888,73 +4035,73 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, - [126] = 11, - ACTIONS(70), 1, + [129] = 14, + ACTIONS(74), 1, anon_sym_PLUS, - ACTIONS(72), 1, + ACTIONS(76), 1, anon_sym_DASH, - ACTIONS(78), 1, - anon_sym_SLASH, ACTIONS(80), 1, - anon_sym_LPAREN, + anon_sym_PIPE, ACTIONS(82), 1, + anon_sym_CARET, + ACTIONS(86), 1, + anon_sym_SLASH, + ACTIONS(88), 1, + anon_sym_DOT, + ACTIONS(90), 1, + anon_sym_LPAREN, + ACTIONS(92), 1, anon_sym_LBRACK, STATE(25), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(29), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(76), 3, + ACTIONS(84), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(68), 16, + ACTIONS(72), 14, anon_sym_COMMA, anon_sym_DASH_GT, - anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_RPAREN, anon_sym_RBRACK, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [179] = 7, - ACTIONS(80), 1, - anon_sym_LPAREN, - ACTIONS(82), 1, - anon_sym_LBRACK, - STATE(25), 1, - sym_array_bracket_expression, - STATE(26), 1, - sym_parenthesis_expression_list, + [189] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 5, + ACTIONS(94), 8, + sym_identifier, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, + anon_sym_DOT, anon_sym_EQ, - ACTIONS(84), 19, + anon_sym_in, + ACTIONS(96), 21, anon_sym_COMMA, anon_sym_DASH_GT, + anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -3965,89 +4112,88 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, - [224] = 13, - ACTIONS(70), 1, - anon_sym_PLUS, - ACTIONS(72), 1, - anon_sym_DASH, - ACTIONS(78), 1, - anon_sym_SLASH, - ACTIONS(80), 1, - anon_sym_LPAREN, - ACTIONS(82), 1, - anon_sym_LBRACK, + [227] = 8, ACTIONS(88), 1, - anon_sym_PIPE, + anon_sym_DOT, ACTIONS(90), 1, - anon_sym_CARET, + anon_sym_LPAREN, + ACTIONS(92), 1, + anon_sym_LBRACK, STATE(25), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(29), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(76), 3, + ACTIONS(100), 5, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, + anon_sym_SLASH, anon_sym_EQ, - ACTIONS(68), 14, + ACTIONS(98), 19, anon_sym_COMMA, anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [281] = 14, - ACTIONS(70), 1, + [275] = 15, + ACTIONS(74), 1, anon_sym_PLUS, - ACTIONS(72), 1, + ACTIONS(76), 1, anon_sym_DASH, - ACTIONS(78), 1, - anon_sym_SLASH, ACTIONS(80), 1, - anon_sym_LPAREN, + anon_sym_PIPE, ACTIONS(82), 1, - anon_sym_LBRACK, + anon_sym_CARET, + ACTIONS(86), 1, + anon_sym_SLASH, ACTIONS(88), 1, - anon_sym_PIPE, + anon_sym_DOT, ACTIONS(90), 1, - anon_sym_CARET, + anon_sym_LPAREN, ACTIONS(92), 1, + anon_sym_LBRACK, + ACTIONS(102), 1, anon_sym_AMP, STATE(25), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(29), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(76), 3, + ACTIONS(84), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(68), 13, + ACTIONS(72), 13, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_EQ_EQ, @@ -4056,113 +4202,121 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_RPAREN, anon_sym_RBRACK, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [340] = 12, - ACTIONS(70), 1, + [337] = 12, + ACTIONS(74), 1, anon_sym_PLUS, - ACTIONS(72), 1, + ACTIONS(76), 1, anon_sym_DASH, - ACTIONS(78), 1, + ACTIONS(86), 1, anon_sym_SLASH, - ACTIONS(80), 1, + ACTIONS(88), 1, + anon_sym_DOT, + ACTIONS(90), 1, anon_sym_LPAREN, - ACTIONS(82), 1, + ACTIONS(92), 1, anon_sym_LBRACK, - ACTIONS(90), 1, - anon_sym_CARET, STATE(25), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(29), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(76), 3, + ACTIONS(84), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(68), 15, + ACTIONS(72), 16, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_RPAREN, anon_sym_RBRACK, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [395] = 9, - ACTIONS(78), 1, + [393] = 13, + ACTIONS(74), 1, + anon_sym_PLUS, + ACTIONS(76), 1, + anon_sym_DASH, + ACTIONS(82), 1, + anon_sym_CARET, + ACTIONS(86), 1, anon_sym_SLASH, - ACTIONS(80), 1, + ACTIONS(88), 1, + anon_sym_DOT, + ACTIONS(90), 1, anon_sym_LPAREN, - ACTIONS(82), 1, + ACTIONS(92), 1, anon_sym_LBRACK, STATE(25), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(29), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(76), 4, - anon_sym_DASH, + ACTIONS(84), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(68), 17, + ACTIONS(72), 15, anon_sym_COMMA, anon_sym_DASH_GT, - anon_sym_PLUS, anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_RPAREN, anon_sym_RBRACK, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [444] = 7, - ACTIONS(80), 1, + [451] = 8, + ACTIONS(88), 1, + anon_sym_DOT, + ACTIONS(90), 1, anon_sym_LPAREN, - ACTIONS(82), 1, + ACTIONS(92), 1, anon_sym_LBRACK, STATE(25), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(29), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(76), 5, + ACTIONS(84), 5, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_EQ, - ACTIONS(68), 19, + ACTIONS(72), 19, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4177,27 +4331,69 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, - aux_sym__linebreak_token1, + anon_sym_LF, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DOT_DOT, + [499] = 10, + ACTIONS(86), 1, + anon_sym_SLASH, + ACTIONS(88), 1, + anon_sym_DOT, + ACTIONS(90), 1, + anon_sym_LPAREN, + ACTIONS(92), 1, + anon_sym_LBRACK, + STATE(25), 1, + sym_array_bracket_expression, + STATE(29), 1, + sym_parenthesis_expression_list, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(78), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(84), 4, + anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + ACTIONS(72), 17, + anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [489] = 3, + [551] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(94), 7, + ACTIONS(104), 8, sym_identifier, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, + anon_sym_DOT, anon_sym_EQ, anon_sym_in, - ACTIONS(96), 21, + ACTIONS(106), 20, anon_sym_COMMA, anon_sym_DASH_GT, - anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4212,48 +4408,87 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, - [526] = 15, + [588] = 15, ACTIONS(11), 1, sym_identifier, - ACTIONS(13), 1, + ACTIONS(17), 1, sym_number, - ACTIONS(19), 1, + ACTIONS(23), 1, anon_sym_LPAREN, - ACTIONS(27), 1, + ACTIONS(31), 1, anon_sym_reg, - ACTIONS(29), 1, + ACTIONS(33), 1, anon_sym_initial, - STATE(35), 1, + STATE(37), 1, sym_write_modifiers, - STATE(36), 1, + STATE(38), 1, sym_global_identifier, - STATE(63), 1, + STATE(64), 1, aux_sym_write_modifiers_repeat1, - STATE(121), 1, + STATE(84), 1, sym_assign_to, - STATE(125), 1, + STATE(105), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(15), 2, + ACTIONS(19), 2, anon_sym_state, anon_sym_gen, - STATE(130), 2, + STATE(140), 2, sym_array_type, sym__type, - STATE(33), 6, + ACTIONS(21), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(35), 7, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_field_access, sym_parenthesis_expression, sym__expression, - ACTIONS(17), 7, + [649] = 15, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(17), 1, + sym_number, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_reg, + ACTIONS(33), 1, + anon_sym_initial, + STATE(37), 1, + sym_write_modifiers, + STATE(38), 1, + sym_global_identifier, + STATE(64), 1, + aux_sym_write_modifiers_repeat1, + STATE(97), 1, + sym_assign_to, + STATE(105), 1, + sym_declaration, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(19), 2, + anon_sym_state, + anon_sym_gen, + STATE(140), 2, + sym_array_type, + sym__type, + ACTIONS(21), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4261,19 +4496,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [586] = 3, + STATE(35), 7, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym__expression, + [710] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(98), 7, - sym_identifier, + ACTIONS(110), 6, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, + anon_sym_DOT, anon_sym_EQ, - anon_sym_in, - ACTIONS(100), 20, + ACTIONS(108), 21, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4290,21 +4532,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, - [622] = 3, + [746] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(104), 5, + ACTIONS(114), 6, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, + anon_sym_DOT, anon_sym_EQ, - ACTIONS(102), 21, + ACTIONS(112), 21, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4321,22 +4565,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [657] = 3, + [782] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(108), 5, + ACTIONS(118), 6, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, + anon_sym_DOT, anon_sym_EQ, - ACTIONS(106), 21, + ACTIONS(116), 21, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4353,22 +4598,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [692] = 3, + [818] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(112), 5, + ACTIONS(122), 6, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, + anon_sym_DOT, anon_sym_EQ, - ACTIONS(110), 21, + ACTIONS(120), 21, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4385,22 +4631,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [727] = 3, + [854] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(116), 5, + ACTIONS(126), 6, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, + anon_sym_DOT, anon_sym_EQ, - ACTIONS(114), 21, + ACTIONS(124), 21, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4417,22 +4664,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [762] = 3, + [890] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(120), 5, + ACTIONS(130), 6, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, + anon_sym_DOT, anon_sym_EQ, - ACTIONS(118), 21, + ACTIONS(128), 21, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4449,22 +4697,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [797] = 3, + [926] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(124), 5, + ACTIONS(134), 6, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, + anon_sym_DOT, anon_sym_EQ, - ACTIONS(122), 21, + ACTIONS(132), 21, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4481,65 +4730,69 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [832] = 16, - ACTIONS(70), 1, + [962] = 17, + ACTIONS(74), 1, anon_sym_PLUS, - ACTIONS(72), 1, + ACTIONS(76), 1, anon_sym_DASH, - ACTIONS(78), 1, - anon_sym_SLASH, ACTIONS(80), 1, - anon_sym_LPAREN, - ACTIONS(82), 1, - anon_sym_LBRACK, - ACTIONS(88), 1, anon_sym_PIPE, - ACTIONS(90), 1, + ACTIONS(82), 1, anon_sym_CARET, + ACTIONS(86), 1, + anon_sym_SLASH, + ACTIONS(90), 1, + anon_sym_LPAREN, ACTIONS(92), 1, + anon_sym_LBRACK, + ACTIONS(102), 1, anon_sym_AMP, - ACTIONS(132), 1, + ACTIONS(142), 1, + anon_sym_DOT, + ACTIONS(144), 1, anon_sym_EQ, STATE(25), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(29), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(130), 2, + ACTIONS(140), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(128), 4, + ACTIONS(138), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(126), 6, + ACTIONS(136), 6, anon_sym_COMMA, anon_sym_DASH_GT, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, - [892] = 5, - ACTIONS(138), 1, - aux_sym__linebreak_token1, - STATE(31), 1, + [1025] = 5, + ACTIONS(150), 1, + anon_sym_LF, + STATE(33), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(136), 9, + ACTIONS(148), 11, anon_sym_module, + anon_sym_interface, + anon_sym_cross, sym_identifier, anon_sym_state, anon_sym_gen, @@ -4548,7 +4801,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, anon_sym_if, anon_sym_for, - ACTIONS(134), 12, + ACTIONS(146), 12, ts_builtin_sym_end, anon_sym_DASH_GT, sym_number, @@ -4561,156 +4814,155 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [928] = 17, - ACTIONS(78), 1, - anon_sym_SLASH, + [1063] = 16, ACTIONS(80), 1, - anon_sym_LPAREN, - ACTIONS(82), 1, - anon_sym_LBRACK, - ACTIONS(88), 1, anon_sym_PIPE, - ACTIONS(90), 1, + ACTIONS(82), 1, anon_sym_CARET, + ACTIONS(86), 1, + anon_sym_SLASH, + ACTIONS(90), 1, + anon_sym_LPAREN, ACTIONS(92), 1, + anon_sym_LBRACK, + ACTIONS(102), 1, anon_sym_AMP, - ACTIONS(141), 1, - anon_sym_COMMA, - ACTIONS(143), 1, - anon_sym_RPAREN, + ACTIONS(142), 1, + anon_sym_DOT, + ACTIONS(155), 1, + anon_sym_EQ, STATE(25), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(29), 1, sym_parenthesis_expression_list, - STATE(49), 1, - sym__comma, - STATE(114), 1, - aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(70), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(74), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(130), 2, + ACTIONS(140), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(128), 4, + ACTIONS(153), 3, + anon_sym_COMMA, + anon_sym_LF, + anon_sym_RBRACE, + ACTIONS(138), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [987] = 15, - ACTIONS(78), 1, - anon_sym_SLASH, + [1121] = 16, ACTIONS(80), 1, - anon_sym_LPAREN, - ACTIONS(82), 1, - anon_sym_LBRACK, - ACTIONS(88), 1, anon_sym_PIPE, - ACTIONS(90), 1, + ACTIONS(82), 1, anon_sym_CARET, + ACTIONS(86), 1, + anon_sym_SLASH, + ACTIONS(90), 1, + anon_sym_LPAREN, ACTIONS(92), 1, + anon_sym_LBRACK, + ACTIONS(102), 1, anon_sym_AMP, - ACTIONS(147), 1, + ACTIONS(142), 1, + anon_sym_DOT, + ACTIONS(159), 1, anon_sym_EQ, STATE(25), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(29), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(70), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(74), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(130), 2, + ACTIONS(140), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(145), 3, + ACTIONS(157), 3, anon_sym_COMMA, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_RBRACE, - ACTIONS(128), 4, + ACTIONS(138), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1042] = 15, - ACTIONS(78), 1, - anon_sym_SLASH, + [1179] = 18, ACTIONS(80), 1, - anon_sym_LPAREN, - ACTIONS(82), 1, - anon_sym_LBRACK, - ACTIONS(88), 1, anon_sym_PIPE, - ACTIONS(90), 1, + ACTIONS(82), 1, anon_sym_CARET, + ACTIONS(86), 1, + anon_sym_SLASH, + ACTIONS(90), 1, + anon_sym_LPAREN, ACTIONS(92), 1, + anon_sym_LBRACK, + ACTIONS(102), 1, anon_sym_AMP, - ACTIONS(151), 1, - anon_sym_EQ, + ACTIONS(142), 1, + anon_sym_DOT, + ACTIONS(161), 1, + anon_sym_COMMA, + ACTIONS(163), 1, + anon_sym_RPAREN, STATE(25), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(29), 1, sym_parenthesis_expression_list, + STATE(51), 1, + sym__comma, + STATE(116), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(70), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(74), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(130), 2, + ACTIONS(140), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(149), 3, - anon_sym_COMMA, - aux_sym__linebreak_token1, - anon_sym_RBRACE, - ACTIONS(128), 4, + ACTIONS(138), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1097] = 10, + [1241] = 10, ACTIONS(11), 1, sym_identifier, - ACTIONS(19), 1, + ACTIONS(23), 1, anon_sym_LPAREN, - ACTIONS(153), 1, + ACTIONS(165), 1, sym_number, - STATE(36), 1, + STATE(38), 1, sym_global_identifier, - STATE(97), 1, + STATE(106), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(15), 2, + ACTIONS(19), 2, anon_sym_state, anon_sym_gen, - STATE(130), 2, + STATE(140), 2, sym_array_type, sym__type, - STATE(34), 6, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_parenthesis_expression, - sym__expression, - ACTIONS(17), 7, + ACTIONS(21), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4718,20 +4970,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - [1142] = 5, - ACTIONS(155), 1, + STATE(34), 7, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym__expression, + [1287] = 5, + ACTIONS(167), 1, sym_identifier, - ACTIONS(161), 1, + ACTIONS(173), 1, anon_sym_LBRACK, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(159), 4, + ACTIONS(171), 4, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_EQ, - ACTIONS(157), 15, + ACTIONS(169), 16, anon_sym_COMMA, anon_sym_PLUS, anon_sym_DASH, @@ -4744,280 +5004,295 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_DOT, anon_sym_LPAREN, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_RBRACE, - [1176] = 14, - ACTIONS(78), 1, - anon_sym_SLASH, + [1322] = 16, + ACTIONS(27), 1, + anon_sym_LBRACE, ACTIONS(80), 1, - anon_sym_LPAREN, - ACTIONS(82), 1, - anon_sym_LBRACK, - ACTIONS(88), 1, anon_sym_PIPE, - ACTIONS(90), 1, + ACTIONS(82), 1, anon_sym_CARET, + ACTIONS(86), 1, + anon_sym_SLASH, + ACTIONS(90), 1, + anon_sym_LPAREN, ACTIONS(92), 1, + anon_sym_LBRACK, + ACTIONS(102), 1, anon_sym_AMP, + ACTIONS(142), 1, + anon_sym_DOT, STATE(25), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(29), 1, sym_parenthesis_expression_list, + STATE(139), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(70), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(74), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(130), 2, + ACTIONS(140), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(164), 2, - aux_sym__linebreak_token1, - anon_sym_RBRACE, - ACTIONS(128), 4, + ACTIONS(138), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1227] = 15, - ACTIONS(23), 1, + [1378] = 16, + ACTIONS(27), 1, anon_sym_LBRACE, - ACTIONS(78), 1, - anon_sym_SLASH, ACTIONS(80), 1, - anon_sym_LPAREN, - ACTIONS(82), 1, - anon_sym_LBRACK, - ACTIONS(88), 1, anon_sym_PIPE, - ACTIONS(90), 1, + ACTIONS(82), 1, anon_sym_CARET, + ACTIONS(86), 1, + anon_sym_SLASH, + ACTIONS(90), 1, + anon_sym_LPAREN, ACTIONS(92), 1, + anon_sym_LBRACK, + ACTIONS(102), 1, anon_sym_AMP, + ACTIONS(142), 1, + anon_sym_DOT, STATE(25), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(29), 1, sym_parenthesis_expression_list, - STATE(134), 1, + STATE(146), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(70), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(74), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(130), 2, + ACTIONS(140), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(128), 4, + ACTIONS(138), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1280] = 14, - ACTIONS(78), 1, - anon_sym_SLASH, + [1434] = 15, ACTIONS(80), 1, - anon_sym_LPAREN, - ACTIONS(82), 1, - anon_sym_LBRACK, - ACTIONS(88), 1, anon_sym_PIPE, - ACTIONS(90), 1, + ACTIONS(82), 1, anon_sym_CARET, + ACTIONS(86), 1, + anon_sym_SLASH, + ACTIONS(90), 1, + anon_sym_LPAREN, ACTIONS(92), 1, + anon_sym_LBRACK, + ACTIONS(102), 1, anon_sym_AMP, + ACTIONS(142), 1, + anon_sym_DOT, STATE(25), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(29), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(70), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(74), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(130), 2, + ACTIONS(140), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(166), 2, + ACTIONS(176), 2, anon_sym_COMMA, anon_sym_RPAREN, - ACTIONS(128), 4, + ACTIONS(138), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1331] = 15, - ACTIONS(23), 1, - anon_sym_LBRACE, - ACTIONS(78), 1, - anon_sym_SLASH, + [1488] = 15, ACTIONS(80), 1, - anon_sym_LPAREN, - ACTIONS(82), 1, - anon_sym_LBRACK, - ACTIONS(88), 1, anon_sym_PIPE, - ACTIONS(90), 1, + ACTIONS(82), 1, anon_sym_CARET, + ACTIONS(86), 1, + anon_sym_SLASH, + ACTIONS(90), 1, + anon_sym_LPAREN, ACTIONS(92), 1, + anon_sym_LBRACK, + ACTIONS(102), 1, anon_sym_AMP, + ACTIONS(142), 1, + anon_sym_DOT, STATE(25), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(29), 1, sym_parenthesis_expression_list, - STATE(144), 1, - sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(70), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(74), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(130), 2, + ACTIONS(140), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(128), 4, + ACTIONS(178), 2, + anon_sym_LF, + anon_sym_RBRACE, + ACTIONS(138), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1384] = 14, - ACTIONS(78), 1, - anon_sym_SLASH, + [1542] = 15, ACTIONS(80), 1, - anon_sym_LPAREN, + anon_sym_PIPE, ACTIONS(82), 1, - anon_sym_LBRACK, + anon_sym_CARET, + ACTIONS(86), 1, + anon_sym_SLASH, ACTIONS(88), 1, - anon_sym_PIPE, + anon_sym_DOT, ACTIONS(90), 1, - anon_sym_CARET, + anon_sym_LPAREN, ACTIONS(92), 1, + anon_sym_LBRACK, + ACTIONS(102), 1, anon_sym_AMP, - ACTIONS(168), 1, + ACTIONS(180), 1, anon_sym_DOT_DOT, STATE(25), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(29), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(70), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(74), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(130), 2, + ACTIONS(140), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(128), 4, + ACTIONS(138), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1434] = 14, - ACTIONS(78), 1, - anon_sym_SLASH, + [1595] = 15, ACTIONS(80), 1, - anon_sym_LPAREN, - ACTIONS(82), 1, - anon_sym_LBRACK, - ACTIONS(88), 1, anon_sym_PIPE, - ACTIONS(90), 1, + ACTIONS(82), 1, anon_sym_CARET, + ACTIONS(86), 1, + anon_sym_SLASH, + ACTIONS(90), 1, + anon_sym_LPAREN, ACTIONS(92), 1, + anon_sym_LBRACK, + ACTIONS(102), 1, anon_sym_AMP, - ACTIONS(170), 1, - anon_sym_RPAREN, + ACTIONS(142), 1, + anon_sym_DOT, + ACTIONS(182), 1, + anon_sym_RBRACK, STATE(25), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(29), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(70), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(74), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(130), 2, + ACTIONS(140), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(128), 4, + ACTIONS(138), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1484] = 14, - ACTIONS(78), 1, - anon_sym_SLASH, + [1648] = 15, ACTIONS(80), 1, - anon_sym_LPAREN, - ACTIONS(82), 1, - anon_sym_LBRACK, - ACTIONS(88), 1, anon_sym_PIPE, - ACTIONS(90), 1, + ACTIONS(82), 1, anon_sym_CARET, + ACTIONS(86), 1, + anon_sym_SLASH, + ACTIONS(90), 1, + anon_sym_LPAREN, ACTIONS(92), 1, + anon_sym_LBRACK, + ACTIONS(102), 1, anon_sym_AMP, - ACTIONS(172), 1, - anon_sym_RBRACK, + ACTIONS(142), 1, + anon_sym_DOT, + ACTIONS(184), 1, + anon_sym_RPAREN, STATE(25), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(29), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(70), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(74), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(130), 2, + ACTIONS(140), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(128), 4, + ACTIONS(138), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1534] = 7, - ACTIONS(19), 1, + [1701] = 7, + ACTIONS(23), 1, anon_sym_LPAREN, - ACTIONS(174), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(176), 1, + ACTIONS(188), 1, sym_number, - ACTIONS(178), 1, + ACTIONS(190), 1, anon_sym_RPAREN, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(21), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5025,25 +5300,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(32), 7, + STATE(36), 8, sym_global_identifier, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_field_access, sym_parenthesis_expression, sym__expression, - [1569] = 6, - ACTIONS(19), 1, + [1737] = 6, + ACTIONS(23), 1, anon_sym_LPAREN, - ACTIONS(174), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(180), 1, + ACTIONS(192), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(21), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5051,25 +5327,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(14), 7, + STATE(32), 8, sym_global_identifier, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_field_access, sym_parenthesis_expression, sym__expression, - [1601] = 6, - ACTIONS(19), 1, + [1770] = 6, + ACTIONS(23), 1, anon_sym_LPAREN, - ACTIONS(174), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(182), 1, + ACTIONS(194), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(21), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5077,25 +5354,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(37), 7, + STATE(17), 8, sym_global_identifier, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_field_access, sym_parenthesis_expression, sym__expression, - [1633] = 6, - ACTIONS(19), 1, + [1803] = 6, + ACTIONS(23), 1, anon_sym_LPAREN, - ACTIONS(174), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(184), 1, + ACTIONS(196), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(21), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5103,25 +5381,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(40), 7, + STATE(39), 8, sym_global_identifier, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_field_access, sym_parenthesis_expression, sym__expression, - [1665] = 6, - ACTIONS(19), 1, + [1836] = 6, + ACTIONS(23), 1, anon_sym_LPAREN, - ACTIONS(174), 1, - sym_identifier, ACTIONS(186), 1, + sym_identifier, + ACTIONS(198), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(21), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5129,25 +5408,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(30), 7, + STATE(40), 8, sym_global_identifier, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_field_access, sym_parenthesis_expression, sym__expression, - [1697] = 6, - ACTIONS(19), 1, + [1869] = 6, + ACTIONS(23), 1, anon_sym_LPAREN, - ACTIONS(174), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(188), 1, + ACTIONS(200), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(21), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5155,25 +5435,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(39), 7, + STATE(41), 8, sym_global_identifier, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_field_access, sym_parenthesis_expression, sym__expression, - [1729] = 6, - ACTIONS(19), 1, + [1902] = 6, + ACTIONS(23), 1, anon_sym_LPAREN, - ACTIONS(174), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(190), 1, + ACTIONS(202), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(21), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5181,25 +5462,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(41), 7, + STATE(43), 8, sym_global_identifier, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_field_access, sym_parenthesis_expression, sym__expression, - [1761] = 6, - ACTIONS(19), 1, + [1935] = 6, + ACTIONS(23), 1, anon_sym_LPAREN, - ACTIONS(174), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(192), 1, + ACTIONS(204), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(21), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5207,25 +5489,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(15), 7, + STATE(19), 8, sym_global_identifier, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_field_access, sym_parenthesis_expression, sym__expression, - [1793] = 6, - ACTIONS(19), 1, + [1968] = 6, + ACTIONS(23), 1, anon_sym_LPAREN, - ACTIONS(174), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(194), 1, + ACTIONS(206), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(21), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5233,25 +5516,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(17), 7, + STATE(16), 8, sym_global_identifier, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_field_access, sym_parenthesis_expression, sym__expression, - [1825] = 6, - ACTIONS(19), 1, + [2001] = 6, + ACTIONS(23), 1, anon_sym_LPAREN, - ACTIONS(174), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(196), 1, + ACTIONS(208), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(21), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5259,25 +5543,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(43), 7, + STATE(45), 8, sym_global_identifier, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_field_access, sym_parenthesis_expression, sym__expression, - [1857] = 6, - ACTIONS(19), 1, + [2034] = 6, + ACTIONS(23), 1, anon_sym_LPAREN, - ACTIONS(174), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(198), 1, + ACTIONS(210), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(21), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5285,25 +5570,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(42), 7, + STATE(21), 8, sym_global_identifier, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_field_access, sym_parenthesis_expression, sym__expression, - [1889] = 6, - ACTIONS(19), 1, + [2067] = 6, + ACTIONS(23), 1, anon_sym_LPAREN, - ACTIONS(174), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(200), 1, + ACTIONS(212), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(21), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5311,25 +5597,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(16), 7, + STATE(44), 8, sym_global_identifier, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_field_access, sym_parenthesis_expression, sym__expression, - [1921] = 6, - ACTIONS(19), 1, + [2100] = 6, + ACTIONS(23), 1, anon_sym_LPAREN, - ACTIONS(174), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(202), 1, + ACTIONS(214), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(21), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5337,25 +5624,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(18), 7, + STATE(20), 8, sym_global_identifier, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_field_access, sym_parenthesis_expression, sym__expression, - [1953] = 6, - ACTIONS(19), 1, + [2133] = 6, + ACTIONS(23), 1, anon_sym_LPAREN, - ACTIONS(174), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(204), 1, + ACTIONS(216), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(21), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5363,25 +5651,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(20), 7, + STATE(42), 8, sym_global_identifier, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_field_access, sym_parenthesis_expression, sym__expression, - [1985] = 6, - ACTIONS(19), 1, + [2166] = 6, + ACTIONS(23), 1, anon_sym_LPAREN, - ACTIONS(174), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(206), 1, + ACTIONS(218), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(21), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5389,25 +5678,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(19), 7, + STATE(14), 8, sym_global_identifier, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_field_access, sym_parenthesis_expression, sym__expression, - [2017] = 6, - ACTIONS(19), 1, + [2199] = 6, + ACTIONS(23), 1, anon_sym_LPAREN, - ACTIONS(174), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(208), 1, + ACTIONS(220), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(21), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5415,29 +5705,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(38), 7, + STATE(18), 8, sym_global_identifier, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, + sym_field_access, sym_parenthesis_expression, sym__expression, - [2049] = 5, - ACTIONS(21), 1, - aux_sym__linebreak_token1, - STATE(31), 1, + [2232] = 5, + ACTIONS(25), 1, + anon_sym_LF, + STATE(33), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(210), 5, + ACTIONS(222), 5, sym_identifier, anon_sym_state, anon_sym_gen, anon_sym_reg, anon_sym_initial, - ACTIONS(212), 9, + ACTIONS(224), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -5447,21 +5738,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2078] = 5, - ACTIONS(218), 1, - aux_sym__linebreak_token1, - STATE(60), 1, + [2261] = 5, + ACTIONS(230), 1, + anon_sym_LF, + STATE(62), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(214), 5, + ACTIONS(226), 5, sym_identifier, anon_sym_state, anon_sym_gen, anon_sym_reg, anon_sym_initial, - ACTIONS(216), 9, + ACTIONS(228), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -5471,19 +5762,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2107] = 5, - ACTIONS(224), 1, + [2290] = 5, + ACTIONS(31), 1, anon_sym_reg, - STATE(62), 1, + STATE(65), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(220), 3, + ACTIONS(232), 3, sym_identifier, anon_sym_state, anon_sym_gen, - ACTIONS(222), 9, + ACTIONS(234), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -5493,19 +5784,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2134] = 5, - ACTIONS(27), 1, + [2317] = 5, + ACTIONS(240), 1, anon_sym_reg, - STATE(62), 1, + STATE(65), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(227), 3, + ACTIONS(236), 3, sym_identifier, anon_sym_state, anon_sym_gen, - ACTIONS(229), 9, + ACTIONS(238), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -5515,16 +5806,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2161] = 3, + [2344] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(231), 4, + ACTIONS(243), 4, sym_identifier, anon_sym_state, anon_sym_gen, anon_sym_reg, - ACTIONS(233), 9, + ACTIONS(245), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -5534,65 +5825,65 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2183] = 10, + [2366] = 10, ACTIONS(11), 1, sym_identifier, - ACTIONS(21), 1, - aux_sym__linebreak_token1, - ACTIONS(235), 1, + ACTIONS(25), 1, + anon_sym_LF, + ACTIONS(247), 1, anon_sym_DASH_GT, - ACTIONS(237), 1, - anon_sym_LBRACE, - STATE(31), 1, + STATE(33), 1, aux_sym__linebreak, - STATE(93), 1, + STATE(80), 1, sym_declaration, - STATE(143), 1, + STATE(88), 1, sym_declaration_list, + STATE(134), 1, + sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(15), 2, + ACTIONS(19), 2, anon_sym_state, anon_sym_gen, - STATE(130), 3, + STATE(140), 3, sym_global_identifier, sym_array_type, sym__type, - [2218] = 10, + [2401] = 10, ACTIONS(11), 1, sym_identifier, - ACTIONS(239), 1, + ACTIONS(247), 1, anon_sym_DASH_GT, - ACTIONS(241), 1, - aux_sym__linebreak_token1, - ACTIONS(243), 1, - anon_sym_LBRACE, - STATE(65), 1, + ACTIONS(249), 1, + anon_sym_LF, + STATE(67), 1, aux_sym__linebreak, - STATE(93), 1, + STATE(80), 1, sym_declaration, - STATE(137), 1, + STATE(94), 1, sym_declaration_list, + STATE(137), 1, + sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(15), 2, + ACTIONS(19), 2, anon_sym_state, anon_sym_gen, - STATE(130), 3, + STATE(140), 3, sym_global_identifier, sym_array_type, sym__type, - [2253] = 3, + [2436] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(245), 3, + ACTIONS(251), 3, sym_identifier, anon_sym_state, anon_sym_gen, - ACTIONS(247), 9, + ACTIONS(253), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -5602,178 +5893,52 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2274] = 8, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(249), 1, - aux_sym__linebreak_token1, - STATE(69), 1, - aux_sym__linebreak, - STATE(93), 1, - sym_declaration, - STATE(154), 1, - sym_declaration_list, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(15), 2, - anon_sym_state, - anon_sym_gen, - STATE(130), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [2303] = 8, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(21), 1, - aux_sym__linebreak_token1, - STATE(31), 1, - aux_sym__linebreak, - STATE(93), 1, - sym_declaration, - STATE(145), 1, - sym_declaration_list, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(15), 2, - anon_sym_state, - anon_sym_gen, - STATE(130), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [2332] = 8, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(251), 1, - aux_sym__linebreak_token1, - STATE(73), 1, - aux_sym__linebreak, - STATE(93), 1, - sym_declaration, - STATE(147), 1, - sym_declaration_list, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(15), 2, - anon_sym_state, - anon_sym_gen, - STATE(130), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [2361] = 8, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(253), 1, - aux_sym__linebreak_token1, - STATE(72), 1, - aux_sym__linebreak, - STATE(93), 1, - sym_declaration, - STATE(149), 1, - sym_declaration_list, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(15), 2, - anon_sym_state, - anon_sym_gen, - STATE(130), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [2390] = 8, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(21), 1, - aux_sym__linebreak_token1, - STATE(31), 1, - aux_sym__linebreak, - STATE(93), 1, - sym_declaration, - STATE(148), 1, - sym_declaration_list, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(15), 2, - anon_sym_state, - anon_sym_gen, - STATE(130), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [2419] = 8, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(21), 1, - aux_sym__linebreak_token1, - STATE(31), 1, - aux_sym__linebreak, - STATE(93), 1, - sym_declaration, - STATE(150), 1, - sym_declaration_list, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(15), 2, - anon_sym_state, - anon_sym_gen, - STATE(130), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [2448] = 8, + [2457] = 8, ACTIONS(11), 1, sym_identifier, - ACTIONS(21), 1, - aux_sym__linebreak_token1, - STATE(31), 1, + ACTIONS(25), 1, + anon_sym_LF, + STATE(33), 1, aux_sym__linebreak, - STATE(93), 1, + STATE(80), 1, sym_declaration, - STATE(146), 1, + STATE(141), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(15), 2, + ACTIONS(19), 2, anon_sym_state, anon_sym_gen, - STATE(130), 3, + STATE(140), 3, sym_global_identifier, sym_array_type, sym__type, - [2477] = 8, + [2486] = 8, ACTIONS(11), 1, sym_identifier, ACTIONS(255), 1, - aux_sym__linebreak_token1, - STATE(74), 1, + anon_sym_LF, + STATE(70), 1, aux_sym__linebreak, - STATE(93), 1, + STATE(80), 1, sym_declaration, - STATE(148), 1, + STATE(133), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(15), 2, + ACTIONS(19), 2, anon_sym_state, anon_sym_gen, - STATE(130), 3, + STATE(140), 3, sym_global_identifier, sym_array_type, sym__type, - [2506] = 4, + [2515] = 4, ACTIONS(259), 1, anon_sym_SQUOTE, - STATE(80), 1, + STATE(75), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, @@ -5781,12 +5946,12 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(257), 7, anon_sym_COMMA, anon_sym_DASH_GT, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, - [2526] = 4, + [2535] = 4, ACTIONS(259), 1, anon_sym_SQUOTE, STATE(79), 1, @@ -5797,792 +5962,870 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(261), 7, anon_sym_COMMA, anon_sym_DASH_GT, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, - [2546] = 5, - ACTIONS(11), 1, - sym_identifier, - STATE(152), 1, - sym_declaration, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(15), 2, - anon_sym_state, - anon_sym_gen, - STATE(130), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [2566] = 2, + [2555] = 5, + ACTIONS(263), 1, + anon_sym_COMMA, + STATE(74), 1, + aux_sym_declaration_list_repeat1, + STATE(76), 1, + sym__comma, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(263), 7, - anon_sym_COMMA, + ACTIONS(266), 4, anon_sym_DASH_GT, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, - [2580] = 2, + [2575] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(265), 7, + ACTIONS(268), 7, anon_sym_COMMA, anon_sym_DASH_GT, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, - [2594] = 5, + [2589] = 5, ACTIONS(11), 1, sym_identifier, - STATE(132), 1, + STATE(92), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(15), 2, + ACTIONS(19), 2, anon_sym_state, anon_sym_gen, - STATE(130), 3, + STATE(140), 3, sym_global_identifier, sym_array_type, sym__type, - [2614] = 5, - ACTIONS(141), 1, + [2609] = 5, + ACTIONS(161), 1, anon_sym_COMMA, - STATE(22), 1, + STATE(74), 1, + aux_sym_declaration_list_repeat1, + STATE(76), 1, sym__comma, - STATE(83), 1, - aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(267), 3, - aux_sym__linebreak_token1, + ACTIONS(270), 4, + anon_sym_DASH_GT, + anon_sym_LF, + anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_EQ, - [2633] = 5, - ACTIONS(141), 1, - anon_sym_COMMA, - STATE(22), 1, - sym__comma, - STATE(84), 1, - aux_sym_assign_left_side_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, + [2629] = 5, + ACTIONS(11), 1, + sym_identifier, + STATE(152), 1, + sym_declaration, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(19), 2, + anon_sym_state, + anon_sym_gen, + STATE(140), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [2649] = 2, + ACTIONS(3), 2, + sym_single_line_comment, sym_multi_line_comment, - ACTIONS(269), 3, - aux_sym__linebreak_token1, + ACTIONS(272), 7, + anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_LF, + anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_EQ, - [2652] = 5, - ACTIONS(271), 1, + anon_sym_in, + [2663] = 5, + ACTIONS(161), 1, anon_sym_COMMA, - STATE(22), 1, + STATE(76), 1, sym__comma, - STATE(84), 1, - aux_sym_assign_left_side_repeat1, + STATE(77), 1, + aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(274), 3, - aux_sym__linebreak_token1, + ACTIONS(274), 4, + anon_sym_DASH_GT, + anon_sym_LF, + anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_EQ, - [2671] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(21), 1, - aux_sym__linebreak_token1, + [2683] = 5, ACTIONS(276), 1, - ts_builtin_sym_end, - STATE(31), 1, - aux_sym__linebreak, - STATE(136), 1, - sym_module, + anon_sym_COMMA, + STATE(24), 1, + sym__comma, + STATE(81), 1, + aux_sym_cross_statement_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2691] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(21), 1, - aux_sym__linebreak_token1, - ACTIONS(278), 1, - ts_builtin_sym_end, - STATE(31), 1, - aux_sym__linebreak, - STATE(136), 1, - sym_module, + ACTIONS(279), 3, + anon_sym_LF, + anon_sym_RBRACE, + anon_sym_EQ, + [2702] = 5, + ACTIONS(161), 1, + anon_sym_COMMA, + STATE(24), 1, + sym__comma, + STATE(81), 1, + aux_sym_cross_statement_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2711] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(21), 1, - aux_sym__linebreak_token1, - ACTIONS(280), 1, - ts_builtin_sym_end, - STATE(31), 1, - aux_sym__linebreak, - STATE(136), 1, - sym_module, + ACTIONS(281), 3, + anon_sym_LF, + anon_sym_RBRACE, + anon_sym_EQ, + [2721] = 5, + ACTIONS(161), 1, + anon_sym_COMMA, + STATE(24), 1, + sym__comma, + STATE(82), 1, + aux_sym_cross_statement_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2731] = 6, + ACTIONS(283), 3, + anon_sym_LF, + anon_sym_RBRACE, + anon_sym_EQ, + [2740] = 5, + ACTIONS(161), 1, + anon_sym_COMMA, + STATE(24), 1, + sym__comma, + STATE(89), 1, + aux_sym_cross_statement_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(285), 2, + anon_sym_LF, + anon_sym_RBRACE, + [2758] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(21), 1, - aux_sym__linebreak_token1, - ACTIONS(282), 1, + ACTIONS(25), 1, + anon_sym_LF, + ACTIONS(287), 1, ts_builtin_sym_end, - STATE(31), 1, + STATE(33), 1, aux_sym__linebreak, - STATE(136), 1, + STATE(145), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2751] = 6, + [2778] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(21), 1, - aux_sym__linebreak_token1, - ACTIONS(284), 1, + ACTIONS(25), 1, + anon_sym_LF, + ACTIONS(289), 1, ts_builtin_sym_end, - STATE(31), 1, + STATE(33), 1, aux_sym__linebreak, - STATE(112), 1, + STATE(145), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2771] = 6, - ACTIONS(286), 1, - aux_sym__linebreak_token1, - ACTIONS(288), 1, + [2798] = 6, + ACTIONS(291), 1, + anon_sym_LF, + ACTIONS(293), 1, anon_sym_RBRACE, - ACTIONS(290), 1, + ACTIONS(295), 1, anon_sym_EQ, - STATE(4), 1, + STATE(5), 1, aux_sym__linebreak, - STATE(100), 1, + STATE(102), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2791] = 6, - ACTIONS(290), 1, + [2818] = 4, + ACTIONS(247), 1, + anon_sym_DASH_GT, + STATE(135), 1, + sym__interface_ports_output, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(297), 3, + anon_sym_LF, + anon_sym_LBRACE, + anon_sym_RBRACE, + [2834] = 5, + ACTIONS(161), 1, + anon_sym_COMMA, + STATE(24), 1, + sym__comma, + STATE(81), 1, + aux_sym_cross_statement_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(299), 2, + anon_sym_LF, + anon_sym_RBRACE, + [2852] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(25), 1, + anon_sym_LF, + ACTIONS(301), 1, + ts_builtin_sym_end, + STATE(33), 1, + aux_sym__linebreak, + STATE(145), 1, + sym_module, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2872] = 6, + ACTIONS(295), 1, anon_sym_EQ, - ACTIONS(292), 1, - aux_sym__linebreak_token1, - ACTIONS(294), 1, + ACTIONS(303), 1, + anon_sym_LF, + ACTIONS(305), 1, anon_sym_RBRACE, - STATE(2), 1, + STATE(8), 1, aux_sym__linebreak, - STATE(96), 1, + STATE(126), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2811] = 5, - ACTIONS(296), 1, - anon_sym_COMMA, - STATE(81), 1, - sym__comma, - STATE(92), 1, - aux_sym_declaration_list_repeat1, + [2892] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(299), 2, + ACTIONS(307), 5, + anon_sym_COMMA, anon_sym_DASH_GT, + anon_sym_LF, anon_sym_LBRACE, - [2829] = 5, - ACTIONS(141), 1, - anon_sym_COMMA, - STATE(81), 1, - sym__comma, - STATE(94), 1, - aux_sym_declaration_list_repeat1, + anon_sym_RBRACE, + [2904] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(25), 1, + anon_sym_LF, + ACTIONS(309), 1, + ts_builtin_sym_end, + STATE(33), 1, + aux_sym__linebreak, + STATE(145), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(301), 2, + [2924] = 4, + ACTIONS(247), 1, anon_sym_DASH_GT, - anon_sym_LBRACE, - [2847] = 5, - ACTIONS(141), 1, - anon_sym_COMMA, - STATE(81), 1, - sym__comma, - STATE(92), 1, - aux_sym_declaration_list_repeat1, + STATE(132), 1, + sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(303), 2, - anon_sym_DASH_GT, + ACTIONS(311), 3, + anon_sym_LF, anon_sym_LBRACE, - [2865] = 5, - ACTIONS(305), 1, - aux_sym__linebreak_token1, - ACTIONS(307), 1, anon_sym_RBRACE, - STATE(3), 1, + [2940] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(25), 1, + anon_sym_LF, + ACTIONS(313), 1, + ts_builtin_sym_end, + STATE(33), 1, aux_sym__linebreak, - STATE(120), 1, - aux_sym_block_repeat1, + STATE(127), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2882] = 5, - ACTIONS(309), 1, - aux_sym__linebreak_token1, - ACTIONS(311), 1, - anon_sym_RBRACE, - STATE(5), 1, + [2960] = 5, + ACTIONS(315), 1, + ts_builtin_sym_end, + ACTIONS(317), 1, + anon_sym_LF, + STATE(85), 1, aux_sym__linebreak, - STATE(120), 1, - aux_sym_block_repeat1, + STATE(119), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2899] = 2, + [2977] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(149), 4, + ACTIONS(319), 4, anon_sym_COMMA, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_RBRACE, anon_sym_EQ, - [2910] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(313), 4, - ts_builtin_sym_end, - aux_sym__linebreak_token1, - anon_sym_RBRACE, - anon_sym_else, - [2921] = 2, + [2988] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(313), 4, + ACTIONS(321), 4, ts_builtin_sym_end, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [2932] = 5, - ACTIONS(315), 1, - aux_sym__linebreak_token1, - ACTIONS(317), 1, + [2999] = 5, + ACTIONS(303), 1, + anon_sym_LF, + ACTIONS(305), 1, anon_sym_RBRACE, - STATE(6), 1, + STATE(8), 1, aux_sym__linebreak, - STATE(120), 1, + STATE(125), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2949] = 2, + [3016] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(319), 4, + ACTIONS(323), 4, ts_builtin_sym_end, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [2960] = 5, - ACTIONS(321), 1, - anon_sym_COMMA, - ACTIONS(324), 1, - anon_sym_RPAREN, - STATE(49), 1, - sym__comma, - STATE(102), 1, - aux_sym_parenthesis_expression_list_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [2977] = 2, + [3027] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(326), 4, + ACTIONS(323), 4, ts_builtin_sym_end, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [2988] = 5, - ACTIONS(292), 1, - aux_sym__linebreak_token1, - ACTIONS(294), 1, + [3038] = 5, + ACTIONS(325), 1, + anon_sym_LF, + ACTIONS(327), 1, anon_sym_RBRACE, - STATE(2), 1, + STATE(6), 1, aux_sym__linebreak, STATE(113), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3005] = 2, + [3055] = 5, + ACTIONS(329), 1, + anon_sym_COMMA, + ACTIONS(332), 1, + anon_sym_RPAREN, + STATE(51), 1, + sym__comma, + STATE(103), 1, + aux_sym_parenthesis_expression_list_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [3072] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(328), 4, + ACTIONS(334), 4, ts_builtin_sym_end, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3016] = 5, - ACTIONS(330), 1, - ts_builtin_sym_end, - ACTIONS(332), 1, - aux_sym__linebreak_token1, - STATE(87), 1, - aux_sym__linebreak, - STATE(108), 1, - aux_sym_source_file_repeat1, + [3083] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3033] = 5, - ACTIONS(23), 1, - anon_sym_LBRACE, - ACTIONS(334), 1, - anon_sym_COLON, - STATE(135), 1, - sym_block, - STATE(138), 1, - sym_interface_ports, + ACTIONS(157), 4, + anon_sym_COMMA, + anon_sym_LF, + anon_sym_RBRACE, + anon_sym_EQ, + [3094] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3050] = 5, - ACTIONS(336), 1, + ACTIONS(153), 4, + anon_sym_COMMA, + anon_sym_LF, + anon_sym_RBRACE, + anon_sym_EQ, + [3105] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(336), 4, ts_builtin_sym_end, + anon_sym_LF, + anon_sym_RBRACE, + anon_sym_else, + [3116] = 5, ACTIONS(338), 1, - aux_sym__linebreak_token1, - STATE(85), 1, + ts_builtin_sym_end, + ACTIONS(340), 1, + anon_sym_LF, + STATE(90), 1, aux_sym__linebreak, - STATE(117), 1, + STATE(96), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3067] = 2, + [3133] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(340), 4, + ACTIONS(342), 4, ts_builtin_sym_end, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3078] = 2, + [3144] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(342), 4, + ACTIONS(344), 4, ts_builtin_sym_end, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3089] = 2, + [3155] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(344), 4, ts_builtin_sym_end, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3100] = 5, - ACTIONS(346), 1, - ts_builtin_sym_end, - ACTIONS(348), 1, - aux_sym__linebreak_token1, - STATE(86), 1, - aux_sym__linebreak, - STATE(127), 1, - aux_sym_source_file_repeat1, + [3166] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3117] = 5, - ACTIONS(350), 1, - aux_sym__linebreak_token1, - ACTIONS(352), 1, + ACTIONS(346), 4, + ts_builtin_sym_end, + anon_sym_LF, anon_sym_RBRACE, - STATE(9), 1, + anon_sym_else, + [3177] = 5, + ACTIONS(348), 1, + anon_sym_LF, + ACTIONS(351), 1, + anon_sym_RBRACE, + STATE(10), 1, aux_sym__linebreak, - STATE(120), 1, + STATE(113), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3134] = 5, - ACTIONS(141), 1, - anon_sym_COMMA, - ACTIONS(354), 1, - anon_sym_RPAREN, - STATE(49), 1, - sym__comma, - STATE(102), 1, - aux_sym_parenthesis_expression_list_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3151] = 2, + [3194] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(356), 4, + ACTIONS(353), 4, ts_builtin_sym_end, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3162] = 2, + [3205] = 3, + ACTIONS(186), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(342), 4, - ts_builtin_sym_end, - aux_sym__linebreak_token1, - anon_sym_RBRACE, - anon_sym_else, - [3173] = 5, - ACTIONS(358), 1, - ts_builtin_sym_end, - ACTIONS(360), 1, - aux_sym__linebreak_token1, - STATE(117), 1, - aux_sym_source_file_repeat1, - STATE(119), 1, - aux_sym__linebreak, + STATE(136), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [3218] = 5, + ACTIONS(161), 1, + anon_sym_COMMA, + ACTIONS(355), 1, + anon_sym_RPAREN, + STATE(51), 1, + sym__comma, + STATE(103), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3190] = 2, + [3235] = 5, + ACTIONS(357), 1, + ts_builtin_sym_end, + ACTIONS(359), 1, + anon_sym_LF, + STATE(93), 1, + aux_sym__linebreak, + STATE(119), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(363), 4, - ts_builtin_sym_end, - aux_sym__linebreak_token1, - anon_sym_RBRACE, - anon_sym_else, - [3201] = 5, + [3252] = 5, ACTIONS(7), 1, anon_sym_module, - ACTIONS(21), 1, - aux_sym__linebreak_token1, - STATE(31), 1, + ACTIONS(25), 1, + anon_sym_LF, + STATE(33), 1, aux_sym__linebreak, - STATE(136), 1, + STATE(145), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3218] = 5, - ACTIONS(365), 1, - aux_sym__linebreak_token1, - ACTIONS(368), 1, - anon_sym_RBRACE, - STATE(10), 1, + [3269] = 5, + ACTIONS(361), 1, + ts_builtin_sym_end, + ACTIONS(363), 1, + anon_sym_LF, + STATE(118), 1, aux_sym__linebreak, - STATE(120), 1, - aux_sym_block_repeat1, + STATE(119), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3235] = 2, + [3286] = 5, + ACTIONS(27), 1, + anon_sym_LBRACE, + ACTIONS(366), 1, + anon_sym_COLON, + STATE(143), 1, + sym_interface_ports, + STATE(144), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(370), 4, - anon_sym_COMMA, - aux_sym__linebreak_token1, - anon_sym_RBRACE, - anon_sym_EQ, - [3246] = 2, + [3303] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(319), 4, + ACTIONS(336), 4, ts_builtin_sym_end, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3257] = 5, - ACTIONS(286), 1, - aux_sym__linebreak_token1, - ACTIONS(288), 1, - anon_sym_RBRACE, - STATE(4), 1, - aux_sym__linebreak, - STATE(95), 1, - aux_sym_block_repeat1, + [3314] = 4, + ACTIONS(366), 1, + anon_sym_COLON, + STATE(147), 1, + sym_interface_ports, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3274] = 2, + ACTIONS(368), 2, + anon_sym_LF, + anon_sym_RBRACE, + [3329] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(363), 4, + ACTIONS(370), 4, ts_builtin_sym_end, - aux_sym__linebreak_token1, + anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3285] = 2, + [3340] = 4, + ACTIONS(27), 1, + anon_sym_LBRACE, + ACTIONS(372), 1, + anon_sym_if, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(145), 4, - anon_sym_COMMA, - aux_sym__linebreak_token1, + STATE(149), 2, + sym_block, + sym_if_statement, + [3355] = 5, + ACTIONS(374), 1, + anon_sym_LF, + ACTIONS(376), 1, anon_sym_RBRACE, - anon_sym_EQ, - [3296] = 2, + STATE(3), 1, + aux_sym__linebreak, + STATE(113), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(372), 4, - ts_builtin_sym_end, - aux_sym__linebreak_token1, + [3372] = 5, + ACTIONS(378), 1, + anon_sym_LF, + ACTIONS(380), 1, anon_sym_RBRACE, - anon_sym_else, - [3307] = 5, - ACTIONS(374), 1, + STATE(2), 1, + aux_sym__linebreak, + STATE(113), 1, + aux_sym_block_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [3389] = 5, + ACTIONS(382), 1, ts_builtin_sym_end, - ACTIONS(376), 1, - aux_sym__linebreak_token1, - STATE(88), 1, + ACTIONS(384), 1, + anon_sym_LF, + STATE(86), 1, aux_sym__linebreak, STATE(117), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3324] = 3, - ACTIONS(174), 1, - sym_identifier, + [3406] = 5, + ACTIONS(386), 1, + anon_sym_LF, + ACTIONS(388), 1, + anon_sym_RBRACE, + STATE(7), 1, + aux_sym__linebreak, + STATE(113), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(133), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [3337] = 4, - ACTIONS(23), 1, - anon_sym_LBRACE, - ACTIONS(378), 1, - anon_sym_if, + [3423] = 5, + ACTIONS(291), 1, + anon_sym_LF, + ACTIONS(293), 1, + anon_sym_RBRACE, + STATE(5), 1, + aux_sym__linebreak, + STATE(128), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(141), 2, - sym_block, - sym_if_statement, - [3352] = 4, - ACTIONS(82), 1, - anon_sym_LBRACK, - ACTIONS(380), 1, - sym_identifier, - STATE(142), 1, - sym_array_bracket_expression, + [3440] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3366] = 3, - ACTIONS(290), 1, - anon_sym_EQ, + ACTIONS(346), 4, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_RBRACE, + anon_sym_else, + [3451] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(382), 2, - aux_sym__linebreak_token1, + ACTIONS(390), 4, + ts_builtin_sym_end, + anon_sym_LF, anon_sym_RBRACE, - [3378] = 2, + anon_sym_else, + [3462] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(384), 3, - anon_sym_COMMA, - anon_sym_DASH_GT, + ACTIONS(392), 3, + anon_sym_LF, anon_sym_LBRACE, - [3388] = 4, - ACTIONS(82), 1, - anon_sym_LBRACK, - ACTIONS(386), 1, - sym_identifier, - STATE(142), 1, - sym_array_bracket_expression, + anon_sym_RBRACE, + [3472] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3402] = 3, - ACTIONS(390), 1, - anon_sym_else, + ACTIONS(394), 3, + anon_sym_LF, + anon_sym_LBRACE, + anon_sym_RBRACE, + [3482] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(388), 2, - aux_sym__linebreak_token1, + ACTIONS(396), 3, + anon_sym_LF, + anon_sym_LBRACE, anon_sym_RBRACE, - [3414] = 2, + [3492] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(392), 2, - ts_builtin_sym_end, - aux_sym__linebreak_token1, - [3423] = 2, + ACTIONS(398), 3, + anon_sym_LF, + anon_sym_LBRACE, + anon_sym_RBRACE, + [3502] = 4, + ACTIONS(92), 1, + anon_sym_LBRACK, + ACTIONS(400), 1, + sym_identifier, + STATE(148), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(394), 2, - ts_builtin_sym_end, - aux_sym__linebreak_token1, - [3432] = 3, - ACTIONS(396), 1, - anon_sym_DASH_GT, - ACTIONS(398), 1, - anon_sym_LBRACE, + [3516] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3443] = 3, - ACTIONS(23), 1, + ACTIONS(402), 3, + anon_sym_LF, anon_sym_LBRACE, - STATE(139), 1, - sym_block, + anon_sym_RBRACE, + [3526] = 3, + ACTIONS(295), 1, + anon_sym_EQ, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3454] = 2, + ACTIONS(404), 2, + anon_sym_LF, + anon_sym_RBRACE, + [3538] = 3, + ACTIONS(408), 1, + anon_sym_else, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(400), 2, - ts_builtin_sym_end, - aux_sym__linebreak_token1, - [3463] = 2, + ACTIONS(406), 2, + anon_sym_LF, + anon_sym_RBRACE, + [3550] = 4, + ACTIONS(92), 1, + anon_sym_LBRACK, + ACTIONS(410), 1, + sym_identifier, + STATE(148), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(382), 2, - aux_sym__linebreak_token1, - anon_sym_RBRACE, - [3472] = 2, + [3564] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(402), 2, - aux_sym__linebreak_token1, + ACTIONS(412), 3, + anon_sym_LF, + anon_sym_LBRACE, anon_sym_RBRACE, - [3481] = 2, + [3574] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(404), 2, - sym_identifier, - anon_sym_LBRACK, - [3490] = 3, - ACTIONS(406), 1, - anon_sym_DASH_GT, - ACTIONS(408), 1, + anon_sym_LF, + anon_sym_RBRACE, + [3583] = 3, + ACTIONS(27), 1, anon_sym_LBRACE, + STATE(150), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3501] = 2, + [3594] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(410), 2, - aux_sym__linebreak_token1, - anon_sym_RBRACE, - [3510] = 2, - ACTIONS(412), 1, - anon_sym_LBRACE, + ACTIONS(414), 2, + ts_builtin_sym_end, + anon_sym_LF, + [3603] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3518] = 2, - ACTIONS(414), 1, - anon_sym_LBRACE, + ACTIONS(416), 2, + ts_builtin_sym_end, + anon_sym_LF, + [3612] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3526] = 2, - ACTIONS(416), 1, - anon_sym_LBRACE, + ACTIONS(418), 2, + anon_sym_LF, + anon_sym_RBRACE, + [3621] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3534] = 2, - ACTIONS(418), 1, - anon_sym_LBRACE, + ACTIONS(420), 2, + anon_sym_LF, + anon_sym_RBRACE, + [3630] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3542] = 2, - ACTIONS(420), 1, - anon_sym_LBRACE, + ACTIONS(422), 2, + sym_identifier, + anon_sym_LBRACK, + [3639] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3550] = 2, - ACTIONS(422), 1, - anon_sym_LBRACE, + ACTIONS(424), 2, + anon_sym_LF, + anon_sym_RBRACE, + [3648] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3558] = 2, - ACTIONS(424), 1, + ACTIONS(426), 2, + ts_builtin_sym_end, + anon_sym_LF, + [3657] = 2, + ACTIONS(428), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3566] = 2, - ACTIONS(426), 1, + [3665] = 2, + ACTIONS(430), 1, anon_sym_in, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3574] = 2, - ACTIONS(428), 1, + [3673] = 2, + ACTIONS(432), 1, + ts_builtin_sym_end, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [3681] = 2, + ACTIONS(434), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3582] = 2, - ACTIONS(430), 1, - anon_sym_LBRACE, + [3689] = 2, + ACTIONS(436), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3590] = 2, - ACTIONS(432), 1, - ts_builtin_sym_end, + [3697] = 2, + ACTIONS(438), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6590,150 +6833,151 @@ static const uint16_t ts_small_parse_table[] = { static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(11)] = 0, - [SMALL_STATE(12)] = 42, - [SMALL_STATE(13)] = 84, - [SMALL_STATE(14)] = 126, - [SMALL_STATE(15)] = 179, - [SMALL_STATE(16)] = 224, - [SMALL_STATE(17)] = 281, - [SMALL_STATE(18)] = 340, - [SMALL_STATE(19)] = 395, - [SMALL_STATE(20)] = 444, - [SMALL_STATE(21)] = 489, - [SMALL_STATE(22)] = 526, - [SMALL_STATE(23)] = 586, - [SMALL_STATE(24)] = 622, - [SMALL_STATE(25)] = 657, - [SMALL_STATE(26)] = 692, - [SMALL_STATE(27)] = 727, - [SMALL_STATE(28)] = 762, - [SMALL_STATE(29)] = 797, - [SMALL_STATE(30)] = 832, - [SMALL_STATE(31)] = 892, - [SMALL_STATE(32)] = 928, - [SMALL_STATE(33)] = 987, - [SMALL_STATE(34)] = 1042, - [SMALL_STATE(35)] = 1097, - [SMALL_STATE(36)] = 1142, - [SMALL_STATE(37)] = 1176, - [SMALL_STATE(38)] = 1227, - [SMALL_STATE(39)] = 1280, - [SMALL_STATE(40)] = 1331, - [SMALL_STATE(41)] = 1384, - [SMALL_STATE(42)] = 1434, - [SMALL_STATE(43)] = 1484, - [SMALL_STATE(44)] = 1534, - [SMALL_STATE(45)] = 1569, - [SMALL_STATE(46)] = 1601, - [SMALL_STATE(47)] = 1633, - [SMALL_STATE(48)] = 1665, - [SMALL_STATE(49)] = 1697, - [SMALL_STATE(50)] = 1729, - [SMALL_STATE(51)] = 1761, - [SMALL_STATE(52)] = 1793, - [SMALL_STATE(53)] = 1825, - [SMALL_STATE(54)] = 1857, - [SMALL_STATE(55)] = 1889, - [SMALL_STATE(56)] = 1921, - [SMALL_STATE(57)] = 1953, - [SMALL_STATE(58)] = 1985, - [SMALL_STATE(59)] = 2017, - [SMALL_STATE(60)] = 2049, - [SMALL_STATE(61)] = 2078, - [SMALL_STATE(62)] = 2107, - [SMALL_STATE(63)] = 2134, - [SMALL_STATE(64)] = 2161, - [SMALL_STATE(65)] = 2183, - [SMALL_STATE(66)] = 2218, - [SMALL_STATE(67)] = 2253, - [SMALL_STATE(68)] = 2274, - [SMALL_STATE(69)] = 2303, - [SMALL_STATE(70)] = 2332, - [SMALL_STATE(71)] = 2361, - [SMALL_STATE(72)] = 2390, - [SMALL_STATE(73)] = 2419, - [SMALL_STATE(74)] = 2448, - [SMALL_STATE(75)] = 2477, - [SMALL_STATE(76)] = 2506, - [SMALL_STATE(77)] = 2526, - [SMALL_STATE(78)] = 2546, - [SMALL_STATE(79)] = 2566, - [SMALL_STATE(80)] = 2580, - [SMALL_STATE(81)] = 2594, - [SMALL_STATE(82)] = 2614, - [SMALL_STATE(83)] = 2633, - [SMALL_STATE(84)] = 2652, - [SMALL_STATE(85)] = 2671, - [SMALL_STATE(86)] = 2691, - [SMALL_STATE(87)] = 2711, - [SMALL_STATE(88)] = 2731, - [SMALL_STATE(89)] = 2751, - [SMALL_STATE(90)] = 2771, - [SMALL_STATE(91)] = 2791, - [SMALL_STATE(92)] = 2811, - [SMALL_STATE(93)] = 2829, - [SMALL_STATE(94)] = 2847, - [SMALL_STATE(95)] = 2865, - [SMALL_STATE(96)] = 2882, - [SMALL_STATE(97)] = 2899, - [SMALL_STATE(98)] = 2910, - [SMALL_STATE(99)] = 2921, - [SMALL_STATE(100)] = 2932, - [SMALL_STATE(101)] = 2949, - [SMALL_STATE(102)] = 2960, - [SMALL_STATE(103)] = 2977, - [SMALL_STATE(104)] = 2988, - [SMALL_STATE(105)] = 3005, - [SMALL_STATE(106)] = 3016, - [SMALL_STATE(107)] = 3033, - [SMALL_STATE(108)] = 3050, - [SMALL_STATE(109)] = 3067, - [SMALL_STATE(110)] = 3078, - [SMALL_STATE(111)] = 3089, - [SMALL_STATE(112)] = 3100, - [SMALL_STATE(113)] = 3117, - [SMALL_STATE(114)] = 3134, - [SMALL_STATE(115)] = 3151, - [SMALL_STATE(116)] = 3162, - [SMALL_STATE(117)] = 3173, - [SMALL_STATE(118)] = 3190, - [SMALL_STATE(119)] = 3201, - [SMALL_STATE(120)] = 3218, - [SMALL_STATE(121)] = 3235, - [SMALL_STATE(122)] = 3246, - [SMALL_STATE(123)] = 3257, - [SMALL_STATE(124)] = 3274, - [SMALL_STATE(125)] = 3285, - [SMALL_STATE(126)] = 3296, - [SMALL_STATE(127)] = 3307, - [SMALL_STATE(128)] = 3324, - [SMALL_STATE(129)] = 3337, - [SMALL_STATE(130)] = 3352, - [SMALL_STATE(131)] = 3366, - [SMALL_STATE(132)] = 3378, - [SMALL_STATE(133)] = 3388, - [SMALL_STATE(134)] = 3402, - [SMALL_STATE(135)] = 3414, - [SMALL_STATE(136)] = 3423, - [SMALL_STATE(137)] = 3432, - [SMALL_STATE(138)] = 3443, - [SMALL_STATE(139)] = 3454, - [SMALL_STATE(140)] = 3463, - [SMALL_STATE(141)] = 3472, - [SMALL_STATE(142)] = 3481, - [SMALL_STATE(143)] = 3490, - [SMALL_STATE(144)] = 3501, - [SMALL_STATE(145)] = 3510, - [SMALL_STATE(146)] = 3518, - [SMALL_STATE(147)] = 3526, - [SMALL_STATE(148)] = 3534, - [SMALL_STATE(149)] = 3542, - [SMALL_STATE(150)] = 3550, - [SMALL_STATE(151)] = 3558, - [SMALL_STATE(152)] = 3566, - [SMALL_STATE(153)] = 3574, - [SMALL_STATE(154)] = 3582, - [SMALL_STATE(155)] = 3590, + [SMALL_STATE(12)] = 43, + [SMALL_STATE(13)] = 86, + [SMALL_STATE(14)] = 129, + [SMALL_STATE(15)] = 189, + [SMALL_STATE(16)] = 227, + [SMALL_STATE(17)] = 275, + [SMALL_STATE(18)] = 337, + [SMALL_STATE(19)] = 393, + [SMALL_STATE(20)] = 451, + [SMALL_STATE(21)] = 499, + [SMALL_STATE(22)] = 551, + [SMALL_STATE(23)] = 588, + [SMALL_STATE(24)] = 649, + [SMALL_STATE(25)] = 710, + [SMALL_STATE(26)] = 746, + [SMALL_STATE(27)] = 782, + [SMALL_STATE(28)] = 818, + [SMALL_STATE(29)] = 854, + [SMALL_STATE(30)] = 890, + [SMALL_STATE(31)] = 926, + [SMALL_STATE(32)] = 962, + [SMALL_STATE(33)] = 1025, + [SMALL_STATE(34)] = 1063, + [SMALL_STATE(35)] = 1121, + [SMALL_STATE(36)] = 1179, + [SMALL_STATE(37)] = 1241, + [SMALL_STATE(38)] = 1287, + [SMALL_STATE(39)] = 1322, + [SMALL_STATE(40)] = 1378, + [SMALL_STATE(41)] = 1434, + [SMALL_STATE(42)] = 1488, + [SMALL_STATE(43)] = 1542, + [SMALL_STATE(44)] = 1595, + [SMALL_STATE(45)] = 1648, + [SMALL_STATE(46)] = 1701, + [SMALL_STATE(47)] = 1737, + [SMALL_STATE(48)] = 1770, + [SMALL_STATE(49)] = 1803, + [SMALL_STATE(50)] = 1836, + [SMALL_STATE(51)] = 1869, + [SMALL_STATE(52)] = 1902, + [SMALL_STATE(53)] = 1935, + [SMALL_STATE(54)] = 1968, + [SMALL_STATE(55)] = 2001, + [SMALL_STATE(56)] = 2034, + [SMALL_STATE(57)] = 2067, + [SMALL_STATE(58)] = 2100, + [SMALL_STATE(59)] = 2133, + [SMALL_STATE(60)] = 2166, + [SMALL_STATE(61)] = 2199, + [SMALL_STATE(62)] = 2232, + [SMALL_STATE(63)] = 2261, + [SMALL_STATE(64)] = 2290, + [SMALL_STATE(65)] = 2317, + [SMALL_STATE(66)] = 2344, + [SMALL_STATE(67)] = 2366, + [SMALL_STATE(68)] = 2401, + [SMALL_STATE(69)] = 2436, + [SMALL_STATE(70)] = 2457, + [SMALL_STATE(71)] = 2486, + [SMALL_STATE(72)] = 2515, + [SMALL_STATE(73)] = 2535, + [SMALL_STATE(74)] = 2555, + [SMALL_STATE(75)] = 2575, + [SMALL_STATE(76)] = 2589, + [SMALL_STATE(77)] = 2609, + [SMALL_STATE(78)] = 2629, + [SMALL_STATE(79)] = 2649, + [SMALL_STATE(80)] = 2663, + [SMALL_STATE(81)] = 2683, + [SMALL_STATE(82)] = 2702, + [SMALL_STATE(83)] = 2721, + [SMALL_STATE(84)] = 2740, + [SMALL_STATE(85)] = 2758, + [SMALL_STATE(86)] = 2778, + [SMALL_STATE(87)] = 2798, + [SMALL_STATE(88)] = 2818, + [SMALL_STATE(89)] = 2834, + [SMALL_STATE(90)] = 2852, + [SMALL_STATE(91)] = 2872, + [SMALL_STATE(92)] = 2892, + [SMALL_STATE(93)] = 2904, + [SMALL_STATE(94)] = 2924, + [SMALL_STATE(95)] = 2940, + [SMALL_STATE(96)] = 2960, + [SMALL_STATE(97)] = 2977, + [SMALL_STATE(98)] = 2988, + [SMALL_STATE(99)] = 2999, + [SMALL_STATE(100)] = 3016, + [SMALL_STATE(101)] = 3027, + [SMALL_STATE(102)] = 3038, + [SMALL_STATE(103)] = 3055, + [SMALL_STATE(104)] = 3072, + [SMALL_STATE(105)] = 3083, + [SMALL_STATE(106)] = 3094, + [SMALL_STATE(107)] = 3105, + [SMALL_STATE(108)] = 3116, + [SMALL_STATE(109)] = 3133, + [SMALL_STATE(110)] = 3144, + [SMALL_STATE(111)] = 3155, + [SMALL_STATE(112)] = 3166, + [SMALL_STATE(113)] = 3177, + [SMALL_STATE(114)] = 3194, + [SMALL_STATE(115)] = 3205, + [SMALL_STATE(116)] = 3218, + [SMALL_STATE(117)] = 3235, + [SMALL_STATE(118)] = 3252, + [SMALL_STATE(119)] = 3269, + [SMALL_STATE(120)] = 3286, + [SMALL_STATE(121)] = 3303, + [SMALL_STATE(122)] = 3314, + [SMALL_STATE(123)] = 3329, + [SMALL_STATE(124)] = 3340, + [SMALL_STATE(125)] = 3355, + [SMALL_STATE(126)] = 3372, + [SMALL_STATE(127)] = 3389, + [SMALL_STATE(128)] = 3406, + [SMALL_STATE(129)] = 3423, + [SMALL_STATE(130)] = 3440, + [SMALL_STATE(131)] = 3451, + [SMALL_STATE(132)] = 3462, + [SMALL_STATE(133)] = 3472, + [SMALL_STATE(134)] = 3482, + [SMALL_STATE(135)] = 3492, + [SMALL_STATE(136)] = 3502, + [SMALL_STATE(137)] = 3516, + [SMALL_STATE(138)] = 3526, + [SMALL_STATE(139)] = 3538, + [SMALL_STATE(140)] = 3550, + [SMALL_STATE(141)] = 3564, + [SMALL_STATE(142)] = 3574, + [SMALL_STATE(143)] = 3583, + [SMALL_STATE(144)] = 3594, + [SMALL_STATE(145)] = 3603, + [SMALL_STATE(146)] = 3612, + [SMALL_STATE(147)] = 3621, + [SMALL_STATE(148)] = 3630, + [SMALL_STATE(149)] = 3639, + [SMALL_STATE(150)] = 3648, + [SMALL_STATE(151)] = 3657, + [SMALL_STATE(152)] = 3665, + [SMALL_STATE(153)] = 3673, + [SMALL_STATE(154)] = 3681, + [SMALL_STATE(155)] = 3689, + [SMALL_STATE(156)] = 3697, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -6741,215 +6985,218 @@ static const TSParseActionEntry ts_parse_actions[] = { [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 = true}}, SHIFT(153), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(128), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), - [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), - [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), - [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), - [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [51] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 2), - [53] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 2), - [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), - [57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 1), - [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 1), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(151), + [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(115), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), + [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69), + [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49), + [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [55] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 2), + [57] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 2), + [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), - [65] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), SHIFT_REPEAT(151), - [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 24), - [70] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [72] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), - [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 24), - [78] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57), - [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [82] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 15), - [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 15), - [88] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [90] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [65] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), SHIFT_REPEAT(156), + [68] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 1), + [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 1), + [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 29), + [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [76] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), + [78] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [82] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [84] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 29), + [86] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), + [88] = {.entry = {.count = 1, .reusable = false}}, SHIFT(154), + [90] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), [94] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), [96] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), - [98] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 22), - [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 22), - [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 13), - [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 13), - [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 16), - [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 16), - [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 22), - [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 22), - [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), - [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 22), - [128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [130] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), - [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 22), - [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), - [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), - [138] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(31), - [141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [143] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 8), - [147] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 8), - [149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 17), - [151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 17), - [153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), - [157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [161] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 26), - [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), - [168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [98] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 19), + [100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 19), + [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 27), + [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 27), + [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 15), + [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 15), + [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 30), + [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 30), + [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 27), + [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 27), + [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), + [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 20), + [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 20), + [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 27), + [138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [140] = {.entry = {.count = 1, .reusable = false}}, SHIFT(48), + [142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 27), + [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), + [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), + [150] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(33), + [153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 21), + [155] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 21), + [157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 9), + [159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 9), + [161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [165] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [167] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), + [169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [171] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [173] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), + [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), + [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 32), + [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), [194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [210] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), - [212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), - [214] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), - [216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), - [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [220] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [224] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(64), - [227] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 9), - [229] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 9), - [231] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [237] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2), - [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 1), - [245] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 12), - [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 19), - [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 27), - [265] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 21), - [267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), - [269] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), - [271] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(61), - [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), - [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), - [278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), - [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), - [282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), - [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), - [296] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(61), - [299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), - [301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), - [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), - [305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), - [309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), - [313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 31), - [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 31), - [321] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(61), - [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), - [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), - [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), - [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), - [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [340] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 25), - [342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), - [344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 25), - [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), - [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), - [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), - [360] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(119), - [363] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), - [365] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), - [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), - [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), - [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), - [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), - [384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), - [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 23), - [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), - [392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), - [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), - [396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), - [400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 10), - [402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 33), - [404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 13), - [406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 14), - [410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 34), - [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 5, .production_id = 28), - [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 5, .production_id = 29), - [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 5, .production_id = 30), - [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 18), - [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 11), - [422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 6, .production_id = 32), - [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 20), + [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [222] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), + [224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), + [226] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), + [228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), + [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [232] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), + [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), + [236] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [240] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(66), + [243] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [251] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 14), + [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 23), + [263] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(63), + [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), + [268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 24), + [270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), + [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 33), + [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), + [276] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_cross_statement_repeat1, 2, .production_id = 5), SHIFT_REPEAT(63), + [279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_cross_statement_repeat1, 2, .production_id = 5), + [281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), + [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), + [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cross_statement, 2, .production_id = 3), + [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), + [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), + [291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), + [295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 17), + [299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cross_statement, 3, .production_id = 6), + [301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), + [303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), + [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), + [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), + [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 8), + [313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), + [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_cross_statement_repeat1, 2, .production_id = 3), + [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 34), + [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [329] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(63), + [332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), + [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), + [338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), + [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), + [344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 34), + [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), + [348] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), + [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), + [353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 31), + [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), + [359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), + [363] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(118), + [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 18), + [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 31), + [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), + [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), + [392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 13), + [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 12), + [396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 16), + [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 25), + [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), + [404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), + [406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 28), + [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 22), + [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), + [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), + [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 36), + [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 26), + [422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 15), + [424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 35), + [426] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 11), + [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), + [430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), [432] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), + [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), }; #ifdef __cplusplus From 5e7e84ec429e8b9b26338aee3214a34e3c489cef Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Sat, 15 Jun 2024 16:43:21 +0200 Subject: [PATCH 25/49] Remove cross_statement --- grammar.js | 54 +- src/grammar.json | 260 ++-- src/node-types.json | 24 - src/parser.c | 3616 +++++++++++++++++++++---------------------- 4 files changed, 1868 insertions(+), 2086 deletions(-) diff --git a/grammar.js b/grammar.js index 95aa4bb..1a4ea0d 100644 --- a/grammar.js +++ b/grammar.js @@ -73,21 +73,6 @@ module.exports = grammar({ field('block', $.block) ), - interface_statement: $ => seq( - 'interface', - field('name', $.identifier), - optional(field('interface_ports', $.interface_ports)) - //field('block', $.block) - ), - - cross_statement: $ => seq( - 'cross', - sepSeq1( - field('item', $.assign_to), - $._comma - ), - ), - identifier: $ => /[\p{Alphabetic}_][\p{Alphabetic}_\p{Decimal_Number}]*/, number: $ => /\d[\d_]*/, @@ -189,23 +174,6 @@ module.exports = grammar({ _linebreak: $ => repeat1('\n'), // For things that must be separated by at least one newline (whitespace after is to optimize gobbling up any extra newlines) - block: $ => seq( - '{', - newlineSepSeq($, choice( - $.block, - $.decl_assign_statement, - - // Decls only should only allow a single declaration, and cannot contain expressions, - // but we allow some tolerance in the grammar here, so we can generate better errors after. - $.assign_left_side, - $.if_statement, - $.for_statement, - $.interface_statement, - $.cross_statement - )), - '}' - ), - write_modifiers: $ => choice( repeat1(field('item', 'reg')), field('item', 'initial') @@ -223,6 +191,28 @@ module.exports = grammar({ $._comma ), + block: $ => seq( + '{', + newlineSepSeq($, choice( + $.block, + $.decl_assign_statement, + + // Decls only should only allow a single declaration, and cannot contain expressions, + // but we allow some tolerance in the grammar here, so we can generate better errors after. + $.assign_left_side, + $.if_statement, + $.for_statement, + $.interface_statement + )), + '}' + ), + + interface_statement: $ => seq( + 'interface', + field('name', $.identifier), + optional(field('interface_ports', $.interface_ports)) + ), + decl_assign_statement: $ => seq( field('assign_left', $.assign_left_side), '=', diff --git a/src/grammar.json b/src/grammar.json index dbaf3bb..abed4b6 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -251,81 +251,6 @@ } ] }, - "interface_statement": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "interface" - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "interface_ports", - "content": { - "type": "SYMBOL", - "name": "interface_ports" - } - }, - { - "type": "BLANK" - } - ] - } - ] - }, - "cross_statement": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "cross" - }, - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "item", - "content": { - "type": "SYMBOL", - "name": "assign_to" - } - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_comma" - }, - { - "type": "FIELD", - "name": "item", - "content": { - "type": "SYMBOL", - "name": "assign_to" - } - } - ] - } - } - ] - } - ] - }, "identifier": { "type": "PATTERN", "value": "[\\p{Alphabetic}_][\\p{Alphabetic}_\\p{Decimal_Number}]*" @@ -1017,6 +942,101 @@ "value": "\n" } }, + "write_modifiers": { + "type": "CHOICE", + "members": [ + { + "type": "REPEAT1", + "content": { + "type": "FIELD", + "name": "item", + "content": { + "type": "STRING", + "value": "reg" + } + } + }, + { + "type": "FIELD", + "name": "item", + "content": { + "type": "STRING", + "value": "initial" + } + } + ] + }, + "assign_to": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "write_modifiers", + "content": { + "type": "SYMBOL", + "name": "write_modifiers" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "expr_or_decl", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "SYMBOL", + "name": "declaration" + } + ] + } + } + ] + }, + "assign_left_side": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "item", + "content": { + "type": "SYMBOL", + "name": "assign_to" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_comma" + }, + { + "type": "FIELD", + "name": "item", + "content": { + "type": "SYMBOL", + "name": "assign_to" + } + } + ] + } + } + ] + }, "block": { "type": "SEQ", "members": [ @@ -1074,10 +1094,6 @@ { "type": "SYMBOL", "name": "interface_statement" - }, - { - "type": "SYMBOL", - "name": "cross_statement" } ] } @@ -1120,10 +1136,6 @@ { "type": "SYMBOL", "name": "interface_statement" - }, - { - "type": "SYMBOL", - "name": "cross_statement" } ] } @@ -1158,98 +1170,36 @@ } ] }, - "write_modifiers": { - "type": "CHOICE", + "interface_statement": { + "type": "SEQ", "members": [ { - "type": "REPEAT1", - "content": { - "type": "FIELD", - "name": "item", - "content": { - "type": "STRING", - "value": "reg" - } - } + "type": "STRING", + "value": "interface" }, { "type": "FIELD", - "name": "item", + "name": "name", "content": { - "type": "STRING", - "value": "initial" + "type": "SYMBOL", + "name": "identifier" } - } - ] - }, - "assign_to": { - "type": "SEQ", - "members": [ + }, { "type": "CHOICE", "members": [ { "type": "FIELD", - "name": "write_modifiers", + "name": "interface_ports", "content": { "type": "SYMBOL", - "name": "write_modifiers" + "name": "interface_ports" } }, { "type": "BLANK" } ] - }, - { - "type": "FIELD", - "name": "expr_or_decl", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_expression" - }, - { - "type": "SYMBOL", - "name": "declaration" - } - ] - } - } - ] - }, - "assign_left_side": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "item", - "content": { - "type": "SYMBOL", - "name": "assign_to" - } - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_comma" - }, - { - "type": "FIELD", - "name": "item", - "content": { - "type": "SYMBOL", - "name": "assign_to" - } - } - ] - } } ] }, diff --git a/src/node-types.json b/src/node-types.json index 539893b..9c5dcbc 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -361,10 +361,6 @@ "type": "block", "named": true }, - { - "type": "cross_statement", - "named": true - }, { "type": "decl_assign_statement", "named": true @@ -385,22 +381,6 @@ } } }, - { - "type": "cross_statement", - "named": true, - "fields": { - "item": { - "multiple": true, - "required": true, - "types": [ - { - "type": "assign_to", - "named": true - } - ] - } - } - }, { "type": "decl_assign_statement", "named": true, @@ -1261,10 +1241,6 @@ "type": "^", "named": false }, - { - "type": "cross", - "named": false - }, { "type": "else", "named": false diff --git a/src/parser.c b/src/parser.c index 8e81afa..6ba3fad 100644 --- a/src/parser.c +++ b/src/parser.c @@ -5,11 +5,11 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 157 +#define STATE_COUNT 154 #define LARGE_STATE_COUNT 11 -#define SYMBOL_COUNT 83 +#define SYMBOL_COUNT 81 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 46 +#define TOKEN_COUNT 45 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 26 #define MAX_ALIAS_SEQUENCE_LENGTH 7 @@ -21,83 +21,81 @@ enum ts_symbol_identifiers { anon_sym_DASH_GT = 3, anon_sym_COLON = 4, anon_sym_module = 5, - anon_sym_interface = 6, - anon_sym_cross = 7, - sym_number = 8, - anon_sym_COLON_COLON = 9, - anon_sym_SQUOTE = 10, - anon_sym_state = 11, - anon_sym_gen = 12, - anon_sym_PLUS = 13, - anon_sym_DASH = 14, - anon_sym_STAR = 15, - anon_sym_BANG = 16, - anon_sym_PIPE = 17, - anon_sym_AMP = 18, - anon_sym_CARET = 19, - anon_sym_EQ_EQ = 20, - anon_sym_BANG_EQ = 21, - anon_sym_LT = 22, - anon_sym_LT_EQ = 23, - anon_sym_GT = 24, - anon_sym_GT_EQ = 25, - anon_sym_SLASH = 26, - anon_sym_PERCENT = 27, - anon_sym_DOT = 28, - anon_sym_LPAREN = 29, - anon_sym_RPAREN = 30, - anon_sym_LBRACK = 31, - anon_sym_RBRACK = 32, - anon_sym_LF = 33, + sym_number = 6, + anon_sym_COLON_COLON = 7, + anon_sym_SQUOTE = 8, + anon_sym_state = 9, + anon_sym_gen = 10, + anon_sym_PLUS = 11, + anon_sym_DASH = 12, + anon_sym_STAR = 13, + anon_sym_BANG = 14, + anon_sym_PIPE = 15, + anon_sym_AMP = 16, + anon_sym_CARET = 17, + anon_sym_EQ_EQ = 18, + anon_sym_BANG_EQ = 19, + anon_sym_LT = 20, + anon_sym_LT_EQ = 21, + anon_sym_GT = 22, + anon_sym_GT_EQ = 23, + anon_sym_SLASH = 24, + anon_sym_PERCENT = 25, + anon_sym_DOT = 26, + anon_sym_LPAREN = 27, + anon_sym_RPAREN = 28, + anon_sym_LBRACK = 29, + anon_sym_RBRACK = 30, + anon_sym_LF = 31, + anon_sym_reg = 32, + anon_sym_initial = 33, anon_sym_LBRACE = 34, anon_sym_RBRACE = 35, - anon_sym_reg = 36, - anon_sym_initial = 37, - anon_sym_EQ = 38, - anon_sym_if = 39, - anon_sym_else = 40, - anon_sym_for = 41, - anon_sym_in = 42, - anon_sym_DOT_DOT = 43, - sym_single_line_comment = 44, - sym_multi_line_comment = 45, - sym_source_file = 46, - sym__comma = 47, - sym__interface_ports_output = 48, - sym_interface_ports = 49, - sym_declaration_list = 50, - sym_module = 51, - sym_interface_statement = 52, - sym_cross_statement = 53, - sym_global_identifier = 54, - sym_array_type = 55, - sym__type = 56, - sym_latency_specifier = 57, - sym_declaration = 58, - sym_unary_op = 59, - sym_binary_op = 60, - sym_array_op = 61, - sym_func_call = 62, - sym_field_access = 63, - sym_parenthesis_expression_list = 64, - sym_parenthesis_expression = 65, - sym_array_bracket_expression = 66, - sym__expression = 67, - aux_sym__linebreak = 68, + anon_sym_interface = 36, + anon_sym_EQ = 37, + anon_sym_if = 38, + anon_sym_else = 39, + anon_sym_for = 40, + anon_sym_in = 41, + anon_sym_DOT_DOT = 42, + sym_single_line_comment = 43, + sym_multi_line_comment = 44, + sym_source_file = 45, + sym__comma = 46, + sym__interface_ports_output = 47, + sym_interface_ports = 48, + sym_declaration_list = 49, + sym_module = 50, + sym_global_identifier = 51, + sym_array_type = 52, + sym__type = 53, + sym_latency_specifier = 54, + sym_declaration = 55, + sym_unary_op = 56, + sym_binary_op = 57, + sym_array_op = 58, + sym_func_call = 59, + sym_field_access = 60, + sym_parenthesis_expression_list = 61, + sym_parenthesis_expression = 62, + sym_array_bracket_expression = 63, + sym__expression = 64, + aux_sym__linebreak = 65, + sym_write_modifiers = 66, + sym_assign_to = 67, + sym_assign_left_side = 68, sym_block = 69, - sym_write_modifiers = 70, - sym_assign_to = 71, - sym_assign_left_side = 72, - sym_decl_assign_statement = 73, - sym_if_statement = 74, - sym_for_statement = 75, - aux_sym_source_file_repeat1 = 76, - aux_sym_declaration_list_repeat1 = 77, - aux_sym_cross_statement_repeat1 = 78, - aux_sym_global_identifier_repeat1 = 79, - aux_sym_parenthesis_expression_list_repeat1 = 80, - aux_sym_block_repeat1 = 81, - aux_sym_write_modifiers_repeat1 = 82, + sym_interface_statement = 70, + sym_decl_assign_statement = 71, + sym_if_statement = 72, + sym_for_statement = 73, + aux_sym_source_file_repeat1 = 74, + aux_sym_declaration_list_repeat1 = 75, + aux_sym_global_identifier_repeat1 = 76, + aux_sym_parenthesis_expression_list_repeat1 = 77, + aux_sym_write_modifiers_repeat1 = 78, + aux_sym_assign_left_side_repeat1 = 79, + aux_sym_block_repeat1 = 80, }; static const char * const ts_symbol_names[] = { @@ -107,8 +105,6 @@ static const char * const ts_symbol_names[] = { [anon_sym_DASH_GT] = "->", [anon_sym_COLON] = ":", [anon_sym_module] = "module", - [anon_sym_interface] = "interface", - [anon_sym_cross] = "cross", [sym_number] = "number", [anon_sym_COLON_COLON] = "::", [anon_sym_SQUOTE] = "'", @@ -135,10 +131,11 @@ static const char * const ts_symbol_names[] = { [anon_sym_LBRACK] = "[", [anon_sym_RBRACK] = "]", [anon_sym_LF] = "\n", - [anon_sym_LBRACE] = "{", - [anon_sym_RBRACE] = "}", [anon_sym_reg] = "reg", [anon_sym_initial] = "initial", + [anon_sym_LBRACE] = "{", + [anon_sym_RBRACE] = "}", + [anon_sym_interface] = "interface", [anon_sym_EQ] = "=", [anon_sym_if] = "if", [anon_sym_else] = "else", @@ -153,8 +150,6 @@ static const char * const ts_symbol_names[] = { [sym_interface_ports] = "interface_ports", [sym_declaration_list] = "declaration_list", [sym_module] = "module", - [sym_interface_statement] = "interface_statement", - [sym_cross_statement] = "cross_statement", [sym_global_identifier] = "global_identifier", [sym_array_type] = "array_type", [sym__type] = "_type", @@ -170,20 +165,21 @@ static const char * const ts_symbol_names[] = { [sym_array_bracket_expression] = "array_bracket_expression", [sym__expression] = "_expression", [aux_sym__linebreak] = "_linebreak", - [sym_block] = "block", [sym_write_modifiers] = "write_modifiers", [sym_assign_to] = "assign_to", [sym_assign_left_side] = "assign_left_side", + [sym_block] = "block", + [sym_interface_statement] = "interface_statement", [sym_decl_assign_statement] = "decl_assign_statement", [sym_if_statement] = "if_statement", [sym_for_statement] = "for_statement", [aux_sym_source_file_repeat1] = "source_file_repeat1", [aux_sym_declaration_list_repeat1] = "declaration_list_repeat1", - [aux_sym_cross_statement_repeat1] = "cross_statement_repeat1", [aux_sym_global_identifier_repeat1] = "global_identifier_repeat1", [aux_sym_parenthesis_expression_list_repeat1] = "parenthesis_expression_list_repeat1", - [aux_sym_block_repeat1] = "block_repeat1", [aux_sym_write_modifiers_repeat1] = "write_modifiers_repeat1", + [aux_sym_assign_left_side_repeat1] = "assign_left_side_repeat1", + [aux_sym_block_repeat1] = "block_repeat1", }; static const TSSymbol ts_symbol_map[] = { @@ -193,8 +189,6 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_DASH_GT] = anon_sym_DASH_GT, [anon_sym_COLON] = anon_sym_COLON, [anon_sym_module] = anon_sym_module, - [anon_sym_interface] = anon_sym_interface, - [anon_sym_cross] = anon_sym_cross, [sym_number] = sym_number, [anon_sym_COLON_COLON] = anon_sym_COLON_COLON, [anon_sym_SQUOTE] = anon_sym_SQUOTE, @@ -221,10 +215,11 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_LBRACK] = anon_sym_LBRACK, [anon_sym_RBRACK] = anon_sym_RBRACK, [anon_sym_LF] = anon_sym_LF, - [anon_sym_LBRACE] = anon_sym_LBRACE, - [anon_sym_RBRACE] = anon_sym_RBRACE, [anon_sym_reg] = anon_sym_reg, [anon_sym_initial] = anon_sym_initial, + [anon_sym_LBRACE] = anon_sym_LBRACE, + [anon_sym_RBRACE] = anon_sym_RBRACE, + [anon_sym_interface] = anon_sym_interface, [anon_sym_EQ] = anon_sym_EQ, [anon_sym_if] = anon_sym_if, [anon_sym_else] = anon_sym_else, @@ -239,8 +234,6 @@ static const TSSymbol ts_symbol_map[] = { [sym_interface_ports] = sym_interface_ports, [sym_declaration_list] = sym_declaration_list, [sym_module] = sym_module, - [sym_interface_statement] = sym_interface_statement, - [sym_cross_statement] = sym_cross_statement, [sym_global_identifier] = sym_global_identifier, [sym_array_type] = sym_array_type, [sym__type] = sym__type, @@ -256,20 +249,21 @@ static const TSSymbol ts_symbol_map[] = { [sym_array_bracket_expression] = sym_array_bracket_expression, [sym__expression] = sym__expression, [aux_sym__linebreak] = aux_sym__linebreak, - [sym_block] = sym_block, [sym_write_modifiers] = sym_write_modifiers, [sym_assign_to] = sym_assign_to, [sym_assign_left_side] = sym_assign_left_side, + [sym_block] = sym_block, + [sym_interface_statement] = sym_interface_statement, [sym_decl_assign_statement] = sym_decl_assign_statement, [sym_if_statement] = sym_if_statement, [sym_for_statement] = sym_for_statement, [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1, [aux_sym_declaration_list_repeat1] = aux_sym_declaration_list_repeat1, - [aux_sym_cross_statement_repeat1] = aux_sym_cross_statement_repeat1, [aux_sym_global_identifier_repeat1] = aux_sym_global_identifier_repeat1, [aux_sym_parenthesis_expression_list_repeat1] = aux_sym_parenthesis_expression_list_repeat1, - [aux_sym_block_repeat1] = aux_sym_block_repeat1, [aux_sym_write_modifiers_repeat1] = aux_sym_write_modifiers_repeat1, + [aux_sym_assign_left_side_repeat1] = aux_sym_assign_left_side_repeat1, + [aux_sym_block_repeat1] = aux_sym_block_repeat1, }; static const TSSymbolMetadata ts_symbol_metadata[] = { @@ -297,14 +291,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_interface] = { - .visible = true, - .named = false, - }, - [anon_sym_cross] = { - .visible = true, - .named = false, - }, [sym_number] = { .visible = true, .named = true, @@ -409,19 +395,23 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_LBRACE] = { + [anon_sym_reg] = { .visible = true, .named = false, }, - [anon_sym_RBRACE] = { + [anon_sym_initial] = { .visible = true, .named = false, }, - [anon_sym_reg] = { + [anon_sym_LBRACE] = { .visible = true, .named = false, }, - [anon_sym_initial] = { + [anon_sym_RBRACE] = { + .visible = true, + .named = false, + }, + [anon_sym_interface] = { .visible = true, .named = false, }, @@ -481,14 +471,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_interface_statement] = { - .visible = true, - .named = true, - }, - [sym_cross_statement] = { - .visible = true, - .named = true, - }, [sym_global_identifier] = { .visible = true, .named = true, @@ -549,10 +531,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, - [sym_block] = { - .visible = true, - .named = true, - }, [sym_write_modifiers] = { .visible = true, .named = true, @@ -565,6 +543,14 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_block] = { + .visible = true, + .named = true, + }, + [sym_interface_statement] = { + .visible = true, + .named = true, + }, [sym_decl_assign_statement] = { .visible = true, .named = true, @@ -585,23 +571,23 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, - [aux_sym_cross_statement_repeat1] = { + [aux_sym_global_identifier_repeat1] = { .visible = false, .named = false, }, - [aux_sym_global_identifier_repeat1] = { + [aux_sym_parenthesis_expression_list_repeat1] = { .visible = false, .named = false, }, - [aux_sym_parenthesis_expression_list_repeat1] = { + [aux_sym_write_modifiers_repeat1] = { .visible = false, .named = false, }, - [aux_sym_block_repeat1] = { + [aux_sym_assign_left_side_repeat1] = { .visible = false, .named = false, }, - [aux_sym_write_modifiers_repeat1] = { + [aux_sym_block_repeat1] = { .visible = false, .named = false, }, @@ -684,16 +670,16 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [15] = {.index = 22, .length = 2}, [16] = {.index = 24, .length = 1}, [17] = {.index = 25, .length = 1}, - [18] = {.index = 26, .length = 1}, - [19] = {.index = 27, .length = 2}, + [18] = {.index = 26, .length = 2}, + [19] = {.index = 28, .length = 1}, [20] = {.index = 29, .length = 2}, [21] = {.index = 31, .length = 2}, [22] = {.index = 33, .length = 1}, [23] = {.index = 34, .length = 3}, [24] = {.index = 37, .length = 3}, [25] = {.index = 40, .length = 2}, - [26] = {.index = 42, .length = 2}, - [27] = {.index = 44, .length = 1}, + [26] = {.index = 42, .length = 1}, + [27] = {.index = 43, .length = 2}, [28] = {.index = 45, .length = 2}, [29] = {.index = 47, .length = 3}, [30] = {.index = 50, .length = 2}, @@ -750,10 +736,10 @@ static const TSFieldMapEntry ts_field_map_entries[] = { [25] = {field_inputs, 2}, [26] = - {field_name, 1}, - [27] = {field_operator, 0}, {field_right, 1}, + [28] = + {field_name, 1}, [29] = {field_arguments, 1}, {field_name, 0}, @@ -774,10 +760,10 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_inputs, 2}, {field_outputs, 3, .inherited = true}, [42] = + {field_content, 1}, + [43] = {field_interface_ports, 2}, {field_name, 1}, - [44] = - {field_content, 1}, [45] = {field_condition, 1}, {field_then_block, 2}, @@ -975,9 +961,6 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [151] = 151, [152] = 152, [153] = 153, - [154] = 154, - [155] = 155, - [156] = 156, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -3129,151 +3112,135 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (lookahead == 'c') ADVANCE(1); - if (lookahead == 'e') ADVANCE(2); - if (lookahead == 'f') ADVANCE(3); - if (lookahead == 'g') ADVANCE(4); - if (lookahead == 'i') ADVANCE(5); - if (lookahead == 'm') ADVANCE(6); - if (lookahead == 'r') ADVANCE(7); - if (lookahead == 's') ADVANCE(8); + if (lookahead == 'e') ADVANCE(1); + if (lookahead == 'f') ADVANCE(2); + if (lookahead == 'g') ADVANCE(3); + if (lookahead == 'i') ADVANCE(4); + if (lookahead == 'm') ADVANCE(5); + if (lookahead == 'r') ADVANCE(6); + if (lookahead == 's') ADVANCE(7); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(0) END_STATE(); case 1: - if (lookahead == 'r') ADVANCE(9); + if (lookahead == 'l') ADVANCE(8); END_STATE(); case 2: - if (lookahead == 'l') ADVANCE(10); + if (lookahead == 'o') ADVANCE(9); END_STATE(); case 3: - if (lookahead == 'o') ADVANCE(11); + if (lookahead == 'e') ADVANCE(10); END_STATE(); case 4: - if (lookahead == 'e') ADVANCE(12); + if (lookahead == 'f') ADVANCE(11); + if (lookahead == 'n') ADVANCE(12); END_STATE(); case 5: - if (lookahead == 'f') ADVANCE(13); - if (lookahead == 'n') ADVANCE(14); + if (lookahead == 'o') ADVANCE(13); END_STATE(); case 6: - if (lookahead == 'o') ADVANCE(15); + if (lookahead == 'e') ADVANCE(14); END_STATE(); case 7: - if (lookahead == 'e') ADVANCE(16); + if (lookahead == 't') ADVANCE(15); END_STATE(); case 8: - if (lookahead == 't') ADVANCE(17); + if (lookahead == 's') ADVANCE(16); END_STATE(); case 9: - if (lookahead == 'o') ADVANCE(18); + if (lookahead == 'r') ADVANCE(17); END_STATE(); case 10: - if (lookahead == 's') ADVANCE(19); + if (lookahead == 'n') ADVANCE(18); END_STATE(); case 11: - if (lookahead == 'r') ADVANCE(20); + ACCEPT_TOKEN(anon_sym_if); END_STATE(); case 12: - if (lookahead == 'n') ADVANCE(21); + ACCEPT_TOKEN(anon_sym_in); + if (lookahead == 'i') ADVANCE(19); + if (lookahead == 't') ADVANCE(20); END_STATE(); case 13: - ACCEPT_TOKEN(anon_sym_if); + if (lookahead == 'd') ADVANCE(21); END_STATE(); case 14: - ACCEPT_TOKEN(anon_sym_in); - if (lookahead == 'i') ADVANCE(22); - if (lookahead == 't') ADVANCE(23); + if (lookahead == 'g') ADVANCE(22); END_STATE(); case 15: - if (lookahead == 'd') ADVANCE(24); + if (lookahead == 'a') ADVANCE(23); END_STATE(); case 16: - if (lookahead == 'g') ADVANCE(25); + if (lookahead == 'e') ADVANCE(24); END_STATE(); case 17: - if (lookahead == 'a') ADVANCE(26); + ACCEPT_TOKEN(anon_sym_for); END_STATE(); case 18: - if (lookahead == 's') ADVANCE(27); + ACCEPT_TOKEN(anon_sym_gen); END_STATE(); case 19: - if (lookahead == 'e') ADVANCE(28); + if (lookahead == 't') ADVANCE(25); END_STATE(); case 20: - ACCEPT_TOKEN(anon_sym_for); + if (lookahead == 'e') ADVANCE(26); END_STATE(); case 21: - ACCEPT_TOKEN(anon_sym_gen); + if (lookahead == 'u') ADVANCE(27); END_STATE(); case 22: - if (lookahead == 't') ADVANCE(29); + ACCEPT_TOKEN(anon_sym_reg); END_STATE(); case 23: - if (lookahead == 'e') ADVANCE(30); + if (lookahead == 't') ADVANCE(28); END_STATE(); case 24: - if (lookahead == 'u') ADVANCE(31); + ACCEPT_TOKEN(anon_sym_else); END_STATE(); case 25: - ACCEPT_TOKEN(anon_sym_reg); + if (lookahead == 'i') ADVANCE(29); END_STATE(); case 26: - if (lookahead == 't') ADVANCE(32); + if (lookahead == 'r') ADVANCE(30); END_STATE(); case 27: - if (lookahead == 's') ADVANCE(33); + if (lookahead == 'l') ADVANCE(31); END_STATE(); case 28: - ACCEPT_TOKEN(anon_sym_else); + if (lookahead == 'e') ADVANCE(32); END_STATE(); case 29: - if (lookahead == 'i') ADVANCE(34); + if (lookahead == 'a') ADVANCE(33); END_STATE(); case 30: - if (lookahead == 'r') ADVANCE(35); + if (lookahead == 'f') ADVANCE(34); END_STATE(); case 31: - if (lookahead == 'l') ADVANCE(36); + if (lookahead == 'e') ADVANCE(35); END_STATE(); case 32: - if (lookahead == 'e') ADVANCE(37); + ACCEPT_TOKEN(anon_sym_state); END_STATE(); case 33: - ACCEPT_TOKEN(anon_sym_cross); + if (lookahead == 'l') ADVANCE(36); END_STATE(); case 34: - if (lookahead == 'a') ADVANCE(38); + if (lookahead == 'a') ADVANCE(37); END_STATE(); case 35: - if (lookahead == 'f') ADVANCE(39); + ACCEPT_TOKEN(anon_sym_module); END_STATE(); case 36: - if (lookahead == 'e') ADVANCE(40); + ACCEPT_TOKEN(anon_sym_initial); END_STATE(); case 37: - ACCEPT_TOKEN(anon_sym_state); + if (lookahead == 'c') ADVANCE(38); END_STATE(); case 38: - if (lookahead == 'l') ADVANCE(41); + if (lookahead == 'e') ADVANCE(39); END_STATE(); case 39: - if (lookahead == 'a') ADVANCE(42); - END_STATE(); - case 40: - ACCEPT_TOKEN(anon_sym_module); - END_STATE(); - case 41: - ACCEPT_TOKEN(anon_sym_initial); - END_STATE(); - case 42: - if (lookahead == 'c') ADVANCE(43); - END_STATE(); - case 43: - if (lookahead == 'e') ADVANCE(44); - END_STATE(); - case 44: ACCEPT_TOKEN(anon_sym_interface); END_STATE(); default: @@ -3304,9 +3271,9 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [19] = {.lex_state = 1}, [20] = {.lex_state = 1}, [21] = {.lex_state = 1}, - [22] = {.lex_state = 1}, - [23] = {.lex_state = 7}, - [24] = {.lex_state = 7}, + [22] = {.lex_state = 7}, + [23] = {.lex_state = 1}, + [24] = {.lex_state = 1}, [25] = {.lex_state = 1}, [26] = {.lex_state = 1}, [27] = {.lex_state = 1}, @@ -3314,12 +3281,12 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [29] = {.lex_state = 1}, [30] = {.lex_state = 1}, [31] = {.lex_state = 1}, - [32] = {.lex_state = 1}, - [33] = {.lex_state = 7}, - [34] = {.lex_state = 1}, + [32] = {.lex_state = 7}, + [33] = {.lex_state = 1}, + [34] = {.lex_state = 7}, [35] = {.lex_state = 1}, [36] = {.lex_state = 1}, - [37] = {.lex_state = 7}, + [37] = {.lex_state = 1}, [38] = {.lex_state = 1}, [39] = {.lex_state = 1}, [40] = {.lex_state = 1}, @@ -3327,7 +3294,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [42] = {.lex_state = 1}, [43] = {.lex_state = 1}, [44] = {.lex_state = 1}, - [45] = {.lex_state = 1}, + [45] = {.lex_state = 7}, [46] = {.lex_state = 7}, [47] = {.lex_state = 7}, [48] = {.lex_state = 7}, @@ -3348,10 +3315,10 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [63] = {.lex_state = 7}, [64] = {.lex_state = 7}, [65] = {.lex_state = 7}, - [66] = {.lex_state = 7}, + [66] = {.lex_state = 0}, [67] = {.lex_state = 0}, - [68] = {.lex_state = 0}, - [69] = {.lex_state = 7}, + [68] = {.lex_state = 7}, + [69] = {.lex_state = 0}, [70] = {.lex_state = 0}, [71] = {.lex_state = 0}, [72] = {.lex_state = 0}, @@ -3376,7 +3343,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [91] = {.lex_state = 0}, [92] = {.lex_state = 0}, [93] = {.lex_state = 0}, - [94] = {.lex_state = 0}, + [94] = {.lex_state = 7}, [95] = {.lex_state = 0}, [96] = {.lex_state = 0}, [97] = {.lex_state = 0}, @@ -3388,7 +3355,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [103] = {.lex_state = 0}, [104] = {.lex_state = 0}, [105] = {.lex_state = 0}, - [106] = {.lex_state = 0}, + [106] = {.lex_state = 7}, [107] = {.lex_state = 0}, [108] = {.lex_state = 0}, [109] = {.lex_state = 0}, @@ -3402,9 +3369,9 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [117] = {.lex_state = 0}, [118] = {.lex_state = 0}, [119] = {.lex_state = 0}, - [120] = {.lex_state = 7}, + [120] = {.lex_state = 0}, [121] = {.lex_state = 0}, - [122] = {.lex_state = 7}, + [122] = {.lex_state = 0}, [123] = {.lex_state = 0}, [124] = {.lex_state = 0}, [125] = {.lex_state = 0}, @@ -3436,9 +3403,6 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [151] = {.lex_state = 0}, [152] = {.lex_state = 0}, [153] = {.lex_state = 0}, - [154] = {.lex_state = 0}, - [155] = {.lex_state = 0}, - [156] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -3449,8 +3413,6 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_DASH_GT] = ACTIONS(1), [anon_sym_COLON] = ACTIONS(1), [anon_sym_module] = ACTIONS(1), - [anon_sym_interface] = ACTIONS(1), - [anon_sym_cross] = ACTIONS(1), [sym_number] = ACTIONS(1), [anon_sym_COLON_COLON] = ACTIONS(1), [anon_sym_SQUOTE] = ACTIONS(1), @@ -3477,10 +3439,11 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_LBRACK] = ACTIONS(1), [anon_sym_RBRACK] = ACTIONS(1), [anon_sym_LF] = ACTIONS(1), - [anon_sym_LBRACE] = ACTIONS(1), - [anon_sym_RBRACE] = ACTIONS(1), [anon_sym_reg] = ACTIONS(1), [anon_sym_initial] = ACTIONS(1), + [anon_sym_LBRACE] = ACTIONS(1), + [anon_sym_RBRACE] = ACTIONS(1), + [anon_sym_interface] = ACTIONS(1), [anon_sym_EQ] = ACTIONS(1), [anon_sym_if] = ACTIONS(1), [anon_sym_else] = ACTIONS(1), @@ -3491,9 +3454,9 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(153), - [sym_module] = STATE(108), - [aux_sym__linebreak] = STATE(95), + [sym_source_file] = STATE(150), + [sym_module] = STATE(104), + [aux_sym__linebreak] = STATE(88), [ts_builtin_sym_end] = ACTIONS(5), [anon_sym_module] = ACTIONS(7), [anon_sym_LF] = ACTIONS(9), @@ -3501,424 +3464,406 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [2] = { - [sym_interface_statement] = STATE(142), - [sym_cross_statement] = STATE(142), - [sym_global_identifier] = STATE(38), - [sym_array_type] = STATE(140), - [sym__type] = STATE(140), - [sym_declaration] = STATE(105), - [sym_unary_op] = STATE(35), - [sym_binary_op] = STATE(35), - [sym_array_op] = STATE(35), - [sym_func_call] = STATE(35), - [sym_field_access] = STATE(35), - [sym_parenthesis_expression] = STATE(35), - [sym__expression] = STATE(35), - [aux_sym__linebreak] = STATE(33), - [sym_block] = STATE(142), - [sym_write_modifiers] = STATE(37), - [sym_assign_to] = STATE(83), - [sym_assign_left_side] = STATE(138), - [sym_decl_assign_statement] = STATE(142), - [sym_if_statement] = STATE(142), - [sym_for_statement] = STATE(142), + [sym_global_identifier] = STATE(37), + [sym_array_type] = STATE(138), + [sym__type] = STATE(138), + [sym_declaration] = STATE(102), + [sym_unary_op] = STATE(33), + [sym_binary_op] = STATE(33), + [sym_array_op] = STATE(33), + [sym_func_call] = STATE(33), + [sym_field_access] = STATE(33), + [sym_parenthesis_expression] = STATE(33), + [sym__expression] = STATE(33), + [aux_sym__linebreak] = STATE(32), + [sym_write_modifiers] = STATE(34), + [sym_assign_to] = STATE(82), + [sym_assign_left_side] = STATE(85), + [sym_block] = STATE(119), + [sym_interface_statement] = STATE(119), + [sym_decl_assign_statement] = STATE(119), + [sym_if_statement] = STATE(119), + [sym_for_statement] = STATE(119), [aux_sym_write_modifiers_repeat1] = STATE(64), [sym_identifier] = ACTIONS(11), - [anon_sym_interface] = ACTIONS(13), - [anon_sym_cross] = ACTIONS(15), - [sym_number] = ACTIONS(17), - [anon_sym_state] = ACTIONS(19), - [anon_sym_gen] = ACTIONS(19), - [anon_sym_PLUS] = ACTIONS(21), - [anon_sym_DASH] = ACTIONS(21), - [anon_sym_STAR] = ACTIONS(21), - [anon_sym_BANG] = ACTIONS(21), - [anon_sym_PIPE] = ACTIONS(21), - [anon_sym_AMP] = ACTIONS(21), - [anon_sym_CARET] = ACTIONS(21), - [anon_sym_LPAREN] = ACTIONS(23), - [anon_sym_LF] = ACTIONS(25), + [sym_number] = ACTIONS(13), + [anon_sym_state] = ACTIONS(15), + [anon_sym_gen] = ACTIONS(15), + [anon_sym_PLUS] = ACTIONS(17), + [anon_sym_DASH] = ACTIONS(17), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_BANG] = ACTIONS(17), + [anon_sym_PIPE] = ACTIONS(17), + [anon_sym_AMP] = ACTIONS(17), + [anon_sym_CARET] = ACTIONS(17), + [anon_sym_LPAREN] = ACTIONS(19), + [anon_sym_LF] = ACTIONS(21), + [anon_sym_reg] = ACTIONS(23), + [anon_sym_initial] = ACTIONS(25), [anon_sym_LBRACE] = ACTIONS(27), [anon_sym_RBRACE] = ACTIONS(29), - [anon_sym_reg] = ACTIONS(31), - [anon_sym_initial] = ACTIONS(33), - [anon_sym_if] = ACTIONS(35), - [anon_sym_for] = ACTIONS(37), + [anon_sym_interface] = ACTIONS(31), + [anon_sym_if] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [3] = { - [sym_interface_statement] = STATE(142), - [sym_cross_statement] = STATE(142), - [sym_global_identifier] = STATE(38), - [sym_array_type] = STATE(140), - [sym__type] = STATE(140), - [sym_declaration] = STATE(105), - [sym_unary_op] = STATE(35), - [sym_binary_op] = STATE(35), - [sym_array_op] = STATE(35), - [sym_func_call] = STATE(35), - [sym_field_access] = STATE(35), - [sym_parenthesis_expression] = STATE(35), - [sym__expression] = STATE(35), - [aux_sym__linebreak] = STATE(33), - [sym_block] = STATE(142), - [sym_write_modifiers] = STATE(37), - [sym_assign_to] = STATE(83), - [sym_assign_left_side] = STATE(138), - [sym_decl_assign_statement] = STATE(142), - [sym_if_statement] = STATE(142), - [sym_for_statement] = STATE(142), + [sym_global_identifier] = STATE(37), + [sym_array_type] = STATE(138), + [sym__type] = STATE(138), + [sym_declaration] = STATE(102), + [sym_unary_op] = STATE(33), + [sym_binary_op] = STATE(33), + [sym_array_op] = STATE(33), + [sym_func_call] = STATE(33), + [sym_field_access] = STATE(33), + [sym_parenthesis_expression] = STATE(33), + [sym__expression] = STATE(33), + [aux_sym__linebreak] = STATE(32), + [sym_write_modifiers] = STATE(34), + [sym_assign_to] = STATE(82), + [sym_assign_left_side] = STATE(132), + [sym_block] = STATE(141), + [sym_interface_statement] = STATE(141), + [sym_decl_assign_statement] = STATE(141), + [sym_if_statement] = STATE(141), + [sym_for_statement] = STATE(141), [aux_sym_write_modifiers_repeat1] = STATE(64), [sym_identifier] = ACTIONS(11), - [anon_sym_interface] = ACTIONS(13), - [anon_sym_cross] = ACTIONS(15), - [sym_number] = ACTIONS(17), - [anon_sym_state] = ACTIONS(19), - [anon_sym_gen] = ACTIONS(19), - [anon_sym_PLUS] = ACTIONS(21), - [anon_sym_DASH] = ACTIONS(21), - [anon_sym_STAR] = ACTIONS(21), - [anon_sym_BANG] = ACTIONS(21), - [anon_sym_PIPE] = ACTIONS(21), - [anon_sym_AMP] = ACTIONS(21), - [anon_sym_CARET] = ACTIONS(21), - [anon_sym_LPAREN] = ACTIONS(23), - [anon_sym_LF] = ACTIONS(25), + [sym_number] = ACTIONS(13), + [anon_sym_state] = ACTIONS(15), + [anon_sym_gen] = ACTIONS(15), + [anon_sym_PLUS] = ACTIONS(17), + [anon_sym_DASH] = ACTIONS(17), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_BANG] = ACTIONS(17), + [anon_sym_PIPE] = ACTIONS(17), + [anon_sym_AMP] = ACTIONS(17), + [anon_sym_CARET] = ACTIONS(17), + [anon_sym_LPAREN] = ACTIONS(19), + [anon_sym_LF] = ACTIONS(21), + [anon_sym_reg] = ACTIONS(23), + [anon_sym_initial] = ACTIONS(25), [anon_sym_LBRACE] = ACTIONS(27), - [anon_sym_RBRACE] = ACTIONS(39), - [anon_sym_reg] = ACTIONS(31), - [anon_sym_initial] = ACTIONS(33), - [anon_sym_if] = ACTIONS(35), - [anon_sym_for] = ACTIONS(37), + [anon_sym_RBRACE] = ACTIONS(37), + [anon_sym_interface] = ACTIONS(31), + [anon_sym_if] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [4] = { - [sym_interface_statement] = STATE(99), - [sym_cross_statement] = STATE(99), - [sym_global_identifier] = STATE(38), - [sym_array_type] = STATE(140), - [sym__type] = STATE(140), - [sym_declaration] = STATE(105), - [sym_unary_op] = STATE(35), - [sym_binary_op] = STATE(35), - [sym_array_op] = STATE(35), - [sym_func_call] = STATE(35), - [sym_field_access] = STATE(35), - [sym_parenthesis_expression] = STATE(35), - [sym__expression] = STATE(35), - [aux_sym__linebreak] = STATE(33), - [sym_block] = STATE(99), - [sym_write_modifiers] = STATE(37), - [sym_assign_to] = STATE(83), - [sym_assign_left_side] = STATE(91), - [sym_decl_assign_statement] = STATE(99), - [sym_if_statement] = STATE(99), - [sym_for_statement] = STATE(99), + [sym_global_identifier] = STATE(37), + [sym_array_type] = STATE(138), + [sym__type] = STATE(138), + [sym_declaration] = STATE(102), + [sym_unary_op] = STATE(33), + [sym_binary_op] = STATE(33), + [sym_array_op] = STATE(33), + [sym_func_call] = STATE(33), + [sym_field_access] = STATE(33), + [sym_parenthesis_expression] = STATE(33), + [sym__expression] = STATE(33), + [aux_sym__linebreak] = STATE(32), + [sym_write_modifiers] = STATE(34), + [sym_assign_to] = STATE(82), + [sym_assign_left_side] = STATE(132), + [sym_block] = STATE(141), + [sym_interface_statement] = STATE(141), + [sym_decl_assign_statement] = STATE(141), + [sym_if_statement] = STATE(141), + [sym_for_statement] = STATE(141), [aux_sym_write_modifiers_repeat1] = STATE(64), [sym_identifier] = ACTIONS(11), - [anon_sym_interface] = ACTIONS(13), - [anon_sym_cross] = ACTIONS(15), - [sym_number] = ACTIONS(17), - [anon_sym_state] = ACTIONS(19), - [anon_sym_gen] = ACTIONS(19), - [anon_sym_PLUS] = ACTIONS(21), - [anon_sym_DASH] = ACTIONS(21), - [anon_sym_STAR] = ACTIONS(21), - [anon_sym_BANG] = ACTIONS(21), - [anon_sym_PIPE] = ACTIONS(21), - [anon_sym_AMP] = ACTIONS(21), - [anon_sym_CARET] = ACTIONS(21), - [anon_sym_LPAREN] = ACTIONS(23), - [anon_sym_LF] = ACTIONS(25), + [sym_number] = ACTIONS(13), + [anon_sym_state] = ACTIONS(15), + [anon_sym_gen] = ACTIONS(15), + [anon_sym_PLUS] = ACTIONS(17), + [anon_sym_DASH] = ACTIONS(17), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_BANG] = ACTIONS(17), + [anon_sym_PIPE] = ACTIONS(17), + [anon_sym_AMP] = ACTIONS(17), + [anon_sym_CARET] = ACTIONS(17), + [anon_sym_LPAREN] = ACTIONS(19), + [anon_sym_LF] = ACTIONS(21), + [anon_sym_reg] = ACTIONS(23), + [anon_sym_initial] = ACTIONS(25), [anon_sym_LBRACE] = ACTIONS(27), - [anon_sym_RBRACE] = ACTIONS(41), - [anon_sym_reg] = ACTIONS(31), - [anon_sym_initial] = ACTIONS(33), - [anon_sym_if] = ACTIONS(35), - [anon_sym_for] = ACTIONS(37), + [anon_sym_RBRACE] = ACTIONS(39), + [anon_sym_interface] = ACTIONS(31), + [anon_sym_if] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [5] = { - [sym_interface_statement] = STATE(142), - [sym_cross_statement] = STATE(142), - [sym_global_identifier] = STATE(38), - [sym_array_type] = STATE(140), - [sym__type] = STATE(140), - [sym_declaration] = STATE(105), - [sym_unary_op] = STATE(35), - [sym_binary_op] = STATE(35), - [sym_array_op] = STATE(35), - [sym_func_call] = STATE(35), - [sym_field_access] = STATE(35), - [sym_parenthesis_expression] = STATE(35), - [sym__expression] = STATE(35), - [aux_sym__linebreak] = STATE(33), - [sym_block] = STATE(142), - [sym_write_modifiers] = STATE(37), - [sym_assign_to] = STATE(83), - [sym_assign_left_side] = STATE(138), - [sym_decl_assign_statement] = STATE(142), - [sym_if_statement] = STATE(142), - [sym_for_statement] = STATE(142), + [sym_global_identifier] = STATE(37), + [sym_array_type] = STATE(138), + [sym__type] = STATE(138), + [sym_declaration] = STATE(102), + [sym_unary_op] = STATE(33), + [sym_binary_op] = STATE(33), + [sym_array_op] = STATE(33), + [sym_func_call] = STATE(33), + [sym_field_access] = STATE(33), + [sym_parenthesis_expression] = STATE(33), + [sym__expression] = STATE(33), + [aux_sym__linebreak] = STATE(32), + [sym_write_modifiers] = STATE(34), + [sym_assign_to] = STATE(82), + [sym_assign_left_side] = STATE(132), + [sym_block] = STATE(141), + [sym_interface_statement] = STATE(141), + [sym_decl_assign_statement] = STATE(141), + [sym_if_statement] = STATE(141), + [sym_for_statement] = STATE(141), [aux_sym_write_modifiers_repeat1] = STATE(64), [sym_identifier] = ACTIONS(11), - [anon_sym_interface] = ACTIONS(13), - [anon_sym_cross] = ACTIONS(15), - [sym_number] = ACTIONS(17), - [anon_sym_state] = ACTIONS(19), - [anon_sym_gen] = ACTIONS(19), - [anon_sym_PLUS] = ACTIONS(21), - [anon_sym_DASH] = ACTIONS(21), - [anon_sym_STAR] = ACTIONS(21), - [anon_sym_BANG] = ACTIONS(21), - [anon_sym_PIPE] = ACTIONS(21), - [anon_sym_AMP] = ACTIONS(21), - [anon_sym_CARET] = ACTIONS(21), - [anon_sym_LPAREN] = ACTIONS(23), - [anon_sym_LF] = ACTIONS(25), + [sym_number] = ACTIONS(13), + [anon_sym_state] = ACTIONS(15), + [anon_sym_gen] = ACTIONS(15), + [anon_sym_PLUS] = ACTIONS(17), + [anon_sym_DASH] = ACTIONS(17), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_BANG] = ACTIONS(17), + [anon_sym_PIPE] = ACTIONS(17), + [anon_sym_AMP] = ACTIONS(17), + [anon_sym_CARET] = ACTIONS(17), + [anon_sym_LPAREN] = ACTIONS(19), + [anon_sym_LF] = ACTIONS(21), + [anon_sym_reg] = ACTIONS(23), + [anon_sym_initial] = ACTIONS(25), [anon_sym_LBRACE] = ACTIONS(27), - [anon_sym_RBRACE] = ACTIONS(43), - [anon_sym_reg] = ACTIONS(31), - [anon_sym_initial] = ACTIONS(33), - [anon_sym_if] = ACTIONS(35), - [anon_sym_for] = ACTIONS(37), + [anon_sym_RBRACE] = ACTIONS(41), + [anon_sym_interface] = ACTIONS(31), + [anon_sym_if] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [6] = { - [sym_interface_statement] = STATE(142), - [sym_cross_statement] = STATE(142), - [sym_global_identifier] = STATE(38), - [sym_array_type] = STATE(140), - [sym__type] = STATE(140), - [sym_declaration] = STATE(105), - [sym_unary_op] = STATE(35), - [sym_binary_op] = STATE(35), - [sym_array_op] = STATE(35), - [sym_func_call] = STATE(35), - [sym_field_access] = STATE(35), - [sym_parenthesis_expression] = STATE(35), - [sym__expression] = STATE(35), - [aux_sym__linebreak] = STATE(33), - [sym_block] = STATE(142), - [sym_write_modifiers] = STATE(37), - [sym_assign_to] = STATE(83), - [sym_assign_left_side] = STATE(138), - [sym_decl_assign_statement] = STATE(142), - [sym_if_statement] = STATE(142), - [sym_for_statement] = STATE(142), + [sym_global_identifier] = STATE(37), + [sym_array_type] = STATE(138), + [sym__type] = STATE(138), + [sym_declaration] = STATE(102), + [sym_unary_op] = STATE(33), + [sym_binary_op] = STATE(33), + [sym_array_op] = STATE(33), + [sym_func_call] = STATE(33), + [sym_field_access] = STATE(33), + [sym_parenthesis_expression] = STATE(33), + [sym__expression] = STATE(33), + [aux_sym__linebreak] = STATE(32), + [sym_write_modifiers] = STATE(34), + [sym_assign_to] = STATE(82), + [sym_assign_left_side] = STATE(132), + [sym_block] = STATE(141), + [sym_interface_statement] = STATE(141), + [sym_decl_assign_statement] = STATE(141), + [sym_if_statement] = STATE(141), + [sym_for_statement] = STATE(141), [aux_sym_write_modifiers_repeat1] = STATE(64), [sym_identifier] = ACTIONS(11), - [anon_sym_interface] = ACTIONS(13), - [anon_sym_cross] = ACTIONS(15), - [sym_number] = ACTIONS(17), - [anon_sym_state] = ACTIONS(19), - [anon_sym_gen] = ACTIONS(19), - [anon_sym_PLUS] = ACTIONS(21), - [anon_sym_DASH] = ACTIONS(21), - [anon_sym_STAR] = ACTIONS(21), - [anon_sym_BANG] = ACTIONS(21), - [anon_sym_PIPE] = ACTIONS(21), - [anon_sym_AMP] = ACTIONS(21), - [anon_sym_CARET] = ACTIONS(21), - [anon_sym_LPAREN] = ACTIONS(23), - [anon_sym_LF] = ACTIONS(25), + [sym_number] = ACTIONS(13), + [anon_sym_state] = ACTIONS(15), + [anon_sym_gen] = ACTIONS(15), + [anon_sym_PLUS] = ACTIONS(17), + [anon_sym_DASH] = ACTIONS(17), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_BANG] = ACTIONS(17), + [anon_sym_PIPE] = ACTIONS(17), + [anon_sym_AMP] = ACTIONS(17), + [anon_sym_CARET] = ACTIONS(17), + [anon_sym_LPAREN] = ACTIONS(19), + [anon_sym_LF] = ACTIONS(21), + [anon_sym_reg] = ACTIONS(23), + [anon_sym_initial] = ACTIONS(25), [anon_sym_LBRACE] = ACTIONS(27), - [anon_sym_RBRACE] = ACTIONS(45), - [anon_sym_reg] = ACTIONS(31), - [anon_sym_initial] = ACTIONS(33), - [anon_sym_if] = ACTIONS(35), - [anon_sym_for] = ACTIONS(37), + [anon_sym_RBRACE] = ACTIONS(43), + [anon_sym_interface] = ACTIONS(31), + [anon_sym_if] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [7] = { - [sym_interface_statement] = STATE(142), - [sym_cross_statement] = STATE(142), - [sym_global_identifier] = STATE(38), - [sym_array_type] = STATE(140), - [sym__type] = STATE(140), - [sym_declaration] = STATE(105), - [sym_unary_op] = STATE(35), - [sym_binary_op] = STATE(35), - [sym_array_op] = STATE(35), - [sym_func_call] = STATE(35), - [sym_field_access] = STATE(35), - [sym_parenthesis_expression] = STATE(35), - [sym__expression] = STATE(35), - [aux_sym__linebreak] = STATE(33), - [sym_block] = STATE(142), - [sym_write_modifiers] = STATE(37), - [sym_assign_to] = STATE(83), - [sym_assign_left_side] = STATE(138), - [sym_decl_assign_statement] = STATE(142), - [sym_if_statement] = STATE(142), - [sym_for_statement] = STATE(142), + [sym_global_identifier] = STATE(37), + [sym_array_type] = STATE(138), + [sym__type] = STATE(138), + [sym_declaration] = STATE(102), + [sym_unary_op] = STATE(33), + [sym_binary_op] = STATE(33), + [sym_array_op] = STATE(33), + [sym_func_call] = STATE(33), + [sym_field_access] = STATE(33), + [sym_parenthesis_expression] = STATE(33), + [sym__expression] = STATE(33), + [aux_sym__linebreak] = STATE(32), + [sym_write_modifiers] = STATE(34), + [sym_assign_to] = STATE(82), + [sym_assign_left_side] = STATE(132), + [sym_block] = STATE(141), + [sym_interface_statement] = STATE(141), + [sym_decl_assign_statement] = STATE(141), + [sym_if_statement] = STATE(141), + [sym_for_statement] = STATE(141), [aux_sym_write_modifiers_repeat1] = STATE(64), [sym_identifier] = ACTIONS(11), - [anon_sym_interface] = ACTIONS(13), - [anon_sym_cross] = ACTIONS(15), - [sym_number] = ACTIONS(17), - [anon_sym_state] = ACTIONS(19), - [anon_sym_gen] = ACTIONS(19), - [anon_sym_PLUS] = ACTIONS(21), - [anon_sym_DASH] = ACTIONS(21), - [anon_sym_STAR] = ACTIONS(21), - [anon_sym_BANG] = ACTIONS(21), - [anon_sym_PIPE] = ACTIONS(21), - [anon_sym_AMP] = ACTIONS(21), - [anon_sym_CARET] = ACTIONS(21), - [anon_sym_LPAREN] = ACTIONS(23), - [anon_sym_LF] = ACTIONS(25), + [sym_number] = ACTIONS(13), + [anon_sym_state] = ACTIONS(15), + [anon_sym_gen] = ACTIONS(15), + [anon_sym_PLUS] = ACTIONS(17), + [anon_sym_DASH] = ACTIONS(17), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_BANG] = ACTIONS(17), + [anon_sym_PIPE] = ACTIONS(17), + [anon_sym_AMP] = ACTIONS(17), + [anon_sym_CARET] = ACTIONS(17), + [anon_sym_LPAREN] = ACTIONS(19), + [anon_sym_LF] = ACTIONS(21), + [anon_sym_reg] = ACTIONS(23), + [anon_sym_initial] = ACTIONS(25), [anon_sym_LBRACE] = ACTIONS(27), - [anon_sym_RBRACE] = ACTIONS(47), - [anon_sym_reg] = ACTIONS(31), - [anon_sym_initial] = ACTIONS(33), - [anon_sym_if] = ACTIONS(35), - [anon_sym_for] = ACTIONS(37), + [anon_sym_RBRACE] = ACTIONS(45), + [anon_sym_interface] = ACTIONS(31), + [anon_sym_if] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [8] = { - [sym_interface_statement] = STATE(142), - [sym_cross_statement] = STATE(142), - [sym_global_identifier] = STATE(38), - [sym_array_type] = STATE(140), - [sym__type] = STATE(140), - [sym_declaration] = STATE(105), - [sym_unary_op] = STATE(35), - [sym_binary_op] = STATE(35), - [sym_array_op] = STATE(35), - [sym_func_call] = STATE(35), - [sym_field_access] = STATE(35), - [sym_parenthesis_expression] = STATE(35), - [sym__expression] = STATE(35), - [aux_sym__linebreak] = STATE(33), - [sym_block] = STATE(142), - [sym_write_modifiers] = STATE(37), - [sym_assign_to] = STATE(83), - [sym_assign_left_side] = STATE(138), - [sym_decl_assign_statement] = STATE(142), - [sym_if_statement] = STATE(142), - [sym_for_statement] = STATE(142), + [sym_global_identifier] = STATE(37), + [sym_array_type] = STATE(138), + [sym__type] = STATE(138), + [sym_declaration] = STATE(102), + [sym_unary_op] = STATE(33), + [sym_binary_op] = STATE(33), + [sym_array_op] = STATE(33), + [sym_func_call] = STATE(33), + [sym_field_access] = STATE(33), + [sym_parenthesis_expression] = STATE(33), + [sym__expression] = STATE(33), + [aux_sym__linebreak] = STATE(2), + [sym_write_modifiers] = STATE(34), + [sym_assign_to] = STATE(82), + [sym_assign_left_side] = STATE(84), + [sym_block] = STATE(128), + [sym_interface_statement] = STATE(128), + [sym_decl_assign_statement] = STATE(128), + [sym_if_statement] = STATE(128), + [sym_for_statement] = STATE(128), [aux_sym_write_modifiers_repeat1] = STATE(64), [sym_identifier] = ACTIONS(11), - [anon_sym_interface] = ACTIONS(13), - [anon_sym_cross] = ACTIONS(15), - [sym_number] = ACTIONS(17), - [anon_sym_state] = ACTIONS(19), - [anon_sym_gen] = ACTIONS(19), - [anon_sym_PLUS] = ACTIONS(21), - [anon_sym_DASH] = ACTIONS(21), - [anon_sym_STAR] = ACTIONS(21), - [anon_sym_BANG] = ACTIONS(21), - [anon_sym_PIPE] = ACTIONS(21), - [anon_sym_AMP] = ACTIONS(21), - [anon_sym_CARET] = ACTIONS(21), - [anon_sym_LPAREN] = ACTIONS(23), - [anon_sym_LF] = ACTIONS(25), + [sym_number] = ACTIONS(13), + [anon_sym_state] = ACTIONS(15), + [anon_sym_gen] = ACTIONS(15), + [anon_sym_PLUS] = ACTIONS(17), + [anon_sym_DASH] = ACTIONS(17), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_BANG] = ACTIONS(17), + [anon_sym_PIPE] = ACTIONS(17), + [anon_sym_AMP] = ACTIONS(17), + [anon_sym_CARET] = ACTIONS(17), + [anon_sym_LPAREN] = ACTIONS(19), + [anon_sym_LF] = ACTIONS(47), + [anon_sym_reg] = ACTIONS(23), + [anon_sym_initial] = ACTIONS(25), [anon_sym_LBRACE] = ACTIONS(27), [anon_sym_RBRACE] = ACTIONS(49), - [anon_sym_reg] = ACTIONS(31), - [anon_sym_initial] = ACTIONS(33), - [anon_sym_if] = ACTIONS(35), - [anon_sym_for] = ACTIONS(37), + [anon_sym_interface] = ACTIONS(31), + [anon_sym_if] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [9] = { - [sym_interface_statement] = STATE(129), - [sym_cross_statement] = STATE(129), - [sym_global_identifier] = STATE(38), - [sym_array_type] = STATE(140), - [sym__type] = STATE(140), - [sym_declaration] = STATE(105), - [sym_unary_op] = STATE(35), - [sym_binary_op] = STATE(35), - [sym_array_op] = STATE(35), - [sym_func_call] = STATE(35), - [sym_field_access] = STATE(35), - [sym_parenthesis_expression] = STATE(35), - [sym__expression] = STATE(35), - [aux_sym__linebreak] = STATE(4), - [sym_block] = STATE(129), - [sym_write_modifiers] = STATE(37), - [sym_assign_to] = STATE(83), - [sym_assign_left_side] = STATE(87), - [sym_decl_assign_statement] = STATE(129), - [sym_if_statement] = STATE(129), - [sym_for_statement] = STATE(129), + [sym_global_identifier] = STATE(37), + [sym_array_type] = STATE(138), + [sym__type] = STATE(138), + [sym_declaration] = STATE(102), + [sym_unary_op] = STATE(33), + [sym_binary_op] = STATE(33), + [sym_array_op] = STATE(33), + [sym_func_call] = STATE(33), + [sym_field_access] = STATE(33), + [sym_parenthesis_expression] = STATE(33), + [sym__expression] = STATE(33), + [aux_sym__linebreak] = STATE(32), + [sym_write_modifiers] = STATE(34), + [sym_assign_to] = STATE(82), + [sym_assign_left_side] = STATE(132), + [sym_block] = STATE(141), + [sym_interface_statement] = STATE(141), + [sym_decl_assign_statement] = STATE(141), + [sym_if_statement] = STATE(141), + [sym_for_statement] = STATE(141), [aux_sym_write_modifiers_repeat1] = STATE(64), [sym_identifier] = ACTIONS(11), - [anon_sym_interface] = ACTIONS(13), - [anon_sym_cross] = ACTIONS(15), - [sym_number] = ACTIONS(17), - [anon_sym_state] = ACTIONS(19), - [anon_sym_gen] = ACTIONS(19), - [anon_sym_PLUS] = ACTIONS(21), - [anon_sym_DASH] = ACTIONS(21), - [anon_sym_STAR] = ACTIONS(21), - [anon_sym_BANG] = ACTIONS(21), - [anon_sym_PIPE] = ACTIONS(21), - [anon_sym_AMP] = ACTIONS(21), - [anon_sym_CARET] = ACTIONS(21), - [anon_sym_LPAREN] = ACTIONS(23), - [anon_sym_LF] = ACTIONS(51), + [sym_number] = ACTIONS(13), + [anon_sym_state] = ACTIONS(15), + [anon_sym_gen] = ACTIONS(15), + [anon_sym_PLUS] = ACTIONS(17), + [anon_sym_DASH] = ACTIONS(17), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_BANG] = ACTIONS(17), + [anon_sym_PIPE] = ACTIONS(17), + [anon_sym_AMP] = ACTIONS(17), + [anon_sym_CARET] = ACTIONS(17), + [anon_sym_LPAREN] = ACTIONS(19), + [anon_sym_LF] = ACTIONS(21), + [anon_sym_reg] = ACTIONS(23), + [anon_sym_initial] = ACTIONS(25), [anon_sym_LBRACE] = ACTIONS(27), - [anon_sym_RBRACE] = ACTIONS(53), - [anon_sym_reg] = ACTIONS(31), - [anon_sym_initial] = ACTIONS(33), - [anon_sym_if] = ACTIONS(35), - [anon_sym_for] = ACTIONS(37), + [anon_sym_RBRACE] = ACTIONS(51), + [anon_sym_interface] = ACTIONS(31), + [anon_sym_if] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [10] = { - [sym_interface_statement] = STATE(142), - [sym_cross_statement] = STATE(142), - [sym_global_identifier] = STATE(38), - [sym_array_type] = STATE(140), - [sym__type] = STATE(140), - [sym_declaration] = STATE(105), - [sym_unary_op] = STATE(35), - [sym_binary_op] = STATE(35), - [sym_array_op] = STATE(35), - [sym_func_call] = STATE(35), - [sym_field_access] = STATE(35), - [sym_parenthesis_expression] = STATE(35), - [sym__expression] = STATE(35), - [aux_sym__linebreak] = STATE(33), - [sym_block] = STATE(142), - [sym_write_modifiers] = STATE(37), - [sym_assign_to] = STATE(83), - [sym_assign_left_side] = STATE(138), - [sym_decl_assign_statement] = STATE(142), - [sym_if_statement] = STATE(142), - [sym_for_statement] = STATE(142), + [sym_global_identifier] = STATE(37), + [sym_array_type] = STATE(138), + [sym__type] = STATE(138), + [sym_declaration] = STATE(102), + [sym_unary_op] = STATE(33), + [sym_binary_op] = STATE(33), + [sym_array_op] = STATE(33), + [sym_func_call] = STATE(33), + [sym_field_access] = STATE(33), + [sym_parenthesis_expression] = STATE(33), + [sym__expression] = STATE(33), + [aux_sym__linebreak] = STATE(32), + [sym_write_modifiers] = STATE(34), + [sym_assign_to] = STATE(82), + [sym_assign_left_side] = STATE(132), + [sym_block] = STATE(141), + [sym_interface_statement] = STATE(141), + [sym_decl_assign_statement] = STATE(141), + [sym_if_statement] = STATE(141), + [sym_for_statement] = STATE(141), [aux_sym_write_modifiers_repeat1] = STATE(64), [sym_identifier] = ACTIONS(11), - [anon_sym_interface] = ACTIONS(13), - [anon_sym_cross] = ACTIONS(15), - [sym_number] = ACTIONS(17), - [anon_sym_state] = ACTIONS(19), - [anon_sym_gen] = ACTIONS(19), - [anon_sym_PLUS] = ACTIONS(21), - [anon_sym_DASH] = ACTIONS(21), - [anon_sym_STAR] = ACTIONS(21), - [anon_sym_BANG] = ACTIONS(21), - [anon_sym_PIPE] = ACTIONS(21), - [anon_sym_AMP] = ACTIONS(21), - [anon_sym_CARET] = ACTIONS(21), - [anon_sym_LPAREN] = ACTIONS(23), - [anon_sym_LF] = ACTIONS(25), + [sym_number] = ACTIONS(13), + [anon_sym_state] = ACTIONS(15), + [anon_sym_gen] = ACTIONS(15), + [anon_sym_PLUS] = ACTIONS(17), + [anon_sym_DASH] = ACTIONS(17), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_BANG] = ACTIONS(17), + [anon_sym_PIPE] = ACTIONS(17), + [anon_sym_AMP] = ACTIONS(17), + [anon_sym_CARET] = ACTIONS(17), + [anon_sym_LPAREN] = ACTIONS(19), + [anon_sym_LF] = ACTIONS(21), + [anon_sym_reg] = ACTIONS(23), + [anon_sym_initial] = ACTIONS(25), [anon_sym_LBRACE] = ACTIONS(27), - [anon_sym_reg] = ACTIONS(31), - [anon_sym_initial] = ACTIONS(33), - [anon_sym_if] = ACTIONS(35), - [anon_sym_for] = ACTIONS(37), + [anon_sym_interface] = ACTIONS(31), + [anon_sym_if] = ACTIONS(33), + [anon_sym_for] = ACTIONS(35), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, @@ -3926,14 +3871,14 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { static const uint16_t ts_small_parse_table[] = { [0] = 5, - ACTIONS(59), 1, + ACTIONS(57), 1, anon_sym_COLON_COLON, STATE(12), 1, aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(55), 8, + ACTIONS(53), 8, sym_identifier, anon_sym_DASH, anon_sym_LT, @@ -3942,7 +3887,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DOT, anon_sym_EQ, anon_sym_in, - ACTIONS(57), 20, + ACTIONS(55), 20, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -3964,14 +3909,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_DOT_DOT, [43] = 5, - ACTIONS(65), 1, + ACTIONS(63), 1, anon_sym_COLON_COLON, STATE(12), 1, aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(61), 8, + ACTIONS(59), 8, sym_identifier, anon_sym_DASH, anon_sym_LT, @@ -3980,7 +3925,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DOT, anon_sym_EQ, anon_sym_in, - ACTIONS(63), 20, + ACTIONS(61), 20, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4002,14 +3947,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_DOT_DOT, [86] = 5, - ACTIONS(59), 1, + ACTIONS(57), 1, anon_sym_COLON_COLON, STATE(11), 1, aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(68), 8, + ACTIONS(66), 8, sym_identifier, anon_sym_DASH, anon_sym_LT, @@ -4018,7 +3963,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DOT, anon_sym_EQ, anon_sym_in, - ACTIONS(70), 20, + ACTIONS(68), 20, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4039,13 +3984,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, - [129] = 14, - ACTIONS(74), 1, + [129] = 15, + ACTIONS(72), 1, anon_sym_PLUS, - ACTIONS(76), 1, + ACTIONS(74), 1, anon_sym_DASH, - ACTIONS(80), 1, + ACTIONS(78), 1, anon_sym_PIPE, + ACTIONS(80), 1, + anon_sym_AMP, ACTIONS(82), 1, anon_sym_CARET, ACTIONS(86), 1, @@ -4056,24 +4003,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(92), 1, anon_sym_LBRACK, - STATE(25), 1, + STATE(28), 1, sym_array_bracket_expression, STATE(29), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 2, + ACTIONS(76), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(84), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(72), 14, + ACTIONS(70), 13, anon_sym_COMMA, anon_sym_DASH_GT, - anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -4085,66 +4031,36 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [189] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(94), 8, - sym_identifier, + [191] = 12, + ACTIONS(72), 1, + anon_sym_PLUS, + ACTIONS(74), 1, anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, + ACTIONS(86), 1, anon_sym_SLASH, - anon_sym_DOT, - anon_sym_EQ, - anon_sym_in, - ACTIONS(96), 21, - anon_sym_COMMA, - anon_sym_DASH_GT, - anon_sym_COLON_COLON, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DOT_DOT, - [227] = 8, ACTIONS(88), 1, anon_sym_DOT, ACTIONS(90), 1, anon_sym_LPAREN, ACTIONS(92), 1, anon_sym_LBRACK, - STATE(25), 1, + STATE(28), 1, sym_array_bracket_expression, STATE(29), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(100), 5, - anon_sym_DASH, + ACTIONS(76), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(84), 3, anon_sym_LT, anon_sym_GT, - anon_sym_SLASH, anon_sym_EQ, - ACTIONS(98), 19, + ACTIONS(70), 16, anon_sym_COMMA, anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -4152,7 +4068,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_LF, @@ -4160,12 +4075,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [275] = 15, - ACTIONS(74), 1, + [247] = 14, + ACTIONS(72), 1, anon_sym_PLUS, - ACTIONS(76), 1, + ACTIONS(74), 1, anon_sym_DASH, - ACTIONS(80), 1, + ACTIONS(78), 1, anon_sym_PIPE, ACTIONS(82), 1, anon_sym_CARET, @@ -4177,25 +4092,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(92), 1, anon_sym_LBRACK, - ACTIONS(102), 1, - anon_sym_AMP, - STATE(25), 1, + STATE(28), 1, sym_array_bracket_expression, STATE(29), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 2, + ACTIONS(76), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(84), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(72), 13, + ACTIONS(70), 14, anon_sym_COMMA, anon_sym_DASH_GT, + anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -4207,11 +4121,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [337] = 12, - ACTIONS(74), 1, + [307] = 13, + ACTIONS(72), 1, anon_sym_PLUS, - ACTIONS(76), 1, + ACTIONS(74), 1, anon_sym_DASH, + ACTIONS(82), 1, + anon_sym_CARET, ACTIONS(86), 1, anon_sym_SLASH, ACTIONS(88), 1, @@ -4220,26 +4136,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(92), 1, anon_sym_LBRACK, - STATE(25), 1, + STATE(28), 1, sym_array_bracket_expression, STATE(29), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 2, + ACTIONS(76), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(84), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(72), 16, + ACTIONS(70), 15, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -4251,44 +4166,39 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [393] = 13, - ACTIONS(74), 1, - anon_sym_PLUS, - ACTIONS(76), 1, - anon_sym_DASH, - ACTIONS(82), 1, - anon_sym_CARET, - ACTIONS(86), 1, - anon_sym_SLASH, + [365] = 8, ACTIONS(88), 1, anon_sym_DOT, ACTIONS(90), 1, anon_sym_LPAREN, ACTIONS(92), 1, anon_sym_LBRACK, - STATE(25), 1, + STATE(28), 1, sym_array_bracket_expression, STATE(29), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(84), 3, + ACTIONS(84), 5, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, + anon_sym_SLASH, anon_sym_EQ, - ACTIONS(72), 15, + ACTIONS(70), 19, anon_sym_COMMA, anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_LF, @@ -4296,31 +4206,34 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [451] = 8, + [413] = 10, + ACTIONS(86), 1, + anon_sym_SLASH, ACTIONS(88), 1, anon_sym_DOT, ACTIONS(90), 1, anon_sym_LPAREN, ACTIONS(92), 1, anon_sym_LBRACK, - STATE(25), 1, + STATE(28), 1, sym_array_bracket_expression, STATE(29), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(84), 5, + ACTIONS(76), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(84), 4, anon_sym_DASH, anon_sym_LT, anon_sym_GT, - anon_sym_SLASH, anon_sym_EQ, - ACTIONS(72), 19, + ACTIONS(70), 17, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, - anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -4328,7 +4241,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_LF, @@ -4336,34 +4248,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [499] = 10, - ACTIONS(86), 1, - anon_sym_SLASH, - ACTIONS(88), 1, - anon_sym_DOT, - ACTIONS(90), 1, - anon_sym_LPAREN, - ACTIONS(92), 1, - anon_sym_LBRACK, - STATE(25), 1, - sym_array_bracket_expression, - STATE(29), 1, - sym_parenthesis_expression_list, + [465] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(84), 4, + ACTIONS(94), 8, + sym_identifier, anon_sym_DASH, anon_sym_LT, anon_sym_GT, + anon_sym_SLASH, + anon_sym_DOT, anon_sym_EQ, - ACTIONS(72), 17, + anon_sym_in, + ACTIONS(96), 21, anon_sym_COMMA, anon_sym_DASH_GT, + anon_sym_COLON_COLON, anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -4371,27 +4274,36 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, - [551] = 3, + [503] = 8, + ACTIONS(88), 1, + anon_sym_DOT, + ACTIONS(90), 1, + anon_sym_LPAREN, + ACTIONS(92), 1, + anon_sym_LBRACK, + STATE(28), 1, + sym_array_bracket_expression, + STATE(29), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(104), 8, - sym_identifier, + ACTIONS(100), 5, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - anon_sym_DOT, anon_sym_EQ, - anon_sym_in, - ACTIONS(106), 20, + ACTIONS(98), 19, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4404,45 +4316,44 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, - [588] = 15, + [551] = 15, ACTIONS(11), 1, sym_identifier, - ACTIONS(17), 1, + ACTIONS(13), 1, sym_number, - ACTIONS(23), 1, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(31), 1, + ACTIONS(23), 1, anon_sym_reg, - ACTIONS(33), 1, + ACTIONS(25), 1, anon_sym_initial, - STATE(37), 1, + STATE(34), 1, sym_write_modifiers, - STATE(38), 1, + STATE(37), 1, sym_global_identifier, STATE(64), 1, aux_sym_write_modifiers_repeat1, - STATE(84), 1, - sym_assign_to, - STATE(105), 1, + STATE(102), 1, sym_declaration, - ACTIONS(3), 2, + STATE(118), 1, + sym_assign_to, + ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(19), 2, + ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - STATE(140), 2, + STATE(138), 2, sym_array_type, sym__type, - ACTIONS(21), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4450,7 +4361,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(35), 7, + STATE(33), 7, sym_unary_op, sym_binary_op, sym_array_op, @@ -4458,64 +4369,52 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [649] = 15, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(17), 1, - sym_number, - ACTIONS(23), 1, - anon_sym_LPAREN, - ACTIONS(31), 1, - anon_sym_reg, - ACTIONS(33), 1, - anon_sym_initial, - STATE(37), 1, - sym_write_modifiers, - STATE(38), 1, - sym_global_identifier, - STATE(64), 1, - aux_sym_write_modifiers_repeat1, - STATE(97), 1, - sym_assign_to, - STATE(105), 1, - sym_declaration, + [612] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(19), 2, - anon_sym_state, - anon_sym_gen, - STATE(140), 2, - sym_array_type, - sym__type, - ACTIONS(21), 7, - anon_sym_PLUS, + ACTIONS(102), 8, + sym_identifier, anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + anon_sym_DOT, + anon_sym_EQ, + anon_sym_in, + ACTIONS(104), 20, + anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_PLUS, anon_sym_STAR, - anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(35), 7, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym__expression, - [710] = 3, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_LF, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, + [649] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(110), 6, + ACTIONS(108), 6, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, anon_sym_EQ, - ACTIONS(108), 21, + ACTIONS(106), 21, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4537,18 +4436,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [746] = 3, + [685] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(114), 6, + ACTIONS(112), 6, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, anon_sym_EQ, - ACTIONS(112), 21, + ACTIONS(110), 21, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4570,18 +4469,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [782] = 3, + [721] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(118), 6, + ACTIONS(116), 6, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, anon_sym_EQ, - ACTIONS(116), 21, + ACTIONS(114), 21, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4603,18 +4502,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [818] = 3, + [757] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(122), 6, + ACTIONS(120), 6, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, anon_sym_EQ, - ACTIONS(120), 21, + ACTIONS(118), 21, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4636,18 +4535,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [854] = 3, + [793] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(126), 6, + ACTIONS(124), 6, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, anon_sym_EQ, - ACTIONS(124), 21, + ACTIONS(122), 21, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4669,18 +4568,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [890] = 3, + [829] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 6, + ACTIONS(128), 6, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, anon_sym_EQ, - ACTIONS(128), 21, + ACTIONS(126), 21, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4702,18 +4601,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [926] = 3, + [865] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(134), 6, + ACTIONS(132), 6, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, anon_sym_EQ, - ACTIONS(132), 21, + ACTIONS(130), 21, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4735,13 +4634,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [962] = 17, - ACTIONS(74), 1, + [901] = 17, + ACTIONS(72), 1, anon_sym_PLUS, - ACTIONS(76), 1, + ACTIONS(74), 1, anon_sym_DASH, - ACTIONS(80), 1, + ACTIONS(78), 1, anon_sym_PIPE, + ACTIONS(80), 1, + anon_sym_AMP, ACTIONS(82), 1, anon_sym_CARET, ACTIONS(86), 1, @@ -4750,58 +4651,55 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(92), 1, anon_sym_LBRACK, - ACTIONS(102), 1, - anon_sym_AMP, - ACTIONS(142), 1, + ACTIONS(140), 1, anon_sym_DOT, - ACTIONS(144), 1, + ACTIONS(142), 1, anon_sym_EQ, - STATE(25), 1, + STATE(28), 1, sym_array_bracket_expression, STATE(29), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 2, + ACTIONS(76), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(140), 2, + ACTIONS(138), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(138), 4, + ACTIONS(136), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(136), 6, + ACTIONS(134), 6, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, - [1025] = 5, - ACTIONS(150), 1, + [964] = 5, + ACTIONS(148), 1, anon_sym_LF, - STATE(33), 1, + STATE(32), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(148), 11, + ACTIONS(146), 10, anon_sym_module, - anon_sym_interface, - anon_sym_cross, sym_identifier, anon_sym_state, anon_sym_gen, anon_sym_DASH, anon_sym_reg, anon_sym_initial, + anon_sym_interface, anon_sym_if, anon_sym_for, - ACTIONS(146), 12, + ACTIONS(144), 12, ts_builtin_sym_end, anon_sym_DASH_GT, sym_number, @@ -4814,9 +4712,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - [1063] = 16, - ACTIONS(80), 1, + [1001] = 16, + ACTIONS(78), 1, anon_sym_PIPE, + ACTIONS(80), 1, + anon_sym_AMP, ACTIONS(82), 1, anon_sym_CARET, ACTIONS(86), 1, @@ -4825,40 +4725,76 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(92), 1, anon_sym_LBRACK, - ACTIONS(102), 1, - anon_sym_AMP, - ACTIONS(142), 1, + ACTIONS(140), 1, anon_sym_DOT, - ACTIONS(155), 1, + ACTIONS(153), 1, anon_sym_EQ, - STATE(25), 1, + STATE(28), 1, sym_array_bracket_expression, STATE(29), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, + ACTIONS(72), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(76), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(140), 2, + ACTIONS(138), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(153), 3, + ACTIONS(151), 3, anon_sym_COMMA, anon_sym_LF, anon_sym_RBRACE, - ACTIONS(138), 4, + ACTIONS(136), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1121] = 16, - ACTIONS(80), 1, + [1059] = 10, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(19), 1, + anon_sym_LPAREN, + ACTIONS(155), 1, + sym_number, + STATE(37), 1, + sym_global_identifier, + STATE(111), 1, + sym_declaration, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(15), 2, + anon_sym_state, + anon_sym_gen, + STATE(138), 2, + sym_array_type, + sym__type, + ACTIONS(17), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(35), 7, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym__expression, + [1105] = 16, + ACTIONS(78), 1, anon_sym_PIPE, + ACTIONS(80), 1, + anon_sym_AMP, ACTIONS(82), 1, anon_sym_CARET, ACTIONS(86), 1, @@ -4867,40 +4803,40 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(92), 1, anon_sym_LBRACK, - ACTIONS(102), 1, - anon_sym_AMP, - ACTIONS(142), 1, + ACTIONS(140), 1, anon_sym_DOT, ACTIONS(159), 1, anon_sym_EQ, - STATE(25), 1, + STATE(28), 1, sym_array_bracket_expression, STATE(29), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, + ACTIONS(72), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(76), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(140), 2, + ACTIONS(138), 2, anon_sym_LT, anon_sym_GT, ACTIONS(157), 3, anon_sym_COMMA, anon_sym_LF, anon_sym_RBRACE, - ACTIONS(138), 4, + ACTIONS(136), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1179] = 18, - ACTIONS(80), 1, + [1163] = 18, + ACTIONS(78), 1, anon_sym_PIPE, + ACTIONS(80), 1, + anon_sym_AMP, ACTIONS(82), 1, anon_sym_CARET, ACTIONS(86), 1, @@ -4909,89 +4845,51 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(92), 1, anon_sym_LBRACK, - ACTIONS(102), 1, - anon_sym_AMP, - ACTIONS(142), 1, + ACTIONS(140), 1, anon_sym_DOT, ACTIONS(161), 1, anon_sym_COMMA, ACTIONS(163), 1, anon_sym_RPAREN, - STATE(25), 1, + STATE(28), 1, sym_array_bracket_expression, STATE(29), 1, sym_parenthesis_expression_list, - STATE(51), 1, + STATE(57), 1, sym__comma, - STATE(116), 1, + STATE(120), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, + ACTIONS(72), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(76), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(140), 2, + ACTIONS(138), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(138), 4, + ACTIONS(136), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1241] = 10, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(23), 1, - anon_sym_LPAREN, + [1225] = 5, ACTIONS(165), 1, - sym_number, - STATE(38), 1, - sym_global_identifier, - STATE(106), 1, - sym_declaration, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(19), 2, - anon_sym_state, - anon_sym_gen, - STATE(140), 2, - sym_array_type, - sym__type, - ACTIONS(21), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(34), 7, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym__expression, - [1287] = 5, - ACTIONS(167), 1, sym_identifier, - ACTIONS(173), 1, + ACTIONS(171), 1, anon_sym_LBRACK, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(171), 4, + ACTIONS(169), 4, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_EQ, - ACTIONS(169), 16, + ACTIONS(167), 16, anon_sym_COMMA, anon_sym_PLUS, anon_sym_DASH, @@ -5008,11 +4906,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LF, anon_sym_RBRACE, - [1322] = 16, + [1260] = 16, ACTIONS(27), 1, anon_sym_LBRACE, - ACTIONS(80), 1, + ACTIONS(78), 1, anon_sym_PIPE, + ACTIONS(80), 1, + anon_sym_AMP, ACTIONS(82), 1, anon_sym_CARET, ACTIONS(86), 1, @@ -5021,38 +4921,38 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(92), 1, anon_sym_LBRACK, - ACTIONS(102), 1, - anon_sym_AMP, - ACTIONS(142), 1, + ACTIONS(140), 1, anon_sym_DOT, - STATE(25), 1, + STATE(28), 1, sym_array_bracket_expression, STATE(29), 1, sym_parenthesis_expression_list, - STATE(139), 1, + STATE(134), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, + ACTIONS(72), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(76), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(140), 2, + ACTIONS(138), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(138), 4, + ACTIONS(136), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1378] = 16, + [1316] = 16, ACTIONS(27), 1, anon_sym_LBRACE, - ACTIONS(80), 1, + ACTIONS(78), 1, anon_sym_PIPE, + ACTIONS(80), 1, + anon_sym_AMP, ACTIONS(82), 1, anon_sym_CARET, ACTIONS(86), 1, @@ -5061,36 +4961,36 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(92), 1, anon_sym_LBRACK, - ACTIONS(102), 1, - anon_sym_AMP, - ACTIONS(142), 1, + ACTIONS(140), 1, anon_sym_DOT, - STATE(25), 1, + STATE(28), 1, sym_array_bracket_expression, STATE(29), 1, sym_parenthesis_expression_list, - STATE(146), 1, + STATE(147), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, + ACTIONS(72), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(76), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(140), 2, + ACTIONS(138), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(138), 4, + ACTIONS(136), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1434] = 15, - ACTIONS(80), 1, + [1372] = 15, + ACTIONS(78), 1, anon_sym_PIPE, + ACTIONS(80), 1, + anon_sym_AMP, ACTIONS(82), 1, anon_sym_CARET, ACTIONS(86), 1, @@ -5099,37 +4999,37 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(92), 1, anon_sym_LBRACK, - ACTIONS(102), 1, - anon_sym_AMP, - ACTIONS(142), 1, + ACTIONS(140), 1, anon_sym_DOT, - STATE(25), 1, + STATE(28), 1, sym_array_bracket_expression, STATE(29), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, + ACTIONS(72), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(76), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(140), 2, + ACTIONS(138), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(176), 2, + ACTIONS(174), 2, anon_sym_COMMA, anon_sym_RPAREN, - ACTIONS(138), 4, + ACTIONS(136), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1488] = 15, - ACTIONS(80), 1, + [1426] = 15, + ACTIONS(78), 1, anon_sym_PIPE, + ACTIONS(80), 1, + anon_sym_AMP, ACTIONS(82), 1, anon_sym_CARET, ACTIONS(86), 1, @@ -5138,75 +5038,75 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(92), 1, anon_sym_LBRACK, - ACTIONS(102), 1, - anon_sym_AMP, - ACTIONS(142), 1, + ACTIONS(140), 1, anon_sym_DOT, - STATE(25), 1, + STATE(28), 1, sym_array_bracket_expression, STATE(29), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, + ACTIONS(72), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(76), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(140), 2, + ACTIONS(138), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(178), 2, + ACTIONS(176), 2, anon_sym_LF, anon_sym_RBRACE, - ACTIONS(138), 4, + ACTIONS(136), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1542] = 15, - ACTIONS(80), 1, + [1480] = 15, + ACTIONS(78), 1, anon_sym_PIPE, + ACTIONS(80), 1, + anon_sym_AMP, ACTIONS(82), 1, anon_sym_CARET, ACTIONS(86), 1, anon_sym_SLASH, - ACTIONS(88), 1, - anon_sym_DOT, ACTIONS(90), 1, anon_sym_LPAREN, ACTIONS(92), 1, anon_sym_LBRACK, - ACTIONS(102), 1, - anon_sym_AMP, - ACTIONS(180), 1, - anon_sym_DOT_DOT, - STATE(25), 1, + ACTIONS(140), 1, + anon_sym_DOT, + ACTIONS(178), 1, + anon_sym_RBRACK, + STATE(28), 1, sym_array_bracket_expression, STATE(29), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, + ACTIONS(72), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(76), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(140), 2, + ACTIONS(138), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(138), 4, + ACTIONS(136), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1595] = 15, - ACTIONS(80), 1, + [1533] = 15, + ACTIONS(78), 1, anon_sym_PIPE, + ACTIONS(80), 1, + anon_sym_AMP, ACTIONS(82), 1, anon_sym_CARET, ACTIONS(86), 1, @@ -5215,84 +5115,82 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(92), 1, anon_sym_LBRACK, - ACTIONS(102), 1, - anon_sym_AMP, - ACTIONS(142), 1, + ACTIONS(140), 1, anon_sym_DOT, - ACTIONS(182), 1, - anon_sym_RBRACK, - STATE(25), 1, + ACTIONS(180), 1, + anon_sym_RPAREN, + STATE(28), 1, sym_array_bracket_expression, STATE(29), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, + ACTIONS(72), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(76), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(140), 2, + ACTIONS(138), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(138), 4, + ACTIONS(136), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1648] = 15, - ACTIONS(80), 1, + [1586] = 15, + ACTIONS(78), 1, anon_sym_PIPE, + ACTIONS(80), 1, + anon_sym_AMP, ACTIONS(82), 1, anon_sym_CARET, ACTIONS(86), 1, anon_sym_SLASH, + ACTIONS(88), 1, + anon_sym_DOT, ACTIONS(90), 1, anon_sym_LPAREN, ACTIONS(92), 1, anon_sym_LBRACK, - ACTIONS(102), 1, - anon_sym_AMP, - ACTIONS(142), 1, - anon_sym_DOT, - ACTIONS(184), 1, - anon_sym_RPAREN, - STATE(25), 1, + ACTIONS(182), 1, + anon_sym_DOT_DOT, + STATE(28), 1, sym_array_bracket_expression, STATE(29), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, + ACTIONS(72), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(76), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(140), 2, + ACTIONS(138), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(138), 4, + ACTIONS(136), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1701] = 7, - ACTIONS(23), 1, + [1639] = 7, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(188), 1, + ACTIONS(186), 1, sym_number, - ACTIONS(190), 1, + ACTIONS(188), 1, anon_sym_RPAREN, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(21), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5309,17 +5207,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [1737] = 6, - ACTIONS(23), 1, + [1675] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(192), 1, + ACTIONS(190), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(21), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5327,7 +5225,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(32), 8, + STATE(41), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5336,17 +5234,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [1770] = 6, - ACTIONS(23), 1, + [1708] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(194), 1, + ACTIONS(192), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(21), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5354,7 +5252,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(17), 8, + STATE(21), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5363,17 +5261,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [1803] = 6, - ACTIONS(23), 1, + [1741] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(196), 1, + ACTIONS(194), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(21), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5381,7 +5279,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(39), 8, + STATE(16), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5390,17 +5288,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [1836] = 6, - ACTIONS(23), 1, + [1774] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(198), 1, + ACTIONS(196), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(21), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5408,7 +5306,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(40), 8, + STATE(44), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5417,17 +5315,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [1869] = 6, - ACTIONS(23), 1, + [1807] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(200), 1, + ACTIONS(198), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(21), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5435,7 +5333,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(41), 8, + STATE(17), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5444,17 +5342,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [1902] = 6, - ACTIONS(23), 1, + [1840] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(202), 1, + ACTIONS(200), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(21), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5462,7 +5360,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(43), 8, + STATE(18), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5471,17 +5369,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [1935] = 6, - ACTIONS(23), 1, + [1873] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(204), 1, + ACTIONS(202), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(21), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5489,7 +5387,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(19), 8, + STATE(15), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5498,17 +5396,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [1968] = 6, - ACTIONS(23), 1, + [1906] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(206), 1, + ACTIONS(204), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(21), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5516,7 +5414,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(16), 8, + STATE(31), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5525,17 +5423,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [2001] = 6, - ACTIONS(23), 1, + [1939] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(208), 1, + ACTIONS(206), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(21), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5543,7 +5441,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(45), 8, + STATE(14), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5552,17 +5450,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [2034] = 6, - ACTIONS(23), 1, + [1972] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(210), 1, + ACTIONS(208), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(21), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5570,7 +5468,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(21), 8, + STATE(19), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5579,17 +5477,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [2067] = 6, - ACTIONS(23), 1, + [2005] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(212), 1, + ACTIONS(210), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(21), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5597,7 +5495,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(44), 8, + STATE(42), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5606,17 +5504,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [2100] = 6, - ACTIONS(23), 1, + [2038] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(214), 1, + ACTIONS(212), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(21), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5624,7 +5522,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(20), 8, + STATE(40), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5633,17 +5531,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [2133] = 6, - ACTIONS(23), 1, + [2071] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(216), 1, + ACTIONS(214), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(21), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5651,7 +5549,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(42), 8, + STATE(38), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5660,17 +5558,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [2166] = 6, - ACTIONS(23), 1, + [2104] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(218), 1, + ACTIONS(216), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(21), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5678,7 +5576,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(14), 8, + STATE(39), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5687,17 +5585,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [2199] = 6, - ACTIONS(23), 1, + [2137] = 6, + ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(184), 1, sym_identifier, - ACTIONS(220), 1, + ACTIONS(218), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(21), 7, + ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5705,7 +5603,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(18), 8, + STATE(43), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5714,21 +5612,21 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [2232] = 5, - ACTIONS(25), 1, + [2170] = 5, + ACTIONS(224), 1, anon_sym_LF, - STATE(33), 1, + STATE(62), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(222), 5, + ACTIONS(220), 5, sym_identifier, anon_sym_state, anon_sym_gen, anon_sym_reg, anon_sym_initial, - ACTIONS(224), 9, + ACTIONS(222), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -5738,10 +5636,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2261] = 5, - ACTIONS(230), 1, + [2199] = 5, + ACTIONS(21), 1, anon_sym_LF, - STATE(62), 1, + STATE(32), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, @@ -5762,19 +5660,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2290] = 5, - ACTIONS(31), 1, + [2228] = 5, + ACTIONS(234), 1, anon_sym_reg, - STATE(65), 1, + STATE(63), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(232), 3, + ACTIONS(230), 3, sym_identifier, anon_sym_state, anon_sym_gen, - ACTIONS(234), 9, + ACTIONS(232), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -5784,19 +5682,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2317] = 5, - ACTIONS(240), 1, + [2255] = 5, + ACTIONS(23), 1, anon_sym_reg, - STATE(65), 1, + STATE(63), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(236), 3, + ACTIONS(237), 3, sym_identifier, anon_sym_state, anon_sym_gen, - ACTIONS(238), 9, + ACTIONS(239), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -5806,16 +5704,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2344] = 3, + [2282] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(243), 4, + ACTIONS(241), 4, sym_identifier, anon_sym_state, anon_sym_gen, anon_sym_reg, - ACTIONS(245), 9, + ACTIONS(243), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -5825,65 +5723,65 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2366] = 10, + [2304] = 10, ACTIONS(11), 1, sym_identifier, - ACTIONS(25), 1, - anon_sym_LF, - ACTIONS(247), 1, + ACTIONS(245), 1, anon_sym_DASH_GT, - STATE(33), 1, + ACTIONS(247), 1, + anon_sym_LF, + STATE(67), 1, aux_sym__linebreak, - STATE(80), 1, + STATE(77), 1, sym_declaration, - STATE(88), 1, + STATE(89), 1, sym_declaration_list, - STATE(134), 1, + STATE(130), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(19), 2, + ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - STATE(140), 3, + STATE(138), 3, sym_global_identifier, sym_array_type, sym__type, - [2401] = 10, + [2339] = 10, ACTIONS(11), 1, sym_identifier, - ACTIONS(247), 1, - anon_sym_DASH_GT, - ACTIONS(249), 1, + ACTIONS(21), 1, anon_sym_LF, - STATE(67), 1, + ACTIONS(245), 1, + anon_sym_DASH_GT, + STATE(32), 1, aux_sym__linebreak, - STATE(80), 1, + STATE(77), 1, sym_declaration, - STATE(94), 1, + STATE(92), 1, sym_declaration_list, - STATE(137), 1, + STATE(129), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(19), 2, + ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - STATE(140), 3, + STATE(138), 3, sym_global_identifier, sym_array_type, sym__type, - [2436] = 3, + [2374] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(251), 3, + ACTIONS(249), 3, sym_identifier, anon_sym_state, anon_sym_gen, - ACTIONS(253), 9, + ACTIONS(251), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -5893,57 +5791,57 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2457] = 8, + [2395] = 8, ACTIONS(11), 1, sym_identifier, - ACTIONS(25), 1, + ACTIONS(21), 1, anon_sym_LF, - STATE(33), 1, + STATE(32), 1, aux_sym__linebreak, - STATE(80), 1, + STATE(77), 1, sym_declaration, - STATE(141), 1, + STATE(133), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(19), 2, + ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - STATE(140), 3, + STATE(138), 3, sym_global_identifier, sym_array_type, sym__type, - [2486] = 8, + [2424] = 8, ACTIONS(11), 1, sym_identifier, - ACTIONS(255), 1, + ACTIONS(253), 1, anon_sym_LF, - STATE(70), 1, + STATE(69), 1, aux_sym__linebreak, - STATE(80), 1, + STATE(77), 1, sym_declaration, - STATE(133), 1, + STATE(137), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(19), 2, + ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - STATE(140), 3, + STATE(138), 3, sym_global_identifier, sym_array_type, sym__type, - [2515] = 4, - ACTIONS(259), 1, + [2453] = 4, + ACTIONS(257), 1, anon_sym_SQUOTE, - STATE(75), 1, + STATE(73), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(257), 7, + ACTIONS(255), 7, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LF, @@ -5951,15 +5849,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, - [2535] = 4, - ACTIONS(259), 1, + [2473] = 4, + ACTIONS(257), 1, anon_sym_SQUOTE, - STATE(79), 1, + STATE(78), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(261), 7, + ACTIONS(259), 7, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LF, @@ -5967,26 +5865,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, - [2555] = 5, - ACTIONS(263), 1, - anon_sym_COMMA, - STATE(74), 1, - aux_sym_declaration_list_repeat1, - STATE(76), 1, - sym__comma, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(266), 4, - anon_sym_DASH_GT, - anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - [2575] = 2, + [2493] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(268), 7, + ACTIONS(261), 7, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LF, @@ -5994,698 +5877,705 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, - [2589] = 5, + [2507] = 5, ACTIONS(11), 1, sym_identifier, - STATE(92), 1, + STATE(151), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(19), 2, + ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - STATE(140), 3, + STATE(138), 3, sym_global_identifier, sym_array_type, sym__type, - [2609] = 5, - ACTIONS(161), 1, - anon_sym_COMMA, - STATE(74), 1, - aux_sym_declaration_list_repeat1, - STATE(76), 1, - sym__comma, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(270), 4, - anon_sym_DASH_GT, - anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - [2629] = 5, + [2527] = 5, ACTIONS(11), 1, sym_identifier, - STATE(152), 1, + STATE(91), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(19), 2, + ACTIONS(15), 2, anon_sym_state, anon_sym_gen, - STATE(140), 3, + STATE(138), 3, sym_global_identifier, sym_array_type, sym__type, - [2649] = 2, + [2547] = 5, + ACTIONS(161), 1, + anon_sym_COMMA, + STATE(75), 1, + sym__comma, + STATE(79), 1, + aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(272), 7, - anon_sym_COMMA, + ACTIONS(263), 4, anon_sym_DASH_GT, anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, - [2663] = 5, + [2567] = 5, ACTIONS(161), 1, anon_sym_COMMA, - STATE(76), 1, + STATE(75), 1, sym__comma, - STATE(77), 1, + STATE(76), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(274), 4, + ACTIONS(265), 4, anon_sym_DASH_GT, anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, - [2683] = 5, - ACTIONS(276), 1, + [2587] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(267), 7, + anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_LF, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + [2601] = 5, + ACTIONS(269), 1, anon_sym_COMMA, - STATE(24), 1, + STATE(75), 1, sym__comma, - STATE(81), 1, - aux_sym_cross_statement_repeat1, + STATE(79), 1, + aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(279), 3, + ACTIONS(272), 4, + anon_sym_DASH_GT, anon_sym_LF, + anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_EQ, - [2702] = 5, + [2621] = 5, ACTIONS(161), 1, anon_sym_COMMA, - STATE(24), 1, + STATE(22), 1, sym__comma, STATE(81), 1, - aux_sym_cross_statement_repeat1, + aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(281), 3, + ACTIONS(274), 3, anon_sym_LF, anon_sym_RBRACE, anon_sym_EQ, - [2721] = 5, - ACTIONS(161), 1, + [2640] = 5, + ACTIONS(276), 1, anon_sym_COMMA, - STATE(24), 1, + STATE(22), 1, sym__comma, - STATE(82), 1, - aux_sym_cross_statement_repeat1, + STATE(81), 1, + aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(283), 3, + ACTIONS(279), 3, anon_sym_LF, anon_sym_RBRACE, anon_sym_EQ, - [2740] = 5, + [2659] = 5, ACTIONS(161), 1, anon_sym_COMMA, - STATE(24), 1, + STATE(22), 1, sym__comma, - STATE(89), 1, - aux_sym_cross_statement_repeat1, + STATE(80), 1, + aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(285), 2, + ACTIONS(281), 3, anon_sym_LF, anon_sym_RBRACE, - [2758] = 6, + anon_sym_EQ, + [2678] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(25), 1, + ACTIONS(21), 1, anon_sym_LF, - ACTIONS(287), 1, + ACTIONS(283), 1, ts_builtin_sym_end, - STATE(33), 1, + STATE(32), 1, aux_sym__linebreak, - STATE(145), 1, + STATE(142), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2778] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(25), 1, + [2698] = 6, + ACTIONS(285), 1, anon_sym_LF, + ACTIONS(287), 1, + anon_sym_RBRACE, ACTIONS(289), 1, - ts_builtin_sym_end, - STATE(33), 1, + anon_sym_EQ, + STATE(5), 1, aux_sym__linebreak, - STATE(145), 1, - sym_module, + STATE(96), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2798] = 6, + [2718] = 6, + ACTIONS(289), 1, + anon_sym_EQ, ACTIONS(291), 1, anon_sym_LF, ACTIONS(293), 1, anon_sym_RBRACE, - ACTIONS(295), 1, - anon_sym_EQ, - STATE(5), 1, + STATE(9), 1, aux_sym__linebreak, - STATE(102), 1, + STATE(116), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2818] = 4, - ACTIONS(247), 1, - anon_sym_DASH_GT, - STATE(135), 1, - sym__interface_ports_output, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(297), 3, + [2738] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(21), 1, anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - [2834] = 5, - ACTIONS(161), 1, - anon_sym_COMMA, - STATE(24), 1, - sym__comma, - STATE(81), 1, - aux_sym_cross_statement_repeat1, + ACTIONS(295), 1, + ts_builtin_sym_end, + STATE(32), 1, + aux_sym__linebreak, + STATE(142), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(299), 2, - anon_sym_LF, - anon_sym_RBRACE, - [2852] = 6, + [2758] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(25), 1, + ACTIONS(21), 1, anon_sym_LF, - ACTIONS(301), 1, + ACTIONS(297), 1, ts_builtin_sym_end, - STATE(33), 1, + STATE(32), 1, aux_sym__linebreak, - STATE(145), 1, + STATE(142), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2872] = 6, - ACTIONS(295), 1, - anon_sym_EQ, - ACTIONS(303), 1, + [2778] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(21), 1, anon_sym_LF, - ACTIONS(305), 1, - anon_sym_RBRACE, - STATE(8), 1, + ACTIONS(299), 1, + ts_builtin_sym_end, + STATE(32), 1, aux_sym__linebreak, - STATE(126), 1, - aux_sym_block_repeat1, + STATE(123), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2892] = 2, + [2798] = 4, + ACTIONS(245), 1, + anon_sym_DASH_GT, + STATE(131), 1, + sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(307), 5, - anon_sym_COMMA, - anon_sym_DASH_GT, + ACTIONS(301), 3, anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, - [2904] = 6, + [2814] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(25), 1, + ACTIONS(21), 1, anon_sym_LF, - ACTIONS(309), 1, + ACTIONS(303), 1, ts_builtin_sym_end, - STATE(33), 1, + STATE(32), 1, aux_sym__linebreak, - STATE(145), 1, + STATE(142), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2924] = 4, - ACTIONS(247), 1, - anon_sym_DASH_GT, - STATE(132), 1, - sym__interface_ports_output, + [2834] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(311), 3, + ACTIONS(305), 5, + anon_sym_COMMA, + anon_sym_DASH_GT, anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, - [2940] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(25), 1, - anon_sym_LF, - ACTIONS(313), 1, - ts_builtin_sym_end, - STATE(33), 1, - aux_sym__linebreak, - STATE(127), 1, - sym_module, + [2846] = 4, + ACTIONS(245), 1, + anon_sym_DASH_GT, + STATE(136), 1, + sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2960] = 5, - ACTIONS(315), 1, + ACTIONS(307), 3, + anon_sym_LF, + anon_sym_LBRACE, + anon_sym_RBRACE, + [2862] = 5, + ACTIONS(309), 1, ts_builtin_sym_end, - ACTIONS(317), 1, + ACTIONS(311), 1, anon_sym_LF, - STATE(85), 1, + STATE(86), 1, aux_sym__linebreak, - STATE(119), 1, + STATE(110), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2977] = 2, + [2879] = 5, + ACTIONS(27), 1, + anon_sym_LBRACE, + ACTIONS(313), 1, + anon_sym_COLON, + STATE(143), 1, + sym_block, + STATE(145), 1, + sym_interface_ports, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(319), 4, - anon_sym_COMMA, - anon_sym_LF, - anon_sym_RBRACE, - anon_sym_EQ, - [2988] = 2, + [2896] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(321), 4, + ACTIONS(315), 4, ts_builtin_sym_end, anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [2999] = 5, - ACTIONS(303), 1, + [2907] = 5, + ACTIONS(317), 1, anon_sym_LF, - ACTIONS(305), 1, + ACTIONS(319), 1, anon_sym_RBRACE, - STATE(8), 1, + STATE(7), 1, aux_sym__linebreak, - STATE(125), 1, + STATE(126), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3016] = 2, + [2924] = 5, + ACTIONS(321), 1, + anon_sym_LF, + ACTIONS(323), 1, + anon_sym_RBRACE, + STATE(6), 1, + aux_sym__linebreak, + STATE(126), 1, + aux_sym_block_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [2941] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(323), 4, + ACTIONS(325), 4, ts_builtin_sym_end, anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3027] = 2, + [2952] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(323), 4, + ACTIONS(325), 4, ts_builtin_sym_end, anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3038] = 5, - ACTIONS(325), 1, - anon_sym_LF, - ACTIONS(327), 1, - anon_sym_RBRACE, - STATE(6), 1, - aux_sym__linebreak, - STATE(113), 1, - aux_sym_block_repeat1, + [2963] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3055] = 5, + ACTIONS(327), 4, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_RBRACE, + anon_sym_else, + [2974] = 5, ACTIONS(329), 1, anon_sym_COMMA, ACTIONS(332), 1, anon_sym_RPAREN, - STATE(51), 1, + STATE(57), 1, sym__comma, - STATE(103), 1, + STATE(101), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3072] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(334), 4, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_RBRACE, - anon_sym_else, - [3083] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(157), 4, - anon_sym_COMMA, - anon_sym_LF, - anon_sym_RBRACE, - anon_sym_EQ, - [3094] = 2, + [2991] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(153), 4, + ACTIONS(151), 4, anon_sym_COMMA, anon_sym_LF, anon_sym_RBRACE, anon_sym_EQ, - [3105] = 2, + [3002] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(336), 4, + ACTIONS(334), 4, ts_builtin_sym_end, anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3116] = 5, - ACTIONS(338), 1, + [3013] = 5, + ACTIONS(336), 1, ts_builtin_sym_end, - ACTIONS(340), 1, + ACTIONS(338), 1, anon_sym_LF, - STATE(90), 1, + STATE(83), 1, aux_sym__linebreak, - STATE(96), 1, + STATE(93), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3133] = 2, + [3030] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(342), 4, + ACTIONS(334), 4, ts_builtin_sym_end, anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3144] = 2, + [3041] = 4, + ACTIONS(313), 1, + anon_sym_COLON, + STATE(146), 1, + sym_interface_ports, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(344), 4, - ts_builtin_sym_end, + ACTIONS(340), 2, anon_sym_LF, anon_sym_RBRACE, - anon_sym_else, - [3155] = 2, + [3056] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(344), 4, + ACTIONS(342), 4, ts_builtin_sym_end, anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3166] = 2, + [3067] = 3, + ACTIONS(184), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(346), 4, + STATE(135), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [3080] = 5, + ACTIONS(344), 1, ts_builtin_sym_end, + ACTIONS(346), 1, anon_sym_LF, - anon_sym_RBRACE, - anon_sym_else, - [3177] = 5, + STATE(87), 1, + aux_sym__linebreak, + STATE(110), 1, + aux_sym_source_file_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [3097] = 5, ACTIONS(348), 1, + ts_builtin_sym_end, + ACTIONS(350), 1, anon_sym_LF, - ACTIONS(351), 1, - anon_sym_RBRACE, - STATE(10), 1, - aux_sym__linebreak, + STATE(110), 1, + aux_sym_source_file_repeat1, STATE(113), 1, - aux_sym_block_repeat1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3194] = 2, + [3114] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(353), 4, + ACTIONS(157), 4, + anon_sym_COMMA, + anon_sym_LF, + anon_sym_RBRACE, + anon_sym_EQ, + [3125] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(342), 4, ts_builtin_sym_end, anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3205] = 3, - ACTIONS(186), 1, - sym_identifier, + [3136] = 5, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(21), 1, + anon_sym_LF, + STATE(32), 1, + aux_sym__linebreak, + STATE(142), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(136), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [3218] = 5, - ACTIONS(161), 1, - anon_sym_COMMA, - ACTIONS(355), 1, - anon_sym_RPAREN, - STATE(51), 1, - sym__comma, - STATE(103), 1, - aux_sym_parenthesis_expression_list_repeat1, + [3153] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3235] = 5, - ACTIONS(357), 1, + ACTIONS(353), 4, ts_builtin_sym_end, - ACTIONS(359), 1, anon_sym_LF, - STATE(93), 1, - aux_sym__linebreak, - STATE(119), 1, - aux_sym_source_file_repeat1, + anon_sym_RBRACE, + anon_sym_else, + [3164] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3252] = 5, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(25), 1, + ACTIONS(355), 4, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_RBRACE, + anon_sym_else, + [3175] = 5, + ACTIONS(357), 1, anon_sym_LF, - STATE(33), 1, + ACTIONS(359), 1, + anon_sym_RBRACE, + STATE(4), 1, aux_sym__linebreak, - STATE(145), 1, - sym_module, + STATE(126), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3269] = 5, + [3192] = 5, ACTIONS(361), 1, - ts_builtin_sym_end, - ACTIONS(363), 1, anon_sym_LF, - STATE(118), 1, + ACTIONS(363), 1, + anon_sym_RBRACE, + STATE(3), 1, aux_sym__linebreak, - STATE(119), 1, - aux_sym_source_file_repeat1, + STATE(126), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3286] = 5, - ACTIONS(27), 1, - anon_sym_LBRACE, - ACTIONS(366), 1, - anon_sym_COLON, - STATE(143), 1, - sym_interface_ports, - STATE(144), 1, - sym_block, + [3209] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3303] = 2, + ACTIONS(365), 4, + anon_sym_COMMA, + anon_sym_LF, + anon_sym_RBRACE, + anon_sym_EQ, + [3220] = 5, + ACTIONS(291), 1, + anon_sym_LF, + ACTIONS(293), 1, + anon_sym_RBRACE, + STATE(9), 1, + aux_sym__linebreak, + STATE(117), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(336), 4, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_RBRACE, - anon_sym_else, - [3314] = 4, - ACTIONS(366), 1, - anon_sym_COLON, - STATE(147), 1, - sym_interface_ports, + [3237] = 5, + ACTIONS(161), 1, + anon_sym_COMMA, + ACTIONS(367), 1, + anon_sym_RPAREN, + STATE(57), 1, + sym__comma, + STATE(101), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(368), 2, - anon_sym_LF, - anon_sym_RBRACE, - [3329] = 2, + [3254] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(370), 4, + ACTIONS(369), 4, ts_builtin_sym_end, anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3340] = 4, + [3265] = 4, ACTIONS(27), 1, anon_sym_LBRACE, - ACTIONS(372), 1, + ACTIONS(371), 1, anon_sym_if, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(149), 2, + STATE(144), 2, sym_block, sym_if_statement, - [3355] = 5, - ACTIONS(374), 1, + [3280] = 5, + ACTIONS(373), 1, + ts_builtin_sym_end, + ACTIONS(375), 1, anon_sym_LF, - ACTIONS(376), 1, - anon_sym_RBRACE, - STATE(3), 1, + STATE(90), 1, aux_sym__linebreak, - STATE(113), 1, - aux_sym_block_repeat1, + STATE(109), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3372] = 5, - ACTIONS(378), 1, - anon_sym_LF, - ACTIONS(380), 1, - anon_sym_RBRACE, - STATE(2), 1, - aux_sym__linebreak, - STATE(113), 1, - aux_sym_block_repeat1, + [3297] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3389] = 5, - ACTIONS(382), 1, + ACTIONS(377), 4, ts_builtin_sym_end, - ACTIONS(384), 1, anon_sym_LF, - STATE(86), 1, - aux_sym__linebreak, - STATE(117), 1, - aux_sym_source_file_repeat1, + anon_sym_RBRACE, + anon_sym_else, + [3308] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3406] = 5, - ACTIONS(386), 1, + ACTIONS(379), 4, + ts_builtin_sym_end, anon_sym_LF, - ACTIONS(388), 1, anon_sym_RBRACE, - STATE(7), 1, + anon_sym_else, + [3319] = 5, + ACTIONS(381), 1, + anon_sym_LF, + ACTIONS(384), 1, + anon_sym_RBRACE, + STATE(10), 1, aux_sym__linebreak, - STATE(113), 1, + STATE(126), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3423] = 5, - ACTIONS(291), 1, + [3336] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(377), 4, + ts_builtin_sym_end, anon_sym_LF, - ACTIONS(293), 1, + anon_sym_RBRACE, + anon_sym_else, + [3347] = 5, + ACTIONS(285), 1, + anon_sym_LF, + ACTIONS(287), 1, anon_sym_RBRACE, STATE(5), 1, aux_sym__linebreak, - STATE(128), 1, + STATE(97), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3440] = 2, + [3364] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(346), 4, - ts_builtin_sym_end, + ACTIONS(386), 3, anon_sym_LF, + anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_else, - [3451] = 2, + [3374] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(390), 4, - ts_builtin_sym_end, + ACTIONS(388), 3, anon_sym_LF, + anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_else, - [3462] = 2, + [3384] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(392), 3, + ACTIONS(390), 3, anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, - [3472] = 2, + [3394] = 3, + ACTIONS(289), 1, + anon_sym_EQ, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(394), 3, + ACTIONS(392), 2, anon_sym_LF, - anon_sym_LBRACE, anon_sym_RBRACE, - [3482] = 2, + [3406] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(396), 3, + ACTIONS(394), 3, anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, - [3492] = 2, + [3416] = 3, + ACTIONS(398), 1, + anon_sym_else, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(398), 3, + ACTIONS(396), 2, anon_sym_LF, - anon_sym_LBRACE, anon_sym_RBRACE, - [3502] = 4, + [3428] = 4, ACTIONS(92), 1, anon_sym_LBRACK, ACTIONS(400), 1, sym_identifier, - STATE(148), 1, + STATE(140), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3516] = 2, + [3442] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6693,138 +6583,120 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, - [3526] = 3, - ACTIONS(295), 1, - anon_sym_EQ, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(404), 2, - anon_sym_LF, - anon_sym_RBRACE, - [3538] = 3, - ACTIONS(408), 1, - anon_sym_else, + [3452] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(406), 2, + ACTIONS(404), 3, anon_sym_LF, + anon_sym_LBRACE, anon_sym_RBRACE, - [3550] = 4, + [3462] = 4, ACTIONS(92), 1, anon_sym_LBRACK, - ACTIONS(410), 1, + ACTIONS(406), 1, sym_identifier, - STATE(148), 1, + STATE(140), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3564] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(412), 3, - anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - [3574] = 2, + [3476] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(404), 2, + ACTIONS(408), 2, + ts_builtin_sym_end, anon_sym_LF, - anon_sym_RBRACE, - [3583] = 3, - ACTIONS(27), 1, - anon_sym_LBRACE, - STATE(150), 1, - sym_block, + [3485] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3594] = 2, + ACTIONS(410), 2, + sym_identifier, + anon_sym_LBRACK, + [3494] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(414), 2, - ts_builtin_sym_end, + ACTIONS(392), 2, anon_sym_LF, - [3603] = 2, + anon_sym_RBRACE, + [3503] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(416), 2, + ACTIONS(412), 2, ts_builtin_sym_end, anon_sym_LF, - [3612] = 2, + [3512] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(418), 2, + ACTIONS(414), 2, + ts_builtin_sym_end, anon_sym_LF, - anon_sym_RBRACE, - [3621] = 2, + [3521] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(420), 2, + ACTIONS(416), 2, anon_sym_LF, anon_sym_RBRACE, - [3630] = 2, + [3530] = 3, + ACTIONS(27), 1, + anon_sym_LBRACE, + STATE(139), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(422), 2, - sym_identifier, - anon_sym_LBRACK, - [3639] = 2, + [3541] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(424), 2, + ACTIONS(418), 2, anon_sym_LF, anon_sym_RBRACE, - [3648] = 2, + [3550] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(426), 2, - ts_builtin_sym_end, + ACTIONS(420), 2, anon_sym_LF, - [3657] = 2, - ACTIONS(428), 1, + anon_sym_RBRACE, + [3559] = 2, + ACTIONS(422), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3665] = 2, - ACTIONS(430), 1, - anon_sym_in, + [3567] = 2, + ACTIONS(424), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3673] = 2, - ACTIONS(432), 1, + [3575] = 2, + ACTIONS(426), 1, ts_builtin_sym_end, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3681] = 2, - ACTIONS(434), 1, - sym_identifier, + [3583] = 2, + ACTIONS(428), 1, + anon_sym_in, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3689] = 2, - ACTIONS(436), 1, + [3591] = 2, + ACTIONS(430), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3697] = 2, - ACTIONS(438), 1, + [3599] = 2, + ACTIONS(432), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, @@ -6836,148 +6708,145 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(12)] = 43, [SMALL_STATE(13)] = 86, [SMALL_STATE(14)] = 129, - [SMALL_STATE(15)] = 189, - [SMALL_STATE(16)] = 227, - [SMALL_STATE(17)] = 275, - [SMALL_STATE(18)] = 337, - [SMALL_STATE(19)] = 393, - [SMALL_STATE(20)] = 451, - [SMALL_STATE(21)] = 499, + [SMALL_STATE(15)] = 191, + [SMALL_STATE(16)] = 247, + [SMALL_STATE(17)] = 307, + [SMALL_STATE(18)] = 365, + [SMALL_STATE(19)] = 413, + [SMALL_STATE(20)] = 465, + [SMALL_STATE(21)] = 503, [SMALL_STATE(22)] = 551, - [SMALL_STATE(23)] = 588, + [SMALL_STATE(23)] = 612, [SMALL_STATE(24)] = 649, - [SMALL_STATE(25)] = 710, - [SMALL_STATE(26)] = 746, - [SMALL_STATE(27)] = 782, - [SMALL_STATE(28)] = 818, - [SMALL_STATE(29)] = 854, - [SMALL_STATE(30)] = 890, - [SMALL_STATE(31)] = 926, - [SMALL_STATE(32)] = 962, - [SMALL_STATE(33)] = 1025, - [SMALL_STATE(34)] = 1063, - [SMALL_STATE(35)] = 1121, - [SMALL_STATE(36)] = 1179, - [SMALL_STATE(37)] = 1241, - [SMALL_STATE(38)] = 1287, - [SMALL_STATE(39)] = 1322, - [SMALL_STATE(40)] = 1378, - [SMALL_STATE(41)] = 1434, - [SMALL_STATE(42)] = 1488, - [SMALL_STATE(43)] = 1542, - [SMALL_STATE(44)] = 1595, - [SMALL_STATE(45)] = 1648, - [SMALL_STATE(46)] = 1701, - [SMALL_STATE(47)] = 1737, - [SMALL_STATE(48)] = 1770, - [SMALL_STATE(49)] = 1803, - [SMALL_STATE(50)] = 1836, - [SMALL_STATE(51)] = 1869, - [SMALL_STATE(52)] = 1902, - [SMALL_STATE(53)] = 1935, - [SMALL_STATE(54)] = 1968, - [SMALL_STATE(55)] = 2001, - [SMALL_STATE(56)] = 2034, - [SMALL_STATE(57)] = 2067, - [SMALL_STATE(58)] = 2100, - [SMALL_STATE(59)] = 2133, - [SMALL_STATE(60)] = 2166, - [SMALL_STATE(61)] = 2199, - [SMALL_STATE(62)] = 2232, - [SMALL_STATE(63)] = 2261, - [SMALL_STATE(64)] = 2290, - [SMALL_STATE(65)] = 2317, - [SMALL_STATE(66)] = 2344, - [SMALL_STATE(67)] = 2366, - [SMALL_STATE(68)] = 2401, - [SMALL_STATE(69)] = 2436, - [SMALL_STATE(70)] = 2457, - [SMALL_STATE(71)] = 2486, - [SMALL_STATE(72)] = 2515, - [SMALL_STATE(73)] = 2535, - [SMALL_STATE(74)] = 2555, - [SMALL_STATE(75)] = 2575, - [SMALL_STATE(76)] = 2589, - [SMALL_STATE(77)] = 2609, - [SMALL_STATE(78)] = 2629, - [SMALL_STATE(79)] = 2649, - [SMALL_STATE(80)] = 2663, - [SMALL_STATE(81)] = 2683, - [SMALL_STATE(82)] = 2702, - [SMALL_STATE(83)] = 2721, - [SMALL_STATE(84)] = 2740, - [SMALL_STATE(85)] = 2758, - [SMALL_STATE(86)] = 2778, - [SMALL_STATE(87)] = 2798, - [SMALL_STATE(88)] = 2818, - [SMALL_STATE(89)] = 2834, - [SMALL_STATE(90)] = 2852, - [SMALL_STATE(91)] = 2872, - [SMALL_STATE(92)] = 2892, - [SMALL_STATE(93)] = 2904, - [SMALL_STATE(94)] = 2924, - [SMALL_STATE(95)] = 2940, - [SMALL_STATE(96)] = 2960, - [SMALL_STATE(97)] = 2977, - [SMALL_STATE(98)] = 2988, - [SMALL_STATE(99)] = 2999, - [SMALL_STATE(100)] = 3016, - [SMALL_STATE(101)] = 3027, - [SMALL_STATE(102)] = 3038, - [SMALL_STATE(103)] = 3055, - [SMALL_STATE(104)] = 3072, - [SMALL_STATE(105)] = 3083, - [SMALL_STATE(106)] = 3094, - [SMALL_STATE(107)] = 3105, - [SMALL_STATE(108)] = 3116, - [SMALL_STATE(109)] = 3133, - [SMALL_STATE(110)] = 3144, - [SMALL_STATE(111)] = 3155, - [SMALL_STATE(112)] = 3166, - [SMALL_STATE(113)] = 3177, - [SMALL_STATE(114)] = 3194, - [SMALL_STATE(115)] = 3205, - [SMALL_STATE(116)] = 3218, - [SMALL_STATE(117)] = 3235, - [SMALL_STATE(118)] = 3252, - [SMALL_STATE(119)] = 3269, - [SMALL_STATE(120)] = 3286, - [SMALL_STATE(121)] = 3303, - [SMALL_STATE(122)] = 3314, - [SMALL_STATE(123)] = 3329, - [SMALL_STATE(124)] = 3340, - [SMALL_STATE(125)] = 3355, - [SMALL_STATE(126)] = 3372, - [SMALL_STATE(127)] = 3389, - [SMALL_STATE(128)] = 3406, - [SMALL_STATE(129)] = 3423, - [SMALL_STATE(130)] = 3440, - [SMALL_STATE(131)] = 3451, - [SMALL_STATE(132)] = 3462, - [SMALL_STATE(133)] = 3472, - [SMALL_STATE(134)] = 3482, - [SMALL_STATE(135)] = 3492, - [SMALL_STATE(136)] = 3502, - [SMALL_STATE(137)] = 3516, - [SMALL_STATE(138)] = 3526, - [SMALL_STATE(139)] = 3538, - [SMALL_STATE(140)] = 3550, - [SMALL_STATE(141)] = 3564, - [SMALL_STATE(142)] = 3574, - [SMALL_STATE(143)] = 3583, - [SMALL_STATE(144)] = 3594, - [SMALL_STATE(145)] = 3603, - [SMALL_STATE(146)] = 3612, - [SMALL_STATE(147)] = 3621, - [SMALL_STATE(148)] = 3630, - [SMALL_STATE(149)] = 3639, - [SMALL_STATE(150)] = 3648, - [SMALL_STATE(151)] = 3657, - [SMALL_STATE(152)] = 3665, - [SMALL_STATE(153)] = 3673, - [SMALL_STATE(154)] = 3681, - [SMALL_STATE(155)] = 3689, - [SMALL_STATE(156)] = 3697, + [SMALL_STATE(25)] = 685, + [SMALL_STATE(26)] = 721, + [SMALL_STATE(27)] = 757, + [SMALL_STATE(28)] = 793, + [SMALL_STATE(29)] = 829, + [SMALL_STATE(30)] = 865, + [SMALL_STATE(31)] = 901, + [SMALL_STATE(32)] = 964, + [SMALL_STATE(33)] = 1001, + [SMALL_STATE(34)] = 1059, + [SMALL_STATE(35)] = 1105, + [SMALL_STATE(36)] = 1163, + [SMALL_STATE(37)] = 1225, + [SMALL_STATE(38)] = 1260, + [SMALL_STATE(39)] = 1316, + [SMALL_STATE(40)] = 1372, + [SMALL_STATE(41)] = 1426, + [SMALL_STATE(42)] = 1480, + [SMALL_STATE(43)] = 1533, + [SMALL_STATE(44)] = 1586, + [SMALL_STATE(45)] = 1639, + [SMALL_STATE(46)] = 1675, + [SMALL_STATE(47)] = 1708, + [SMALL_STATE(48)] = 1741, + [SMALL_STATE(49)] = 1774, + [SMALL_STATE(50)] = 1807, + [SMALL_STATE(51)] = 1840, + [SMALL_STATE(52)] = 1873, + [SMALL_STATE(53)] = 1906, + [SMALL_STATE(54)] = 1939, + [SMALL_STATE(55)] = 1972, + [SMALL_STATE(56)] = 2005, + [SMALL_STATE(57)] = 2038, + [SMALL_STATE(58)] = 2071, + [SMALL_STATE(59)] = 2104, + [SMALL_STATE(60)] = 2137, + [SMALL_STATE(61)] = 2170, + [SMALL_STATE(62)] = 2199, + [SMALL_STATE(63)] = 2228, + [SMALL_STATE(64)] = 2255, + [SMALL_STATE(65)] = 2282, + [SMALL_STATE(66)] = 2304, + [SMALL_STATE(67)] = 2339, + [SMALL_STATE(68)] = 2374, + [SMALL_STATE(69)] = 2395, + [SMALL_STATE(70)] = 2424, + [SMALL_STATE(71)] = 2453, + [SMALL_STATE(72)] = 2473, + [SMALL_STATE(73)] = 2493, + [SMALL_STATE(74)] = 2507, + [SMALL_STATE(75)] = 2527, + [SMALL_STATE(76)] = 2547, + [SMALL_STATE(77)] = 2567, + [SMALL_STATE(78)] = 2587, + [SMALL_STATE(79)] = 2601, + [SMALL_STATE(80)] = 2621, + [SMALL_STATE(81)] = 2640, + [SMALL_STATE(82)] = 2659, + [SMALL_STATE(83)] = 2678, + [SMALL_STATE(84)] = 2698, + [SMALL_STATE(85)] = 2718, + [SMALL_STATE(86)] = 2738, + [SMALL_STATE(87)] = 2758, + [SMALL_STATE(88)] = 2778, + [SMALL_STATE(89)] = 2798, + [SMALL_STATE(90)] = 2814, + [SMALL_STATE(91)] = 2834, + [SMALL_STATE(92)] = 2846, + [SMALL_STATE(93)] = 2862, + [SMALL_STATE(94)] = 2879, + [SMALL_STATE(95)] = 2896, + [SMALL_STATE(96)] = 2907, + [SMALL_STATE(97)] = 2924, + [SMALL_STATE(98)] = 2941, + [SMALL_STATE(99)] = 2952, + [SMALL_STATE(100)] = 2963, + [SMALL_STATE(101)] = 2974, + [SMALL_STATE(102)] = 2991, + [SMALL_STATE(103)] = 3002, + [SMALL_STATE(104)] = 3013, + [SMALL_STATE(105)] = 3030, + [SMALL_STATE(106)] = 3041, + [SMALL_STATE(107)] = 3056, + [SMALL_STATE(108)] = 3067, + [SMALL_STATE(109)] = 3080, + [SMALL_STATE(110)] = 3097, + [SMALL_STATE(111)] = 3114, + [SMALL_STATE(112)] = 3125, + [SMALL_STATE(113)] = 3136, + [SMALL_STATE(114)] = 3153, + [SMALL_STATE(115)] = 3164, + [SMALL_STATE(116)] = 3175, + [SMALL_STATE(117)] = 3192, + [SMALL_STATE(118)] = 3209, + [SMALL_STATE(119)] = 3220, + [SMALL_STATE(120)] = 3237, + [SMALL_STATE(121)] = 3254, + [SMALL_STATE(122)] = 3265, + [SMALL_STATE(123)] = 3280, + [SMALL_STATE(124)] = 3297, + [SMALL_STATE(125)] = 3308, + [SMALL_STATE(126)] = 3319, + [SMALL_STATE(127)] = 3336, + [SMALL_STATE(128)] = 3347, + [SMALL_STATE(129)] = 3364, + [SMALL_STATE(130)] = 3374, + [SMALL_STATE(131)] = 3384, + [SMALL_STATE(132)] = 3394, + [SMALL_STATE(133)] = 3406, + [SMALL_STATE(134)] = 3416, + [SMALL_STATE(135)] = 3428, + [SMALL_STATE(136)] = 3442, + [SMALL_STATE(137)] = 3452, + [SMALL_STATE(138)] = 3462, + [SMALL_STATE(139)] = 3476, + [SMALL_STATE(140)] = 3485, + [SMALL_STATE(141)] = 3494, + [SMALL_STATE(142)] = 3503, + [SMALL_STATE(143)] = 3512, + [SMALL_STATE(144)] = 3521, + [SMALL_STATE(145)] = 3530, + [SMALL_STATE(146)] = 3541, + [SMALL_STATE(147)] = 3550, + [SMALL_STATE(148)] = 3559, + [SMALL_STATE(149)] = 3567, + [SMALL_STATE(150)] = 3575, + [SMALL_STATE(151)] = 3583, + [SMALL_STATE(152)] = 3591, + [SMALL_STATE(153)] = 3599, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -6985,218 +6854,215 @@ static const TSParseActionEntry ts_parse_actions[] = { [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 = true}}, SHIFT(155), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(151), - [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(115), - [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), - [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69), - [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49), - [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), - [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [55] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 2), - [57] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 2), - [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), - [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), - [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), - [65] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), SHIFT_REPEAT(156), - [68] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 1), - [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 1), - [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 29), - [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [76] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), - [78] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [82] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(108), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), + [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(153), + [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), + [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [53] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 2), + [55] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 2), + [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), + [59] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), + [61] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), + [63] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), SHIFT_REPEAT(149), + [66] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 1), + [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 1), + [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 29), + [72] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [74] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), + [76] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [78] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [82] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), [84] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 29), - [86] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), - [88] = {.entry = {.count = 1, .reusable = false}}, SHIFT(154), - [90] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [86] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51), + [88] = {.entry = {.count = 1, .reusable = false}}, SHIFT(152), + [90] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), [94] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), [96] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), - [98] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 19), - [100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 19), - [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 27), - [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 27), - [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 15), - [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 15), - [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 30), - [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 30), - [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 27), - [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 27), - [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), - [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 20), - [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 20), - [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 27), - [138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [140] = {.entry = {.count = 1, .reusable = false}}, SHIFT(48), - [142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), - [144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 27), - [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), - [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), - [150] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(33), - [153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 21), - [155] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 21), - [157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 9), - [159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 9), - [161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [98] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 18), + [100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 18), + [102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 26), + [104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 26), + [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), + [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 30), + [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 30), + [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 26), + [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 26), + [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 15), + [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 15), + [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 20), + [128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 20), + [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 26), + [136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [138] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), + [140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), + [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 26), + [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), + [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), + [148] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(32), + [151] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 9), + [153] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 9), + [155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 21), + [159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 21), + [161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), [163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [165] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [167] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), - [169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [171] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [173] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), - [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 32), - [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [222] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), - [224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), - [226] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), - [228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), - [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [232] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), - [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), - [236] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [240] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(66), - [243] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [251] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 14), - [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 23), - [263] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(63), - [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), - [268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 24), - [270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), - [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 33), - [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), - [276] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_cross_statement_repeat1, 2, .production_id = 5), SHIFT_REPEAT(63), - [279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_cross_statement_repeat1, 2, .production_id = 5), - [281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), - [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), - [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cross_statement, 2, .production_id = 3), - [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), - [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), - [291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), - [295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 17), - [299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cross_statement, 3, .production_id = 6), - [301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), - [303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), - [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), - [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), - [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 8), - [313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), - [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_cross_statement_repeat1, 2, .production_id = 3), - [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 34), - [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), - [329] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(63), + [165] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), + [167] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [169] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [171] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), + [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), + [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 32), + [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [220] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), + [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), + [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [226] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), + [228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), + [230] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [234] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(65), + [237] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), + [239] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), + [241] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [249] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [255] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 23), + [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 14), + [261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 33), + [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), + [265] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), + [267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 24), + [269] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(61), + [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), + [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), + [276] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(61), + [279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), + [281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), + [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), + [285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [289] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [295] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), + [297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), + [299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 8), + [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), + [305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), + [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 17), + [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), + [311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), + [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 34), + [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [329] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(61), [332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), - [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), - [338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), - [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), - [344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 34), - [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), - [348] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), - [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), - [353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 31), - [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), - [359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), - [363] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(118), - [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 18), - [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 31), - [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), - [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), - [382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), - [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), - [390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), - [392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 13), - [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 12), - [396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 16), - [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 25), - [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), - [404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), - [406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 28), - [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 22), + [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), + [336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), + [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [340] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 19), + [342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 34), + [344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), + [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), + [350] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(113), + [353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 31), + [355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 31), + [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), + [367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [369] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), + [371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), + [375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), + [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [381] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), + [384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), + [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 16), + [388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), + [390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 13), + [392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), + [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 22), + [396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 28), + [398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), + [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 25), + [404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 12), + [406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 11), + [410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 15), + [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), - [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), - [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 36), - [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 26), - [422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 15), - [424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 35), - [426] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 11), - [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), - [430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [432] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), - [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 35), + [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 27), + [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 36), + [422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [426] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), }; #ifdef __cplusplus From f86ee003673f520d05be474b5f560649ca670ad3 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Sat, 15 Jun 2024 18:49:57 +0200 Subject: [PATCH 26/49] Add explicit 'input' & 'output' modifiers --- grammar.js | 4 + src/grammar.json | 25 + src/node-types.json | 22 + src/parser.c | 3956 +++++++++++++++++++++++-------------------- 4 files changed, 2158 insertions(+), 1849 deletions(-) diff --git a/grammar.js b/grammar.js index 1a4ea0d..d736bed 100644 --- a/grammar.js +++ b/grammar.js @@ -96,6 +96,10 @@ module.exports = grammar({ )), declaration: $ => seq( + optional(field('io_port_modifiers', choice( + 'input', + 'output' + ))), optional(field('declaration_modifiers', choice( 'state', 'gen' diff --git a/src/grammar.json b/src/grammar.json index abed4b6..38644e6 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -360,6 +360,31 @@ "declaration": { "type": "SEQ", "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "io_port_modifiers", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "input" + }, + { + "type": "STRING", + "value": "output" + } + ] + } + }, + { + "type": "BLANK" + } + ] + }, { "type": "CHOICE", "members": [ diff --git a/src/node-types.json b/src/node-types.json index 9c5dcbc..7465727 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -453,6 +453,20 @@ } ] }, + "io_port_modifiers": { + "multiple": false, + "required": false, + "types": [ + { + "type": "input", + "named": false + }, + { + "type": "output", + "named": false + } + ] + }, "latency_specifier": { "multiple": false, "required": false, @@ -1269,6 +1283,10 @@ "type": "initial", "named": false }, + { + "type": "input", + "named": false + }, { "type": "interface", "named": false @@ -1285,6 +1303,10 @@ "type": "number", "named": true }, + { + "type": "output", + "named": false + }, { "type": "reg", "named": false diff --git a/src/parser.c b/src/parser.c index 6ba3fad..6ecfa28 100644 --- a/src/parser.c +++ b/src/parser.c @@ -5,15 +5,15 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 154 +#define STATE_COUNT 162 #define LARGE_STATE_COUNT 11 -#define SYMBOL_COUNT 81 +#define SYMBOL_COUNT 83 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 45 +#define TOKEN_COUNT 47 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 26 +#define FIELD_COUNT 27 #define MAX_ALIAS_SEQUENCE_LENGTH 7 -#define PRODUCTION_ID_COUNT 37 +#define PRODUCTION_ID_COUNT 41 enum ts_symbol_identifiers { sym_identifier = 1, @@ -24,78 +24,80 @@ enum ts_symbol_identifiers { sym_number = 6, anon_sym_COLON_COLON = 7, anon_sym_SQUOTE = 8, - anon_sym_state = 9, - anon_sym_gen = 10, - anon_sym_PLUS = 11, - anon_sym_DASH = 12, - anon_sym_STAR = 13, - anon_sym_BANG = 14, - anon_sym_PIPE = 15, - anon_sym_AMP = 16, - anon_sym_CARET = 17, - anon_sym_EQ_EQ = 18, - anon_sym_BANG_EQ = 19, - anon_sym_LT = 20, - anon_sym_LT_EQ = 21, - anon_sym_GT = 22, - anon_sym_GT_EQ = 23, - anon_sym_SLASH = 24, - anon_sym_PERCENT = 25, - anon_sym_DOT = 26, - anon_sym_LPAREN = 27, - anon_sym_RPAREN = 28, - anon_sym_LBRACK = 29, - anon_sym_RBRACK = 30, - anon_sym_LF = 31, - anon_sym_reg = 32, - anon_sym_initial = 33, - anon_sym_LBRACE = 34, - anon_sym_RBRACE = 35, - anon_sym_interface = 36, - anon_sym_EQ = 37, - anon_sym_if = 38, - anon_sym_else = 39, - anon_sym_for = 40, - anon_sym_in = 41, - anon_sym_DOT_DOT = 42, - sym_single_line_comment = 43, - sym_multi_line_comment = 44, - sym_source_file = 45, - sym__comma = 46, - sym__interface_ports_output = 47, - sym_interface_ports = 48, - sym_declaration_list = 49, - sym_module = 50, - sym_global_identifier = 51, - sym_array_type = 52, - sym__type = 53, - sym_latency_specifier = 54, - sym_declaration = 55, - sym_unary_op = 56, - sym_binary_op = 57, - sym_array_op = 58, - sym_func_call = 59, - sym_field_access = 60, - sym_parenthesis_expression_list = 61, - sym_parenthesis_expression = 62, - sym_array_bracket_expression = 63, - sym__expression = 64, - aux_sym__linebreak = 65, - sym_write_modifiers = 66, - sym_assign_to = 67, - sym_assign_left_side = 68, - sym_block = 69, - sym_interface_statement = 70, - sym_decl_assign_statement = 71, - sym_if_statement = 72, - sym_for_statement = 73, - aux_sym_source_file_repeat1 = 74, - aux_sym_declaration_list_repeat1 = 75, - aux_sym_global_identifier_repeat1 = 76, - aux_sym_parenthesis_expression_list_repeat1 = 77, - aux_sym_write_modifiers_repeat1 = 78, - aux_sym_assign_left_side_repeat1 = 79, - aux_sym_block_repeat1 = 80, + anon_sym_input = 9, + anon_sym_output = 10, + anon_sym_state = 11, + anon_sym_gen = 12, + anon_sym_PLUS = 13, + anon_sym_DASH = 14, + anon_sym_STAR = 15, + anon_sym_BANG = 16, + anon_sym_PIPE = 17, + anon_sym_AMP = 18, + anon_sym_CARET = 19, + anon_sym_EQ_EQ = 20, + anon_sym_BANG_EQ = 21, + anon_sym_LT = 22, + anon_sym_LT_EQ = 23, + anon_sym_GT = 24, + anon_sym_GT_EQ = 25, + anon_sym_SLASH = 26, + anon_sym_PERCENT = 27, + anon_sym_DOT = 28, + anon_sym_LPAREN = 29, + anon_sym_RPAREN = 30, + anon_sym_LBRACK = 31, + anon_sym_RBRACK = 32, + anon_sym_LF = 33, + anon_sym_reg = 34, + anon_sym_initial = 35, + anon_sym_LBRACE = 36, + anon_sym_RBRACE = 37, + anon_sym_interface = 38, + anon_sym_EQ = 39, + anon_sym_if = 40, + anon_sym_else = 41, + anon_sym_for = 42, + anon_sym_in = 43, + anon_sym_DOT_DOT = 44, + sym_single_line_comment = 45, + sym_multi_line_comment = 46, + sym_source_file = 47, + sym__comma = 48, + sym__interface_ports_output = 49, + sym_interface_ports = 50, + sym_declaration_list = 51, + sym_module = 52, + sym_global_identifier = 53, + sym_array_type = 54, + sym__type = 55, + sym_latency_specifier = 56, + sym_declaration = 57, + sym_unary_op = 58, + sym_binary_op = 59, + sym_array_op = 60, + sym_func_call = 61, + sym_field_access = 62, + sym_parenthesis_expression_list = 63, + sym_parenthesis_expression = 64, + sym_array_bracket_expression = 65, + sym__expression = 66, + aux_sym__linebreak = 67, + sym_write_modifiers = 68, + sym_assign_to = 69, + sym_assign_left_side = 70, + sym_block = 71, + sym_interface_statement = 72, + sym_decl_assign_statement = 73, + sym_if_statement = 74, + sym_for_statement = 75, + aux_sym_source_file_repeat1 = 76, + aux_sym_declaration_list_repeat1 = 77, + aux_sym_global_identifier_repeat1 = 78, + aux_sym_parenthesis_expression_list_repeat1 = 79, + aux_sym_write_modifiers_repeat1 = 80, + aux_sym_assign_left_side_repeat1 = 81, + aux_sym_block_repeat1 = 82, }; static const char * const ts_symbol_names[] = { @@ -108,6 +110,8 @@ static const char * const ts_symbol_names[] = { [sym_number] = "number", [anon_sym_COLON_COLON] = "::", [anon_sym_SQUOTE] = "'", + [anon_sym_input] = "input", + [anon_sym_output] = "output", [anon_sym_state] = "state", [anon_sym_gen] = "gen", [anon_sym_PLUS] = "+", @@ -192,6 +196,8 @@ static const TSSymbol ts_symbol_map[] = { [sym_number] = sym_number, [anon_sym_COLON_COLON] = anon_sym_COLON_COLON, [anon_sym_SQUOTE] = anon_sym_SQUOTE, + [anon_sym_input] = anon_sym_input, + [anon_sym_output] = anon_sym_output, [anon_sym_state] = anon_sym_state, [anon_sym_gen] = anon_sym_gen, [anon_sym_PLUS] = anon_sym_PLUS, @@ -303,6 +309,14 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_input] = { + .visible = true, + .named = false, + }, + [anon_sym_output] = { + .visible = true, + .named = false, + }, [anon_sym_state] = { .visible = true, .named = false, @@ -609,17 +623,18 @@ enum ts_field_identifiers { field_from = 13, field_inputs = 14, field_interface_ports = 15, - field_item = 16, - field_latency_specifier = 17, - field_left = 18, - field_name = 19, - field_operator = 20, - field_outputs = 21, - field_right = 22, - field_then_block = 23, - field_to = 24, - field_type = 25, - field_write_modifiers = 26, + field_io_port_modifiers = 16, + field_item = 17, + field_latency_specifier = 18, + field_left = 19, + field_name = 20, + field_operator = 21, + field_outputs = 22, + field_right = 23, + field_then_block = 24, + field_to = 25, + field_type = 26, + field_write_modifiers = 27, }; static const char * const ts_field_names[] = { @@ -639,6 +654,7 @@ static const char * const ts_field_names[] = { [field_from] = "from", [field_inputs] = "inputs", [field_interface_ports] = "interface_ports", + [field_io_port_modifiers] = "io_port_modifiers", [field_item] = "item", [field_latency_specifier] = "latency_specifier", [field_left] = "left", @@ -677,18 +693,22 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [22] = {.index = 33, .length = 1}, [23] = {.index = 34, .length = 3}, [24] = {.index = 37, .length = 3}, - [25] = {.index = 40, .length = 2}, - [26] = {.index = 42, .length = 1}, - [27] = {.index = 43, .length = 2}, - [28] = {.index = 45, .length = 2}, - [29] = {.index = 47, .length = 3}, - [30] = {.index = 50, .length = 2}, - [31] = {.index = 52, .length = 1}, - [32] = {.index = 53, .length = 2}, - [33] = {.index = 55, .length = 4}, - [34] = {.index = 59, .length = 2}, - [35] = {.index = 61, .length = 3}, - [36] = {.index = 64, .length = 4}, + [25] = {.index = 40, .length = 3}, + [26] = {.index = 43, .length = 2}, + [27] = {.index = 45, .length = 1}, + [28] = {.index = 46, .length = 2}, + [29] = {.index = 48, .length = 2}, + [30] = {.index = 50, .length = 3}, + [31] = {.index = 53, .length = 2}, + [32] = {.index = 55, .length = 1}, + [33] = {.index = 56, .length = 2}, + [34] = {.index = 58, .length = 4}, + [35] = {.index = 62, .length = 4}, + [36] = {.index = 66, .length = 4}, + [37] = {.index = 70, .length = 2}, + [38] = {.index = 72, .length = 5}, + [39] = {.index = 77, .length = 3}, + [40] = {.index = 80, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -749,49 +769,69 @@ static const TSFieldMapEntry ts_field_map_entries[] = { [33] = {field_outputs, 2}, [34] = - {field_declaration_modifiers, 0}, + {field_io_port_modifiers, 0}, {field_name, 2}, {field_type, 1}, [37] = + {field_declaration_modifiers, 0}, + {field_name, 2}, + {field_type, 1}, + [40] = {field_latency_specifier, 2}, {field_name, 1}, {field_type, 0}, - [40] = + [43] = {field_inputs, 2}, {field_outputs, 3, .inherited = true}, - [42] = + [45] = {field_content, 1}, - [43] = + [46] = {field_interface_ports, 2}, {field_name, 1}, - [45] = + [48] = {field_condition, 1}, {field_then_block, 2}, - [47] = + [50] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [50] = + [53] = {field_left, 0}, {field_name, 2}, - [52] = + [55] = {field_item, 2}, - [53] = + [56] = {field_assign_left, 0}, {field_assign_value, 2}, - [55] = + [58] = + {field_declaration_modifiers, 1}, + {field_io_port_modifiers, 0}, + {field_name, 3}, + {field_type, 2}, + [62] = + {field_io_port_modifiers, 0}, + {field_latency_specifier, 3}, + {field_name, 2}, + {field_type, 1}, + [66] = {field_declaration_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [59] = + [70] = {field_item, 2}, {field_item, 3, .inherited = true}, - [61] = + [72] = + {field_declaration_modifiers, 1}, + {field_io_port_modifiers, 0}, + {field_latency_specifier, 4}, + {field_name, 3}, + {field_type, 2}, + [77] = {field_condition, 1}, {field_else_block, 4}, {field_then_block, 2}, - [64] = + [80] = {field_block, 6}, {field_for_decl, 1}, {field_from, 3}, @@ -961,6 +1001,14 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [151] = 151, [152] = 152, [153] = 153, + [154] = 154, + [155] = 155, + [156] = 156, + [157] = 157, + [158] = 158, + [159] = 159, + [160] = 160, + [161] = 161, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -3117,130 +3165,159 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { if (lookahead == 'g') ADVANCE(3); if (lookahead == 'i') ADVANCE(4); if (lookahead == 'm') ADVANCE(5); - if (lookahead == 'r') ADVANCE(6); - if (lookahead == 's') ADVANCE(7); + if (lookahead == 'o') ADVANCE(6); + if (lookahead == 'r') ADVANCE(7); + if (lookahead == 's') ADVANCE(8); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(0) END_STATE(); case 1: - if (lookahead == 'l') ADVANCE(8); + if (lookahead == 'l') ADVANCE(9); END_STATE(); case 2: - if (lookahead == 'o') ADVANCE(9); + if (lookahead == 'o') ADVANCE(10); END_STATE(); case 3: - if (lookahead == 'e') ADVANCE(10); + if (lookahead == 'e') ADVANCE(11); END_STATE(); case 4: - if (lookahead == 'f') ADVANCE(11); - if (lookahead == 'n') ADVANCE(12); + if (lookahead == 'f') ADVANCE(12); + if (lookahead == 'n') ADVANCE(13); END_STATE(); case 5: - if (lookahead == 'o') ADVANCE(13); + if (lookahead == 'o') ADVANCE(14); END_STATE(); case 6: - if (lookahead == 'e') ADVANCE(14); + if (lookahead == 'u') ADVANCE(15); END_STATE(); case 7: - if (lookahead == 't') ADVANCE(15); + if (lookahead == 'e') ADVANCE(16); END_STATE(); case 8: - if (lookahead == 's') ADVANCE(16); + if (lookahead == 't') ADVANCE(17); END_STATE(); case 9: - if (lookahead == 'r') ADVANCE(17); + if (lookahead == 's') ADVANCE(18); END_STATE(); case 10: - if (lookahead == 'n') ADVANCE(18); + if (lookahead == 'r') ADVANCE(19); END_STATE(); case 11: - ACCEPT_TOKEN(anon_sym_if); + if (lookahead == 'n') ADVANCE(20); END_STATE(); case 12: - ACCEPT_TOKEN(anon_sym_in); - if (lookahead == 'i') ADVANCE(19); - if (lookahead == 't') ADVANCE(20); + ACCEPT_TOKEN(anon_sym_if); END_STATE(); case 13: - if (lookahead == 'd') ADVANCE(21); + ACCEPT_TOKEN(anon_sym_in); + if (lookahead == 'i') ADVANCE(21); + if (lookahead == 'p') ADVANCE(22); + if (lookahead == 't') ADVANCE(23); END_STATE(); case 14: - if (lookahead == 'g') ADVANCE(22); + if (lookahead == 'd') ADVANCE(24); END_STATE(); case 15: - if (lookahead == 'a') ADVANCE(23); + if (lookahead == 't') ADVANCE(25); END_STATE(); case 16: - if (lookahead == 'e') ADVANCE(24); + if (lookahead == 'g') ADVANCE(26); END_STATE(); case 17: - ACCEPT_TOKEN(anon_sym_for); + if (lookahead == 'a') ADVANCE(27); END_STATE(); case 18: - ACCEPT_TOKEN(anon_sym_gen); + if (lookahead == 'e') ADVANCE(28); END_STATE(); case 19: - if (lookahead == 't') ADVANCE(25); + ACCEPT_TOKEN(anon_sym_for); END_STATE(); case 20: - if (lookahead == 'e') ADVANCE(26); + ACCEPT_TOKEN(anon_sym_gen); END_STATE(); case 21: - if (lookahead == 'u') ADVANCE(27); + if (lookahead == 't') ADVANCE(29); END_STATE(); case 22: - ACCEPT_TOKEN(anon_sym_reg); + if (lookahead == 'u') ADVANCE(30); END_STATE(); case 23: - if (lookahead == 't') ADVANCE(28); + if (lookahead == 'e') ADVANCE(31); END_STATE(); case 24: - ACCEPT_TOKEN(anon_sym_else); + if (lookahead == 'u') ADVANCE(32); END_STATE(); case 25: - if (lookahead == 'i') ADVANCE(29); + if (lookahead == 'p') ADVANCE(33); END_STATE(); case 26: - if (lookahead == 'r') ADVANCE(30); + ACCEPT_TOKEN(anon_sym_reg); END_STATE(); case 27: - if (lookahead == 'l') ADVANCE(31); + if (lookahead == 't') ADVANCE(34); END_STATE(); case 28: - if (lookahead == 'e') ADVANCE(32); + ACCEPT_TOKEN(anon_sym_else); END_STATE(); case 29: - if (lookahead == 'a') ADVANCE(33); + if (lookahead == 'i') ADVANCE(35); END_STATE(); case 30: - if (lookahead == 'f') ADVANCE(34); + if (lookahead == 't') ADVANCE(36); END_STATE(); case 31: - if (lookahead == 'e') ADVANCE(35); + if (lookahead == 'r') ADVANCE(37); END_STATE(); case 32: - ACCEPT_TOKEN(anon_sym_state); + if (lookahead == 'l') ADVANCE(38); END_STATE(); case 33: - if (lookahead == 'l') ADVANCE(36); + if (lookahead == 'u') ADVANCE(39); END_STATE(); case 34: - if (lookahead == 'a') ADVANCE(37); + if (lookahead == 'e') ADVANCE(40); END_STATE(); case 35: - ACCEPT_TOKEN(anon_sym_module); + if (lookahead == 'a') ADVANCE(41); END_STATE(); case 36: - ACCEPT_TOKEN(anon_sym_initial); + ACCEPT_TOKEN(anon_sym_input); END_STATE(); case 37: - if (lookahead == 'c') ADVANCE(38); + if (lookahead == 'f') ADVANCE(42); END_STATE(); case 38: - if (lookahead == 'e') ADVANCE(39); + if (lookahead == 'e') ADVANCE(43); END_STATE(); case 39: + if (lookahead == 't') ADVANCE(44); + END_STATE(); + case 40: + ACCEPT_TOKEN(anon_sym_state); + END_STATE(); + case 41: + if (lookahead == 'l') ADVANCE(45); + END_STATE(); + case 42: + if (lookahead == 'a') ADVANCE(46); + END_STATE(); + case 43: + ACCEPT_TOKEN(anon_sym_module); + END_STATE(); + case 44: + ACCEPT_TOKEN(anon_sym_output); + END_STATE(); + case 45: + ACCEPT_TOKEN(anon_sym_initial); + END_STATE(); + case 46: + if (lookahead == 'c') ADVANCE(47); + END_STATE(); + case 47: + if (lookahead == 'e') ADVANCE(48); + END_STATE(); + case 48: ACCEPT_TOKEN(anon_sym_interface); END_STATE(); default: @@ -3262,7 +3339,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [10] = {.lex_state = 7}, [11] = {.lex_state = 1}, [12] = {.lex_state = 1}, - [13] = {.lex_state = 1}, + [13] = {.lex_state = 7}, [14] = {.lex_state = 1}, [15] = {.lex_state = 1}, [16] = {.lex_state = 1}, @@ -3271,7 +3348,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [19] = {.lex_state = 1}, [20] = {.lex_state = 1}, [21] = {.lex_state = 1}, - [22] = {.lex_state = 7}, + [22] = {.lex_state = 1}, [23] = {.lex_state = 1}, [24] = {.lex_state = 1}, [25] = {.lex_state = 1}, @@ -3280,10 +3357,10 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [28] = {.lex_state = 1}, [29] = {.lex_state = 1}, [30] = {.lex_state = 1}, - [31] = {.lex_state = 1}, - [32] = {.lex_state = 7}, - [33] = {.lex_state = 1}, - [34] = {.lex_state = 7}, + [31] = {.lex_state = 7}, + [32] = {.lex_state = 1}, + [33] = {.lex_state = 7}, + [34] = {.lex_state = 1}, [35] = {.lex_state = 1}, [36] = {.lex_state = 1}, [37] = {.lex_state = 1}, @@ -3343,7 +3420,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [91] = {.lex_state = 0}, [92] = {.lex_state = 0}, [93] = {.lex_state = 0}, - [94] = {.lex_state = 7}, + [94] = {.lex_state = 0}, [95] = {.lex_state = 0}, [96] = {.lex_state = 0}, [97] = {.lex_state = 0}, @@ -3353,10 +3430,10 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [101] = {.lex_state = 0}, [102] = {.lex_state = 0}, [103] = {.lex_state = 0}, - [104] = {.lex_state = 0}, + [104] = {.lex_state = 7}, [105] = {.lex_state = 0}, - [106] = {.lex_state = 7}, - [107] = {.lex_state = 0}, + [106] = {.lex_state = 0}, + [107] = {.lex_state = 7}, [108] = {.lex_state = 0}, [109] = {.lex_state = 0}, [110] = {.lex_state = 0}, @@ -3403,6 +3480,14 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [151] = {.lex_state = 0}, [152] = {.lex_state = 0}, [153] = {.lex_state = 0}, + [154] = {.lex_state = 0}, + [155] = {.lex_state = 0}, + [156] = {.lex_state = 0}, + [157] = {.lex_state = 0}, + [158] = {.lex_state = 0}, + [159] = {.lex_state = 0}, + [160] = {.lex_state = 0}, + [161] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -3416,6 +3501,8 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_number] = ACTIONS(1), [anon_sym_COLON_COLON] = ACTIONS(1), [anon_sym_SQUOTE] = ACTIONS(1), + [anon_sym_input] = ACTIONS(1), + [anon_sym_output] = ACTIONS(1), [anon_sym_state] = ACTIONS(1), [anon_sym_gen] = ACTIONS(1), [anon_sym_PLUS] = ACTIONS(1), @@ -3454,9 +3541,9 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(150), - [sym_module] = STATE(104), - [aux_sym__linebreak] = STATE(88), + [sym_source_file] = STATE(161), + [sym_module] = STATE(105), + [aux_sym__linebreak] = STATE(90), [ts_builtin_sym_end] = ACTIONS(5), [anon_sym_module] = ACTIONS(7), [anon_sym_LF] = ACTIONS(9), @@ -3465,405 +3552,423 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { }, [2] = { [sym_global_identifier] = STATE(37), - [sym_array_type] = STATE(138), - [sym__type] = STATE(138), - [sym_declaration] = STATE(102), - [sym_unary_op] = STATE(33), - [sym_binary_op] = STATE(33), - [sym_array_op] = STATE(33), - [sym_func_call] = STATE(33), - [sym_field_access] = STATE(33), - [sym_parenthesis_expression] = STATE(33), - [sym__expression] = STATE(33), - [aux_sym__linebreak] = STATE(32), - [sym_write_modifiers] = STATE(34), - [sym_assign_to] = STATE(82), - [sym_assign_left_side] = STATE(85), - [sym_block] = STATE(119), - [sym_interface_statement] = STATE(119), - [sym_decl_assign_statement] = STATE(119), - [sym_if_statement] = STATE(119), - [sym_for_statement] = STATE(119), - [aux_sym_write_modifiers_repeat1] = STATE(64), + [sym_array_type] = STATE(137), + [sym__type] = STATE(137), + [sym_declaration] = STATE(120), + [sym_unary_op] = STATE(36), + [sym_binary_op] = STATE(36), + [sym_array_op] = STATE(36), + [sym_func_call] = STATE(36), + [sym_field_access] = STATE(36), + [sym_parenthesis_expression] = STATE(36), + [sym__expression] = STATE(36), + [aux_sym__linebreak] = STATE(31), + [sym_write_modifiers] = STATE(33), + [sym_assign_to] = STATE(85), + [sym_assign_left_side] = STATE(88), + [sym_block] = STATE(99), + [sym_interface_statement] = STATE(99), + [sym_decl_assign_statement] = STATE(99), + [sym_if_statement] = STATE(99), + [sym_for_statement] = STATE(99), + [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), [sym_number] = ACTIONS(13), - [anon_sym_state] = ACTIONS(15), - [anon_sym_gen] = ACTIONS(15), - [anon_sym_PLUS] = ACTIONS(17), - [anon_sym_DASH] = ACTIONS(17), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_BANG] = ACTIONS(17), - [anon_sym_PIPE] = ACTIONS(17), - [anon_sym_AMP] = ACTIONS(17), - [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [anon_sym_LF] = ACTIONS(21), - [anon_sym_reg] = ACTIONS(23), - [anon_sym_initial] = ACTIONS(25), - [anon_sym_LBRACE] = ACTIONS(27), - [anon_sym_RBRACE] = ACTIONS(29), - [anon_sym_interface] = ACTIONS(31), - [anon_sym_if] = ACTIONS(33), - [anon_sym_for] = ACTIONS(35), + [anon_sym_input] = ACTIONS(15), + [anon_sym_output] = ACTIONS(15), + [anon_sym_state] = ACTIONS(17), + [anon_sym_gen] = ACTIONS(17), + [anon_sym_PLUS] = ACTIONS(19), + [anon_sym_DASH] = ACTIONS(19), + [anon_sym_STAR] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(19), + [anon_sym_PIPE] = ACTIONS(19), + [anon_sym_AMP] = ACTIONS(19), + [anon_sym_CARET] = ACTIONS(19), + [anon_sym_LPAREN] = ACTIONS(21), + [anon_sym_LF] = ACTIONS(23), + [anon_sym_reg] = ACTIONS(25), + [anon_sym_initial] = ACTIONS(27), + [anon_sym_LBRACE] = ACTIONS(29), + [anon_sym_RBRACE] = ACTIONS(31), + [anon_sym_interface] = ACTIONS(33), + [anon_sym_if] = ACTIONS(35), + [anon_sym_for] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [3] = { [sym_global_identifier] = STATE(37), - [sym_array_type] = STATE(138), - [sym__type] = STATE(138), - [sym_declaration] = STATE(102), - [sym_unary_op] = STATE(33), - [sym_binary_op] = STATE(33), - [sym_array_op] = STATE(33), - [sym_func_call] = STATE(33), - [sym_field_access] = STATE(33), - [sym_parenthesis_expression] = STATE(33), - [sym__expression] = STATE(33), - [aux_sym__linebreak] = STATE(32), - [sym_write_modifiers] = STATE(34), - [sym_assign_to] = STATE(82), - [sym_assign_left_side] = STATE(132), - [sym_block] = STATE(141), - [sym_interface_statement] = STATE(141), - [sym_decl_assign_statement] = STATE(141), - [sym_if_statement] = STATE(141), - [sym_for_statement] = STATE(141), - [aux_sym_write_modifiers_repeat1] = STATE(64), + [sym_array_type] = STATE(137), + [sym__type] = STATE(137), + [sym_declaration] = STATE(120), + [sym_unary_op] = STATE(36), + [sym_binary_op] = STATE(36), + [sym_array_op] = STATE(36), + [sym_func_call] = STATE(36), + [sym_field_access] = STATE(36), + [sym_parenthesis_expression] = STATE(36), + [sym__expression] = STATE(36), + [aux_sym__linebreak] = STATE(31), + [sym_write_modifiers] = STATE(33), + [sym_assign_to] = STATE(85), + [sym_assign_left_side] = STATE(143), + [sym_block] = STATE(148), + [sym_interface_statement] = STATE(148), + [sym_decl_assign_statement] = STATE(148), + [sym_if_statement] = STATE(148), + [sym_for_statement] = STATE(148), + [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), [sym_number] = ACTIONS(13), - [anon_sym_state] = ACTIONS(15), - [anon_sym_gen] = ACTIONS(15), - [anon_sym_PLUS] = ACTIONS(17), - [anon_sym_DASH] = ACTIONS(17), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_BANG] = ACTIONS(17), - [anon_sym_PIPE] = ACTIONS(17), - [anon_sym_AMP] = ACTIONS(17), - [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [anon_sym_LF] = ACTIONS(21), - [anon_sym_reg] = ACTIONS(23), - [anon_sym_initial] = ACTIONS(25), - [anon_sym_LBRACE] = ACTIONS(27), - [anon_sym_RBRACE] = ACTIONS(37), - [anon_sym_interface] = ACTIONS(31), - [anon_sym_if] = ACTIONS(33), - [anon_sym_for] = ACTIONS(35), + [anon_sym_input] = ACTIONS(15), + [anon_sym_output] = ACTIONS(15), + [anon_sym_state] = ACTIONS(17), + [anon_sym_gen] = ACTIONS(17), + [anon_sym_PLUS] = ACTIONS(19), + [anon_sym_DASH] = ACTIONS(19), + [anon_sym_STAR] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(19), + [anon_sym_PIPE] = ACTIONS(19), + [anon_sym_AMP] = ACTIONS(19), + [anon_sym_CARET] = ACTIONS(19), + [anon_sym_LPAREN] = ACTIONS(21), + [anon_sym_LF] = ACTIONS(23), + [anon_sym_reg] = ACTIONS(25), + [anon_sym_initial] = ACTIONS(27), + [anon_sym_LBRACE] = ACTIONS(29), + [anon_sym_RBRACE] = ACTIONS(39), + [anon_sym_interface] = ACTIONS(33), + [anon_sym_if] = ACTIONS(35), + [anon_sym_for] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [4] = { [sym_global_identifier] = STATE(37), - [sym_array_type] = STATE(138), - [sym__type] = STATE(138), - [sym_declaration] = STATE(102), - [sym_unary_op] = STATE(33), - [sym_binary_op] = STATE(33), - [sym_array_op] = STATE(33), - [sym_func_call] = STATE(33), - [sym_field_access] = STATE(33), - [sym_parenthesis_expression] = STATE(33), - [sym__expression] = STATE(33), - [aux_sym__linebreak] = STATE(32), - [sym_write_modifiers] = STATE(34), - [sym_assign_to] = STATE(82), - [sym_assign_left_side] = STATE(132), - [sym_block] = STATE(141), - [sym_interface_statement] = STATE(141), - [sym_decl_assign_statement] = STATE(141), - [sym_if_statement] = STATE(141), - [sym_for_statement] = STATE(141), - [aux_sym_write_modifiers_repeat1] = STATE(64), + [sym_array_type] = STATE(137), + [sym__type] = STATE(137), + [sym_declaration] = STATE(120), + [sym_unary_op] = STATE(36), + [sym_binary_op] = STATE(36), + [sym_array_op] = STATE(36), + [sym_func_call] = STATE(36), + [sym_field_access] = STATE(36), + [sym_parenthesis_expression] = STATE(36), + [sym__expression] = STATE(36), + [aux_sym__linebreak] = STATE(31), + [sym_write_modifiers] = STATE(33), + [sym_assign_to] = STATE(85), + [sym_assign_left_side] = STATE(143), + [sym_block] = STATE(148), + [sym_interface_statement] = STATE(148), + [sym_decl_assign_statement] = STATE(148), + [sym_if_statement] = STATE(148), + [sym_for_statement] = STATE(148), + [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), [sym_number] = ACTIONS(13), - [anon_sym_state] = ACTIONS(15), - [anon_sym_gen] = ACTIONS(15), - [anon_sym_PLUS] = ACTIONS(17), - [anon_sym_DASH] = ACTIONS(17), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_BANG] = ACTIONS(17), - [anon_sym_PIPE] = ACTIONS(17), - [anon_sym_AMP] = ACTIONS(17), - [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [anon_sym_LF] = ACTIONS(21), - [anon_sym_reg] = ACTIONS(23), - [anon_sym_initial] = ACTIONS(25), - [anon_sym_LBRACE] = ACTIONS(27), - [anon_sym_RBRACE] = ACTIONS(39), - [anon_sym_interface] = ACTIONS(31), - [anon_sym_if] = ACTIONS(33), - [anon_sym_for] = ACTIONS(35), + [anon_sym_input] = ACTIONS(15), + [anon_sym_output] = ACTIONS(15), + [anon_sym_state] = ACTIONS(17), + [anon_sym_gen] = ACTIONS(17), + [anon_sym_PLUS] = ACTIONS(19), + [anon_sym_DASH] = ACTIONS(19), + [anon_sym_STAR] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(19), + [anon_sym_PIPE] = ACTIONS(19), + [anon_sym_AMP] = ACTIONS(19), + [anon_sym_CARET] = ACTIONS(19), + [anon_sym_LPAREN] = ACTIONS(21), + [anon_sym_LF] = ACTIONS(23), + [anon_sym_reg] = ACTIONS(25), + [anon_sym_initial] = ACTIONS(27), + [anon_sym_LBRACE] = ACTIONS(29), + [anon_sym_RBRACE] = ACTIONS(41), + [anon_sym_interface] = ACTIONS(33), + [anon_sym_if] = ACTIONS(35), + [anon_sym_for] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [5] = { [sym_global_identifier] = STATE(37), - [sym_array_type] = STATE(138), - [sym__type] = STATE(138), - [sym_declaration] = STATE(102), - [sym_unary_op] = STATE(33), - [sym_binary_op] = STATE(33), - [sym_array_op] = STATE(33), - [sym_func_call] = STATE(33), - [sym_field_access] = STATE(33), - [sym_parenthesis_expression] = STATE(33), - [sym__expression] = STATE(33), - [aux_sym__linebreak] = STATE(32), - [sym_write_modifiers] = STATE(34), - [sym_assign_to] = STATE(82), - [sym_assign_left_side] = STATE(132), - [sym_block] = STATE(141), - [sym_interface_statement] = STATE(141), - [sym_decl_assign_statement] = STATE(141), - [sym_if_statement] = STATE(141), - [sym_for_statement] = STATE(141), - [aux_sym_write_modifiers_repeat1] = STATE(64), + [sym_array_type] = STATE(137), + [sym__type] = STATE(137), + [sym_declaration] = STATE(120), + [sym_unary_op] = STATE(36), + [sym_binary_op] = STATE(36), + [sym_array_op] = STATE(36), + [sym_func_call] = STATE(36), + [sym_field_access] = STATE(36), + [sym_parenthesis_expression] = STATE(36), + [sym__expression] = STATE(36), + [aux_sym__linebreak] = STATE(31), + [sym_write_modifiers] = STATE(33), + [sym_assign_to] = STATE(85), + [sym_assign_left_side] = STATE(143), + [sym_block] = STATE(148), + [sym_interface_statement] = STATE(148), + [sym_decl_assign_statement] = STATE(148), + [sym_if_statement] = STATE(148), + [sym_for_statement] = STATE(148), + [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), [sym_number] = ACTIONS(13), - [anon_sym_state] = ACTIONS(15), - [anon_sym_gen] = ACTIONS(15), - [anon_sym_PLUS] = ACTIONS(17), - [anon_sym_DASH] = ACTIONS(17), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_BANG] = ACTIONS(17), - [anon_sym_PIPE] = ACTIONS(17), - [anon_sym_AMP] = ACTIONS(17), - [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [anon_sym_LF] = ACTIONS(21), - [anon_sym_reg] = ACTIONS(23), - [anon_sym_initial] = ACTIONS(25), - [anon_sym_LBRACE] = ACTIONS(27), - [anon_sym_RBRACE] = ACTIONS(41), - [anon_sym_interface] = ACTIONS(31), - [anon_sym_if] = ACTIONS(33), - [anon_sym_for] = ACTIONS(35), + [anon_sym_input] = ACTIONS(15), + [anon_sym_output] = ACTIONS(15), + [anon_sym_state] = ACTIONS(17), + [anon_sym_gen] = ACTIONS(17), + [anon_sym_PLUS] = ACTIONS(19), + [anon_sym_DASH] = ACTIONS(19), + [anon_sym_STAR] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(19), + [anon_sym_PIPE] = ACTIONS(19), + [anon_sym_AMP] = ACTIONS(19), + [anon_sym_CARET] = ACTIONS(19), + [anon_sym_LPAREN] = ACTIONS(21), + [anon_sym_LF] = ACTIONS(23), + [anon_sym_reg] = ACTIONS(25), + [anon_sym_initial] = ACTIONS(27), + [anon_sym_LBRACE] = ACTIONS(29), + [anon_sym_RBRACE] = ACTIONS(43), + [anon_sym_interface] = ACTIONS(33), + [anon_sym_if] = ACTIONS(35), + [anon_sym_for] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [6] = { [sym_global_identifier] = STATE(37), - [sym_array_type] = STATE(138), - [sym__type] = STATE(138), - [sym_declaration] = STATE(102), - [sym_unary_op] = STATE(33), - [sym_binary_op] = STATE(33), - [sym_array_op] = STATE(33), - [sym_func_call] = STATE(33), - [sym_field_access] = STATE(33), - [sym_parenthesis_expression] = STATE(33), - [sym__expression] = STATE(33), - [aux_sym__linebreak] = STATE(32), - [sym_write_modifiers] = STATE(34), - [sym_assign_to] = STATE(82), - [sym_assign_left_side] = STATE(132), - [sym_block] = STATE(141), - [sym_interface_statement] = STATE(141), - [sym_decl_assign_statement] = STATE(141), - [sym_if_statement] = STATE(141), - [sym_for_statement] = STATE(141), - [aux_sym_write_modifiers_repeat1] = STATE(64), + [sym_array_type] = STATE(137), + [sym__type] = STATE(137), + [sym_declaration] = STATE(120), + [sym_unary_op] = STATE(36), + [sym_binary_op] = STATE(36), + [sym_array_op] = STATE(36), + [sym_func_call] = STATE(36), + [sym_field_access] = STATE(36), + [sym_parenthesis_expression] = STATE(36), + [sym__expression] = STATE(36), + [aux_sym__linebreak] = STATE(31), + [sym_write_modifiers] = STATE(33), + [sym_assign_to] = STATE(85), + [sym_assign_left_side] = STATE(143), + [sym_block] = STATE(148), + [sym_interface_statement] = STATE(148), + [sym_decl_assign_statement] = STATE(148), + [sym_if_statement] = STATE(148), + [sym_for_statement] = STATE(148), + [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), [sym_number] = ACTIONS(13), - [anon_sym_state] = ACTIONS(15), - [anon_sym_gen] = ACTIONS(15), - [anon_sym_PLUS] = ACTIONS(17), - [anon_sym_DASH] = ACTIONS(17), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_BANG] = ACTIONS(17), - [anon_sym_PIPE] = ACTIONS(17), - [anon_sym_AMP] = ACTIONS(17), - [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [anon_sym_LF] = ACTIONS(21), - [anon_sym_reg] = ACTIONS(23), - [anon_sym_initial] = ACTIONS(25), - [anon_sym_LBRACE] = ACTIONS(27), - [anon_sym_RBRACE] = ACTIONS(43), - [anon_sym_interface] = ACTIONS(31), - [anon_sym_if] = ACTIONS(33), - [anon_sym_for] = ACTIONS(35), + [anon_sym_input] = ACTIONS(15), + [anon_sym_output] = ACTIONS(15), + [anon_sym_state] = ACTIONS(17), + [anon_sym_gen] = ACTIONS(17), + [anon_sym_PLUS] = ACTIONS(19), + [anon_sym_DASH] = ACTIONS(19), + [anon_sym_STAR] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(19), + [anon_sym_PIPE] = ACTIONS(19), + [anon_sym_AMP] = ACTIONS(19), + [anon_sym_CARET] = ACTIONS(19), + [anon_sym_LPAREN] = ACTIONS(21), + [anon_sym_LF] = ACTIONS(23), + [anon_sym_reg] = ACTIONS(25), + [anon_sym_initial] = ACTIONS(27), + [anon_sym_LBRACE] = ACTIONS(29), + [anon_sym_RBRACE] = ACTIONS(45), + [anon_sym_interface] = ACTIONS(33), + [anon_sym_if] = ACTIONS(35), + [anon_sym_for] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [7] = { [sym_global_identifier] = STATE(37), - [sym_array_type] = STATE(138), - [sym__type] = STATE(138), - [sym_declaration] = STATE(102), - [sym_unary_op] = STATE(33), - [sym_binary_op] = STATE(33), - [sym_array_op] = STATE(33), - [sym_func_call] = STATE(33), - [sym_field_access] = STATE(33), - [sym_parenthesis_expression] = STATE(33), - [sym__expression] = STATE(33), - [aux_sym__linebreak] = STATE(32), - [sym_write_modifiers] = STATE(34), - [sym_assign_to] = STATE(82), - [sym_assign_left_side] = STATE(132), - [sym_block] = STATE(141), - [sym_interface_statement] = STATE(141), - [sym_decl_assign_statement] = STATE(141), - [sym_if_statement] = STATE(141), - [sym_for_statement] = STATE(141), - [aux_sym_write_modifiers_repeat1] = STATE(64), + [sym_array_type] = STATE(137), + [sym__type] = STATE(137), + [sym_declaration] = STATE(120), + [sym_unary_op] = STATE(36), + [sym_binary_op] = STATE(36), + [sym_array_op] = STATE(36), + [sym_func_call] = STATE(36), + [sym_field_access] = STATE(36), + [sym_parenthesis_expression] = STATE(36), + [sym__expression] = STATE(36), + [aux_sym__linebreak] = STATE(31), + [sym_write_modifiers] = STATE(33), + [sym_assign_to] = STATE(85), + [sym_assign_left_side] = STATE(143), + [sym_block] = STATE(148), + [sym_interface_statement] = STATE(148), + [sym_decl_assign_statement] = STATE(148), + [sym_if_statement] = STATE(148), + [sym_for_statement] = STATE(148), + [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), [sym_number] = ACTIONS(13), - [anon_sym_state] = ACTIONS(15), - [anon_sym_gen] = ACTIONS(15), - [anon_sym_PLUS] = ACTIONS(17), - [anon_sym_DASH] = ACTIONS(17), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_BANG] = ACTIONS(17), - [anon_sym_PIPE] = ACTIONS(17), - [anon_sym_AMP] = ACTIONS(17), - [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [anon_sym_LF] = ACTIONS(21), - [anon_sym_reg] = ACTIONS(23), - [anon_sym_initial] = ACTIONS(25), - [anon_sym_LBRACE] = ACTIONS(27), - [anon_sym_RBRACE] = ACTIONS(45), - [anon_sym_interface] = ACTIONS(31), - [anon_sym_if] = ACTIONS(33), - [anon_sym_for] = ACTIONS(35), + [anon_sym_input] = ACTIONS(15), + [anon_sym_output] = ACTIONS(15), + [anon_sym_state] = ACTIONS(17), + [anon_sym_gen] = ACTIONS(17), + [anon_sym_PLUS] = ACTIONS(19), + [anon_sym_DASH] = ACTIONS(19), + [anon_sym_STAR] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(19), + [anon_sym_PIPE] = ACTIONS(19), + [anon_sym_AMP] = ACTIONS(19), + [anon_sym_CARET] = ACTIONS(19), + [anon_sym_LPAREN] = ACTIONS(21), + [anon_sym_LF] = ACTIONS(23), + [anon_sym_reg] = ACTIONS(25), + [anon_sym_initial] = ACTIONS(27), + [anon_sym_LBRACE] = ACTIONS(29), + [anon_sym_RBRACE] = ACTIONS(47), + [anon_sym_interface] = ACTIONS(33), + [anon_sym_if] = ACTIONS(35), + [anon_sym_for] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [8] = { [sym_global_identifier] = STATE(37), - [sym_array_type] = STATE(138), - [sym__type] = STATE(138), - [sym_declaration] = STATE(102), - [sym_unary_op] = STATE(33), - [sym_binary_op] = STATE(33), - [sym_array_op] = STATE(33), - [sym_func_call] = STATE(33), - [sym_field_access] = STATE(33), - [sym_parenthesis_expression] = STATE(33), - [sym__expression] = STATE(33), - [aux_sym__linebreak] = STATE(2), - [sym_write_modifiers] = STATE(34), - [sym_assign_to] = STATE(82), - [sym_assign_left_side] = STATE(84), - [sym_block] = STATE(128), - [sym_interface_statement] = STATE(128), - [sym_decl_assign_statement] = STATE(128), - [sym_if_statement] = STATE(128), - [sym_for_statement] = STATE(128), - [aux_sym_write_modifiers_repeat1] = STATE(64), + [sym_array_type] = STATE(137), + [sym__type] = STATE(137), + [sym_declaration] = STATE(120), + [sym_unary_op] = STATE(36), + [sym_binary_op] = STATE(36), + [sym_array_op] = STATE(36), + [sym_func_call] = STATE(36), + [sym_field_access] = STATE(36), + [sym_parenthesis_expression] = STATE(36), + [sym__expression] = STATE(36), + [aux_sym__linebreak] = STATE(31), + [sym_write_modifiers] = STATE(33), + [sym_assign_to] = STATE(85), + [sym_assign_left_side] = STATE(143), + [sym_block] = STATE(148), + [sym_interface_statement] = STATE(148), + [sym_decl_assign_statement] = STATE(148), + [sym_if_statement] = STATE(148), + [sym_for_statement] = STATE(148), + [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), [sym_number] = ACTIONS(13), - [anon_sym_state] = ACTIONS(15), - [anon_sym_gen] = ACTIONS(15), - [anon_sym_PLUS] = ACTIONS(17), - [anon_sym_DASH] = ACTIONS(17), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_BANG] = ACTIONS(17), - [anon_sym_PIPE] = ACTIONS(17), - [anon_sym_AMP] = ACTIONS(17), - [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [anon_sym_LF] = ACTIONS(47), - [anon_sym_reg] = ACTIONS(23), - [anon_sym_initial] = ACTIONS(25), - [anon_sym_LBRACE] = ACTIONS(27), + [anon_sym_input] = ACTIONS(15), + [anon_sym_output] = ACTIONS(15), + [anon_sym_state] = ACTIONS(17), + [anon_sym_gen] = ACTIONS(17), + [anon_sym_PLUS] = ACTIONS(19), + [anon_sym_DASH] = ACTIONS(19), + [anon_sym_STAR] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(19), + [anon_sym_PIPE] = ACTIONS(19), + [anon_sym_AMP] = ACTIONS(19), + [anon_sym_CARET] = ACTIONS(19), + [anon_sym_LPAREN] = ACTIONS(21), + [anon_sym_LF] = ACTIONS(23), + [anon_sym_reg] = ACTIONS(25), + [anon_sym_initial] = ACTIONS(27), + [anon_sym_LBRACE] = ACTIONS(29), [anon_sym_RBRACE] = ACTIONS(49), - [anon_sym_interface] = ACTIONS(31), - [anon_sym_if] = ACTIONS(33), - [anon_sym_for] = ACTIONS(35), + [anon_sym_interface] = ACTIONS(33), + [anon_sym_if] = ACTIONS(35), + [anon_sym_for] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [9] = { [sym_global_identifier] = STATE(37), - [sym_array_type] = STATE(138), - [sym__type] = STATE(138), - [sym_declaration] = STATE(102), - [sym_unary_op] = STATE(33), - [sym_binary_op] = STATE(33), - [sym_array_op] = STATE(33), - [sym_func_call] = STATE(33), - [sym_field_access] = STATE(33), - [sym_parenthesis_expression] = STATE(33), - [sym__expression] = STATE(33), - [aux_sym__linebreak] = STATE(32), - [sym_write_modifiers] = STATE(34), - [sym_assign_to] = STATE(82), - [sym_assign_left_side] = STATE(132), - [sym_block] = STATE(141), - [sym_interface_statement] = STATE(141), - [sym_decl_assign_statement] = STATE(141), - [sym_if_statement] = STATE(141), - [sym_for_statement] = STATE(141), - [aux_sym_write_modifiers_repeat1] = STATE(64), + [sym_array_type] = STATE(137), + [sym__type] = STATE(137), + [sym_declaration] = STATE(120), + [sym_unary_op] = STATE(36), + [sym_binary_op] = STATE(36), + [sym_array_op] = STATE(36), + [sym_func_call] = STATE(36), + [sym_field_access] = STATE(36), + [sym_parenthesis_expression] = STATE(36), + [sym__expression] = STATE(36), + [aux_sym__linebreak] = STATE(2), + [sym_write_modifiers] = STATE(33), + [sym_assign_to] = STATE(85), + [sym_assign_left_side] = STATE(89), + [sym_block] = STATE(118), + [sym_interface_statement] = STATE(118), + [sym_decl_assign_statement] = STATE(118), + [sym_if_statement] = STATE(118), + [sym_for_statement] = STATE(118), + [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), [sym_number] = ACTIONS(13), - [anon_sym_state] = ACTIONS(15), - [anon_sym_gen] = ACTIONS(15), - [anon_sym_PLUS] = ACTIONS(17), - [anon_sym_DASH] = ACTIONS(17), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_BANG] = ACTIONS(17), - [anon_sym_PIPE] = ACTIONS(17), - [anon_sym_AMP] = ACTIONS(17), - [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [anon_sym_LF] = ACTIONS(21), - [anon_sym_reg] = ACTIONS(23), - [anon_sym_initial] = ACTIONS(25), - [anon_sym_LBRACE] = ACTIONS(27), - [anon_sym_RBRACE] = ACTIONS(51), - [anon_sym_interface] = ACTIONS(31), - [anon_sym_if] = ACTIONS(33), - [anon_sym_for] = ACTIONS(35), + [anon_sym_input] = ACTIONS(15), + [anon_sym_output] = ACTIONS(15), + [anon_sym_state] = ACTIONS(17), + [anon_sym_gen] = ACTIONS(17), + [anon_sym_PLUS] = ACTIONS(19), + [anon_sym_DASH] = ACTIONS(19), + [anon_sym_STAR] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(19), + [anon_sym_PIPE] = ACTIONS(19), + [anon_sym_AMP] = ACTIONS(19), + [anon_sym_CARET] = ACTIONS(19), + [anon_sym_LPAREN] = ACTIONS(21), + [anon_sym_LF] = ACTIONS(51), + [anon_sym_reg] = ACTIONS(25), + [anon_sym_initial] = ACTIONS(27), + [anon_sym_LBRACE] = ACTIONS(29), + [anon_sym_RBRACE] = ACTIONS(53), + [anon_sym_interface] = ACTIONS(33), + [anon_sym_if] = ACTIONS(35), + [anon_sym_for] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [10] = { [sym_global_identifier] = STATE(37), - [sym_array_type] = STATE(138), - [sym__type] = STATE(138), - [sym_declaration] = STATE(102), - [sym_unary_op] = STATE(33), - [sym_binary_op] = STATE(33), - [sym_array_op] = STATE(33), - [sym_func_call] = STATE(33), - [sym_field_access] = STATE(33), - [sym_parenthesis_expression] = STATE(33), - [sym__expression] = STATE(33), - [aux_sym__linebreak] = STATE(32), - [sym_write_modifiers] = STATE(34), - [sym_assign_to] = STATE(82), - [sym_assign_left_side] = STATE(132), - [sym_block] = STATE(141), - [sym_interface_statement] = STATE(141), - [sym_decl_assign_statement] = STATE(141), - [sym_if_statement] = STATE(141), - [sym_for_statement] = STATE(141), - [aux_sym_write_modifiers_repeat1] = STATE(64), + [sym_array_type] = STATE(137), + [sym__type] = STATE(137), + [sym_declaration] = STATE(120), + [sym_unary_op] = STATE(36), + [sym_binary_op] = STATE(36), + [sym_array_op] = STATE(36), + [sym_func_call] = STATE(36), + [sym_field_access] = STATE(36), + [sym_parenthesis_expression] = STATE(36), + [sym__expression] = STATE(36), + [aux_sym__linebreak] = STATE(31), + [sym_write_modifiers] = STATE(33), + [sym_assign_to] = STATE(85), + [sym_assign_left_side] = STATE(143), + [sym_block] = STATE(148), + [sym_interface_statement] = STATE(148), + [sym_decl_assign_statement] = STATE(148), + [sym_if_statement] = STATE(148), + [sym_for_statement] = STATE(148), + [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), [sym_number] = ACTIONS(13), - [anon_sym_state] = ACTIONS(15), - [anon_sym_gen] = ACTIONS(15), - [anon_sym_PLUS] = ACTIONS(17), - [anon_sym_DASH] = ACTIONS(17), - [anon_sym_STAR] = ACTIONS(17), - [anon_sym_BANG] = ACTIONS(17), - [anon_sym_PIPE] = ACTIONS(17), - [anon_sym_AMP] = ACTIONS(17), - [anon_sym_CARET] = ACTIONS(17), - [anon_sym_LPAREN] = ACTIONS(19), - [anon_sym_LF] = ACTIONS(21), - [anon_sym_reg] = ACTIONS(23), - [anon_sym_initial] = ACTIONS(25), - [anon_sym_LBRACE] = ACTIONS(27), - [anon_sym_interface] = ACTIONS(31), - [anon_sym_if] = ACTIONS(33), - [anon_sym_for] = ACTIONS(35), + [anon_sym_input] = ACTIONS(15), + [anon_sym_output] = ACTIONS(15), + [anon_sym_state] = ACTIONS(17), + [anon_sym_gen] = ACTIONS(17), + [anon_sym_PLUS] = ACTIONS(19), + [anon_sym_DASH] = ACTIONS(19), + [anon_sym_STAR] = ACTIONS(19), + [anon_sym_BANG] = ACTIONS(19), + [anon_sym_PIPE] = ACTIONS(19), + [anon_sym_AMP] = ACTIONS(19), + [anon_sym_CARET] = ACTIONS(19), + [anon_sym_LPAREN] = ACTIONS(21), + [anon_sym_LF] = ACTIONS(23), + [anon_sym_reg] = ACTIONS(25), + [anon_sym_initial] = ACTIONS(27), + [anon_sym_LBRACE] = ACTIONS(29), + [anon_sym_interface] = ACTIONS(33), + [anon_sym_if] = ACTIONS(35), + [anon_sym_for] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, @@ -3871,14 +3976,14 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { static const uint16_t ts_small_parse_table[] = { [0] = 5, - ACTIONS(57), 1, + ACTIONS(59), 1, anon_sym_COLON_COLON, - STATE(12), 1, + STATE(14), 1, aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(53), 8, + ACTIONS(55), 8, sym_identifier, anon_sym_DASH, anon_sym_LT, @@ -3887,7 +3992,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DOT, anon_sym_EQ, anon_sym_in, - ACTIONS(55), 20, + ACTIONS(57), 20, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -3909,14 +4014,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_DOT_DOT, [43] = 5, - ACTIONS(63), 1, + ACTIONS(65), 1, anon_sym_COLON_COLON, STATE(12), 1, aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(59), 8, + ACTIONS(61), 8, sym_identifier, anon_sym_DASH, anon_sym_LT, @@ -3925,7 +4030,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DOT, anon_sym_EQ, anon_sym_in, - ACTIONS(61), 20, + ACTIONS(63), 20, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -3946,15 +4051,64 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, - [86] = 5, - ACTIONS(57), 1, + [86] = 16, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(13), 1, + sym_number, + ACTIONS(21), 1, + anon_sym_LPAREN, + ACTIONS(25), 1, + anon_sym_reg, + ACTIONS(27), 1, + anon_sym_initial, + STATE(33), 1, + sym_write_modifiers, + STATE(37), 1, + sym_global_identifier, + STATE(63), 1, + aux_sym_write_modifiers_repeat1, + STATE(120), 1, + sym_declaration, + STATE(123), 1, + sym_assign_to, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(15), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(17), 2, + anon_sym_state, + anon_sym_gen, + STATE(137), 2, + sym_array_type, + sym__type, + ACTIONS(19), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(36), 7, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym__expression, + [151] = 5, + ACTIONS(59), 1, anon_sym_COLON_COLON, - STATE(11), 1, + STATE(12), 1, aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(66), 8, + ACTIONS(68), 8, sym_identifier, anon_sym_DASH, anon_sym_LT, @@ -3963,7 +4117,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DOT, anon_sym_EQ, anon_sym_in, - ACTIONS(68), 20, + ACTIONS(70), 20, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -3984,40 +4138,40 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, - [129] = 15, - ACTIONS(72), 1, - anon_sym_PLUS, + [194] = 15, ACTIONS(74), 1, + anon_sym_PLUS, + ACTIONS(76), 1, anon_sym_DASH, - ACTIONS(78), 1, - anon_sym_PIPE, ACTIONS(80), 1, - anon_sym_AMP, + anon_sym_PIPE, ACTIONS(82), 1, + anon_sym_AMP, + ACTIONS(84), 1, anon_sym_CARET, - ACTIONS(86), 1, - anon_sym_SLASH, ACTIONS(88), 1, - anon_sym_DOT, + anon_sym_SLASH, ACTIONS(90), 1, - anon_sym_LPAREN, + anon_sym_DOT, ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, anon_sym_LBRACK, - STATE(28), 1, + STATE(27), 1, sym_array_bracket_expression, - STATE(29), 1, + STATE(28), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(76), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(84), 3, + ACTIONS(86), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(70), 13, + ACTIONS(72), 13, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_EQ_EQ, @@ -4031,34 +4185,34 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [191] = 12, - ACTIONS(72), 1, - anon_sym_PLUS, + [256] = 12, ACTIONS(74), 1, + anon_sym_PLUS, + ACTIONS(76), 1, anon_sym_DASH, - ACTIONS(86), 1, - anon_sym_SLASH, ACTIONS(88), 1, - anon_sym_DOT, + anon_sym_SLASH, ACTIONS(90), 1, - anon_sym_LPAREN, + anon_sym_DOT, ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, anon_sym_LBRACK, - STATE(28), 1, + STATE(27), 1, sym_array_bracket_expression, - STATE(29), 1, + STATE(28), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(76), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(84), 3, + ACTIONS(86), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(70), 16, + ACTIONS(72), 16, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PIPE, @@ -4075,38 +4229,38 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [247] = 14, - ACTIONS(72), 1, - anon_sym_PLUS, + [312] = 14, ACTIONS(74), 1, + anon_sym_PLUS, + ACTIONS(76), 1, anon_sym_DASH, - ACTIONS(78), 1, + ACTIONS(80), 1, anon_sym_PIPE, - ACTIONS(82), 1, + ACTIONS(84), 1, anon_sym_CARET, - ACTIONS(86), 1, - anon_sym_SLASH, ACTIONS(88), 1, - anon_sym_DOT, + anon_sym_SLASH, ACTIONS(90), 1, - anon_sym_LPAREN, + anon_sym_DOT, ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, anon_sym_LBRACK, - STATE(28), 1, + STATE(27), 1, sym_array_bracket_expression, - STATE(29), 1, + STATE(28), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(76), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(84), 3, + ACTIONS(86), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(70), 14, + ACTIONS(72), 14, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_AMP, @@ -4121,72 +4275,62 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [307] = 13, - ACTIONS(72), 1, - anon_sym_PLUS, - ACTIONS(74), 1, - anon_sym_DASH, - ACTIONS(82), 1, - anon_sym_CARET, - ACTIONS(86), 1, - anon_sym_SLASH, - ACTIONS(88), 1, - anon_sym_DOT, - ACTIONS(90), 1, - anon_sym_LPAREN, - ACTIONS(92), 1, - anon_sym_LBRACK, - STATE(28), 1, - sym_array_bracket_expression, - STATE(29), 1, - sym_parenthesis_expression_list, + [372] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(76), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(84), 3, + ACTIONS(96), 8, + sym_identifier, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, + anon_sym_SLASH, + anon_sym_DOT, anon_sym_EQ, - ACTIONS(70), 15, + anon_sym_in, + ACTIONS(98), 21, anon_sym_COMMA, anon_sym_DASH_GT, + anon_sym_COLON_COLON, + anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, - [365] = 8, - ACTIONS(88), 1, - anon_sym_DOT, + [410] = 8, ACTIONS(90), 1, - anon_sym_LPAREN, + anon_sym_DOT, ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, anon_sym_LBRACK, - STATE(28), 1, + STATE(27), 1, sym_array_bracket_expression, - STATE(29), 1, + STATE(28), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(84), 5, + ACTIONS(102), 5, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_EQ, - ACTIONS(70), 19, + ACTIONS(100), 19, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4206,31 +4350,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [413] = 10, - ACTIONS(86), 1, - anon_sym_SLASH, + [458] = 10, ACTIONS(88), 1, - anon_sym_DOT, + anon_sym_SLASH, ACTIONS(90), 1, - anon_sym_LPAREN, + anon_sym_DOT, ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, anon_sym_LBRACK, - STATE(28), 1, + STATE(27), 1, sym_array_bracket_expression, - STATE(29), 1, + STATE(28), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(76), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(84), 4, + ACTIONS(86), 4, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(70), 17, + ACTIONS(72), 17, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4248,23 +4392,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [465] = 3, + [510] = 8, + ACTIONS(90), 1, + anon_sym_DOT, + ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, + anon_sym_LBRACK, + STATE(27), 1, + sym_array_bracket_expression, + STATE(28), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(94), 8, - sym_identifier, + ACTIONS(86), 5, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - anon_sym_DOT, anon_sym_EQ, - anon_sym_in, - ACTIONS(96), 21, + ACTIONS(72), 19, anon_sym_COMMA, anon_sym_DASH_GT, - anon_sym_COLON_COLON, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4275,35 +4425,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, - [503] = 8, + [558] = 13, + ACTIONS(74), 1, + anon_sym_PLUS, + ACTIONS(76), 1, + anon_sym_DASH, + ACTIONS(84), 1, + anon_sym_CARET, ACTIONS(88), 1, - anon_sym_DOT, + anon_sym_SLASH, ACTIONS(90), 1, - anon_sym_LPAREN, + anon_sym_DOT, ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, anon_sym_LBRACK, - STATE(28), 1, + STATE(27), 1, sym_array_bracket_expression, - STATE(29), 1, + STATE(28), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(100), 5, + ACTIONS(78), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(86), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + ACTIONS(72), 15, + anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_LF, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DOT_DOT, + [616] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(104), 8, + sym_identifier, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, + anon_sym_DOT, anon_sym_EQ, - ACTIONS(98), 19, + anon_sym_in, + ACTIONS(106), 20, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4316,73 +4503,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, - [551] = 15, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(13), 1, - sym_number, - ACTIONS(19), 1, - anon_sym_LPAREN, - ACTIONS(23), 1, - anon_sym_reg, - ACTIONS(25), 1, - anon_sym_initial, - STATE(34), 1, - sym_write_modifiers, - STATE(37), 1, - sym_global_identifier, - STATE(64), 1, - aux_sym_write_modifiers_repeat1, - STATE(102), 1, - sym_declaration, - STATE(118), 1, - sym_assign_to, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(15), 2, - anon_sym_state, - anon_sym_gen, - STATE(138), 2, - sym_array_type, - sym__type, - ACTIONS(17), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(33), 7, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym__expression, - [612] = 3, + [653] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(102), 8, - sym_identifier, + ACTIONS(110), 6, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, anon_sym_EQ, - anon_sym_in, - ACTIONS(104), 20, + ACTIONS(108), 21, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4402,19 +4542,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, - [649] = 3, + [689] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(108), 6, + ACTIONS(114), 6, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, anon_sym_EQ, - ACTIONS(106), 21, + ACTIONS(112), 21, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4436,18 +4577,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [685] = 3, + [725] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(112), 6, + ACTIONS(118), 6, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, anon_sym_EQ, - ACTIONS(110), 21, + ACTIONS(116), 21, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4469,18 +4610,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [721] = 3, + [761] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(116), 6, + ACTIONS(122), 6, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, anon_sym_EQ, - ACTIONS(114), 21, + ACTIONS(120), 21, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4502,18 +4643,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [757] = 3, + [797] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(120), 6, + ACTIONS(126), 6, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, anon_sym_EQ, - ACTIONS(118), 21, + ACTIONS(124), 21, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4535,18 +4676,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [793] = 3, + [833] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(124), 6, + ACTIONS(130), 6, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, anon_sym_EQ, - ACTIONS(122), 21, + ACTIONS(128), 21, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4568,18 +4709,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [829] = 3, + [869] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 6, + ACTIONS(134), 6, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, anon_sym_EQ, - ACTIONS(126), 21, + ACTIONS(132), 21, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4601,96 +4742,32 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [865] = 3, + [905] = 5, + ACTIONS(140), 1, + anon_sym_LF, + STATE(31), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(132), 6, - anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, - anon_sym_DOT, - anon_sym_EQ, - ACTIONS(130), 21, - anon_sym_COMMA, + ACTIONS(136), 12, + ts_builtin_sym_end, anon_sym_DASH_GT, + sym_number, anon_sym_PLUS, anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DOT_DOT, - [901] = 17, - ACTIONS(72), 1, - anon_sym_PLUS, - ACTIONS(74), 1, - anon_sym_DASH, - ACTIONS(78), 1, - anon_sym_PIPE, - ACTIONS(80), 1, - anon_sym_AMP, - ACTIONS(82), 1, - anon_sym_CARET, - ACTIONS(86), 1, - anon_sym_SLASH, - ACTIONS(90), 1, anon_sym_LPAREN, - ACTIONS(92), 1, - anon_sym_LBRACK, - ACTIONS(140), 1, - anon_sym_DOT, - ACTIONS(142), 1, - anon_sym_EQ, - STATE(28), 1, - sym_array_bracket_expression, - STATE(29), 1, - sym_parenthesis_expression_list, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(76), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(138), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(136), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - ACTIONS(134), 6, - anon_sym_COMMA, - anon_sym_DASH_GT, - anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, - [964] = 5, - ACTIONS(148), 1, - anon_sym_LF, - STATE(32), 1, - aux_sym__linebreak, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(146), 10, + ACTIONS(138), 12, anon_sym_module, sym_identifier, + anon_sym_input, + anon_sym_output, anon_sym_state, anon_sym_gen, anon_sym_DASH, @@ -4699,82 +4776,76 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_interface, anon_sym_if, anon_sym_for, - ACTIONS(144), 12, - ts_builtin_sym_end, - anon_sym_DASH_GT, - sym_number, + [944] = 17, + ACTIONS(74), 1, anon_sym_PLUS, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - [1001] = 16, - ACTIONS(78), 1, - anon_sym_PIPE, + ACTIONS(76), 1, + anon_sym_DASH, ACTIONS(80), 1, - anon_sym_AMP, + anon_sym_PIPE, ACTIONS(82), 1, + anon_sym_AMP, + ACTIONS(84), 1, anon_sym_CARET, - ACTIONS(86), 1, + ACTIONS(88), 1, anon_sym_SLASH, - ACTIONS(90), 1, - anon_sym_LPAREN, ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(140), 1, + ACTIONS(149), 1, anon_sym_DOT, - ACTIONS(153), 1, + ACTIONS(151), 1, anon_sym_EQ, - STATE(28), 1, + STATE(27), 1, sym_array_bracket_expression, - STATE(29), 1, + STATE(28), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(72), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(76), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 2, + ACTIONS(147), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(151), 3, - anon_sym_COMMA, - anon_sym_LF, - anon_sym_RBRACE, - ACTIONS(136), 4, + ACTIONS(145), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1059] = 10, + ACTIONS(143), 6, + anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_LF, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + [1007] = 11, ACTIONS(11), 1, sym_identifier, - ACTIONS(19), 1, + ACTIONS(21), 1, anon_sym_LPAREN, - ACTIONS(155), 1, + ACTIONS(153), 1, sym_number, STATE(37), 1, sym_global_identifier, - STATE(111), 1, + STATE(117), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(15), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(17), 2, anon_sym_state, anon_sym_gen, - STATE(138), 2, + STATE(137), 2, sym_array_type, sym__type, - ACTIONS(17), 7, + ACTIONS(19), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4782,7 +4853,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(35), 7, + STATE(34), 7, sym_unary_op, sym_binary_op, sym_array_op, @@ -4790,106 +4861,148 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [1105] = 16, - ACTIONS(78), 1, - anon_sym_PIPE, + [1057] = 16, ACTIONS(80), 1, - anon_sym_AMP, + anon_sym_PIPE, ACTIONS(82), 1, + anon_sym_AMP, + ACTIONS(84), 1, anon_sym_CARET, - ACTIONS(86), 1, + ACTIONS(88), 1, anon_sym_SLASH, - ACTIONS(90), 1, - anon_sym_LPAREN, ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(140), 1, + ACTIONS(149), 1, anon_sym_DOT, - ACTIONS(159), 1, + ACTIONS(157), 1, anon_sym_EQ, - STATE(28), 1, + STATE(27), 1, sym_array_bracket_expression, - STATE(29), 1, + STATE(28), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(72), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(76), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 2, + ACTIONS(147), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(157), 3, + ACTIONS(155), 3, anon_sym_COMMA, anon_sym_LF, anon_sym_RBRACE, - ACTIONS(136), 4, + ACTIONS(145), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1163] = 18, - ACTIONS(78), 1, - anon_sym_PIPE, + [1115] = 18, ACTIONS(80), 1, - anon_sym_AMP, + anon_sym_PIPE, ACTIONS(82), 1, + anon_sym_AMP, + ACTIONS(84), 1, anon_sym_CARET, - ACTIONS(86), 1, + ACTIONS(88), 1, anon_sym_SLASH, - ACTIONS(90), 1, - anon_sym_LPAREN, ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(140), 1, + ACTIONS(149), 1, anon_sym_DOT, - ACTIONS(161), 1, + ACTIONS(159), 1, anon_sym_COMMA, - ACTIONS(163), 1, + ACTIONS(161), 1, anon_sym_RPAREN, - STATE(28), 1, + STATE(27), 1, sym_array_bracket_expression, - STATE(29), 1, + STATE(28), 1, sym_parenthesis_expression_list, - STATE(57), 1, + STATE(46), 1, sym__comma, - STATE(120), 1, + STATE(124), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(72), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(76), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 2, + ACTIONS(147), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(136), 4, + ACTIONS(145), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1225] = 5, + [1177] = 16, + ACTIONS(80), 1, + anon_sym_PIPE, + ACTIONS(82), 1, + anon_sym_AMP, + ACTIONS(84), 1, + anon_sym_CARET, + ACTIONS(88), 1, + anon_sym_SLASH, + ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, + anon_sym_LBRACK, + ACTIONS(149), 1, + anon_sym_DOT, ACTIONS(165), 1, + anon_sym_EQ, + STATE(27), 1, + sym_array_bracket_expression, + STATE(28), 1, + sym_parenthesis_expression_list, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(74), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(78), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(147), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(163), 3, + anon_sym_COMMA, + anon_sym_LF, + anon_sym_RBRACE, + ACTIONS(145), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [1235] = 5, + ACTIONS(167), 1, sym_identifier, - ACTIONS(171), 1, + ACTIONS(173), 1, anon_sym_LBRACK, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(169), 4, + ACTIONS(171), 4, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_EQ, - ACTIONS(167), 16, + ACTIONS(169), 16, anon_sym_COMMA, anon_sym_PLUS, anon_sym_DASH, @@ -4906,291 +5019,291 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LF, anon_sym_RBRACE, - [1260] = 16, - ACTIONS(27), 1, - anon_sym_LBRACE, - ACTIONS(78), 1, - anon_sym_PIPE, + [1270] = 15, ACTIONS(80), 1, - anon_sym_AMP, + anon_sym_PIPE, ACTIONS(82), 1, + anon_sym_AMP, + ACTIONS(84), 1, anon_sym_CARET, - ACTIONS(86), 1, + ACTIONS(88), 1, anon_sym_SLASH, - ACTIONS(90), 1, - anon_sym_LPAREN, ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(140), 1, + ACTIONS(149), 1, anon_sym_DOT, - STATE(28), 1, + STATE(27), 1, sym_array_bracket_expression, - STATE(29), 1, + STATE(28), 1, sym_parenthesis_expression_list, - STATE(134), 1, - sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(72), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(76), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 2, + ACTIONS(147), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(136), 4, + ACTIONS(176), 2, + anon_sym_LF, + anon_sym_RBRACE, + ACTIONS(145), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1316] = 16, - ACTIONS(27), 1, + [1324] = 16, + ACTIONS(29), 1, anon_sym_LBRACE, - ACTIONS(78), 1, - anon_sym_PIPE, ACTIONS(80), 1, - anon_sym_AMP, + anon_sym_PIPE, ACTIONS(82), 1, + anon_sym_AMP, + ACTIONS(84), 1, anon_sym_CARET, - ACTIONS(86), 1, + ACTIONS(88), 1, anon_sym_SLASH, - ACTIONS(90), 1, - anon_sym_LPAREN, ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(140), 1, + ACTIONS(149), 1, anon_sym_DOT, - STATE(28), 1, + STATE(27), 1, sym_array_bracket_expression, - STATE(29), 1, + STATE(28), 1, sym_parenthesis_expression_list, - STATE(147), 1, + STATE(155), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(72), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(76), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 2, + ACTIONS(147), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(136), 4, + ACTIONS(145), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1372] = 15, - ACTIONS(78), 1, - anon_sym_PIPE, + [1380] = 16, + ACTIONS(29), 1, + anon_sym_LBRACE, ACTIONS(80), 1, - anon_sym_AMP, + anon_sym_PIPE, ACTIONS(82), 1, + anon_sym_AMP, + ACTIONS(84), 1, anon_sym_CARET, - ACTIONS(86), 1, + ACTIONS(88), 1, anon_sym_SLASH, - ACTIONS(90), 1, - anon_sym_LPAREN, ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(140), 1, + ACTIONS(149), 1, anon_sym_DOT, - STATE(28), 1, + STATE(27), 1, sym_array_bracket_expression, - STATE(29), 1, + STATE(28), 1, sym_parenthesis_expression_list, + STATE(145), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(72), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(76), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 2, + ACTIONS(147), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(174), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - ACTIONS(136), 4, + ACTIONS(145), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1426] = 15, - ACTIONS(78), 1, - anon_sym_PIPE, + [1436] = 15, ACTIONS(80), 1, - anon_sym_AMP, + anon_sym_PIPE, ACTIONS(82), 1, + anon_sym_AMP, + ACTIONS(84), 1, anon_sym_CARET, - ACTIONS(86), 1, + ACTIONS(88), 1, anon_sym_SLASH, - ACTIONS(90), 1, - anon_sym_LPAREN, ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(140), 1, + ACTIONS(149), 1, anon_sym_DOT, - STATE(28), 1, + STATE(27), 1, sym_array_bracket_expression, - STATE(29), 1, + STATE(28), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(72), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(76), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 2, + ACTIONS(147), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(176), 2, - anon_sym_LF, - anon_sym_RBRACE, - ACTIONS(136), 4, + ACTIONS(178), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + ACTIONS(145), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1480] = 15, - ACTIONS(78), 1, - anon_sym_PIPE, + [1490] = 15, ACTIONS(80), 1, - anon_sym_AMP, + anon_sym_PIPE, ACTIONS(82), 1, + anon_sym_AMP, + ACTIONS(84), 1, anon_sym_CARET, - ACTIONS(86), 1, + ACTIONS(88), 1, anon_sym_SLASH, - ACTIONS(90), 1, - anon_sym_LPAREN, ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(140), 1, + ACTIONS(149), 1, anon_sym_DOT, - ACTIONS(178), 1, - anon_sym_RBRACK, - STATE(28), 1, + ACTIONS(180), 1, + anon_sym_RPAREN, + STATE(27), 1, sym_array_bracket_expression, - STATE(29), 1, + STATE(28), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(72), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(76), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 2, + ACTIONS(147), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(136), 4, + ACTIONS(145), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1533] = 15, - ACTIONS(78), 1, - anon_sym_PIPE, + [1543] = 15, ACTIONS(80), 1, - anon_sym_AMP, + anon_sym_PIPE, ACTIONS(82), 1, + anon_sym_AMP, + ACTIONS(84), 1, anon_sym_CARET, - ACTIONS(86), 1, + ACTIONS(88), 1, anon_sym_SLASH, ACTIONS(90), 1, - anon_sym_LPAREN, + anon_sym_DOT, ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(140), 1, - anon_sym_DOT, - ACTIONS(180), 1, - anon_sym_RPAREN, - STATE(28), 1, + ACTIONS(182), 1, + anon_sym_DOT_DOT, + STATE(27), 1, sym_array_bracket_expression, - STATE(29), 1, + STATE(28), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(72), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(76), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 2, + ACTIONS(147), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(136), 4, + ACTIONS(145), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1586] = 15, - ACTIONS(78), 1, - anon_sym_PIPE, + [1596] = 15, ACTIONS(80), 1, - anon_sym_AMP, + anon_sym_PIPE, ACTIONS(82), 1, + anon_sym_AMP, + ACTIONS(84), 1, anon_sym_CARET, - ACTIONS(86), 1, - anon_sym_SLASH, ACTIONS(88), 1, - anon_sym_DOT, - ACTIONS(90), 1, - anon_sym_LPAREN, + anon_sym_SLASH, ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(182), 1, - anon_sym_DOT_DOT, - STATE(28), 1, + ACTIONS(149), 1, + anon_sym_DOT, + ACTIONS(184), 1, + anon_sym_RBRACK, + STATE(27), 1, sym_array_bracket_expression, - STATE(29), 1, + STATE(28), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(72), 2, + ACTIONS(74), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(76), 2, + ACTIONS(78), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 2, + ACTIONS(147), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(136), 4, + ACTIONS(145), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1639] = 7, - ACTIONS(19), 1, + [1649] = 7, + ACTIONS(21), 1, anon_sym_LPAREN, - ACTIONS(184), 1, - sym_identifier, ACTIONS(186), 1, - sym_number, + sym_identifier, ACTIONS(188), 1, + sym_number, + ACTIONS(190), 1, anon_sym_RPAREN, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(19), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5198,7 +5311,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(36), 8, + STATE(35), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5207,17 +5320,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [1675] = 6, - ACTIONS(19), 1, + [1685] = 6, + ACTIONS(21), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(190), 1, + ACTIONS(192), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(19), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5234,44 +5347,24 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [1708] = 6, - ACTIONS(19), 1, - anon_sym_LPAREN, - ACTIONS(184), 1, - sym_identifier, - ACTIONS(192), 1, - sym_number, + [1718] = 5, + ACTIONS(23), 1, + anon_sym_LF, + STATE(31), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(21), 8, - sym_global_identifier, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym__expression, - [1741] = 6, - ACTIONS(19), 1, - anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(194), 7, sym_identifier, - ACTIONS(194), 1, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + anon_sym_reg, + anon_sym_initial, + ACTIONS(196), 9, sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(17), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5279,26 +5372,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(16), 8, - sym_global_identifier, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym__expression, - [1774] = 6, - ACTIONS(19), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + [1749] = 6, + ACTIONS(21), 1, + anon_sym_LPAREN, + ACTIONS(186), 1, sym_identifier, - ACTIONS(196), 1, + ACTIONS(198), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(19), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5306,7 +5391,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(44), 8, + STATE(38), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5315,17 +5400,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [1807] = 6, - ACTIONS(19), 1, + [1782] = 6, + ACTIONS(21), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(198), 1, + ACTIONS(200), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(19), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5342,17 +5427,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [1840] = 6, - ACTIONS(19), 1, + [1815] = 6, + ACTIONS(21), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(200), 1, + ACTIONS(202), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(19), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5360,7 +5445,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(18), 8, + STATE(22), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5369,17 +5454,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [1873] = 6, - ACTIONS(19), 1, + [1848] = 6, + ACTIONS(21), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(202), 1, + ACTIONS(204), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(19), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5387,7 +5472,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(15), 8, + STATE(21), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5396,17 +5481,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [1906] = 6, - ACTIONS(19), 1, + [1881] = 6, + ACTIONS(21), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(204), 1, + ACTIONS(206), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(19), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5414,7 +5499,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(31), 8, + STATE(42), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5423,17 +5508,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [1939] = 6, - ACTIONS(19), 1, + [1914] = 6, + ACTIONS(21), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(206), 1, + ACTIONS(208), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(19), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5441,7 +5526,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(14), 8, + STATE(19), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5450,17 +5535,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [1972] = 6, - ACTIONS(19), 1, + [1947] = 6, + ACTIONS(21), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(208), 1, + ACTIONS(210), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(19), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5468,7 +5553,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(19), 8, + STATE(43), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5477,17 +5562,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [2005] = 6, - ACTIONS(19), 1, + [1980] = 6, + ACTIONS(21), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(210), 1, + ACTIONS(212), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(19), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5495,7 +5580,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(42), 8, + STATE(20), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5504,17 +5589,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [2038] = 6, - ACTIONS(19), 1, + [2013] = 6, + ACTIONS(21), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(212), 1, + ACTIONS(214), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(19), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5522,7 +5607,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(40), 8, + STATE(32), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5531,17 +5616,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [2071] = 6, - ACTIONS(19), 1, + [2046] = 6, + ACTIONS(21), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(214), 1, + ACTIONS(216), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(19), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5549,7 +5634,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(38), 8, + STATE(16), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5558,17 +5643,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [2104] = 6, - ACTIONS(19), 1, + [2079] = 6, + ACTIONS(21), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(216), 1, + ACTIONS(218), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(19), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5576,7 +5661,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(39), 8, + STATE(44), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5585,17 +5670,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [2137] = 6, - ACTIONS(19), 1, + [2112] = 6, + ACTIONS(21), 1, anon_sym_LPAREN, - ACTIONS(184), 1, + ACTIONS(186), 1, sym_identifier, - ACTIONS(218), 1, + ACTIONS(220), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(17), 7, + ACTIONS(19), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5603,7 +5688,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(43), 8, + STATE(40), 8, sym_global_identifier, sym_unary_op, sym_binary_op, @@ -5612,21 +5697,23 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym__expression, - [2170] = 5, - ACTIONS(224), 1, + [2145] = 5, + ACTIONS(226), 1, anon_sym_LF, - STATE(62), 1, + STATE(47), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(220), 5, + ACTIONS(222), 7, sym_identifier, + anon_sym_input, + anon_sym_output, anon_sym_state, anon_sym_gen, anon_sym_reg, anon_sym_initial, - ACTIONS(222), 9, + ACTIONS(224), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -5636,22 +5723,44 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2199] = 5, + [2176] = 6, ACTIONS(21), 1, - anon_sym_LF, - STATE(32), 1, - aux_sym__linebreak, + anon_sym_LPAREN, + ACTIONS(186), 1, + sym_identifier, + ACTIONS(228), 1, + sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(226), 5, + ACTIONS(19), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(15), 8, + sym_global_identifier, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym__expression, + [2209] = 6, + ACTIONS(21), 1, + anon_sym_LPAREN, + ACTIONS(186), 1, sym_identifier, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - ACTIONS(228), 9, + ACTIONS(230), 1, sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(19), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5659,20 +5768,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_LPAREN, - [2228] = 5, - ACTIONS(234), 1, + STATE(39), 8, + sym_global_identifier, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym__expression, + [2242] = 5, + ACTIONS(25), 1, anon_sym_reg, - STATE(63), 1, + STATE(64), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(230), 3, + ACTIONS(232), 5, sym_identifier, + anon_sym_input, + anon_sym_output, anon_sym_state, anon_sym_gen, - ACTIONS(232), 9, + ACTIONS(234), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -5682,19 +5801,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2255] = 5, - ACTIONS(23), 1, + [2271] = 5, + ACTIONS(240), 1, anon_sym_reg, - STATE(63), 1, + STATE(64), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(237), 3, + ACTIONS(236), 5, sym_identifier, + anon_sym_input, + anon_sym_output, anon_sym_state, anon_sym_gen, - ACTIONS(239), 9, + ACTIONS(238), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -5704,16 +5825,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2282] = 3, + [2300] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(241), 4, + ACTIONS(243), 6, sym_identifier, + anon_sym_input, + anon_sym_output, anon_sym_state, anon_sym_gen, anon_sym_reg, - ACTIONS(243), 9, + ACTIONS(245), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -5723,65 +5846,73 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2304] = 10, + [2324] = 11, ACTIONS(11), 1, sym_identifier, - ACTIONS(245), 1, - anon_sym_DASH_GT, ACTIONS(247), 1, + anon_sym_DASH_GT, + ACTIONS(249), 1, anon_sym_LF, STATE(67), 1, aux_sym__linebreak, STATE(77), 1, sym_declaration, - STATE(89), 1, + STATE(94), 1, sym_declaration_list, - STATE(130), 1, + STATE(142), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(15), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(17), 2, anon_sym_state, anon_sym_gen, - STATE(138), 3, + STATE(137), 3, sym_global_identifier, sym_array_type, sym__type, - [2339] = 10, + [2363] = 11, ACTIONS(11), 1, sym_identifier, - ACTIONS(21), 1, + ACTIONS(23), 1, anon_sym_LF, - ACTIONS(245), 1, + ACTIONS(247), 1, anon_sym_DASH_GT, - STATE(32), 1, + STATE(31), 1, aux_sym__linebreak, STATE(77), 1, sym_declaration, - STATE(92), 1, + STATE(97), 1, sym_declaration_list, - STATE(129), 1, + STATE(139), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(15), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(17), 2, anon_sym_state, anon_sym_gen, - STATE(138), 3, + STATE(137), 3, sym_global_identifier, sym_array_type, sym__type, - [2374] = 3, + [2402] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(249), 3, + ACTIONS(251), 5, sym_identifier, + anon_sym_input, + anon_sym_output, anon_sym_state, anon_sym_gen, - ACTIONS(251), 9, + ACTIONS(253), 9, sym_number, anon_sym_PLUS, anon_sym_DASH, @@ -5791,57 +5922,63 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2395] = 8, + [2425] = 9, ACTIONS(11), 1, sym_identifier, - ACTIONS(21), 1, + ACTIONS(255), 1, anon_sym_LF, - STATE(32), 1, + STATE(70), 1, aux_sym__linebreak, STATE(77), 1, sym_declaration, - STATE(133), 1, + STATE(135), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(15), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(17), 2, anon_sym_state, anon_sym_gen, - STATE(138), 3, + STATE(137), 3, sym_global_identifier, sym_array_type, sym__type, - [2424] = 8, + [2458] = 9, ACTIONS(11), 1, sym_identifier, - ACTIONS(253), 1, + ACTIONS(23), 1, anon_sym_LF, - STATE(69), 1, + STATE(31), 1, aux_sym__linebreak, STATE(77), 1, sym_declaration, - STATE(137), 1, + STATE(140), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(15), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(17), 2, anon_sym_state, anon_sym_gen, - STATE(138), 3, + STATE(137), 3, sym_global_identifier, sym_array_type, sym__type, - [2453] = 4, - ACTIONS(257), 1, + [2491] = 4, + ACTIONS(259), 1, anon_sym_SQUOTE, - STATE(73), 1, + STATE(79), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(255), 7, + ACTIONS(257), 7, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LF, @@ -5849,15 +5986,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, - [2473] = 4, - ACTIONS(257), 1, + [2511] = 4, + ACTIONS(259), 1, anon_sym_SQUOTE, - STATE(78), 1, + STATE(80), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(259), 7, + ACTIONS(261), 7, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LF, @@ -5865,11 +6002,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, - [2493] = 2, + [2531] = 4, + ACTIONS(259), 1, + anon_sym_SQUOTE, + STATE(83), 1, + sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(261), 7, + ACTIONS(263), 7, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LF, @@ -5877,71 +6018,102 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, - [2507] = 5, + [2551] = 6, ACTIONS(11), 1, sym_identifier, - STATE(151), 1, + STATE(159), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(15), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(17), 2, anon_sym_state, anon_sym_gen, - STATE(138), 3, + STATE(137), 3, sym_global_identifier, sym_array_type, sym__type, - [2527] = 5, + [2575] = 6, ACTIONS(11), 1, sym_identifier, - STATE(91), 1, + STATE(95), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(15), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(17), 2, anon_sym_state, anon_sym_gen, - STATE(138), 3, + STATE(137), 3, sym_global_identifier, sym_array_type, sym__type, - [2547] = 5, - ACTIONS(161), 1, + [2599] = 4, + ACTIONS(259), 1, + anon_sym_SQUOTE, + STATE(78), 1, + sym_latency_specifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(265), 7, + anon_sym_COMMA, + anon_sym_DASH_GT, + anon_sym_LF, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + [2619] = 5, + ACTIONS(159), 1, anon_sym_COMMA, STATE(75), 1, sym__comma, - STATE(79), 1, + STATE(81), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(263), 4, + ACTIONS(267), 4, anon_sym_DASH_GT, anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, - [2567] = 5, - ACTIONS(161), 1, + [2639] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(269), 7, anon_sym_COMMA, - STATE(75), 1, - sym__comma, - STATE(76), 1, - aux_sym_declaration_list_repeat1, + anon_sym_DASH_GT, + anon_sym_LF, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + [2653] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(265), 4, + ACTIONS(271), 7, + anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, - [2587] = 2, + anon_sym_EQ, + anon_sym_in, + [2667] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(267), 7, + ACTIONS(273), 7, anon_sym_COMMA, anon_sym_DASH_GT, anon_sym_LF, @@ -5949,262 +6121,266 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, - [2601] = 5, - ACTIONS(269), 1, + [2681] = 5, + ACTIONS(159), 1, anon_sym_COMMA, STATE(75), 1, sym__comma, - STATE(79), 1, + STATE(82), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(272), 4, + ACTIONS(275), 4, anon_sym_DASH_GT, anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, - [2621] = 5, - ACTIONS(161), 1, + [2701] = 5, + ACTIONS(277), 1, anon_sym_COMMA, - STATE(22), 1, + STATE(75), 1, sym__comma, - STATE(81), 1, - aux_sym_assign_left_side_repeat1, + STATE(82), 1, + aux_sym_declaration_list_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(280), 4, + anon_sym_DASH_GT, + anon_sym_LF, + anon_sym_LBRACE, + anon_sym_RBRACE, + [2721] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(274), 3, + ACTIONS(282), 7, + anon_sym_COMMA, + anon_sym_DASH_GT, anon_sym_LF, + anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_EQ, - [2640] = 5, - ACTIONS(276), 1, + anon_sym_in, + [2735] = 4, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(284), 2, + anon_sym_state, + anon_sym_gen, + STATE(136), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [2752] = 5, + ACTIONS(159), 1, anon_sym_COMMA, - STATE(22), 1, + STATE(13), 1, sym__comma, - STATE(81), 1, + STATE(86), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(279), 3, + ACTIONS(286), 3, anon_sym_LF, anon_sym_RBRACE, anon_sym_EQ, - [2659] = 5, - ACTIONS(161), 1, + [2771] = 5, + ACTIONS(159), 1, anon_sym_COMMA, - STATE(22), 1, + STATE(13), 1, sym__comma, - STATE(80), 1, + STATE(87), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(281), 3, + ACTIONS(288), 3, anon_sym_LF, anon_sym_RBRACE, anon_sym_EQ, - [2678] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(21), 1, - anon_sym_LF, - ACTIONS(283), 1, - ts_builtin_sym_end, - STATE(32), 1, - aux_sym__linebreak, - STATE(142), 1, - sym_module, + [2790] = 5, + ACTIONS(290), 1, + anon_sym_COMMA, + STATE(13), 1, + sym__comma, + STATE(87), 1, + aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2698] = 6, - ACTIONS(285), 1, + ACTIONS(293), 3, anon_sym_LF, - ACTIONS(287), 1, anon_sym_RBRACE, - ACTIONS(289), 1, anon_sym_EQ, - STATE(5), 1, + [2809] = 6, + ACTIONS(295), 1, + anon_sym_LF, + ACTIONS(297), 1, + anon_sym_RBRACE, + ACTIONS(299), 1, + anon_sym_EQ, + STATE(6), 1, aux_sym__linebreak, - STATE(96), 1, + STATE(121), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2718] = 6, - ACTIONS(289), 1, + [2829] = 6, + ACTIONS(299), 1, anon_sym_EQ, - ACTIONS(291), 1, + ACTIONS(301), 1, anon_sym_LF, - ACTIONS(293), 1, + ACTIONS(303), 1, anon_sym_RBRACE, - STATE(9), 1, + STATE(5), 1, aux_sym__linebreak, - STATE(116), 1, + STATE(132), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2738] = 6, + [2849] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(21), 1, + ACTIONS(23), 1, anon_sym_LF, - ACTIONS(295), 1, + ACTIONS(305), 1, ts_builtin_sym_end, - STATE(32), 1, + STATE(31), 1, aux_sym__linebreak, - STATE(142), 1, + STATE(112), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2758] = 6, + [2869] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(21), 1, + ACTIONS(23), 1, anon_sym_LF, - ACTIONS(297), 1, + ACTIONS(307), 1, ts_builtin_sym_end, - STATE(32), 1, + STATE(31), 1, aux_sym__linebreak, - STATE(142), 1, + STATE(154), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2778] = 6, + [2889] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(21), 1, + ACTIONS(23), 1, anon_sym_LF, - ACTIONS(299), 1, + ACTIONS(309), 1, ts_builtin_sym_end, - STATE(32), 1, + STATE(31), 1, aux_sym__linebreak, - STATE(123), 1, + STATE(154), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2798] = 4, - ACTIONS(245), 1, - anon_sym_DASH_GT, - STATE(131), 1, - sym__interface_ports_output, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(301), 3, - anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - [2814] = 6, + [2909] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(21), 1, + ACTIONS(23), 1, anon_sym_LF, - ACTIONS(303), 1, + ACTIONS(311), 1, ts_builtin_sym_end, - STATE(32), 1, + STATE(31), 1, aux_sym__linebreak, - STATE(142), 1, + STATE(154), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2834] = 2, + [2929] = 4, + ACTIONS(247), 1, + anon_sym_DASH_GT, + STATE(144), 1, + sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(305), 5, - anon_sym_COMMA, - anon_sym_DASH_GT, + ACTIONS(313), 3, anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, - [2846] = 4, - ACTIONS(245), 1, - anon_sym_DASH_GT, - STATE(136), 1, - sym__interface_ports_output, + [2945] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(307), 3, + ACTIONS(315), 5, + anon_sym_COMMA, + anon_sym_DASH_GT, anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, - [2862] = 5, - ACTIONS(309), 1, - ts_builtin_sym_end, - ACTIONS(311), 1, + [2957] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(23), 1, anon_sym_LF, - STATE(86), 1, + ACTIONS(317), 1, + ts_builtin_sym_end, + STATE(31), 1, aux_sym__linebreak, - STATE(110), 1, - aux_sym_source_file_repeat1, + STATE(154), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2879] = 5, - ACTIONS(27), 1, - anon_sym_LBRACE, - ACTIONS(313), 1, - anon_sym_COLON, - STATE(143), 1, - sym_block, - STATE(145), 1, - sym_interface_ports, + [2977] = 4, + ACTIONS(247), 1, + anon_sym_DASH_GT, + STATE(141), 1, + sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2896] = 2, + ACTIONS(319), 3, + anon_sym_LF, + anon_sym_LBRACE, + anon_sym_RBRACE, + [2993] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(315), 4, + ACTIONS(321), 4, ts_builtin_sym_end, anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [2907] = 5, - ACTIONS(317), 1, - anon_sym_LF, - ACTIONS(319), 1, - anon_sym_RBRACE, - STATE(7), 1, - aux_sym__linebreak, - STATE(126), 1, - aux_sym_block_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [2924] = 5, - ACTIONS(321), 1, + [3004] = 5, + ACTIONS(295), 1, anon_sym_LF, - ACTIONS(323), 1, + ACTIONS(297), 1, anon_sym_RBRACE, STATE(6), 1, aux_sym__linebreak, - STATE(126), 1, + STATE(122), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2941] = 2, + [3021] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(325), 4, + ACTIONS(323), 4, ts_builtin_sym_end, anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [2952] = 2, + [3032] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6213,491 +6389,557 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [2963] = 2, + [3043] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(327), 4, + ACTIONS(323), 4, ts_builtin_sym_end, anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [2974] = 5, - ACTIONS(329), 1, + [3054] = 5, + ACTIONS(327), 1, anon_sym_COMMA, - ACTIONS(332), 1, + ACTIONS(330), 1, anon_sym_RPAREN, - STATE(57), 1, + STATE(46), 1, sym__comma, - STATE(101), 1, + STATE(103), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2991] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(151), 4, - anon_sym_COMMA, - anon_sym_LF, - anon_sym_RBRACE, - anon_sym_EQ, - [3002] = 2, + [3071] = 4, + ACTIONS(332), 1, + anon_sym_COLON, + STATE(150), 1, + sym_interface_ports, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(334), 4, - ts_builtin_sym_end, + ACTIONS(334), 2, anon_sym_LF, anon_sym_RBRACE, - anon_sym_else, - [3013] = 5, + [3086] = 5, ACTIONS(336), 1, ts_builtin_sym_end, ACTIONS(338), 1, anon_sym_LF, - STATE(83), 1, + STATE(91), 1, aux_sym__linebreak, - STATE(93), 1, + STATE(110), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3030] = 2, + [3103] = 5, + ACTIONS(340), 1, + anon_sym_LF, + ACTIONS(342), 1, + anon_sym_RBRACE, + STATE(4), 1, + aux_sym__linebreak, + STATE(130), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(334), 4, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_RBRACE, - anon_sym_else, - [3041] = 4, - ACTIONS(313), 1, + [3120] = 5, + ACTIONS(29), 1, + anon_sym_LBRACE, + ACTIONS(332), 1, anon_sym_COLON, - STATE(146), 1, + STATE(147), 1, + sym_block, + STATE(149), 1, sym_interface_ports, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(340), 2, - anon_sym_LF, - anon_sym_RBRACE, - [3056] = 2, + [3137] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(342), 4, + ACTIONS(344), 4, ts_builtin_sym_end, anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3067] = 3, - ACTIONS(184), 1, - sym_identifier, + [3148] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(135), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [3080] = 5, - ACTIONS(344), 1, + ACTIONS(346), 4, ts_builtin_sym_end, - ACTIONS(346), 1, anon_sym_LF, - STATE(87), 1, + anon_sym_RBRACE, + anon_sym_else, + [3159] = 5, + ACTIONS(348), 1, + ts_builtin_sym_end, + ACTIONS(350), 1, + anon_sym_LF, + STATE(92), 1, aux_sym__linebreak, - STATE(110), 1, + STATE(128), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3097] = 5, - ACTIONS(348), 1, + [3176] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(346), 4, ts_builtin_sym_end, - ACTIONS(350), 1, anon_sym_LF, - STATE(110), 1, - aux_sym_source_file_repeat1, - STATE(113), 1, + anon_sym_RBRACE, + anon_sym_else, + [3187] = 5, + ACTIONS(352), 1, + ts_builtin_sym_end, + ACTIONS(354), 1, + anon_sym_LF, + STATE(93), 1, aux_sym__linebreak, + STATE(134), 1, + aux_sym_source_file_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [3204] = 3, + ACTIONS(186), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3114] = 2, + STATE(138), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [3217] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(157), 4, - anon_sym_COMMA, + ACTIONS(356), 4, + ts_builtin_sym_end, anon_sym_LF, anon_sym_RBRACE, - anon_sym_EQ, - [3125] = 2, + anon_sym_else, + [3228] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(342), 4, + ACTIONS(356), 4, ts_builtin_sym_end, anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3136] = 5, + [3239] = 5, ACTIONS(7), 1, anon_sym_module, - ACTIONS(21), 1, + ACTIONS(23), 1, anon_sym_LF, - STATE(32), 1, + STATE(31), 1, aux_sym__linebreak, - STATE(142), 1, + STATE(154), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3153] = 2, + [3256] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(353), 4, - ts_builtin_sym_end, + ACTIONS(155), 4, + anon_sym_COMMA, anon_sym_LF, anon_sym_RBRACE, - anon_sym_else, - [3164] = 2, + anon_sym_EQ, + [3267] = 5, + ACTIONS(301), 1, + anon_sym_LF, + ACTIONS(303), 1, + anon_sym_RBRACE, + STATE(5), 1, + aux_sym__linebreak, + STATE(106), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(355), 4, + [3284] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(358), 4, ts_builtin_sym_end, anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3175] = 5, - ACTIONS(357), 1, + [3295] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(163), 4, + anon_sym_COMMA, anon_sym_LF, - ACTIONS(359), 1, anon_sym_RBRACE, - STATE(4), 1, + anon_sym_EQ, + [3306] = 5, + ACTIONS(360), 1, + anon_sym_LF, + ACTIONS(362), 1, + anon_sym_RBRACE, + STATE(8), 1, aux_sym__linebreak, - STATE(126), 1, + STATE(130), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3192] = 5, - ACTIONS(361), 1, + [3323] = 5, + ACTIONS(364), 1, anon_sym_LF, - ACTIONS(363), 1, + ACTIONS(366), 1, anon_sym_RBRACE, - STATE(3), 1, + STATE(7), 1, aux_sym__linebreak, - STATE(126), 1, + STATE(130), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3209] = 2, + [3340] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(365), 4, + ACTIONS(368), 4, anon_sym_COMMA, anon_sym_LF, anon_sym_RBRACE, anon_sym_EQ, - [3220] = 5, - ACTIONS(291), 1, - anon_sym_LF, - ACTIONS(293), 1, - anon_sym_RBRACE, - STATE(9), 1, - aux_sym__linebreak, - STATE(117), 1, - aux_sym_block_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3237] = 5, - ACTIONS(161), 1, + [3351] = 5, + ACTIONS(159), 1, anon_sym_COMMA, - ACTIONS(367), 1, + ACTIONS(370), 1, anon_sym_RPAREN, - STATE(57), 1, + STATE(46), 1, sym__comma, - STATE(101), 1, + STATE(103), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3254] = 2, + [3368] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(369), 4, + ACTIONS(372), 4, ts_builtin_sym_end, anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3265] = 4, - ACTIONS(27), 1, + [3379] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(374), 4, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_RBRACE, + anon_sym_else, + [3390] = 4, + ACTIONS(29), 1, anon_sym_LBRACE, - ACTIONS(371), 1, + ACTIONS(376), 1, anon_sym_if, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(144), 2, + STATE(151), 2, sym_block, sym_if_statement, - [3280] = 5, - ACTIONS(373), 1, + [3405] = 5, + ACTIONS(378), 1, ts_builtin_sym_end, - ACTIONS(375), 1, + ACTIONS(380), 1, anon_sym_LF, - STATE(90), 1, + STATE(116), 1, aux_sym__linebreak, - STATE(109), 1, + STATE(128), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3297] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(377), 4, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_RBRACE, - anon_sym_else, - [3308] = 2, + [3422] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(379), 4, + ACTIONS(383), 4, ts_builtin_sym_end, anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3319] = 5, - ACTIONS(381), 1, + [3433] = 5, + ACTIONS(385), 1, anon_sym_LF, - ACTIONS(384), 1, + ACTIONS(388), 1, anon_sym_RBRACE, STATE(10), 1, aux_sym__linebreak, - STATE(126), 1, + STATE(130), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3336] = 2, + [3450] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(377), 4, + ACTIONS(383), 4, ts_builtin_sym_end, anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3347] = 5, - ACTIONS(285), 1, + [3461] = 5, + ACTIONS(390), 1, anon_sym_LF, - ACTIONS(287), 1, + ACTIONS(392), 1, anon_sym_RBRACE, - STATE(5), 1, + STATE(3), 1, aux_sym__linebreak, - STATE(97), 1, + STATE(130), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3364] = 2, + [3478] = 3, + ACTIONS(186), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(386), 3, + STATE(146), 3, + sym_global_identifier, + sym_array_type, + sym__type, + [3491] = 5, + ACTIONS(394), 1, + ts_builtin_sym_end, + ACTIONS(396), 1, anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - [3374] = 2, + STATE(96), 1, + aux_sym__linebreak, + STATE(128), 1, + aux_sym_source_file_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [3508] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(388), 3, + ACTIONS(398), 3, anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, - [3384] = 2, + [3518] = 4, + ACTIONS(94), 1, + anon_sym_LBRACK, + ACTIONS(400), 1, + sym_identifier, + STATE(153), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [3532] = 4, + ACTIONS(94), 1, + anon_sym_LBRACK, + ACTIONS(402), 1, + sym_identifier, + STATE(153), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [3546] = 4, + ACTIONS(94), 1, + anon_sym_LBRACK, + ACTIONS(404), 1, + sym_identifier, + STATE(153), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [3560] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(390), 3, + ACTIONS(406), 3, anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, - [3394] = 3, - ACTIONS(289), 1, - anon_sym_EQ, + [3570] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(392), 2, + ACTIONS(408), 3, anon_sym_LF, + anon_sym_LBRACE, anon_sym_RBRACE, - [3406] = 2, + [3580] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(394), 3, + ACTIONS(410), 3, anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, - [3416] = 3, - ACTIONS(398), 1, - anon_sym_else, + [3590] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(396), 2, + ACTIONS(412), 3, anon_sym_LF, + anon_sym_LBRACE, anon_sym_RBRACE, - [3428] = 4, - ACTIONS(92), 1, - anon_sym_LBRACK, - ACTIONS(400), 1, - sym_identifier, - STATE(140), 1, - sym_array_bracket_expression, + [3600] = 3, + ACTIONS(299), 1, + anon_sym_EQ, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3442] = 2, + ACTIONS(414), 2, + anon_sym_LF, + anon_sym_RBRACE, + [3612] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(402), 3, + ACTIONS(416), 3, anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, - [3452] = 2, + [3622] = 3, + ACTIONS(420), 1, + anon_sym_else, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(404), 3, + ACTIONS(418), 2, anon_sym_LF, - anon_sym_LBRACE, anon_sym_RBRACE, - [3462] = 4, - ACTIONS(92), 1, + [3634] = 4, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(406), 1, + ACTIONS(422), 1, sym_identifier, - STATE(140), 1, + STATE(153), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3476] = 2, + [3648] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(408), 2, + ACTIONS(424), 2, ts_builtin_sym_end, anon_sym_LF, - [3485] = 2, + [3657] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(410), 2, - sym_identifier, - anon_sym_LBRACK, - [3494] = 2, + ACTIONS(414), 2, + anon_sym_LF, + anon_sym_RBRACE, + [3666] = 3, + ACTIONS(29), 1, + anon_sym_LBRACE, + STATE(152), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(392), 2, - anon_sym_LF, - anon_sym_RBRACE, - [3503] = 2, + [3677] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(412), 2, - ts_builtin_sym_end, + ACTIONS(426), 2, anon_sym_LF, - [3512] = 2, + anon_sym_RBRACE, + [3686] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(414), 2, - ts_builtin_sym_end, + ACTIONS(428), 2, anon_sym_LF, - [3521] = 2, + anon_sym_RBRACE, + [3695] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(416), 2, + ACTIONS(430), 2, + ts_builtin_sym_end, anon_sym_LF, - anon_sym_RBRACE, - [3530] = 3, - ACTIONS(27), 1, - anon_sym_LBRACE, - STATE(139), 1, - sym_block, + [3704] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3541] = 2, + ACTIONS(432), 2, + sym_identifier, + anon_sym_LBRACK, + [3713] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(418), 2, + ACTIONS(434), 2, + ts_builtin_sym_end, anon_sym_LF, - anon_sym_RBRACE, - [3550] = 2, + [3722] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(420), 2, + ACTIONS(436), 2, anon_sym_LF, anon_sym_RBRACE, - [3559] = 2, - ACTIONS(422), 1, + [3731] = 2, + ACTIONS(438), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3567] = 2, - ACTIONS(424), 1, + [3739] = 2, + ACTIONS(440), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3575] = 2, - ACTIONS(426), 1, - ts_builtin_sym_end, + [3747] = 2, + ACTIONS(442), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3583] = 2, - ACTIONS(428), 1, + [3755] = 2, + ACTIONS(444), 1, anon_sym_in, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3591] = 2, - ACTIONS(430), 1, + [3763] = 2, + ACTIONS(446), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3599] = 2, - ACTIONS(432), 1, - sym_identifier, + [3771] = 2, + ACTIONS(448), 1, + ts_builtin_sym_end, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6707,146 +6949,154 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(11)] = 0, [SMALL_STATE(12)] = 43, [SMALL_STATE(13)] = 86, - [SMALL_STATE(14)] = 129, - [SMALL_STATE(15)] = 191, - [SMALL_STATE(16)] = 247, - [SMALL_STATE(17)] = 307, - [SMALL_STATE(18)] = 365, - [SMALL_STATE(19)] = 413, - [SMALL_STATE(20)] = 465, - [SMALL_STATE(21)] = 503, - [SMALL_STATE(22)] = 551, - [SMALL_STATE(23)] = 612, - [SMALL_STATE(24)] = 649, - [SMALL_STATE(25)] = 685, - [SMALL_STATE(26)] = 721, - [SMALL_STATE(27)] = 757, - [SMALL_STATE(28)] = 793, - [SMALL_STATE(29)] = 829, - [SMALL_STATE(30)] = 865, - [SMALL_STATE(31)] = 901, - [SMALL_STATE(32)] = 964, - [SMALL_STATE(33)] = 1001, - [SMALL_STATE(34)] = 1059, - [SMALL_STATE(35)] = 1105, - [SMALL_STATE(36)] = 1163, - [SMALL_STATE(37)] = 1225, - [SMALL_STATE(38)] = 1260, - [SMALL_STATE(39)] = 1316, - [SMALL_STATE(40)] = 1372, - [SMALL_STATE(41)] = 1426, - [SMALL_STATE(42)] = 1480, - [SMALL_STATE(43)] = 1533, - [SMALL_STATE(44)] = 1586, - [SMALL_STATE(45)] = 1639, - [SMALL_STATE(46)] = 1675, - [SMALL_STATE(47)] = 1708, - [SMALL_STATE(48)] = 1741, - [SMALL_STATE(49)] = 1774, - [SMALL_STATE(50)] = 1807, - [SMALL_STATE(51)] = 1840, - [SMALL_STATE(52)] = 1873, - [SMALL_STATE(53)] = 1906, - [SMALL_STATE(54)] = 1939, - [SMALL_STATE(55)] = 1972, - [SMALL_STATE(56)] = 2005, - [SMALL_STATE(57)] = 2038, - [SMALL_STATE(58)] = 2071, - [SMALL_STATE(59)] = 2104, - [SMALL_STATE(60)] = 2137, - [SMALL_STATE(61)] = 2170, - [SMALL_STATE(62)] = 2199, - [SMALL_STATE(63)] = 2228, - [SMALL_STATE(64)] = 2255, - [SMALL_STATE(65)] = 2282, - [SMALL_STATE(66)] = 2304, - [SMALL_STATE(67)] = 2339, - [SMALL_STATE(68)] = 2374, - [SMALL_STATE(69)] = 2395, - [SMALL_STATE(70)] = 2424, - [SMALL_STATE(71)] = 2453, - [SMALL_STATE(72)] = 2473, - [SMALL_STATE(73)] = 2493, - [SMALL_STATE(74)] = 2507, - [SMALL_STATE(75)] = 2527, - [SMALL_STATE(76)] = 2547, - [SMALL_STATE(77)] = 2567, - [SMALL_STATE(78)] = 2587, - [SMALL_STATE(79)] = 2601, - [SMALL_STATE(80)] = 2621, - [SMALL_STATE(81)] = 2640, - [SMALL_STATE(82)] = 2659, - [SMALL_STATE(83)] = 2678, - [SMALL_STATE(84)] = 2698, - [SMALL_STATE(85)] = 2718, - [SMALL_STATE(86)] = 2738, - [SMALL_STATE(87)] = 2758, - [SMALL_STATE(88)] = 2778, - [SMALL_STATE(89)] = 2798, - [SMALL_STATE(90)] = 2814, - [SMALL_STATE(91)] = 2834, - [SMALL_STATE(92)] = 2846, - [SMALL_STATE(93)] = 2862, - [SMALL_STATE(94)] = 2879, - [SMALL_STATE(95)] = 2896, - [SMALL_STATE(96)] = 2907, - [SMALL_STATE(97)] = 2924, - [SMALL_STATE(98)] = 2941, - [SMALL_STATE(99)] = 2952, - [SMALL_STATE(100)] = 2963, - [SMALL_STATE(101)] = 2974, - [SMALL_STATE(102)] = 2991, - [SMALL_STATE(103)] = 3002, - [SMALL_STATE(104)] = 3013, - [SMALL_STATE(105)] = 3030, - [SMALL_STATE(106)] = 3041, - [SMALL_STATE(107)] = 3056, - [SMALL_STATE(108)] = 3067, - [SMALL_STATE(109)] = 3080, - [SMALL_STATE(110)] = 3097, - [SMALL_STATE(111)] = 3114, - [SMALL_STATE(112)] = 3125, - [SMALL_STATE(113)] = 3136, - [SMALL_STATE(114)] = 3153, - [SMALL_STATE(115)] = 3164, - [SMALL_STATE(116)] = 3175, - [SMALL_STATE(117)] = 3192, - [SMALL_STATE(118)] = 3209, - [SMALL_STATE(119)] = 3220, - [SMALL_STATE(120)] = 3237, - [SMALL_STATE(121)] = 3254, - [SMALL_STATE(122)] = 3265, - [SMALL_STATE(123)] = 3280, - [SMALL_STATE(124)] = 3297, - [SMALL_STATE(125)] = 3308, - [SMALL_STATE(126)] = 3319, - [SMALL_STATE(127)] = 3336, - [SMALL_STATE(128)] = 3347, - [SMALL_STATE(129)] = 3364, - [SMALL_STATE(130)] = 3374, - [SMALL_STATE(131)] = 3384, - [SMALL_STATE(132)] = 3394, - [SMALL_STATE(133)] = 3406, - [SMALL_STATE(134)] = 3416, - [SMALL_STATE(135)] = 3428, - [SMALL_STATE(136)] = 3442, - [SMALL_STATE(137)] = 3452, - [SMALL_STATE(138)] = 3462, - [SMALL_STATE(139)] = 3476, - [SMALL_STATE(140)] = 3485, - [SMALL_STATE(141)] = 3494, - [SMALL_STATE(142)] = 3503, - [SMALL_STATE(143)] = 3512, - [SMALL_STATE(144)] = 3521, - [SMALL_STATE(145)] = 3530, - [SMALL_STATE(146)] = 3541, - [SMALL_STATE(147)] = 3550, - [SMALL_STATE(148)] = 3559, - [SMALL_STATE(149)] = 3567, - [SMALL_STATE(150)] = 3575, - [SMALL_STATE(151)] = 3583, - [SMALL_STATE(152)] = 3591, - [SMALL_STATE(153)] = 3599, + [SMALL_STATE(14)] = 151, + [SMALL_STATE(15)] = 194, + [SMALL_STATE(16)] = 256, + [SMALL_STATE(17)] = 312, + [SMALL_STATE(18)] = 372, + [SMALL_STATE(19)] = 410, + [SMALL_STATE(20)] = 458, + [SMALL_STATE(21)] = 510, + [SMALL_STATE(22)] = 558, + [SMALL_STATE(23)] = 616, + [SMALL_STATE(24)] = 653, + [SMALL_STATE(25)] = 689, + [SMALL_STATE(26)] = 725, + [SMALL_STATE(27)] = 761, + [SMALL_STATE(28)] = 797, + [SMALL_STATE(29)] = 833, + [SMALL_STATE(30)] = 869, + [SMALL_STATE(31)] = 905, + [SMALL_STATE(32)] = 944, + [SMALL_STATE(33)] = 1007, + [SMALL_STATE(34)] = 1057, + [SMALL_STATE(35)] = 1115, + [SMALL_STATE(36)] = 1177, + [SMALL_STATE(37)] = 1235, + [SMALL_STATE(38)] = 1270, + [SMALL_STATE(39)] = 1324, + [SMALL_STATE(40)] = 1380, + [SMALL_STATE(41)] = 1436, + [SMALL_STATE(42)] = 1490, + [SMALL_STATE(43)] = 1543, + [SMALL_STATE(44)] = 1596, + [SMALL_STATE(45)] = 1649, + [SMALL_STATE(46)] = 1685, + [SMALL_STATE(47)] = 1718, + [SMALL_STATE(48)] = 1749, + [SMALL_STATE(49)] = 1782, + [SMALL_STATE(50)] = 1815, + [SMALL_STATE(51)] = 1848, + [SMALL_STATE(52)] = 1881, + [SMALL_STATE(53)] = 1914, + [SMALL_STATE(54)] = 1947, + [SMALL_STATE(55)] = 1980, + [SMALL_STATE(56)] = 2013, + [SMALL_STATE(57)] = 2046, + [SMALL_STATE(58)] = 2079, + [SMALL_STATE(59)] = 2112, + [SMALL_STATE(60)] = 2145, + [SMALL_STATE(61)] = 2176, + [SMALL_STATE(62)] = 2209, + [SMALL_STATE(63)] = 2242, + [SMALL_STATE(64)] = 2271, + [SMALL_STATE(65)] = 2300, + [SMALL_STATE(66)] = 2324, + [SMALL_STATE(67)] = 2363, + [SMALL_STATE(68)] = 2402, + [SMALL_STATE(69)] = 2425, + [SMALL_STATE(70)] = 2458, + [SMALL_STATE(71)] = 2491, + [SMALL_STATE(72)] = 2511, + [SMALL_STATE(73)] = 2531, + [SMALL_STATE(74)] = 2551, + [SMALL_STATE(75)] = 2575, + [SMALL_STATE(76)] = 2599, + [SMALL_STATE(77)] = 2619, + [SMALL_STATE(78)] = 2639, + [SMALL_STATE(79)] = 2653, + [SMALL_STATE(80)] = 2667, + [SMALL_STATE(81)] = 2681, + [SMALL_STATE(82)] = 2701, + [SMALL_STATE(83)] = 2721, + [SMALL_STATE(84)] = 2735, + [SMALL_STATE(85)] = 2752, + [SMALL_STATE(86)] = 2771, + [SMALL_STATE(87)] = 2790, + [SMALL_STATE(88)] = 2809, + [SMALL_STATE(89)] = 2829, + [SMALL_STATE(90)] = 2849, + [SMALL_STATE(91)] = 2869, + [SMALL_STATE(92)] = 2889, + [SMALL_STATE(93)] = 2909, + [SMALL_STATE(94)] = 2929, + [SMALL_STATE(95)] = 2945, + [SMALL_STATE(96)] = 2957, + [SMALL_STATE(97)] = 2977, + [SMALL_STATE(98)] = 2993, + [SMALL_STATE(99)] = 3004, + [SMALL_STATE(100)] = 3021, + [SMALL_STATE(101)] = 3032, + [SMALL_STATE(102)] = 3043, + [SMALL_STATE(103)] = 3054, + [SMALL_STATE(104)] = 3071, + [SMALL_STATE(105)] = 3086, + [SMALL_STATE(106)] = 3103, + [SMALL_STATE(107)] = 3120, + [SMALL_STATE(108)] = 3137, + [SMALL_STATE(109)] = 3148, + [SMALL_STATE(110)] = 3159, + [SMALL_STATE(111)] = 3176, + [SMALL_STATE(112)] = 3187, + [SMALL_STATE(113)] = 3204, + [SMALL_STATE(114)] = 3217, + [SMALL_STATE(115)] = 3228, + [SMALL_STATE(116)] = 3239, + [SMALL_STATE(117)] = 3256, + [SMALL_STATE(118)] = 3267, + [SMALL_STATE(119)] = 3284, + [SMALL_STATE(120)] = 3295, + [SMALL_STATE(121)] = 3306, + [SMALL_STATE(122)] = 3323, + [SMALL_STATE(123)] = 3340, + [SMALL_STATE(124)] = 3351, + [SMALL_STATE(125)] = 3368, + [SMALL_STATE(126)] = 3379, + [SMALL_STATE(127)] = 3390, + [SMALL_STATE(128)] = 3405, + [SMALL_STATE(129)] = 3422, + [SMALL_STATE(130)] = 3433, + [SMALL_STATE(131)] = 3450, + [SMALL_STATE(132)] = 3461, + [SMALL_STATE(133)] = 3478, + [SMALL_STATE(134)] = 3491, + [SMALL_STATE(135)] = 3508, + [SMALL_STATE(136)] = 3518, + [SMALL_STATE(137)] = 3532, + [SMALL_STATE(138)] = 3546, + [SMALL_STATE(139)] = 3560, + [SMALL_STATE(140)] = 3570, + [SMALL_STATE(141)] = 3580, + [SMALL_STATE(142)] = 3590, + [SMALL_STATE(143)] = 3600, + [SMALL_STATE(144)] = 3612, + [SMALL_STATE(145)] = 3622, + [SMALL_STATE(146)] = 3634, + [SMALL_STATE(147)] = 3648, + [SMALL_STATE(148)] = 3657, + [SMALL_STATE(149)] = 3666, + [SMALL_STATE(150)] = 3677, + [SMALL_STATE(151)] = 3686, + [SMALL_STATE(152)] = 3695, + [SMALL_STATE(153)] = 3704, + [SMALL_STATE(154)] = 3713, + [SMALL_STATE(155)] = 3722, + [SMALL_STATE(156)] = 3731, + [SMALL_STATE(157)] = 3739, + [SMALL_STATE(158)] = 3747, + [SMALL_STATE(159)] = 3755, + [SMALL_STATE(160)] = 3763, + [SMALL_STATE(161)] = 3771, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -6854,215 +7104,223 @@ static const TSParseActionEntry ts_parse_actions[] = { [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 = true}}, SHIFT(148), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(108), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), - [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), - [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(153), - [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), - [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74), - [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), - [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [53] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 2), - [55] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 2), - [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), - [59] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), - [61] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), - [63] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), SHIFT_REPEAT(149), - [66] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 1), - [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 1), - [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 29), - [72] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [74] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), - [76] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [78] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [82] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [84] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 29), - [86] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51), - [88] = {.entry = {.count = 1, .reusable = false}}, SHIFT(152), - [90] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [94] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), - [96] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), - [98] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 18), - [100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 18), - [102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 26), - [104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 26), - [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), - [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 30), - [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 30), - [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 26), - [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 26), - [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 15), - [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 15), - [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 20), - [128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 20), - [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 26), - [136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [138] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), - [140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), - [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 26), - [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), - [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), - [148] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(32), - [151] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 9), - [153] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 9), - [155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 21), - [159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 21), - [161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [165] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), - [167] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [169] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [171] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), - [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 32), - [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(84), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(133), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), + [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(158), + [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), + [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), + [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), + [55] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 1), + [57] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 1), + [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), + [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), + [65] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), SHIFT_REPEAT(156), + [68] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 2), + [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 2), + [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 30), + [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [76] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), + [78] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [82] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [84] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 30), + [88] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51), + [90] = {.entry = {.count = 1, .reusable = false}}, SHIFT(160), + [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [96] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), + [98] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), + [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 18), + [102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 18), + [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 27), + [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 27), + [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 31), + [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 31), + [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 15), + [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 15), + [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 20), + [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 20), + [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), + [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 27), + [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 27), + [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), + [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), + [140] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(31), + [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 27), + [145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61), + [149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), + [151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 27), + [153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 21), + [157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 21), + [159] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [163] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 9), + [165] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 9), + [167] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), + [169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [171] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [173] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), + [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 33), + [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), + [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), + [196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), + [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [220] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), - [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), - [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [226] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), - [228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), - [230] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [234] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(65), - [237] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), - [239] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), - [241] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [249] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [255] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 23), - [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 14), - [261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 33), - [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), - [265] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), - [267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 24), - [269] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(61), - [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), - [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), - [276] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(61), - [279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), - [281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), - [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), - [285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [289] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), - [295] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), - [297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), - [299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 8), - [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), - [305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), - [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 17), - [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), - [311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), - [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), - [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 34), - [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [329] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(61), - [332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), - [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), + [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [222] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), + [224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), + [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [232] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), + [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), + [236] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [240] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(65), + [243] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [251] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 23), + [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 24), + [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 34), + [265] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 14), + [267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), + [269] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 25), + [271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 35), + [273] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 36), + [275] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), + [277] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(60), + [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), + [282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 38), + [284] = {.entry = {.count = 1, .reusable = false}}, SHIFT(113), + [286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), + [288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), + [290] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(60), + [293] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), + [295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), + [299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), + [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), + [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), + [313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 8), + [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), + [317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), + [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 17), + [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 32), + [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 37), + [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [327] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(60), + [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), + [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 19), [336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), - [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [340] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 19), - [342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 34), - [344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), - [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), - [350] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(113), - [353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 31), - [355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 31), - [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), - [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), - [367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [369] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), - [371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), - [375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), - [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [381] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), - [384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), - [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 16), - [388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), - [390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 13), - [392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), - [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 22), - [396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 28), - [398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), + [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), + [344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), + [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), + [348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), + [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), + [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 37), + [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 32), + [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), + [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), + [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), + [380] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(116), + [383] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), + [385] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), + [388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), + [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), + [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), + [396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 12), [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 25), - [404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 12), - [406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 11), - [410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 15), - [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), - [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), - [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 35), - [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 27), - [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 36), - [422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [426] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), + [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 16), + [408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 22), + [410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 26), + [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), + [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), + [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 13), + [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 29), + [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), + [426] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 28), + [428] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 39), + [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 11), + [432] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 15), + [434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), + [436] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 40), + [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [448] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), }; #ifdef __cplusplus From 3fd7685261c5f9e870fe59557f5da12edc33fc70 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Mon, 17 Jun 2024 22:28:37 +0200 Subject: [PATCH 27/49] Restructured order of grammar.js, with dependencies going down the file --- grammar.js | 220 +-- src/grammar.json | 1060 +++++------ src/parser.c | 4627 +++++++++++++++++++++++----------------------- 3 files changed, 2965 insertions(+), 2942 deletions(-) diff --git a/grammar.js b/grammar.js index d736bed..b5932c8 100644 --- a/grammar.js +++ b/grammar.js @@ -37,18 +37,17 @@ module.exports = grammar({ name: 'sus', rules: { + // Top level structure + source_file: $ => newlineSepSeq($, $.module), - _comma: $ => seq( - ',', - optional($._linebreak) + module: $ => seq( + 'module', + field('name', $.identifier), + optional(field('interface_ports', $.interface_ports)), + field('block', $.block) ), - _interface_ports_output: $ => seq( - '->', - optional($._linebreak), - field('outputs', $.declaration_list) - ), interface_ports: $ => seq( ':', optional($._linebreak), @@ -60,26 +59,99 @@ module.exports = grammar({ $._interface_ports_output ), ), + _interface_ports_output: $ => seq( + '->', + optional($._linebreak), + field('outputs', $.declaration_list) + ), - declaration_list: $ => sepSeq1( - field('item', $.declaration), + // Statements + + block: $ => seq( + '{', + newlineSepSeq($, choice( + $.block, + $.decl_assign_statement, + + // Decls should only allow a single declaration, and cannot contain expressions, + // but we allow some tolerance in the grammar here, so we can generate better errors after. + $.assign_left_side, + $.if_statement, + $.for_statement, + $.interface_statement + )), + '}' + ), + + interface_statement: $ => seq( + 'interface', + field('name', $.identifier), + optional(field('interface_ports', $.interface_ports)) + ), + + decl_assign_statement: $ => seq( + field('assign_left', $.assign_left_side), + '=', + field('assign_value', $._expression) + ), + assign_left_side: $ => sepSeq1( + field('item', $.assign_to), $._comma ), + assign_to: $ => seq( + optional(field('write_modifiers', $.write_modifiers)), + field('expr_or_decl', choice( + $._expression, + $.declaration + )) + ), + write_modifiers: $ => choice( + repeat1(field('item', 'reg')), + field('item', 'initial') + ), - module: $ => seq( - 'module', - field('name', $.identifier), - optional(field('interface_ports', $.interface_ports)), + if_statement: $ => seq( + 'if', + field('condition', $._expression), + field('then_block', $.block), + optional(seq( + 'else', + field('else_block', choice( + $.block, + $.if_statement + )) + )) + ), + for_statement: $ => seq( + 'for', + field('for_decl', $.declaration), + 'in', + field('from', $._expression), + '..', + field('to', $._expression), field('block', $.block) ), - identifier: $ => /[\p{Alphabetic}_][\p{Alphabetic}_\p{Decimal_Number}]*/, - number: $ => /\d[\d_]*/, + // Declarations - global_identifier: $ => prec(PREC.namespace_path, seq( - //optional('::'), - sepSeq1(field('item', $.identifier), '::') - )), + declaration_list: $ => sepSeq1( + field('item', $.declaration), + $._comma + ), + + declaration: $ => seq( + optional(field('io_port_modifiers', choice( + 'input', + 'output' + ))), + optional(field('declaration_modifiers', choice( + 'state', + 'gen' + ))), + field('type', $._type), + field('name', $.identifier), + optional(field('latency_specifier', $.latency_specifier)) + ), array_type: $ => seq( field('arr', $._type), @@ -95,18 +167,17 @@ module.exports = grammar({ field('content', $._expression) )), - declaration: $ => seq( - optional(field('io_port_modifiers', choice( - 'input', - 'output' - ))), - optional(field('declaration_modifiers', choice( - 'state', - 'gen' - ))), - field('type', $._type), - field('name', $.identifier), - optional(field('latency_specifier', $.latency_specifier)) + // Expressions + + _expression: $ => choice( + $.global_identifier, + $.array_op, + $.number, + $.parenthesis_expression, + $.unary_op, + $.binary_op, + $.func_call, + $.field_access ), unary_op: $ => prec(PREC.unary, seq( @@ -165,85 +236,24 @@ module.exports = grammar({ ']' ), - _expression: $ => choice( - $.global_identifier, - $.array_op, - $.number, - $.parenthesis_expression, - $.unary_op, - $.binary_op, - $.func_call, - $.field_access - ), + // Utilities - _linebreak: $ => repeat1('\n'), // For things that must be separated by at least one newline (whitespace after is to optimize gobbling up any extra newlines) - - write_modifiers: $ => choice( - repeat1(field('item', 'reg')), - field('item', 'initial') + _comma: $ => seq( + ',', + optional($._linebreak) ), - assign_to: $ => seq( - optional(field('write_modifiers', $.write_modifiers)), - field('expr_or_decl', choice( - $._expression, - $.declaration - )) - ), - assign_left_side: $ => sepSeq1( - field('item', $.assign_to), - $._comma - ), + _linebreak: $ => repeat1('\n'), // For things that must be separated by at least one newline (whitespace after is to optimize gobbling up any extra newlines) - block: $ => seq( - '{', - newlineSepSeq($, choice( - $.block, - $.decl_assign_statement, - - // Decls only should only allow a single declaration, and cannot contain expressions, - // but we allow some tolerance in the grammar here, so we can generate better errors after. - $.assign_left_side, - $.if_statement, - $.for_statement, - $.interface_statement - )), - '}' - ), - - interface_statement: $ => seq( - 'interface', - field('name', $.identifier), - optional(field('interface_ports', $.interface_ports)) - ), + global_identifier: $ => prec(PREC.namespace_path, seq( + //optional('::'), + sepSeq1(field('item', $.identifier), '::') + )), - decl_assign_statement: $ => seq( - field('assign_left', $.assign_left_side), - '=', - field('assign_value', $._expression) - ), + identifier: $ => /[\p{Alphabetic}_][\p{Alphabetic}_\p{Decimal_Number}]*/, + number: $ => /\d[\d_]*/, - if_statement: $ => seq( - 'if', - field('condition', $._expression), - field('then_block', $.block), - optional(seq( - 'else', - field('else_block', choice( - $.block, - $.if_statement - )) - )) - ), - for_statement: $ => seq( - 'for', - field('for_decl', $.declaration), - 'in', - field('from', $._expression), - '..', - field('to', $._expression), - field('block', $.block) - ), + // Extras single_line_comment: $ => /\/\/[^\n]*/, multi_line_comment: $ => /\/\*[^\*]*\*+([^\/\*][^\*]*\*+)*\//, diff --git a/src/grammar.json b/src/grammar.json index 38644e6..41dcc55 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -72,40 +72,31 @@ } ] }, - "_comma": { + "module": { "type": "SEQ", "members": [ { "type": "STRING", - "value": "," + "value": "module" }, { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_linebreak" - }, - { - "type": "BLANK" - } - ] - } - ] - }, - "_interface_ports_output": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "->" + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } }, { "type": "CHOICE", "members": [ { - "type": "SYMBOL", - "name": "_linebreak" + "type": "FIELD", + "name": "interface_ports", + "content": { + "type": "SYMBOL", + "name": "interface_ports" + } }, { "type": "BLANK" @@ -114,10 +105,10 @@ }, { "type": "FIELD", - "name": "outputs", + "name": "block", "content": { "type": "SYMBOL", - "name": "declaration_list" + "name": "block" } } ] @@ -177,45 +168,174 @@ } ] }, - "declaration_list": { + "_interface_ports_output": { "type": "SEQ", "members": [ + { + "type": "STRING", + "value": "->" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_linebreak" + }, + { + "type": "BLANK" + } + ] + }, { "type": "FIELD", - "name": "item", + "name": "outputs", "content": { "type": "SYMBOL", - "name": "declaration" + "name": "declaration_list" } + } + ] + }, + "block": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" }, { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_comma" - }, - { - "type": "FIELD", - "name": "item", - "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { "type": "SYMBOL", - "name": "declaration" + "name": "_linebreak" + }, + { + "type": "BLANK" } - } - ] - } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "item", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "block" + }, + { + "type": "SYMBOL", + "name": "decl_assign_statement" + }, + { + "type": "SYMBOL", + "name": "assign_left_side" + }, + { + "type": "SYMBOL", + "name": "if_statement" + }, + { + "type": "SYMBOL", + "name": "for_statement" + }, + { + "type": "SYMBOL", + "name": "interface_statement" + } + ] + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_linebreak" + }, + { + "type": "FIELD", + "name": "item", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "block" + }, + { + "type": "SYMBOL", + "name": "decl_assign_statement" + }, + { + "type": "SYMBOL", + "name": "assign_left_side" + }, + { + "type": "SYMBOL", + "name": "if_statement" + }, + { + "type": "SYMBOL", + "name": "for_statement" + }, + { + "type": "SYMBOL", + "name": "interface_statement" + } + ] + } + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_linebreak" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "STRING", + "value": "}" } ] }, - "module": { + "interface_statement": { "type": "SEQ", "members": [ { "type": "STRING", - "value": "module" + "value": "interface" }, { "type": "FIELD", @@ -240,123 +360,270 @@ "type": "BLANK" } ] + } + ] + }, + "decl_assign_statement": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "assign_left", + "content": { + "type": "SYMBOL", + "name": "assign_left_side" + } + }, + { + "type": "STRING", + "value": "=" }, { "type": "FIELD", - "name": "block", + "name": "assign_value", "content": { "type": "SYMBOL", - "name": "block" + "name": "_expression" } } ] }, - "identifier": { - "type": "PATTERN", - "value": "[\\p{Alphabetic}_][\\p{Alphabetic}_\\p{Decimal_Number}]*" - }, - "number": { - "type": "PATTERN", - "value": "\\d[\\d_]*" - }, - "global_identifier": { - "type": "PREC", - "value": 10, - "content": { - "type": "SEQ", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "item", - "content": { - "type": "SYMBOL", - "name": "identifier" - } + "assign_left_side": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "item", + "content": { + "type": "SYMBOL", + "name": "assign_to" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_comma" }, { - "type": "REPEAT", + "type": "FIELD", + "name": "item", "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "::" - }, - { - "type": "FIELD", - "name": "item", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - } - ] + "type": "SYMBOL", + "name": "assign_to" } } ] } - ] - } + } + ] }, - "array_type": { + "assign_to": { "type": "SEQ", "members": [ { - "type": "FIELD", - "name": "arr", - "content": { - "type": "SYMBOL", - "name": "_type" - } + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "write_modifiers", + "content": { + "type": "SYMBOL", + "name": "write_modifiers" + } + }, + { + "type": "BLANK" + } + ] }, { "type": "FIELD", - "name": "arr_idx", + "name": "expr_or_decl", "content": { - "type": "SYMBOL", - "name": "array_bracket_expression" + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expression" + }, + { + "type": "SYMBOL", + "name": "declaration" + } + ] } } ] }, - "_type": { + "write_modifiers": { "type": "CHOICE", "members": [ { - "type": "SYMBOL", - "name": "global_identifier" + "type": "REPEAT1", + "content": { + "type": "FIELD", + "name": "item", + "content": { + "type": "STRING", + "value": "reg" + } + } }, { - "type": "SYMBOL", - "name": "array_type" + "type": "FIELD", + "name": "item", + "content": { + "type": "STRING", + "value": "initial" + } } ] }, - "latency_specifier": { + "if_statement": { "type": "SEQ", "members": [ { - "type": "SEQ", + "type": "STRING", + "value": "if" + }, + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "SYMBOL", + "name": "_expression" + } + }, + { + "type": "FIELD", + "name": "then_block", + "content": { + "type": "SYMBOL", + "name": "block" + } + }, + { + "type": "CHOICE", "members": [ { - "type": "STRING", - "value": "'" + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "else" + }, + { + "type": "FIELD", + "name": "else_block", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "block" + }, + { + "type": "SYMBOL", + "name": "if_statement" + } + ] + } + } + ] }, { - "type": "FIELD", - "name": "content", - "content": { - "type": "SYMBOL", - "name": "_expression" - } + "type": "BLANK" } ] } ] }, + "for_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "for" + }, + { + "type": "FIELD", + "name": "for_decl", + "content": { + "type": "SYMBOL", + "name": "declaration" + } + }, + { + "type": "STRING", + "value": "in" + }, + { + "type": "FIELD", + "name": "from", + "content": { + "type": "SYMBOL", + "name": "_expression" + } + }, + { + "type": "STRING", + "value": ".." + }, + { + "type": "FIELD", + "name": "to", + "content": { + "type": "SYMBOL", + "name": "_expression" + } + }, + { + "type": "FIELD", + "name": "block", + "content": { + "type": "SYMBOL", + "name": "block" + } + } + ] + }, + "declaration_list": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "item", + "content": { + "type": "SYMBOL", + "name": "declaration" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_comma" + }, + { + "type": "FIELD", + "name": "item", + "content": { + "type": "SYMBOL", + "name": "declaration" + } + } + ] + } + } + ] + }, "declaration": { "type": "SEQ", "members": [ @@ -444,21 +711,114 @@ } ] }, - "unary_op": { - "type": "PREC", - "value": 8, - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "+" + "array_type": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "arr", + "content": { + "type": "SYMBOL", + "name": "_type" + } + }, + { + "type": "FIELD", + "name": "arr_idx", + "content": { + "type": "SYMBOL", + "name": "array_bracket_expression" + } + } + ] + }, + "_type": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "global_identifier" + }, + { + "type": "SYMBOL", + "name": "array_type" + } + ] + }, + "latency_specifier": { + "type": "SEQ", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "'" + }, + { + "type": "FIELD", + "name": "content", + "content": { + "type": "SYMBOL", + "name": "_expression" + } + } + ] + } + ] + }, + "_expression": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "global_identifier" + }, + { + "type": "SYMBOL", + "name": "array_op" + }, + { + "type": "SYMBOL", + "name": "number" + }, + { + "type": "SYMBOL", + "name": "parenthesis_expression" + }, + { + "type": "SYMBOL", + "name": "unary_op" + }, + { + "type": "SYMBOL", + "name": "binary_op" + }, + { + "type": "SYMBOL", + "name": "func_call" + }, + { + "type": "SYMBOL", + "name": "field_access" + } + ] + }, + "unary_op": { + "type": "PREC", + "value": 8, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "+" }, { "type": "STRING", @@ -923,443 +1283,83 @@ } ] }, - "_expression": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "global_identifier" - }, - { - "type": "SYMBOL", - "name": "array_op" - }, - { - "type": "SYMBOL", - "name": "number" - }, - { - "type": "SYMBOL", - "name": "parenthesis_expression" - }, - { - "type": "SYMBOL", - "name": "unary_op" - }, - { - "type": "SYMBOL", - "name": "binary_op" - }, - { - "type": "SYMBOL", - "name": "func_call" - }, - { - "type": "SYMBOL", - "name": "field_access" - } - ] - }, - "_linebreak": { - "type": "REPEAT1", - "content": { - "type": "STRING", - "value": "\n" - } - }, - "write_modifiers": { - "type": "CHOICE", + "_comma": { + "type": "SEQ", "members": [ { - "type": "REPEAT1", - "content": { - "type": "FIELD", - "name": "item", - "content": { - "type": "STRING", - "value": "reg" - } - } + "type": "STRING", + "value": "," }, - { - "type": "FIELD", - "name": "item", - "content": { - "type": "STRING", - "value": "initial" - } - } - ] - }, - "assign_to": { - "type": "SEQ", - "members": [ { "type": "CHOICE", "members": [ { - "type": "FIELD", - "name": "write_modifiers", - "content": { - "type": "SYMBOL", - "name": "write_modifiers" - } + "type": "SYMBOL", + "name": "_linebreak" }, { "type": "BLANK" } ] - }, - { - "type": "FIELD", - "name": "expr_or_decl", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_expression" - }, - { - "type": "SYMBOL", - "name": "declaration" - } - ] - } } ] }, - "assign_left_side": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "item", - "content": { - "type": "SYMBOL", - "name": "assign_to" - } - }, - { - "type": "REPEAT", - "content": { + "_linebreak": { + "type": "REPEAT1", + "content": { + "type": "STRING", + "value": "\n" + } + }, + "global_identifier": { + "type": "PREC", + "value": 10, + "content": { + "type": "SEQ", + "members": [ + { "type": "SEQ", "members": [ - { - "type": "SYMBOL", - "name": "_comma" - }, { "type": "FIELD", "name": "item", "content": { "type": "SYMBOL", - "name": "assign_to" + "name": "identifier" } - } - ] - } - } - ] - }, - "block": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "{" - }, - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_linebreak" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { + }, + { + "type": "REPEAT", + "content": { "type": "SEQ", "members": [ { - "type": "FIELD", - "name": "item", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "block" - }, - { - "type": "SYMBOL", - "name": "decl_assign_statement" - }, - { - "type": "SYMBOL", - "name": "assign_left_side" - }, - { - "type": "SYMBOL", - "name": "if_statement" - }, - { - "type": "SYMBOL", - "name": "for_statement" - }, - { - "type": "SYMBOL", - "name": "interface_statement" - } - ] - } + "type": "STRING", + "value": "::" }, { - "type": "REPEAT", + "type": "FIELD", + "name": "item", "content": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_linebreak" - }, - { - "type": "FIELD", - "name": "item", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "block" - }, - { - "type": "SYMBOL", - "name": "decl_assign_statement" - }, - { - "type": "SYMBOL", - "name": "assign_left_side" - }, - { - "type": "SYMBOL", - "name": "if_statement" - }, - { - "type": "SYMBOL", - "name": "for_statement" - }, - { - "type": "SYMBOL", - "name": "interface_statement" - } - ] - } - } - ] + "type": "SYMBOL", + "name": "identifier" } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_linebreak" - }, - { - "type": "BLANK" - } - ] } ] - }, - { - "type": "BLANK" } - ] - } - ] - }, - { - "type": "STRING", - "value": "}" - } - ] - }, - "interface_statement": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "interface" - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "interface_ports", - "content": { - "type": "SYMBOL", - "name": "interface_ports" } - }, - { - "type": "BLANK" - } - ] - } - ] - }, - "decl_assign_statement": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "assign_left", - "content": { - "type": "SYMBOL", - "name": "assign_left_side" - } - }, - { - "type": "STRING", - "value": "=" - }, - { - "type": "FIELD", - "name": "assign_value", - "content": { - "type": "SYMBOL", - "name": "_expression" + ] } - } - ] + ] + } }, - "if_statement": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "if" - }, - { - "type": "FIELD", - "name": "condition", - "content": { - "type": "SYMBOL", - "name": "_expression" - } - }, - { - "type": "FIELD", - "name": "then_block", - "content": { - "type": "SYMBOL", - "name": "block" - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "else" - }, - { - "type": "FIELD", - "name": "else_block", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "block" - }, - { - "type": "SYMBOL", - "name": "if_statement" - } - ] - } - } - ] - }, - { - "type": "BLANK" - } - ] - } - ] + "identifier": { + "type": "PATTERN", + "value": "[\\p{Alphabetic}_][\\p{Alphabetic}_\\p{Decimal_Number}]*" }, - "for_statement": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "for" - }, - { - "type": "FIELD", - "name": "for_decl", - "content": { - "type": "SYMBOL", - "name": "declaration" - } - }, - { - "type": "STRING", - "value": "in" - }, - { - "type": "FIELD", - "name": "from", - "content": { - "type": "SYMBOL", - "name": "_expression" - } - }, - { - "type": "STRING", - "value": ".." - }, - { - "type": "FIELD", - "name": "to", - "content": { - "type": "SYMBOL", - "name": "_expression" - } - }, - { - "type": "FIELD", - "name": "block", - "content": { - "type": "SYMBOL", - "name": "block" - } - } - ] + "number": { + "type": "PATTERN", + "value": "\\d[\\d_]*" }, "single_line_comment": { "type": "PATTERN", diff --git a/src/parser.c b/src/parser.c index 6ecfa28..dfd575f 100644 --- a/src/parser.c +++ b/src/parser.c @@ -5,7 +5,7 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 162 +#define STATE_COUNT 163 #define LARGE_STATE_COUNT 11 #define SYMBOL_COUNT 83 #define ALIAS_COUNT 0 @@ -17,103 +17,111 @@ enum ts_symbol_identifiers { sym_identifier = 1, - anon_sym_COMMA = 2, - anon_sym_DASH_GT = 3, - anon_sym_COLON = 4, - anon_sym_module = 5, - sym_number = 6, - anon_sym_COLON_COLON = 7, - anon_sym_SQUOTE = 8, - anon_sym_input = 9, - anon_sym_output = 10, - anon_sym_state = 11, - anon_sym_gen = 12, - anon_sym_PLUS = 13, - anon_sym_DASH = 14, - anon_sym_STAR = 15, - anon_sym_BANG = 16, - anon_sym_PIPE = 17, - anon_sym_AMP = 18, - anon_sym_CARET = 19, - anon_sym_EQ_EQ = 20, - anon_sym_BANG_EQ = 21, - anon_sym_LT = 22, - anon_sym_LT_EQ = 23, - anon_sym_GT = 24, - anon_sym_GT_EQ = 25, - anon_sym_SLASH = 26, - anon_sym_PERCENT = 27, - anon_sym_DOT = 28, - anon_sym_LPAREN = 29, - anon_sym_RPAREN = 30, - anon_sym_LBRACK = 31, - anon_sym_RBRACK = 32, - anon_sym_LF = 33, - anon_sym_reg = 34, - anon_sym_initial = 35, - anon_sym_LBRACE = 36, - anon_sym_RBRACE = 37, - anon_sym_interface = 38, - anon_sym_EQ = 39, - anon_sym_if = 40, - anon_sym_else = 41, - anon_sym_for = 42, - anon_sym_in = 43, - anon_sym_DOT_DOT = 44, + anon_sym_module = 2, + anon_sym_COLON = 3, + anon_sym_DASH_GT = 4, + anon_sym_LBRACE = 5, + anon_sym_RBRACE = 6, + anon_sym_interface = 7, + anon_sym_EQ = 8, + anon_sym_reg = 9, + anon_sym_initial = 10, + anon_sym_if = 11, + anon_sym_else = 12, + anon_sym_for = 13, + anon_sym_in = 14, + anon_sym_DOT_DOT = 15, + anon_sym_input = 16, + anon_sym_output = 17, + anon_sym_state = 18, + anon_sym_gen = 19, + anon_sym_SQUOTE = 20, + anon_sym_PLUS = 21, + anon_sym_DASH = 22, + anon_sym_STAR = 23, + anon_sym_BANG = 24, + anon_sym_PIPE = 25, + anon_sym_AMP = 26, + anon_sym_CARET = 27, + anon_sym_EQ_EQ = 28, + anon_sym_BANG_EQ = 29, + anon_sym_LT = 30, + anon_sym_LT_EQ = 31, + anon_sym_GT = 32, + anon_sym_GT_EQ = 33, + anon_sym_SLASH = 34, + anon_sym_PERCENT = 35, + anon_sym_DOT = 36, + anon_sym_LPAREN = 37, + anon_sym_RPAREN = 38, + anon_sym_LBRACK = 39, + anon_sym_RBRACK = 40, + anon_sym_COMMA = 41, + anon_sym_LF = 42, + anon_sym_COLON_COLON = 43, + sym_number = 44, sym_single_line_comment = 45, sym_multi_line_comment = 46, sym_source_file = 47, - sym__comma = 48, - sym__interface_ports_output = 49, - sym_interface_ports = 50, - sym_declaration_list = 51, - sym_module = 52, - sym_global_identifier = 53, - sym_array_type = 54, - sym__type = 55, - sym_latency_specifier = 56, - sym_declaration = 57, - sym_unary_op = 58, - sym_binary_op = 59, - sym_array_op = 60, - sym_func_call = 61, - sym_field_access = 62, - sym_parenthesis_expression_list = 63, - sym_parenthesis_expression = 64, - sym_array_bracket_expression = 65, - sym__expression = 66, - aux_sym__linebreak = 67, - sym_write_modifiers = 68, - sym_assign_to = 69, - sym_assign_left_side = 70, - sym_block = 71, - sym_interface_statement = 72, - sym_decl_assign_statement = 73, - sym_if_statement = 74, - sym_for_statement = 75, + sym_module = 48, + sym_interface_ports = 49, + sym__interface_ports_output = 50, + sym_block = 51, + sym_interface_statement = 52, + sym_decl_assign_statement = 53, + sym_assign_left_side = 54, + sym_assign_to = 55, + sym_write_modifiers = 56, + sym_if_statement = 57, + sym_for_statement = 58, + sym_declaration_list = 59, + sym_declaration = 60, + sym_array_type = 61, + sym__type = 62, + sym_latency_specifier = 63, + sym__expression = 64, + sym_unary_op = 65, + sym_binary_op = 66, + sym_array_op = 67, + sym_func_call = 68, + sym_field_access = 69, + sym_parenthesis_expression_list = 70, + sym_parenthesis_expression = 71, + sym_array_bracket_expression = 72, + sym__comma = 73, + aux_sym__linebreak = 74, + sym_global_identifier = 75, aux_sym_source_file_repeat1 = 76, - aux_sym_declaration_list_repeat1 = 77, - aux_sym_global_identifier_repeat1 = 78, - aux_sym_parenthesis_expression_list_repeat1 = 79, - aux_sym_write_modifiers_repeat1 = 80, - aux_sym_assign_left_side_repeat1 = 81, - aux_sym_block_repeat1 = 82, + aux_sym_block_repeat1 = 77, + aux_sym_assign_left_side_repeat1 = 78, + aux_sym_write_modifiers_repeat1 = 79, + aux_sym_declaration_list_repeat1 = 80, + aux_sym_parenthesis_expression_list_repeat1 = 81, + aux_sym_global_identifier_repeat1 = 82, }; static const char * const ts_symbol_names[] = { [ts_builtin_sym_end] = "end", [sym_identifier] = "identifier", - [anon_sym_COMMA] = ",", - [anon_sym_DASH_GT] = "->", - [anon_sym_COLON] = ":", [anon_sym_module] = "module", - [sym_number] = "number", - [anon_sym_COLON_COLON] = "::", - [anon_sym_SQUOTE] = "'", + [anon_sym_COLON] = ":", + [anon_sym_DASH_GT] = "->", + [anon_sym_LBRACE] = "{", + [anon_sym_RBRACE] = "}", + [anon_sym_interface] = "interface", + [anon_sym_EQ] = "=", + [anon_sym_reg] = "reg", + [anon_sym_initial] = "initial", + [anon_sym_if] = "if", + [anon_sym_else] = "else", + [anon_sym_for] = "for", + [anon_sym_in] = "in", + [anon_sym_DOT_DOT] = "..", [anon_sym_input] = "input", [anon_sym_output] = "output", [anon_sym_state] = "state", [anon_sym_gen] = "gen", + [anon_sym_SQUOTE] = "'", [anon_sym_PLUS] = "+", [anon_sym_DASH] = "-", [anon_sym_STAR] = "*", @@ -134,31 +142,30 @@ static const char * const ts_symbol_names[] = { [anon_sym_RPAREN] = ")", [anon_sym_LBRACK] = "[", [anon_sym_RBRACK] = "]", + [anon_sym_COMMA] = ",", [anon_sym_LF] = "\n", - [anon_sym_reg] = "reg", - [anon_sym_initial] = "initial", - [anon_sym_LBRACE] = "{", - [anon_sym_RBRACE] = "}", - [anon_sym_interface] = "interface", - [anon_sym_EQ] = "=", - [anon_sym_if] = "if", - [anon_sym_else] = "else", - [anon_sym_for] = "for", - [anon_sym_in] = "in", - [anon_sym_DOT_DOT] = "..", + [anon_sym_COLON_COLON] = "::", + [sym_number] = "number", [sym_single_line_comment] = "single_line_comment", [sym_multi_line_comment] = "multi_line_comment", [sym_source_file] = "source_file", - [sym__comma] = "_comma", - [sym__interface_ports_output] = "_interface_ports_output", + [sym_module] = "module", [sym_interface_ports] = "interface_ports", + [sym__interface_ports_output] = "_interface_ports_output", + [sym_block] = "block", + [sym_interface_statement] = "interface_statement", + [sym_decl_assign_statement] = "decl_assign_statement", + [sym_assign_left_side] = "assign_left_side", + [sym_assign_to] = "assign_to", + [sym_write_modifiers] = "write_modifiers", + [sym_if_statement] = "if_statement", + [sym_for_statement] = "for_statement", [sym_declaration_list] = "declaration_list", - [sym_module] = "module", - [sym_global_identifier] = "global_identifier", + [sym_declaration] = "declaration", [sym_array_type] = "array_type", [sym__type] = "_type", [sym_latency_specifier] = "latency_specifier", - [sym_declaration] = "declaration", + [sym__expression] = "_expression", [sym_unary_op] = "unary_op", [sym_binary_op] = "binary_op", [sym_array_op] = "array_op", @@ -167,39 +174,40 @@ static const char * const ts_symbol_names[] = { [sym_parenthesis_expression_list] = "parenthesis_expression_list", [sym_parenthesis_expression] = "parenthesis_expression", [sym_array_bracket_expression] = "array_bracket_expression", - [sym__expression] = "_expression", + [sym__comma] = "_comma", [aux_sym__linebreak] = "_linebreak", - [sym_write_modifiers] = "write_modifiers", - [sym_assign_to] = "assign_to", - [sym_assign_left_side] = "assign_left_side", - [sym_block] = "block", - [sym_interface_statement] = "interface_statement", - [sym_decl_assign_statement] = "decl_assign_statement", - [sym_if_statement] = "if_statement", - [sym_for_statement] = "for_statement", + [sym_global_identifier] = "global_identifier", [aux_sym_source_file_repeat1] = "source_file_repeat1", + [aux_sym_block_repeat1] = "block_repeat1", + [aux_sym_assign_left_side_repeat1] = "assign_left_side_repeat1", + [aux_sym_write_modifiers_repeat1] = "write_modifiers_repeat1", [aux_sym_declaration_list_repeat1] = "declaration_list_repeat1", - [aux_sym_global_identifier_repeat1] = "global_identifier_repeat1", [aux_sym_parenthesis_expression_list_repeat1] = "parenthesis_expression_list_repeat1", - [aux_sym_write_modifiers_repeat1] = "write_modifiers_repeat1", - [aux_sym_assign_left_side_repeat1] = "assign_left_side_repeat1", - [aux_sym_block_repeat1] = "block_repeat1", + [aux_sym_global_identifier_repeat1] = "global_identifier_repeat1", }; static const TSSymbol ts_symbol_map[] = { [ts_builtin_sym_end] = ts_builtin_sym_end, [sym_identifier] = sym_identifier, - [anon_sym_COMMA] = anon_sym_COMMA, - [anon_sym_DASH_GT] = anon_sym_DASH_GT, - [anon_sym_COLON] = anon_sym_COLON, [anon_sym_module] = anon_sym_module, - [sym_number] = sym_number, - [anon_sym_COLON_COLON] = anon_sym_COLON_COLON, - [anon_sym_SQUOTE] = anon_sym_SQUOTE, + [anon_sym_COLON] = anon_sym_COLON, + [anon_sym_DASH_GT] = anon_sym_DASH_GT, + [anon_sym_LBRACE] = anon_sym_LBRACE, + [anon_sym_RBRACE] = anon_sym_RBRACE, + [anon_sym_interface] = anon_sym_interface, + [anon_sym_EQ] = anon_sym_EQ, + [anon_sym_reg] = anon_sym_reg, + [anon_sym_initial] = anon_sym_initial, + [anon_sym_if] = anon_sym_if, + [anon_sym_else] = anon_sym_else, + [anon_sym_for] = anon_sym_for, + [anon_sym_in] = anon_sym_in, + [anon_sym_DOT_DOT] = anon_sym_DOT_DOT, [anon_sym_input] = anon_sym_input, [anon_sym_output] = anon_sym_output, [anon_sym_state] = anon_sym_state, [anon_sym_gen] = anon_sym_gen, + [anon_sym_SQUOTE] = anon_sym_SQUOTE, [anon_sym_PLUS] = anon_sym_PLUS, [anon_sym_DASH] = anon_sym_DASH, [anon_sym_STAR] = anon_sym_STAR, @@ -220,31 +228,30 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_RPAREN] = anon_sym_RPAREN, [anon_sym_LBRACK] = anon_sym_LBRACK, [anon_sym_RBRACK] = anon_sym_RBRACK, + [anon_sym_COMMA] = anon_sym_COMMA, [anon_sym_LF] = anon_sym_LF, - [anon_sym_reg] = anon_sym_reg, - [anon_sym_initial] = anon_sym_initial, - [anon_sym_LBRACE] = anon_sym_LBRACE, - [anon_sym_RBRACE] = anon_sym_RBRACE, - [anon_sym_interface] = anon_sym_interface, - [anon_sym_EQ] = anon_sym_EQ, - [anon_sym_if] = anon_sym_if, - [anon_sym_else] = anon_sym_else, - [anon_sym_for] = anon_sym_for, - [anon_sym_in] = anon_sym_in, - [anon_sym_DOT_DOT] = anon_sym_DOT_DOT, + [anon_sym_COLON_COLON] = anon_sym_COLON_COLON, + [sym_number] = sym_number, [sym_single_line_comment] = sym_single_line_comment, [sym_multi_line_comment] = sym_multi_line_comment, [sym_source_file] = sym_source_file, - [sym__comma] = sym__comma, - [sym__interface_ports_output] = sym__interface_ports_output, + [sym_module] = sym_module, [sym_interface_ports] = sym_interface_ports, + [sym__interface_ports_output] = sym__interface_ports_output, + [sym_block] = sym_block, + [sym_interface_statement] = sym_interface_statement, + [sym_decl_assign_statement] = sym_decl_assign_statement, + [sym_assign_left_side] = sym_assign_left_side, + [sym_assign_to] = sym_assign_to, + [sym_write_modifiers] = sym_write_modifiers, + [sym_if_statement] = sym_if_statement, + [sym_for_statement] = sym_for_statement, [sym_declaration_list] = sym_declaration_list, - [sym_module] = sym_module, - [sym_global_identifier] = sym_global_identifier, + [sym_declaration] = sym_declaration, [sym_array_type] = sym_array_type, [sym__type] = sym__type, [sym_latency_specifier] = sym_latency_specifier, - [sym_declaration] = sym_declaration, + [sym__expression] = sym__expression, [sym_unary_op] = sym_unary_op, [sym_binary_op] = sym_binary_op, [sym_array_op] = sym_array_op, @@ -253,23 +260,16 @@ static const TSSymbol ts_symbol_map[] = { [sym_parenthesis_expression_list] = sym_parenthesis_expression_list, [sym_parenthesis_expression] = sym_parenthesis_expression, [sym_array_bracket_expression] = sym_array_bracket_expression, - [sym__expression] = sym__expression, + [sym__comma] = sym__comma, [aux_sym__linebreak] = aux_sym__linebreak, - [sym_write_modifiers] = sym_write_modifiers, - [sym_assign_to] = sym_assign_to, - [sym_assign_left_side] = sym_assign_left_side, - [sym_block] = sym_block, - [sym_interface_statement] = sym_interface_statement, - [sym_decl_assign_statement] = sym_decl_assign_statement, - [sym_if_statement] = sym_if_statement, - [sym_for_statement] = sym_for_statement, + [sym_global_identifier] = sym_global_identifier, [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1, + [aux_sym_block_repeat1] = aux_sym_block_repeat1, + [aux_sym_assign_left_side_repeat1] = aux_sym_assign_left_side_repeat1, + [aux_sym_write_modifiers_repeat1] = aux_sym_write_modifiers_repeat1, [aux_sym_declaration_list_repeat1] = aux_sym_declaration_list_repeat1, - [aux_sym_global_identifier_repeat1] = aux_sym_global_identifier_repeat1, [aux_sym_parenthesis_expression_list_repeat1] = aux_sym_parenthesis_expression_list_repeat1, - [aux_sym_write_modifiers_repeat1] = aux_sym_write_modifiers_repeat1, - [aux_sym_assign_left_side_repeat1] = aux_sym_assign_left_side_repeat1, - [aux_sym_block_repeat1] = aux_sym_block_repeat1, + [aux_sym_global_identifier_repeat1] = aux_sym_global_identifier_repeat1, }; static const TSSymbolMetadata ts_symbol_metadata[] = { @@ -281,7 +281,11 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [anon_sym_COMMA] = { + [anon_sym_module] = { + .visible = true, + .named = false, + }, + [anon_sym_COLON] = { .visible = true, .named = false, }, @@ -289,23 +293,47 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_COLON] = { + [anon_sym_LBRACE] = { .visible = true, .named = false, }, - [anon_sym_module] = { + [anon_sym_RBRACE] = { .visible = true, .named = false, }, - [sym_number] = { + [anon_sym_interface] = { .visible = true, - .named = true, + .named = false, }, - [anon_sym_COLON_COLON] = { + [anon_sym_EQ] = { .visible = true, .named = false, }, - [anon_sym_SQUOTE] = { + [anon_sym_reg] = { + .visible = true, + .named = false, + }, + [anon_sym_initial] = { + .visible = true, + .named = false, + }, + [anon_sym_if] = { + .visible = true, + .named = false, + }, + [anon_sym_else] = { + .visible = true, + .named = false, + }, + [anon_sym_for] = { + .visible = true, + .named = false, + }, + [anon_sym_in] = { + .visible = true, + .named = false, + }, + [anon_sym_DOT_DOT] = { .visible = true, .named = false, }, @@ -325,6 +353,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_SQUOTE] = { + .visible = true, + .named = false, + }, [anon_sym_PLUS] = { .visible = true, .named = false, @@ -405,87 +437,83 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_LF] = { - .visible = true, - .named = false, - }, - [anon_sym_reg] = { + [anon_sym_COMMA] = { .visible = true, .named = false, }, - [anon_sym_initial] = { + [anon_sym_LF] = { .visible = true, .named = false, }, - [anon_sym_LBRACE] = { + [anon_sym_COLON_COLON] = { .visible = true, .named = false, }, - [anon_sym_RBRACE] = { + [sym_number] = { .visible = true, - .named = false, + .named = true, }, - [anon_sym_interface] = { + [sym_single_line_comment] = { .visible = true, - .named = false, + .named = true, }, - [anon_sym_EQ] = { + [sym_multi_line_comment] = { .visible = true, - .named = false, + .named = true, }, - [anon_sym_if] = { + [sym_source_file] = { .visible = true, - .named = false, + .named = true, }, - [anon_sym_else] = { + [sym_module] = { .visible = true, - .named = false, + .named = true, }, - [anon_sym_for] = { + [sym_interface_ports] = { .visible = true, - .named = false, + .named = true, }, - [anon_sym_in] = { - .visible = true, - .named = false, + [sym__interface_ports_output] = { + .visible = false, + .named = true, }, - [anon_sym_DOT_DOT] = { + [sym_block] = { .visible = true, - .named = false, + .named = true, }, - [sym_single_line_comment] = { + [sym_interface_statement] = { .visible = true, .named = true, }, - [sym_multi_line_comment] = { + [sym_decl_assign_statement] = { .visible = true, .named = true, }, - [sym_source_file] = { + [sym_assign_left_side] = { .visible = true, .named = true, }, - [sym__comma] = { - .visible = false, + [sym_assign_to] = { + .visible = true, .named = true, }, - [sym__interface_ports_output] = { - .visible = false, + [sym_write_modifiers] = { + .visible = true, .named = true, }, - [sym_interface_ports] = { + [sym_if_statement] = { .visible = true, .named = true, }, - [sym_declaration_list] = { + [sym_for_statement] = { .visible = true, .named = true, }, - [sym_module] = { + [sym_declaration_list] = { .visible = true, .named = true, }, - [sym_global_identifier] = { + [sym_declaration] = { .visible = true, .named = true, }, @@ -501,8 +529,8 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_declaration] = { - .visible = true, + [sym__expression] = { + .visible = false, .named = true, }, [sym_unary_op] = { @@ -537,7 +565,7 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym__expression] = { + [sym__comma] = { .visible = false, .named = true, }, @@ -545,35 +573,7 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, - [sym_write_modifiers] = { - .visible = true, - .named = true, - }, - [sym_assign_to] = { - .visible = true, - .named = true, - }, - [sym_assign_left_side] = { - .visible = true, - .named = true, - }, - [sym_block] = { - .visible = true, - .named = true, - }, - [sym_interface_statement] = { - .visible = true, - .named = true, - }, - [sym_decl_assign_statement] = { - .visible = true, - .named = true, - }, - [sym_if_statement] = { - .visible = true, - .named = true, - }, - [sym_for_statement] = { + [sym_global_identifier] = { .visible = true, .named = true, }, @@ -581,27 +581,27 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, - [aux_sym_declaration_list_repeat1] = { + [aux_sym_block_repeat1] = { .visible = false, .named = false, }, - [aux_sym_global_identifier_repeat1] = { + [aux_sym_assign_left_side_repeat1] = { .visible = false, .named = false, }, - [aux_sym_parenthesis_expression_list_repeat1] = { + [aux_sym_write_modifiers_repeat1] = { .visible = false, .named = false, }, - [aux_sym_write_modifiers_repeat1] = { + [aux_sym_declaration_list_repeat1] = { .visible = false, .named = false, }, - [aux_sym_assign_left_side_repeat1] = { + [aux_sym_parenthesis_expression_list_repeat1] = { .visible = false, .named = false, }, - [aux_sym_block_repeat1] = { + [aux_sym_global_identifier_repeat1] = { .visible = false, .named = false, }, @@ -686,8 +686,8 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [15] = {.index = 22, .length = 2}, [16] = {.index = 24, .length = 1}, [17] = {.index = 25, .length = 1}, - [18] = {.index = 26, .length = 2}, - [19] = {.index = 28, .length = 1}, + [18] = {.index = 26, .length = 1}, + [19] = {.index = 27, .length = 2}, [20] = {.index = 29, .length = 2}, [21] = {.index = 31, .length = 2}, [22] = {.index = 33, .length = 1}, @@ -695,13 +695,13 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [24] = {.index = 37, .length = 3}, [25] = {.index = 40, .length = 3}, [26] = {.index = 43, .length = 2}, - [27] = {.index = 45, .length = 1}, - [28] = {.index = 46, .length = 2}, - [29] = {.index = 48, .length = 2}, - [30] = {.index = 50, .length = 3}, - [31] = {.index = 53, .length = 2}, - [32] = {.index = 55, .length = 1}, - [33] = {.index = 56, .length = 2}, + [27] = {.index = 45, .length = 2}, + [28] = {.index = 47, .length = 2}, + [29] = {.index = 49, .length = 1}, + [30] = {.index = 50, .length = 2}, + [31] = {.index = 52, .length = 3}, + [32] = {.index = 55, .length = 2}, + [33] = {.index = 57, .length = 1}, [34] = {.index = 58, .length = 4}, [35] = {.index = 62, .length = 4}, [36] = {.index = 66, .length = 4}, @@ -756,16 +756,16 @@ static const TSFieldMapEntry ts_field_map_entries[] = { [25] = {field_inputs, 2}, [26] = + {field_name, 1}, + [27] = {field_operator, 0}, {field_right, 1}, - [28] = - {field_name, 1}, [29] = - {field_arguments, 1}, - {field_name, 0}, - [31] = {field_expr_or_decl, 1}, {field_write_modifiers, 0}, + [31] = + {field_arguments, 1}, + {field_name, 0}, [33] = {field_outputs, 2}, [34] = @@ -784,25 +784,25 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_inputs, 2}, {field_outputs, 3, .inherited = true}, [45] = - {field_content, 1}, - [46] = {field_interface_ports, 2}, {field_name, 1}, - [48] = + [47] = {field_condition, 1}, {field_then_block, 2}, + [49] = + {field_content, 1}, [50] = + {field_assign_left, 0}, + {field_assign_value, 2}, + [52] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [53] = + [55] = {field_left, 0}, {field_name, 2}, - [55] = + [57] = {field_item, 2}, - [56] = - {field_assign_left, 0}, - {field_assign_value, 2}, [58] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, @@ -960,7 +960,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [110] = 110, [111] = 111, [112] = 112, - [113] = 113, + [113] = 33, [114] = 114, [115] = 115, [116] = 116, @@ -1009,6 +1009,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [159] = 159, [160] = 160, [161] = 161, + [162] = 162, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -2927,7 +2928,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { switch (state) { case 0: if (eof) ADVANCE(8); - if (lookahead == '\n') ADVANCE(38); + if (lookahead == '\n') ADVANCE(39); if (lookahead == '!') ADVANCE(21); if (lookahead == '%') ADVANCE(32); if (lookahead == '&') ADVANCE(23); @@ -2936,122 +2937,119 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == ')') ADVANCE(35); if (lookahead == '*') ADVANCE(19); if (lookahead == '+') ADVANCE(17); - if (lookahead == ',') ADVANCE(9); + if (lookahead == ',') ADVANCE(38); if (lookahead == '-') ADVANCE(18); if (lookahead == '.') ADVANCE(33); if (lookahead == '/') ADVANCE(31); - if (lookahead == ':') ADVANCE(12); + if (lookahead == ':') ADVANCE(10); if (lookahead == '<') ADVANCE(27); - if (lookahead == '=') ADVANCE(41); + if (lookahead == '=') ADVANCE(14); if (lookahead == '>') ADVANCE(29); if (lookahead == '[') ADVANCE(36); if (lookahead == ']') ADVANCE(37); if (lookahead == '^') ADVANCE(24); - if (lookahead == '{') ADVANCE(39); + if (lookahead == '{') ADVANCE(12); if (lookahead == '|') ADVANCE(22); - if (lookahead == '}') ADVANCE(40); + if (lookahead == '}') ADVANCE(13); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(0) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(14); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(13); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(41); END_STATE(); case 1: - if (lookahead == '\n') ADVANCE(38); - if (lookahead == '!') ADVANCE(6); + if (lookahead == '\n') ADVANCE(39); + if (lookahead == '!') ADVANCE(20); + if (lookahead == '&') ADVANCE(23); + if (lookahead == '(') ADVANCE(34); + if (lookahead == ')') ADVANCE(35); + if (lookahead == '*') ADVANCE(19); + if (lookahead == '+') ADVANCE(17); + if (lookahead == '-') ADVANCE(18); + if (lookahead == '/') ADVANCE(3); + if (lookahead == ':') ADVANCE(9); + if (lookahead == '^') ADVANCE(24); + if (lookahead == '{') ADVANCE(12); + if (lookahead == '|') ADVANCE(22); + if (lookahead == '}') ADVANCE(13); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') SKIP(1) + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(41); + END_STATE(); + case 2: + if (lookahead == '\n') ADVANCE(39); + if (lookahead == '!') ADVANCE(7); if (lookahead == '%') ADVANCE(32); if (lookahead == '&') ADVANCE(23); if (lookahead == '(') ADVANCE(34); if (lookahead == ')') ADVANCE(35); if (lookahead == '*') ADVANCE(19); if (lookahead == '+') ADVANCE(17); - if (lookahead == ',') ADVANCE(9); + if (lookahead == ',') ADVANCE(38); if (lookahead == '-') ADVANCE(18); if (lookahead == '.') ADVANCE(33); if (lookahead == '/') ADVANCE(31); - if (lookahead == ':') ADVANCE(5); + if (lookahead == ':') ADVANCE(6); if (lookahead == '<') ADVANCE(27); - if (lookahead == '=') ADVANCE(41); + if (lookahead == '=') ADVANCE(14); if (lookahead == '>') ADVANCE(29); if (lookahead == '[') ADVANCE(36); if (lookahead == ']') ADVANCE(37); if (lookahead == '^') ADVANCE(24); - if (lookahead == '{') ADVANCE(39); + if (lookahead == '{') ADVANCE(12); if (lookahead == '|') ADVANCE(22); - if (lookahead == '}') ADVANCE(40); + if (lookahead == '}') ADVANCE(13); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(1) - if (sym_identifier_character_set_1(lookahead)) ADVANCE(13); - END_STATE(); - case 2: - if (lookahead == '*') ADVANCE(4); - if (lookahead == '/') ADVANCE(43); + lookahead == ' ') SKIP(2) + if (sym_identifier_character_set_1(lookahead)) ADVANCE(41); END_STATE(); case 3: - if (lookahead == '*') ADVANCE(3); - if (lookahead == '/') ADVANCE(44); - if (lookahead != 0) ADVANCE(4); + if (lookahead == '*') ADVANCE(5); + if (lookahead == '/') ADVANCE(43); END_STATE(); case 4: - if (lookahead == '*') ADVANCE(3); - if (lookahead != 0) ADVANCE(4); + if (lookahead == '*') ADVANCE(4); + if (lookahead == '/') ADVANCE(44); + if (lookahead != 0) ADVANCE(5); END_STATE(); case 5: - if (lookahead == ':') ADVANCE(15); + if (lookahead == '*') ADVANCE(4); + if (lookahead != 0) ADVANCE(5); END_STATE(); case 6: - if (lookahead == '=') ADVANCE(26); + if (lookahead == ':') ADVANCE(40); END_STATE(); case 7: - if (eof) ADVANCE(8); - if (lookahead == '\n') ADVANCE(38); - if (lookahead == '!') ADVANCE(20); - if (lookahead == '&') ADVANCE(23); - if (lookahead == '(') ADVANCE(34); - if (lookahead == ')') ADVANCE(35); - if (lookahead == '*') ADVANCE(19); - if (lookahead == '+') ADVANCE(17); - if (lookahead == '-') ADVANCE(18); - if (lookahead == '/') ADVANCE(2); - if (lookahead == ':') ADVANCE(11); - if (lookahead == '^') ADVANCE(24); - if (lookahead == '{') ADVANCE(39); - if (lookahead == '|') ADVANCE(22); - if (lookahead == '}') ADVANCE(40); - if (lookahead == '\t' || - lookahead == '\r' || - lookahead == ' ') SKIP(7) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(14); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(13); + if (lookahead == '=') ADVANCE(26); END_STATE(); case 8: ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); case 9: - ACCEPT_TOKEN(anon_sym_COMMA); + ACCEPT_TOKEN(anon_sym_COLON); END_STATE(); case 10: - ACCEPT_TOKEN(anon_sym_DASH_GT); + ACCEPT_TOKEN(anon_sym_COLON); + if (lookahead == ':') ADVANCE(40); END_STATE(); case 11: - ACCEPT_TOKEN(anon_sym_COLON); + ACCEPT_TOKEN(anon_sym_DASH_GT); END_STATE(); case 12: - ACCEPT_TOKEN(anon_sym_COLON); - if (lookahead == ':') ADVANCE(15); + ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); case 13: - ACCEPT_TOKEN(sym_identifier); - if (sym_identifier_character_set_2(lookahead)) ADVANCE(13); + ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); case 14: - ACCEPT_TOKEN(sym_number); - if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(14); + ACCEPT_TOKEN(anon_sym_EQ); + if (lookahead == '=') ADVANCE(25); END_STATE(); case 15: - ACCEPT_TOKEN(anon_sym_COLON_COLON); + ACCEPT_TOKEN(anon_sym_DOT_DOT); END_STATE(); case 16: ACCEPT_TOKEN(anon_sym_SQUOTE); @@ -3061,7 +3059,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 18: ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '>') ADVANCE(10); + if (lookahead == '>') ADVANCE(11); END_STATE(); case 19: ACCEPT_TOKEN(anon_sym_STAR); @@ -3104,7 +3102,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 31: ACCEPT_TOKEN(anon_sym_SLASH); - if (lookahead == '*') ADVANCE(4); + if (lookahead == '*') ADVANCE(5); if (lookahead == '/') ADVANCE(43); END_STATE(); case 32: @@ -3112,7 +3110,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 33: ACCEPT_TOKEN(anon_sym_DOT); - if (lookahead == '.') ADVANCE(42); + if (lookahead == '.') ADVANCE(15); END_STATE(); case 34: ACCEPT_TOKEN(anon_sym_LPAREN); @@ -3127,20 +3125,22 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); case 38: - ACCEPT_TOKEN(anon_sym_LF); + ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); case 39: - ACCEPT_TOKEN(anon_sym_LBRACE); + ACCEPT_TOKEN(anon_sym_LF); END_STATE(); case 40: - ACCEPT_TOKEN(anon_sym_RBRACE); + ACCEPT_TOKEN(anon_sym_COLON_COLON); END_STATE(); case 41: - ACCEPT_TOKEN(anon_sym_EQ); - if (lookahead == '=') ADVANCE(25); + ACCEPT_TOKEN(sym_identifier); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(41); END_STATE(); case 42: - ACCEPT_TOKEN(anon_sym_DOT_DOT); + ACCEPT_TOKEN(sym_number); + if (('0' <= lookahead && lookahead <= '9') || + lookahead == '_') ADVANCE(42); END_STATE(); case 43: ACCEPT_TOKEN(sym_single_line_comment); @@ -3328,73 +3328,73 @@ 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 = 7}, - [3] = {.lex_state = 7}, - [4] = {.lex_state = 7}, - [5] = {.lex_state = 7}, - [6] = {.lex_state = 7}, - [7] = {.lex_state = 7}, - [8] = {.lex_state = 7}, - [9] = {.lex_state = 7}, - [10] = {.lex_state = 7}, + [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 = 1}, + [10] = {.lex_state = 1}, [11] = {.lex_state = 1}, - [12] = {.lex_state = 1}, - [13] = {.lex_state = 7}, - [14] = {.lex_state = 1}, - [15] = {.lex_state = 1}, - [16] = {.lex_state = 1}, - [17] = {.lex_state = 1}, - [18] = {.lex_state = 1}, - [19] = {.lex_state = 1}, - [20] = {.lex_state = 1}, - [21] = {.lex_state = 1}, - [22] = {.lex_state = 1}, - [23] = {.lex_state = 1}, - [24] = {.lex_state = 1}, - [25] = {.lex_state = 1}, - [26] = {.lex_state = 1}, - [27] = {.lex_state = 1}, - [28] = {.lex_state = 1}, - [29] = {.lex_state = 1}, - [30] = {.lex_state = 1}, - [31] = {.lex_state = 7}, + [12] = {.lex_state = 2}, + [13] = {.lex_state = 2}, + [14] = {.lex_state = 2}, + [15] = {.lex_state = 2}, + [16] = {.lex_state = 2}, + [17] = {.lex_state = 2}, + [18] = {.lex_state = 2}, + [19] = {.lex_state = 2}, + [20] = {.lex_state = 2}, + [21] = {.lex_state = 2}, + [22] = {.lex_state = 2}, + [23] = {.lex_state = 2}, + [24] = {.lex_state = 2}, + [25] = {.lex_state = 2}, + [26] = {.lex_state = 2}, + [27] = {.lex_state = 2}, + [28] = {.lex_state = 2}, + [29] = {.lex_state = 2}, + [30] = {.lex_state = 2}, + [31] = {.lex_state = 2}, [32] = {.lex_state = 1}, - [33] = {.lex_state = 7}, - [34] = {.lex_state = 1}, - [35] = {.lex_state = 1}, - [36] = {.lex_state = 1}, - [37] = {.lex_state = 1}, - [38] = {.lex_state = 1}, - [39] = {.lex_state = 1}, - [40] = {.lex_state = 1}, - [41] = {.lex_state = 1}, - [42] = {.lex_state = 1}, - [43] = {.lex_state = 1}, - [44] = {.lex_state = 1}, - [45] = {.lex_state = 7}, - [46] = {.lex_state = 7}, - [47] = {.lex_state = 7}, - [48] = {.lex_state = 7}, - [49] = {.lex_state = 7}, - [50] = {.lex_state = 7}, - [51] = {.lex_state = 7}, - [52] = {.lex_state = 7}, - [53] = {.lex_state = 7}, - [54] = {.lex_state = 7}, - [55] = {.lex_state = 7}, - [56] = {.lex_state = 7}, - [57] = {.lex_state = 7}, - [58] = {.lex_state = 7}, - [59] = {.lex_state = 7}, - [60] = {.lex_state = 7}, - [61] = {.lex_state = 7}, - [62] = {.lex_state = 7}, - [63] = {.lex_state = 7}, - [64] = {.lex_state = 7}, - [65] = {.lex_state = 7}, + [33] = {.lex_state = 1}, + [34] = {.lex_state = 2}, + [35] = {.lex_state = 2}, + [36] = {.lex_state = 2}, + [37] = {.lex_state = 2}, + [38] = {.lex_state = 2}, + [39] = {.lex_state = 2}, + [40] = {.lex_state = 2}, + [41] = {.lex_state = 2}, + [42] = {.lex_state = 2}, + [43] = {.lex_state = 2}, + [44] = {.lex_state = 2}, + [45] = {.lex_state = 1}, + [46] = {.lex_state = 1}, + [47] = {.lex_state = 1}, + [48] = {.lex_state = 1}, + [49] = {.lex_state = 1}, + [50] = {.lex_state = 1}, + [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 = 0}, - [67] = {.lex_state = 0}, - [68] = {.lex_state = 7}, + [67] = {.lex_state = 1}, + [68] = {.lex_state = 0}, [69] = {.lex_state = 0}, [70] = {.lex_state = 0}, [71] = {.lex_state = 0}, @@ -3428,12 +3428,12 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [99] = {.lex_state = 0}, [100] = {.lex_state = 0}, [101] = {.lex_state = 0}, - [102] = {.lex_state = 0}, + [102] = {.lex_state = 1}, [103] = {.lex_state = 0}, - [104] = {.lex_state = 7}, + [104] = {.lex_state = 0}, [105] = {.lex_state = 0}, [106] = {.lex_state = 0}, - [107] = {.lex_state = 7}, + [107] = {.lex_state = 1}, [108] = {.lex_state = 0}, [109] = {.lex_state = 0}, [110] = {.lex_state = 0}, @@ -3488,23 +3488,32 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [159] = {.lex_state = 0}, [160] = {.lex_state = 0}, [161] = {.lex_state = 0}, + [162] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [0] = { [ts_builtin_sym_end] = ACTIONS(1), [sym_identifier] = ACTIONS(1), - [anon_sym_COMMA] = ACTIONS(1), - [anon_sym_DASH_GT] = ACTIONS(1), - [anon_sym_COLON] = ACTIONS(1), [anon_sym_module] = ACTIONS(1), - [sym_number] = ACTIONS(1), - [anon_sym_COLON_COLON] = ACTIONS(1), - [anon_sym_SQUOTE] = ACTIONS(1), + [anon_sym_COLON] = ACTIONS(1), + [anon_sym_DASH_GT] = ACTIONS(1), + [anon_sym_LBRACE] = ACTIONS(1), + [anon_sym_RBRACE] = ACTIONS(1), + [anon_sym_interface] = ACTIONS(1), + [anon_sym_EQ] = ACTIONS(1), + [anon_sym_reg] = ACTIONS(1), + [anon_sym_initial] = ACTIONS(1), + [anon_sym_if] = ACTIONS(1), + [anon_sym_else] = ACTIONS(1), + [anon_sym_for] = ACTIONS(1), + [anon_sym_in] = ACTIONS(1), + [anon_sym_DOT_DOT] = ACTIONS(1), [anon_sym_input] = ACTIONS(1), [anon_sym_output] = ACTIONS(1), [anon_sym_state] = ACTIONS(1), [anon_sym_gen] = ACTIONS(1), + [anon_sym_SQUOTE] = ACTIONS(1), [anon_sym_PLUS] = ACTIONS(1), [anon_sym_DASH] = ACTIONS(1), [anon_sym_STAR] = ACTIONS(1), @@ -3525,25 +3534,17 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_RPAREN] = ACTIONS(1), [anon_sym_LBRACK] = ACTIONS(1), [anon_sym_RBRACK] = ACTIONS(1), + [anon_sym_COMMA] = ACTIONS(1), [anon_sym_LF] = ACTIONS(1), - [anon_sym_reg] = ACTIONS(1), - [anon_sym_initial] = ACTIONS(1), - [anon_sym_LBRACE] = ACTIONS(1), - [anon_sym_RBRACE] = ACTIONS(1), - [anon_sym_interface] = ACTIONS(1), - [anon_sym_EQ] = ACTIONS(1), - [anon_sym_if] = ACTIONS(1), - [anon_sym_else] = ACTIONS(1), - [anon_sym_for] = ACTIONS(1), - [anon_sym_in] = ACTIONS(1), - [anon_sym_DOT_DOT] = ACTIONS(1), + [anon_sym_COLON_COLON] = ACTIONS(1), + [sym_number] = ACTIONS(1), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(161), - [sym_module] = STATE(105), - [aux_sym__linebreak] = STATE(90), + [sym_source_file] = STATE(162), + [sym_module] = STATE(101), + [aux_sym__linebreak] = STATE(89), [ts_builtin_sym_end] = ACTIONS(5), [anon_sym_module] = ACTIONS(7), [anon_sym_LF] = ACTIONS(9), @@ -3551,450 +3552,501 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [2] = { - [sym_global_identifier] = STATE(37), - [sym_array_type] = STATE(137), - [sym__type] = STATE(137), - [sym_declaration] = STATE(120), + [sym_block] = STATE(149), + [sym_interface_statement] = STATE(149), + [sym_decl_assign_statement] = STATE(149), + [sym_assign_left_side] = STATE(136), + [sym_assign_to] = STATE(84), + [sym_write_modifiers] = STATE(32), + [sym_if_statement] = STATE(149), + [sym_for_statement] = STATE(149), + [sym_declaration] = STATE(123), + [sym_array_type] = STATE(139), + [sym__type] = STATE(139), + [sym__expression] = STATE(36), [sym_unary_op] = STATE(36), [sym_binary_op] = STATE(36), [sym_array_op] = STATE(36), [sym_func_call] = STATE(36), [sym_field_access] = STATE(36), [sym_parenthesis_expression] = STATE(36), - [sym__expression] = STATE(36), - [aux_sym__linebreak] = STATE(31), - [sym_write_modifiers] = STATE(33), - [sym_assign_to] = STATE(85), - [sym_assign_left_side] = STATE(88), - [sym_block] = STATE(99), - [sym_interface_statement] = STATE(99), - [sym_decl_assign_statement] = STATE(99), - [sym_if_statement] = STATE(99), - [sym_for_statement] = STATE(99), + [aux_sym__linebreak] = STATE(33), + [sym_global_identifier] = STATE(37), [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), - [sym_number] = ACTIONS(13), - [anon_sym_input] = ACTIONS(15), - [anon_sym_output] = ACTIONS(15), - [anon_sym_state] = ACTIONS(17), - [anon_sym_gen] = ACTIONS(17), - [anon_sym_PLUS] = ACTIONS(19), - [anon_sym_DASH] = ACTIONS(19), - [anon_sym_STAR] = ACTIONS(19), - [anon_sym_BANG] = ACTIONS(19), - [anon_sym_PIPE] = ACTIONS(19), - [anon_sym_AMP] = ACTIONS(19), - [anon_sym_CARET] = ACTIONS(19), - [anon_sym_LPAREN] = ACTIONS(21), - [anon_sym_LF] = ACTIONS(23), - [anon_sym_reg] = ACTIONS(25), - [anon_sym_initial] = ACTIONS(27), - [anon_sym_LBRACE] = ACTIONS(29), - [anon_sym_RBRACE] = ACTIONS(31), - [anon_sym_interface] = ACTIONS(33), - [anon_sym_if] = ACTIONS(35), - [anon_sym_for] = ACTIONS(37), + [anon_sym_LBRACE] = ACTIONS(13), + [anon_sym_RBRACE] = ACTIONS(15), + [anon_sym_interface] = ACTIONS(17), + [anon_sym_reg] = ACTIONS(19), + [anon_sym_initial] = ACTIONS(21), + [anon_sym_if] = ACTIONS(23), + [anon_sym_for] = ACTIONS(25), + [anon_sym_input] = ACTIONS(27), + [anon_sym_output] = ACTIONS(27), + [anon_sym_state] = ACTIONS(29), + [anon_sym_gen] = ACTIONS(29), + [anon_sym_PLUS] = ACTIONS(31), + [anon_sym_DASH] = ACTIONS(31), + [anon_sym_STAR] = ACTIONS(31), + [anon_sym_BANG] = ACTIONS(31), + [anon_sym_PIPE] = ACTIONS(31), + [anon_sym_AMP] = ACTIONS(31), + [anon_sym_CARET] = ACTIONS(31), + [anon_sym_LPAREN] = ACTIONS(33), + [anon_sym_LF] = ACTIONS(35), + [sym_number] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [3] = { - [sym_global_identifier] = STATE(37), - [sym_array_type] = STATE(137), - [sym__type] = STATE(137), - [sym_declaration] = STATE(120), + [sym_block] = STATE(126), + [sym_interface_statement] = STATE(126), + [sym_decl_assign_statement] = STATE(126), + [sym_assign_left_side] = STATE(93), + [sym_assign_to] = STATE(84), + [sym_write_modifiers] = STATE(32), + [sym_if_statement] = STATE(126), + [sym_for_statement] = STATE(126), + [sym_declaration] = STATE(123), + [sym_array_type] = STATE(139), + [sym__type] = STATE(139), + [sym__expression] = STATE(36), [sym_unary_op] = STATE(36), [sym_binary_op] = STATE(36), [sym_array_op] = STATE(36), [sym_func_call] = STATE(36), [sym_field_access] = STATE(36), [sym_parenthesis_expression] = STATE(36), - [sym__expression] = STATE(36), - [aux_sym__linebreak] = STATE(31), - [sym_write_modifiers] = STATE(33), - [sym_assign_to] = STATE(85), - [sym_assign_left_side] = STATE(143), - [sym_block] = STATE(148), - [sym_interface_statement] = STATE(148), - [sym_decl_assign_statement] = STATE(148), - [sym_if_statement] = STATE(148), - [sym_for_statement] = STATE(148), + [aux_sym__linebreak] = STATE(33), + [sym_global_identifier] = STATE(37), [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), - [sym_number] = ACTIONS(13), - [anon_sym_input] = ACTIONS(15), - [anon_sym_output] = ACTIONS(15), - [anon_sym_state] = ACTIONS(17), - [anon_sym_gen] = ACTIONS(17), - [anon_sym_PLUS] = ACTIONS(19), - [anon_sym_DASH] = ACTIONS(19), - [anon_sym_STAR] = ACTIONS(19), - [anon_sym_BANG] = ACTIONS(19), - [anon_sym_PIPE] = ACTIONS(19), - [anon_sym_AMP] = ACTIONS(19), - [anon_sym_CARET] = ACTIONS(19), - [anon_sym_LPAREN] = ACTIONS(21), - [anon_sym_LF] = ACTIONS(23), - [anon_sym_reg] = ACTIONS(25), - [anon_sym_initial] = ACTIONS(27), - [anon_sym_LBRACE] = ACTIONS(29), + [anon_sym_LBRACE] = ACTIONS(13), [anon_sym_RBRACE] = ACTIONS(39), - [anon_sym_interface] = ACTIONS(33), - [anon_sym_if] = ACTIONS(35), - [anon_sym_for] = ACTIONS(37), + [anon_sym_interface] = ACTIONS(17), + [anon_sym_reg] = ACTIONS(19), + [anon_sym_initial] = ACTIONS(21), + [anon_sym_if] = ACTIONS(23), + [anon_sym_for] = ACTIONS(25), + [anon_sym_input] = ACTIONS(27), + [anon_sym_output] = ACTIONS(27), + [anon_sym_state] = ACTIONS(29), + [anon_sym_gen] = ACTIONS(29), + [anon_sym_PLUS] = ACTIONS(31), + [anon_sym_DASH] = ACTIONS(31), + [anon_sym_STAR] = ACTIONS(31), + [anon_sym_BANG] = ACTIONS(31), + [anon_sym_PIPE] = ACTIONS(31), + [anon_sym_AMP] = ACTIONS(31), + [anon_sym_CARET] = ACTIONS(31), + [anon_sym_LPAREN] = ACTIONS(33), + [anon_sym_LF] = ACTIONS(35), + [sym_number] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [4] = { - [sym_global_identifier] = STATE(37), - [sym_array_type] = STATE(137), - [sym__type] = STATE(137), - [sym_declaration] = STATE(120), + [sym_block] = STATE(149), + [sym_interface_statement] = STATE(149), + [sym_decl_assign_statement] = STATE(149), + [sym_assign_left_side] = STATE(136), + [sym_assign_to] = STATE(84), + [sym_write_modifiers] = STATE(32), + [sym_if_statement] = STATE(149), + [sym_for_statement] = STATE(149), + [sym_declaration] = STATE(123), + [sym_array_type] = STATE(139), + [sym__type] = STATE(139), + [sym__expression] = STATE(36), [sym_unary_op] = STATE(36), [sym_binary_op] = STATE(36), [sym_array_op] = STATE(36), [sym_func_call] = STATE(36), [sym_field_access] = STATE(36), [sym_parenthesis_expression] = STATE(36), - [sym__expression] = STATE(36), - [aux_sym__linebreak] = STATE(31), - [sym_write_modifiers] = STATE(33), - [sym_assign_to] = STATE(85), - [sym_assign_left_side] = STATE(143), - [sym_block] = STATE(148), - [sym_interface_statement] = STATE(148), - [sym_decl_assign_statement] = STATE(148), - [sym_if_statement] = STATE(148), - [sym_for_statement] = STATE(148), + [aux_sym__linebreak] = STATE(33), + [sym_global_identifier] = STATE(37), [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), - [sym_number] = ACTIONS(13), - [anon_sym_input] = ACTIONS(15), - [anon_sym_output] = ACTIONS(15), - [anon_sym_state] = ACTIONS(17), - [anon_sym_gen] = ACTIONS(17), - [anon_sym_PLUS] = ACTIONS(19), - [anon_sym_DASH] = ACTIONS(19), - [anon_sym_STAR] = ACTIONS(19), - [anon_sym_BANG] = ACTIONS(19), - [anon_sym_PIPE] = ACTIONS(19), - [anon_sym_AMP] = ACTIONS(19), - [anon_sym_CARET] = ACTIONS(19), - [anon_sym_LPAREN] = ACTIONS(21), - [anon_sym_LF] = ACTIONS(23), - [anon_sym_reg] = ACTIONS(25), - [anon_sym_initial] = ACTIONS(27), - [anon_sym_LBRACE] = ACTIONS(29), + [anon_sym_LBRACE] = ACTIONS(13), [anon_sym_RBRACE] = ACTIONS(41), - [anon_sym_interface] = ACTIONS(33), - [anon_sym_if] = ACTIONS(35), - [anon_sym_for] = ACTIONS(37), + [anon_sym_interface] = ACTIONS(17), + [anon_sym_reg] = ACTIONS(19), + [anon_sym_initial] = ACTIONS(21), + [anon_sym_if] = ACTIONS(23), + [anon_sym_for] = ACTIONS(25), + [anon_sym_input] = ACTIONS(27), + [anon_sym_output] = ACTIONS(27), + [anon_sym_state] = ACTIONS(29), + [anon_sym_gen] = ACTIONS(29), + [anon_sym_PLUS] = ACTIONS(31), + [anon_sym_DASH] = ACTIONS(31), + [anon_sym_STAR] = ACTIONS(31), + [anon_sym_BANG] = ACTIONS(31), + [anon_sym_PIPE] = ACTIONS(31), + [anon_sym_AMP] = ACTIONS(31), + [anon_sym_CARET] = ACTIONS(31), + [anon_sym_LPAREN] = ACTIONS(33), + [anon_sym_LF] = ACTIONS(35), + [sym_number] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [5] = { - [sym_global_identifier] = STATE(37), - [sym_array_type] = STATE(137), - [sym__type] = STATE(137), - [sym_declaration] = STATE(120), + [sym_block] = STATE(125), + [sym_interface_statement] = STATE(125), + [sym_decl_assign_statement] = STATE(125), + [sym_assign_left_side] = STATE(95), + [sym_assign_to] = STATE(84), + [sym_write_modifiers] = STATE(32), + [sym_if_statement] = STATE(125), + [sym_for_statement] = STATE(125), + [sym_declaration] = STATE(123), + [sym_array_type] = STATE(139), + [sym__type] = STATE(139), + [sym__expression] = STATE(36), [sym_unary_op] = STATE(36), [sym_binary_op] = STATE(36), [sym_array_op] = STATE(36), [sym_func_call] = STATE(36), [sym_field_access] = STATE(36), [sym_parenthesis_expression] = STATE(36), - [sym__expression] = STATE(36), - [aux_sym__linebreak] = STATE(31), - [sym_write_modifiers] = STATE(33), - [sym_assign_to] = STATE(85), - [sym_assign_left_side] = STATE(143), - [sym_block] = STATE(148), - [sym_interface_statement] = STATE(148), - [sym_decl_assign_statement] = STATE(148), - [sym_if_statement] = STATE(148), - [sym_for_statement] = STATE(148), + [aux_sym__linebreak] = STATE(3), + [sym_global_identifier] = STATE(37), [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), - [sym_number] = ACTIONS(13), - [anon_sym_input] = ACTIONS(15), - [anon_sym_output] = ACTIONS(15), - [anon_sym_state] = ACTIONS(17), - [anon_sym_gen] = ACTIONS(17), - [anon_sym_PLUS] = ACTIONS(19), - [anon_sym_DASH] = ACTIONS(19), - [anon_sym_STAR] = ACTIONS(19), - [anon_sym_BANG] = ACTIONS(19), - [anon_sym_PIPE] = ACTIONS(19), - [anon_sym_AMP] = ACTIONS(19), - [anon_sym_CARET] = ACTIONS(19), - [anon_sym_LPAREN] = ACTIONS(21), - [anon_sym_LF] = ACTIONS(23), - [anon_sym_reg] = ACTIONS(25), - [anon_sym_initial] = ACTIONS(27), - [anon_sym_LBRACE] = ACTIONS(29), + [anon_sym_LBRACE] = ACTIONS(13), [anon_sym_RBRACE] = ACTIONS(43), - [anon_sym_interface] = ACTIONS(33), - [anon_sym_if] = ACTIONS(35), - [anon_sym_for] = ACTIONS(37), + [anon_sym_interface] = ACTIONS(17), + [anon_sym_reg] = ACTIONS(19), + [anon_sym_initial] = ACTIONS(21), + [anon_sym_if] = ACTIONS(23), + [anon_sym_for] = ACTIONS(25), + [anon_sym_input] = ACTIONS(27), + [anon_sym_output] = ACTIONS(27), + [anon_sym_state] = ACTIONS(29), + [anon_sym_gen] = ACTIONS(29), + [anon_sym_PLUS] = ACTIONS(31), + [anon_sym_DASH] = ACTIONS(31), + [anon_sym_STAR] = ACTIONS(31), + [anon_sym_BANG] = ACTIONS(31), + [anon_sym_PIPE] = ACTIONS(31), + [anon_sym_AMP] = ACTIONS(31), + [anon_sym_CARET] = ACTIONS(31), + [anon_sym_LPAREN] = ACTIONS(33), + [anon_sym_LF] = ACTIONS(45), + [sym_number] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [6] = { - [sym_global_identifier] = STATE(37), - [sym_array_type] = STATE(137), - [sym__type] = STATE(137), - [sym_declaration] = STATE(120), + [sym_block] = STATE(149), + [sym_interface_statement] = STATE(149), + [sym_decl_assign_statement] = STATE(149), + [sym_assign_left_side] = STATE(136), + [sym_assign_to] = STATE(84), + [sym_write_modifiers] = STATE(32), + [sym_if_statement] = STATE(149), + [sym_for_statement] = STATE(149), + [sym_declaration] = STATE(123), + [sym_array_type] = STATE(139), + [sym__type] = STATE(139), + [sym__expression] = STATE(36), [sym_unary_op] = STATE(36), [sym_binary_op] = STATE(36), [sym_array_op] = STATE(36), [sym_func_call] = STATE(36), [sym_field_access] = STATE(36), [sym_parenthesis_expression] = STATE(36), - [sym__expression] = STATE(36), - [aux_sym__linebreak] = STATE(31), - [sym_write_modifiers] = STATE(33), - [sym_assign_to] = STATE(85), - [sym_assign_left_side] = STATE(143), - [sym_block] = STATE(148), - [sym_interface_statement] = STATE(148), - [sym_decl_assign_statement] = STATE(148), - [sym_if_statement] = STATE(148), - [sym_for_statement] = STATE(148), + [aux_sym__linebreak] = STATE(33), + [sym_global_identifier] = STATE(37), [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), - [sym_number] = ACTIONS(13), - [anon_sym_input] = ACTIONS(15), - [anon_sym_output] = ACTIONS(15), - [anon_sym_state] = ACTIONS(17), - [anon_sym_gen] = ACTIONS(17), - [anon_sym_PLUS] = ACTIONS(19), - [anon_sym_DASH] = ACTIONS(19), - [anon_sym_STAR] = ACTIONS(19), - [anon_sym_BANG] = ACTIONS(19), - [anon_sym_PIPE] = ACTIONS(19), - [anon_sym_AMP] = ACTIONS(19), - [anon_sym_CARET] = ACTIONS(19), - [anon_sym_LPAREN] = ACTIONS(21), - [anon_sym_LF] = ACTIONS(23), - [anon_sym_reg] = ACTIONS(25), - [anon_sym_initial] = ACTIONS(27), - [anon_sym_LBRACE] = ACTIONS(29), - [anon_sym_RBRACE] = ACTIONS(45), - [anon_sym_interface] = ACTIONS(33), - [anon_sym_if] = ACTIONS(35), - [anon_sym_for] = ACTIONS(37), + [anon_sym_LBRACE] = ACTIONS(13), + [anon_sym_RBRACE] = ACTIONS(47), + [anon_sym_interface] = ACTIONS(17), + [anon_sym_reg] = ACTIONS(19), + [anon_sym_initial] = ACTIONS(21), + [anon_sym_if] = ACTIONS(23), + [anon_sym_for] = ACTIONS(25), + [anon_sym_input] = ACTIONS(27), + [anon_sym_output] = ACTIONS(27), + [anon_sym_state] = ACTIONS(29), + [anon_sym_gen] = ACTIONS(29), + [anon_sym_PLUS] = ACTIONS(31), + [anon_sym_DASH] = ACTIONS(31), + [anon_sym_STAR] = ACTIONS(31), + [anon_sym_BANG] = ACTIONS(31), + [anon_sym_PIPE] = ACTIONS(31), + [anon_sym_AMP] = ACTIONS(31), + [anon_sym_CARET] = ACTIONS(31), + [anon_sym_LPAREN] = ACTIONS(33), + [anon_sym_LF] = ACTIONS(35), + [sym_number] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [7] = { - [sym_global_identifier] = STATE(37), - [sym_array_type] = STATE(137), - [sym__type] = STATE(137), - [sym_declaration] = STATE(120), + [sym_block] = STATE(149), + [sym_interface_statement] = STATE(149), + [sym_decl_assign_statement] = STATE(149), + [sym_assign_left_side] = STATE(136), + [sym_assign_to] = STATE(84), + [sym_write_modifiers] = STATE(32), + [sym_if_statement] = STATE(149), + [sym_for_statement] = STATE(149), + [sym_declaration] = STATE(123), + [sym_array_type] = STATE(139), + [sym__type] = STATE(139), + [sym__expression] = STATE(36), [sym_unary_op] = STATE(36), [sym_binary_op] = STATE(36), [sym_array_op] = STATE(36), [sym_func_call] = STATE(36), [sym_field_access] = STATE(36), [sym_parenthesis_expression] = STATE(36), - [sym__expression] = STATE(36), - [aux_sym__linebreak] = STATE(31), - [sym_write_modifiers] = STATE(33), - [sym_assign_to] = STATE(85), - [sym_assign_left_side] = STATE(143), - [sym_block] = STATE(148), - [sym_interface_statement] = STATE(148), - [sym_decl_assign_statement] = STATE(148), - [sym_if_statement] = STATE(148), - [sym_for_statement] = STATE(148), + [aux_sym__linebreak] = STATE(33), + [sym_global_identifier] = STATE(37), [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), - [sym_number] = ACTIONS(13), - [anon_sym_input] = ACTIONS(15), - [anon_sym_output] = ACTIONS(15), - [anon_sym_state] = ACTIONS(17), - [anon_sym_gen] = ACTIONS(17), - [anon_sym_PLUS] = ACTIONS(19), - [anon_sym_DASH] = ACTIONS(19), - [anon_sym_STAR] = ACTIONS(19), - [anon_sym_BANG] = ACTIONS(19), - [anon_sym_PIPE] = ACTIONS(19), - [anon_sym_AMP] = ACTIONS(19), - [anon_sym_CARET] = ACTIONS(19), - [anon_sym_LPAREN] = ACTIONS(21), - [anon_sym_LF] = ACTIONS(23), - [anon_sym_reg] = ACTIONS(25), - [anon_sym_initial] = ACTIONS(27), - [anon_sym_LBRACE] = ACTIONS(29), - [anon_sym_RBRACE] = ACTIONS(47), - [anon_sym_interface] = ACTIONS(33), - [anon_sym_if] = ACTIONS(35), - [anon_sym_for] = ACTIONS(37), + [anon_sym_LBRACE] = ACTIONS(13), + [anon_sym_RBRACE] = ACTIONS(49), + [anon_sym_interface] = ACTIONS(17), + [anon_sym_reg] = ACTIONS(19), + [anon_sym_initial] = ACTIONS(21), + [anon_sym_if] = ACTIONS(23), + [anon_sym_for] = ACTIONS(25), + [anon_sym_input] = ACTIONS(27), + [anon_sym_output] = ACTIONS(27), + [anon_sym_state] = ACTIONS(29), + [anon_sym_gen] = ACTIONS(29), + [anon_sym_PLUS] = ACTIONS(31), + [anon_sym_DASH] = ACTIONS(31), + [anon_sym_STAR] = ACTIONS(31), + [anon_sym_BANG] = ACTIONS(31), + [anon_sym_PIPE] = ACTIONS(31), + [anon_sym_AMP] = ACTIONS(31), + [anon_sym_CARET] = ACTIONS(31), + [anon_sym_LPAREN] = ACTIONS(33), + [anon_sym_LF] = ACTIONS(35), + [sym_number] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [8] = { - [sym_global_identifier] = STATE(37), - [sym_array_type] = STATE(137), - [sym__type] = STATE(137), - [sym_declaration] = STATE(120), + [sym_block] = STATE(149), + [sym_interface_statement] = STATE(149), + [sym_decl_assign_statement] = STATE(149), + [sym_assign_left_side] = STATE(136), + [sym_assign_to] = STATE(84), + [sym_write_modifiers] = STATE(32), + [sym_if_statement] = STATE(149), + [sym_for_statement] = STATE(149), + [sym_declaration] = STATE(123), + [sym_array_type] = STATE(139), + [sym__type] = STATE(139), + [sym__expression] = STATE(36), [sym_unary_op] = STATE(36), [sym_binary_op] = STATE(36), [sym_array_op] = STATE(36), [sym_func_call] = STATE(36), [sym_field_access] = STATE(36), [sym_parenthesis_expression] = STATE(36), - [sym__expression] = STATE(36), - [aux_sym__linebreak] = STATE(31), - [sym_write_modifiers] = STATE(33), - [sym_assign_to] = STATE(85), - [sym_assign_left_side] = STATE(143), - [sym_block] = STATE(148), - [sym_interface_statement] = STATE(148), - [sym_decl_assign_statement] = STATE(148), - [sym_if_statement] = STATE(148), - [sym_for_statement] = STATE(148), + [aux_sym__linebreak] = STATE(33), + [sym_global_identifier] = STATE(37), [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), - [sym_number] = ACTIONS(13), - [anon_sym_input] = ACTIONS(15), - [anon_sym_output] = ACTIONS(15), - [anon_sym_state] = ACTIONS(17), - [anon_sym_gen] = ACTIONS(17), - [anon_sym_PLUS] = ACTIONS(19), - [anon_sym_DASH] = ACTIONS(19), - [anon_sym_STAR] = ACTIONS(19), - [anon_sym_BANG] = ACTIONS(19), - [anon_sym_PIPE] = ACTIONS(19), - [anon_sym_AMP] = ACTIONS(19), - [anon_sym_CARET] = ACTIONS(19), - [anon_sym_LPAREN] = ACTIONS(21), - [anon_sym_LF] = ACTIONS(23), - [anon_sym_reg] = ACTIONS(25), - [anon_sym_initial] = ACTIONS(27), - [anon_sym_LBRACE] = ACTIONS(29), - [anon_sym_RBRACE] = ACTIONS(49), - [anon_sym_interface] = ACTIONS(33), - [anon_sym_if] = ACTIONS(35), - [anon_sym_for] = ACTIONS(37), + [anon_sym_LBRACE] = ACTIONS(13), + [anon_sym_RBRACE] = ACTIONS(51), + [anon_sym_interface] = ACTIONS(17), + [anon_sym_reg] = ACTIONS(19), + [anon_sym_initial] = ACTIONS(21), + [anon_sym_if] = ACTIONS(23), + [anon_sym_for] = ACTIONS(25), + [anon_sym_input] = ACTIONS(27), + [anon_sym_output] = ACTIONS(27), + [anon_sym_state] = ACTIONS(29), + [anon_sym_gen] = ACTIONS(29), + [anon_sym_PLUS] = ACTIONS(31), + [anon_sym_DASH] = ACTIONS(31), + [anon_sym_STAR] = ACTIONS(31), + [anon_sym_BANG] = ACTIONS(31), + [anon_sym_PIPE] = ACTIONS(31), + [anon_sym_AMP] = ACTIONS(31), + [anon_sym_CARET] = ACTIONS(31), + [anon_sym_LPAREN] = ACTIONS(33), + [anon_sym_LF] = ACTIONS(35), + [sym_number] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [9] = { - [sym_global_identifier] = STATE(37), - [sym_array_type] = STATE(137), - [sym__type] = STATE(137), - [sym_declaration] = STATE(120), + [sym_block] = STATE(149), + [sym_interface_statement] = STATE(149), + [sym_decl_assign_statement] = STATE(149), + [sym_assign_left_side] = STATE(136), + [sym_assign_to] = STATE(84), + [sym_write_modifiers] = STATE(32), + [sym_if_statement] = STATE(149), + [sym_for_statement] = STATE(149), + [sym_declaration] = STATE(123), + [sym_array_type] = STATE(139), + [sym__type] = STATE(139), + [sym__expression] = STATE(36), [sym_unary_op] = STATE(36), [sym_binary_op] = STATE(36), [sym_array_op] = STATE(36), [sym_func_call] = STATE(36), [sym_field_access] = STATE(36), [sym_parenthesis_expression] = STATE(36), - [sym__expression] = STATE(36), - [aux_sym__linebreak] = STATE(2), - [sym_write_modifiers] = STATE(33), - [sym_assign_to] = STATE(85), - [sym_assign_left_side] = STATE(89), - [sym_block] = STATE(118), - [sym_interface_statement] = STATE(118), - [sym_decl_assign_statement] = STATE(118), - [sym_if_statement] = STATE(118), - [sym_for_statement] = STATE(118), + [aux_sym__linebreak] = STATE(33), + [sym_global_identifier] = STATE(37), [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), - [sym_number] = ACTIONS(13), - [anon_sym_input] = ACTIONS(15), - [anon_sym_output] = ACTIONS(15), - [anon_sym_state] = ACTIONS(17), - [anon_sym_gen] = ACTIONS(17), - [anon_sym_PLUS] = ACTIONS(19), - [anon_sym_DASH] = ACTIONS(19), - [anon_sym_STAR] = ACTIONS(19), - [anon_sym_BANG] = ACTIONS(19), - [anon_sym_PIPE] = ACTIONS(19), - [anon_sym_AMP] = ACTIONS(19), - [anon_sym_CARET] = ACTIONS(19), - [anon_sym_LPAREN] = ACTIONS(21), - [anon_sym_LF] = ACTIONS(51), - [anon_sym_reg] = ACTIONS(25), - [anon_sym_initial] = ACTIONS(27), - [anon_sym_LBRACE] = ACTIONS(29), + [anon_sym_LBRACE] = ACTIONS(13), [anon_sym_RBRACE] = ACTIONS(53), - [anon_sym_interface] = ACTIONS(33), - [anon_sym_if] = ACTIONS(35), - [anon_sym_for] = ACTIONS(37), + [anon_sym_interface] = ACTIONS(17), + [anon_sym_reg] = ACTIONS(19), + [anon_sym_initial] = ACTIONS(21), + [anon_sym_if] = ACTIONS(23), + [anon_sym_for] = ACTIONS(25), + [anon_sym_input] = ACTIONS(27), + [anon_sym_output] = ACTIONS(27), + [anon_sym_state] = ACTIONS(29), + [anon_sym_gen] = ACTIONS(29), + [anon_sym_PLUS] = ACTIONS(31), + [anon_sym_DASH] = ACTIONS(31), + [anon_sym_STAR] = ACTIONS(31), + [anon_sym_BANG] = ACTIONS(31), + [anon_sym_PIPE] = ACTIONS(31), + [anon_sym_AMP] = ACTIONS(31), + [anon_sym_CARET] = ACTIONS(31), + [anon_sym_LPAREN] = ACTIONS(33), + [anon_sym_LF] = ACTIONS(35), + [sym_number] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [10] = { - [sym_global_identifier] = STATE(37), - [sym_array_type] = STATE(137), - [sym__type] = STATE(137), - [sym_declaration] = STATE(120), + [sym_block] = STATE(149), + [sym_interface_statement] = STATE(149), + [sym_decl_assign_statement] = STATE(149), + [sym_assign_left_side] = STATE(136), + [sym_assign_to] = STATE(84), + [sym_write_modifiers] = STATE(32), + [sym_if_statement] = STATE(149), + [sym_for_statement] = STATE(149), + [sym_declaration] = STATE(123), + [sym_array_type] = STATE(139), + [sym__type] = STATE(139), + [sym__expression] = STATE(36), [sym_unary_op] = STATE(36), [sym_binary_op] = STATE(36), [sym_array_op] = STATE(36), [sym_func_call] = STATE(36), [sym_field_access] = STATE(36), [sym_parenthesis_expression] = STATE(36), - [sym__expression] = STATE(36), - [aux_sym__linebreak] = STATE(31), - [sym_write_modifiers] = STATE(33), - [sym_assign_to] = STATE(85), - [sym_assign_left_side] = STATE(143), - [sym_block] = STATE(148), - [sym_interface_statement] = STATE(148), - [sym_decl_assign_statement] = STATE(148), - [sym_if_statement] = STATE(148), - [sym_for_statement] = STATE(148), + [aux_sym__linebreak] = STATE(33), + [sym_global_identifier] = STATE(37), [aux_sym_write_modifiers_repeat1] = STATE(63), [sym_identifier] = ACTIONS(11), - [sym_number] = ACTIONS(13), - [anon_sym_input] = ACTIONS(15), - [anon_sym_output] = ACTIONS(15), - [anon_sym_state] = ACTIONS(17), - [anon_sym_gen] = ACTIONS(17), - [anon_sym_PLUS] = ACTIONS(19), - [anon_sym_DASH] = ACTIONS(19), - [anon_sym_STAR] = ACTIONS(19), - [anon_sym_BANG] = ACTIONS(19), - [anon_sym_PIPE] = ACTIONS(19), - [anon_sym_AMP] = ACTIONS(19), - [anon_sym_CARET] = ACTIONS(19), - [anon_sym_LPAREN] = ACTIONS(21), - [anon_sym_LF] = ACTIONS(23), - [anon_sym_reg] = ACTIONS(25), - [anon_sym_initial] = ACTIONS(27), - [anon_sym_LBRACE] = ACTIONS(29), - [anon_sym_interface] = ACTIONS(33), - [anon_sym_if] = ACTIONS(35), - [anon_sym_for] = ACTIONS(37), + [anon_sym_LBRACE] = ACTIONS(13), + [anon_sym_interface] = ACTIONS(17), + [anon_sym_reg] = ACTIONS(19), + [anon_sym_initial] = ACTIONS(21), + [anon_sym_if] = ACTIONS(23), + [anon_sym_for] = ACTIONS(25), + [anon_sym_input] = ACTIONS(27), + [anon_sym_output] = ACTIONS(27), + [anon_sym_state] = ACTIONS(29), + [anon_sym_gen] = ACTIONS(29), + [anon_sym_PLUS] = ACTIONS(31), + [anon_sym_DASH] = ACTIONS(31), + [anon_sym_STAR] = ACTIONS(31), + [anon_sym_BANG] = ACTIONS(31), + [anon_sym_PIPE] = ACTIONS(31), + [anon_sym_AMP] = ACTIONS(31), + [anon_sym_CARET] = ACTIONS(31), + [anon_sym_LPAREN] = ACTIONS(33), + [anon_sym_LF] = ACTIONS(35), + [sym_number] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, }; static const uint16_t ts_small_parse_table[] = { - [0] = 5, + [0] = 16, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(19), 1, + anon_sym_reg, + ACTIONS(21), 1, + anon_sym_initial, + ACTIONS(33), 1, + anon_sym_LPAREN, + ACTIONS(37), 1, + sym_number, + STATE(32), 1, + sym_write_modifiers, + STATE(37), 1, + sym_global_identifier, + STATE(63), 1, + aux_sym_write_modifiers_repeat1, + STATE(120), 1, + sym_assign_to, + STATE(123), 1, + sym_declaration, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(27), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(29), 2, + anon_sym_state, + anon_sym_gen, + STATE(139), 2, + sym_array_type, + sym__type, + ACTIONS(31), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(36), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + [65] = 5, ACTIONS(59), 1, anon_sym_COLON_COLON, - STATE(14), 1, + STATE(13), 1, aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(55), 8, - sym_identifier, + anon_sym_EQ, + anon_sym_in, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, - anon_sym_EQ, - anon_sym_in, + sym_identifier, ACTIONS(57), 20, - anon_sym_COMMA, anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4009,30 +4061,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COMMA, anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DOT_DOT, - [43] = 5, + [108] = 5, ACTIONS(65), 1, anon_sym_COLON_COLON, - STATE(12), 1, + STATE(13), 1, aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(61), 8, - sym_identifier, + anon_sym_EQ, + anon_sym_in, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, - anon_sym_EQ, - anon_sym_in, + sym_identifier, ACTIONS(63), 20, - anon_sym_COMMA, anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4047,59 +4099,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COMMA, anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DOT_DOT, - [86] = 16, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(13), 1, - sym_number, - ACTIONS(21), 1, - anon_sym_LPAREN, - ACTIONS(25), 1, - anon_sym_reg, - ACTIONS(27), 1, - anon_sym_initial, - STATE(33), 1, - sym_write_modifiers, - STATE(37), 1, - sym_global_identifier, - STATE(63), 1, - aux_sym_write_modifiers_repeat1, - STATE(120), 1, - sym_declaration, - STATE(123), 1, - sym_assign_to, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(15), 2, - anon_sym_input, - anon_sym_output, - ACTIONS(17), 2, - anon_sym_state, - anon_sym_gen, - STATE(137), 2, - sym_array_type, - sym__type, - ACTIONS(19), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(36), 7, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym__expression, [151] = 5, ACTIONS(59), 1, anon_sym_COLON_COLON, @@ -4109,17 +4110,19 @@ static const uint16_t ts_small_parse_table[] = { sym_single_line_comment, sym_multi_line_comment, ACTIONS(68), 8, - sym_identifier, + anon_sym_EQ, + anon_sym_in, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, - anon_sym_EQ, - anon_sym_in, + sym_identifier, ACTIONS(70), 20, - anon_sym_COMMA, anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4134,87 +4137,113 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COMMA, anon_sym_LF, + [194] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(72), 8, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(74), 21, + anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, - [194] = 15, - ACTIONS(74), 1, anon_sym_PLUS, - ACTIONS(76), 1, - anon_sym_DASH, - ACTIONS(80), 1, + anon_sym_STAR, anon_sym_PIPE, - ACTIONS(82), 1, anon_sym_AMP, - ACTIONS(84), 1, anon_sym_CARET, - ACTIONS(88), 1, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_LF, + anon_sym_COLON_COLON, + [232] = 10, + ACTIONS(82), 1, anon_sym_SLASH, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_DOT, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - STATE(27), 1, + STATE(24), 1, sym_array_bracket_expression, - STATE(28), 1, + STATE(26), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 2, + ACTIONS(80), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(86), 3, + ACTIONS(78), 4, + anon_sym_EQ, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, - anon_sym_EQ, - ACTIONS(72), 13, - anon_sym_COMMA, + ACTIONS(76), 17, anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_RPAREN, anon_sym_RBRACK, + anon_sym_COMMA, anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DOT_DOT, - [256] = 12, - ACTIONS(74), 1, - anon_sym_PLUS, - ACTIONS(76), 1, - anon_sym_DASH, - ACTIONS(88), 1, - anon_sym_SLASH, - ACTIONS(90), 1, + [284] = 8, + ACTIONS(84), 1, anon_sym_DOT, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - STATE(27), 1, + STATE(24), 1, sym_array_bracket_expression, - STATE(28), 1, + STATE(26), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(86), 3, + ACTIONS(78), 5, + anon_sym_EQ, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, - anon_sym_EQ, - ACTIONS(72), 16, - anon_sym_COMMA, + anon_sym_SLASH, + ACTIONS(76), 19, anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -4222,162 +4251,135 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, + anon_sym_COMMA, anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DOT_DOT, - [312] = 14, - ACTIONS(74), 1, - anon_sym_PLUS, - ACTIONS(76), 1, - anon_sym_DASH, - ACTIONS(80), 1, - anon_sym_PIPE, + [332] = 13, + ACTIONS(82), 1, + anon_sym_SLASH, ACTIONS(84), 1, - anon_sym_CARET, + anon_sym_DOT, + ACTIONS(86), 1, + anon_sym_LPAREN, ACTIONS(88), 1, - anon_sym_SLASH, + anon_sym_LBRACK, ACTIONS(90), 1, - anon_sym_DOT, + anon_sym_PLUS, ACTIONS(92), 1, - anon_sym_LPAREN, + anon_sym_DASH, ACTIONS(94), 1, - anon_sym_LBRACK, - STATE(27), 1, + anon_sym_CARET, + STATE(24), 1, sym_array_bracket_expression, - STATE(28), 1, + STATE(26), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 2, + ACTIONS(80), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(86), 3, + ACTIONS(78), 3, + anon_sym_EQ, anon_sym_LT, anon_sym_GT, - anon_sym_EQ, - ACTIONS(72), 14, - anon_sym_COMMA, + ACTIONS(76), 15, anon_sym_DASH_GT, - anon_sym_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - [372] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(96), 8, - sym_identifier, - anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, - anon_sym_DOT, - anon_sym_EQ, - anon_sym_in, - ACTIONS(98), 21, - anon_sym_COMMA, - anon_sym_DASH_GT, - anon_sym_COLON_COLON, - anon_sym_PLUS, - anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COMMA, anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DOT_DOT, - [410] = 8, - ACTIONS(90), 1, + [390] = 14, + ACTIONS(82), 1, + anon_sym_SLASH, + ACTIONS(84), 1, anon_sym_DOT, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - STATE(27), 1, + ACTIONS(90), 1, + anon_sym_PLUS, + ACTIONS(92), 1, + anon_sym_DASH, + ACTIONS(94), 1, + anon_sym_CARET, + ACTIONS(96), 1, + anon_sym_PIPE, + STATE(24), 1, sym_array_bracket_expression, - STATE(28), 1, + STATE(26), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(102), 5, - anon_sym_DASH, + ACTIONS(80), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(78), 3, + anon_sym_EQ, anon_sym_LT, anon_sym_GT, - anon_sym_SLASH, - anon_sym_EQ, - ACTIONS(100), 19, - anon_sym_COMMA, + ACTIONS(76), 14, anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DOT_DOT, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, + anon_sym_COMMA, anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DOT_DOT, - [458] = 10, - ACTIONS(88), 1, + [450] = 12, + ACTIONS(82), 1, anon_sym_SLASH, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_DOT, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - STATE(27), 1, + ACTIONS(90), 1, + anon_sym_PLUS, + ACTIONS(92), 1, + anon_sym_DASH, + STATE(24), 1, sym_array_bracket_expression, - STATE(28), 1, + STATE(26), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 2, + ACTIONS(80), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(86), 4, - anon_sym_DASH, + ACTIONS(78), 3, + anon_sym_EQ, anon_sym_LT, anon_sym_GT, - anon_sym_EQ, - ACTIONS(72), 17, - anon_sym_COMMA, + ACTIONS(76), 16, anon_sym_DASH_GT, - anon_sym_PLUS, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DOT_DOT, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -4387,112 +4389,113 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_RPAREN, anon_sym_RBRACK, + anon_sym_COMMA, anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DOT_DOT, - [510] = 8, - ACTIONS(90), 1, + [506] = 15, + ACTIONS(82), 1, + anon_sym_SLASH, + ACTIONS(84), 1, anon_sym_DOT, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - STATE(27), 1, + ACTIONS(90), 1, + anon_sym_PLUS, + ACTIONS(92), 1, + anon_sym_DASH, + ACTIONS(94), 1, + anon_sym_CARET, + ACTIONS(96), 1, + anon_sym_PIPE, + ACTIONS(98), 1, + anon_sym_AMP, + STATE(24), 1, sym_array_bracket_expression, - STATE(28), 1, + STATE(26), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 5, - anon_sym_DASH, + ACTIONS(80), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(78), 3, + anon_sym_EQ, anon_sym_LT, anon_sym_GT, - anon_sym_SLASH, - anon_sym_EQ, - ACTIONS(72), 19, - anon_sym_COMMA, + ACTIONS(76), 13, anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DOT_DOT, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, + anon_sym_COMMA, anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DOT_DOT, - [558] = 13, - ACTIONS(74), 1, - anon_sym_PLUS, - ACTIONS(76), 1, - anon_sym_DASH, + [568] = 8, ACTIONS(84), 1, - anon_sym_CARET, - ACTIONS(88), 1, - anon_sym_SLASH, - ACTIONS(90), 1, anon_sym_DOT, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - STATE(27), 1, + STATE(24), 1, sym_array_bracket_expression, - STATE(28), 1, + STATE(26), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(86), 3, + ACTIONS(102), 5, + anon_sym_EQ, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, - anon_sym_EQ, - ACTIONS(72), 15, - anon_sym_COMMA, + anon_sym_SLASH, + ACTIONS(100), 19, anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, + anon_sym_COMMA, anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DOT_DOT, [616] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(104), 8, - sym_identifier, + anon_sym_EQ, + anon_sym_in, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, - anon_sym_EQ, - anon_sym_in, + sym_identifier, ACTIONS(106), 20, - anon_sym_COMMA, anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4507,24 +4510,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COMMA, anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DOT_DOT, [653] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(110), 6, + anon_sym_EQ, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, - anon_sym_EQ, ACTIONS(108), 21, - anon_sym_COMMA, anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DOT_DOT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4539,25 +4543,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COMMA, anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DOT_DOT, [689] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(114), 6, + anon_sym_EQ, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, - anon_sym_EQ, ACTIONS(112), 21, - anon_sym_COMMA, anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DOT_DOT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4572,25 +4576,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COMMA, anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DOT_DOT, [725] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(118), 6, + anon_sym_EQ, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, - anon_sym_EQ, ACTIONS(116), 21, - anon_sym_COMMA, anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DOT_DOT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4605,25 +4609,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COMMA, anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DOT_DOT, [761] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(122), 6, + anon_sym_EQ, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, - anon_sym_EQ, ACTIONS(120), 21, - anon_sym_COMMA, anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DOT_DOT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4638,25 +4642,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COMMA, anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DOT_DOT, [797] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(126), 6, + anon_sym_EQ, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, - anon_sym_EQ, ACTIONS(124), 21, - anon_sym_COMMA, anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DOT_DOT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4671,25 +4675,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COMMA, anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DOT_DOT, [833] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(130), 6, + anon_sym_EQ, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, - anon_sym_EQ, ACTIONS(128), 21, - anon_sym_COMMA, anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DOT_DOT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4704,25 +4708,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COMMA, anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DOT_DOT, [869] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(134), 6, + anon_sym_EQ, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, - anon_sym_EQ, ACTIONS(132), 21, - anon_sym_COMMA, anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DOT_DOT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4737,115 +4741,78 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COMMA, anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DOT_DOT, - [905] = 5, - ACTIONS(140), 1, - anon_sym_LF, - STATE(31), 1, - aux_sym__linebreak, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(136), 12, - ts_builtin_sym_end, - anon_sym_DASH_GT, - sym_number, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, + [905] = 17, + ACTIONS(82), 1, + anon_sym_SLASH, + ACTIONS(86), 1, anon_sym_LPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - ACTIONS(138), 12, - anon_sym_module, - sym_identifier, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - anon_sym_DASH, - anon_sym_reg, - anon_sym_initial, - anon_sym_interface, - anon_sym_if, - anon_sym_for, - [944] = 17, - ACTIONS(74), 1, + ACTIONS(88), 1, + anon_sym_LBRACK, + ACTIONS(90), 1, anon_sym_PLUS, - ACTIONS(76), 1, + ACTIONS(92), 1, anon_sym_DASH, - ACTIONS(80), 1, + ACTIONS(94), 1, + anon_sym_CARET, + ACTIONS(96), 1, anon_sym_PIPE, - ACTIONS(82), 1, + ACTIONS(98), 1, anon_sym_AMP, - ACTIONS(84), 1, - anon_sym_CARET, - ACTIONS(88), 1, - anon_sym_SLASH, - ACTIONS(92), 1, - anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(149), 1, - anon_sym_DOT, - ACTIONS(151), 1, + ACTIONS(138), 1, anon_sym_EQ, - STATE(27), 1, + ACTIONS(144), 1, + anon_sym_DOT, + STATE(24), 1, sym_array_bracket_expression, - STATE(28), 1, + STATE(26), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 2, + ACTIONS(80), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(147), 2, + ACTIONS(142), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(145), 4, + ACTIONS(140), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(143), 6, - anon_sym_COMMA, + ACTIONS(136), 6, anon_sym_DASH_GT, - anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, - [1007] = 11, + anon_sym_COMMA, + anon_sym_LF, + [968] = 11, ACTIONS(11), 1, sym_identifier, - ACTIONS(21), 1, + ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(153), 1, + ACTIONS(146), 1, sym_number, STATE(37), 1, sym_global_identifier, - STATE(117), 1, + STATE(106), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(15), 2, + ACTIONS(27), 2, anon_sym_input, anon_sym_output, - ACTIONS(17), 2, + ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(137), 2, + STATE(139), 2, sym_array_type, sym__type, - ACTIONS(19), 7, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4853,143 +4820,175 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(34), 7, + STATE(35), 7, + sym__expression, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_field_access, sym_parenthesis_expression, - sym__expression, - [1057] = 16, - ACTIONS(80), 1, + [1018] = 5, + ACTIONS(152), 1, + anon_sym_LF, + STATE(33), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(148), 11, + anon_sym_interface, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + anon_sym_DASH, + sym_identifier, + ACTIONS(150), 11, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, - ACTIONS(82), 1, anon_sym_AMP, - ACTIONS(84), 1, anon_sym_CARET, - ACTIONS(88), 1, + anon_sym_LPAREN, + sym_number, + [1055] = 18, + ACTIONS(82), 1, anon_sym_SLASH, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(149), 1, + ACTIONS(94), 1, + anon_sym_CARET, + ACTIONS(96), 1, + anon_sym_PIPE, + ACTIONS(98), 1, + anon_sym_AMP, + ACTIONS(144), 1, anon_sym_DOT, + ACTIONS(155), 1, + anon_sym_RPAREN, ACTIONS(157), 1, - anon_sym_EQ, - STATE(27), 1, + anon_sym_COMMA, + STATE(24), 1, sym_array_bracket_expression, - STATE(28), 1, + STATE(26), 1, sym_parenthesis_expression_list, + STATE(60), 1, + sym__comma, + STATE(122), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(80), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(147), 2, + ACTIONS(90), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(142), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(155), 3, - anon_sym_COMMA, - anon_sym_LF, - anon_sym_RBRACE, - ACTIONS(145), 4, + ACTIONS(140), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1115] = 18, - ACTIONS(80), 1, - anon_sym_PIPE, + [1117] = 16, ACTIONS(82), 1, - anon_sym_AMP, - ACTIONS(84), 1, - anon_sym_CARET, - ACTIONS(88), 1, anon_sym_SLASH, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(149), 1, + ACTIONS(94), 1, + anon_sym_CARET, + ACTIONS(96), 1, + anon_sym_PIPE, + ACTIONS(98), 1, + anon_sym_AMP, + ACTIONS(144), 1, anon_sym_DOT, - ACTIONS(159), 1, - anon_sym_COMMA, ACTIONS(161), 1, - anon_sym_RPAREN, - STATE(27), 1, + anon_sym_EQ, + STATE(24), 1, sym_array_bracket_expression, - STATE(28), 1, + STATE(26), 1, sym_parenthesis_expression_list, - STATE(46), 1, - sym__comma, - STATE(124), 1, - aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(80), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(147), 2, + ACTIONS(90), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(142), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(145), 4, + ACTIONS(159), 3, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LF, + ACTIONS(140), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1177] = 16, - ACTIONS(80), 1, - anon_sym_PIPE, + [1175] = 16, ACTIONS(82), 1, - anon_sym_AMP, - ACTIONS(84), 1, - anon_sym_CARET, - ACTIONS(88), 1, anon_sym_SLASH, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(149), 1, + ACTIONS(94), 1, + anon_sym_CARET, + ACTIONS(96), 1, + anon_sym_PIPE, + ACTIONS(98), 1, + anon_sym_AMP, + ACTIONS(144), 1, anon_sym_DOT, ACTIONS(165), 1, anon_sym_EQ, - STATE(27), 1, + STATE(24), 1, sym_array_bracket_expression, - STATE(28), 1, + STATE(26), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(80), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(147), 2, + ACTIONS(90), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(142), 2, anon_sym_LT, anon_sym_GT, ACTIONS(163), 3, + anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, - anon_sym_RBRACE, - ACTIONS(145), 4, + ACTIONS(140), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1235] = 5, + [1233] = 5, ACTIONS(167), 1, sym_identifier, ACTIONS(173), 1, @@ -4998,12 +4997,12 @@ static const uint16_t ts_small_parse_table[] = { sym_single_line_comment, sym_multi_line_comment, ACTIONS(171), 4, + anon_sym_EQ, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - anon_sym_EQ, ACTIONS(169), 16, - anon_sym_COMMA, + anon_sym_RBRACE, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5017,320 +5016,293 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_DOT, anon_sym_LPAREN, + anon_sym_COMMA, anon_sym_LF, - anon_sym_RBRACE, - [1270] = 15, - ACTIONS(80), 1, - anon_sym_PIPE, + [1268] = 16, + ACTIONS(13), 1, + anon_sym_LBRACE, ACTIONS(82), 1, - anon_sym_AMP, - ACTIONS(84), 1, - anon_sym_CARET, - ACTIONS(88), 1, anon_sym_SLASH, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(149), 1, - anon_sym_DOT, - STATE(27), 1, - sym_array_bracket_expression, - STATE(28), 1, - sym_parenthesis_expression_list, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(74), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(78), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(147), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(176), 2, - anon_sym_LF, - anon_sym_RBRACE, - ACTIONS(145), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [1324] = 16, - ACTIONS(29), 1, - anon_sym_LBRACE, - ACTIONS(80), 1, + ACTIONS(94), 1, + anon_sym_CARET, + ACTIONS(96), 1, anon_sym_PIPE, - ACTIONS(82), 1, + ACTIONS(98), 1, anon_sym_AMP, - ACTIONS(84), 1, - anon_sym_CARET, - ACTIONS(88), 1, - anon_sym_SLASH, - ACTIONS(92), 1, - anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(149), 1, + ACTIONS(144), 1, anon_sym_DOT, - STATE(27), 1, + STATE(24), 1, sym_array_bracket_expression, - STATE(28), 1, + STATE(26), 1, sym_parenthesis_expression_list, - STATE(155), 1, + STATE(144), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(80), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(147), 2, + ACTIONS(90), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(142), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(145), 4, + ACTIONS(140), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1380] = 16, - ACTIONS(29), 1, - anon_sym_LBRACE, - ACTIONS(80), 1, - anon_sym_PIPE, + [1324] = 15, ACTIONS(82), 1, - anon_sym_AMP, - ACTIONS(84), 1, - anon_sym_CARET, - ACTIONS(88), 1, anon_sym_SLASH, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(149), 1, + ACTIONS(94), 1, + anon_sym_CARET, + ACTIONS(96), 1, + anon_sym_PIPE, + ACTIONS(98), 1, + anon_sym_AMP, + ACTIONS(144), 1, anon_sym_DOT, - STATE(27), 1, + STATE(24), 1, sym_array_bracket_expression, - STATE(28), 1, + STATE(26), 1, sym_parenthesis_expression_list, - STATE(145), 1, - sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(80), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(147), 2, + ACTIONS(90), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(142), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(145), 4, + ACTIONS(176), 2, + anon_sym_RBRACE, + anon_sym_LF, + ACTIONS(140), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1436] = 15, - ACTIONS(80), 1, - anon_sym_PIPE, + [1378] = 15, ACTIONS(82), 1, - anon_sym_AMP, - ACTIONS(84), 1, - anon_sym_CARET, - ACTIONS(88), 1, anon_sym_SLASH, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(149), 1, + ACTIONS(94), 1, + anon_sym_CARET, + ACTIONS(96), 1, + anon_sym_PIPE, + ACTIONS(98), 1, + anon_sym_AMP, + ACTIONS(144), 1, anon_sym_DOT, - STATE(27), 1, + STATE(24), 1, sym_array_bracket_expression, - STATE(28), 1, + STATE(26), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(80), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(147), 2, + ACTIONS(90), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(142), 2, anon_sym_LT, anon_sym_GT, ACTIONS(178), 2, - anon_sym_COMMA, anon_sym_RPAREN, - ACTIONS(145), 4, + anon_sym_COMMA, + ACTIONS(140), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1490] = 15, - ACTIONS(80), 1, - anon_sym_PIPE, + [1432] = 16, + ACTIONS(13), 1, + anon_sym_LBRACE, ACTIONS(82), 1, - anon_sym_AMP, - ACTIONS(84), 1, - anon_sym_CARET, - ACTIONS(88), 1, anon_sym_SLASH, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(149), 1, + ACTIONS(94), 1, + anon_sym_CARET, + ACTIONS(96), 1, + anon_sym_PIPE, + ACTIONS(98), 1, + anon_sym_AMP, + ACTIONS(144), 1, anon_sym_DOT, - ACTIONS(180), 1, - anon_sym_RPAREN, - STATE(27), 1, + STATE(24), 1, sym_array_bracket_expression, - STATE(28), 1, + STATE(26), 1, sym_parenthesis_expression_list, + STATE(156), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(80), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(147), 2, + ACTIONS(90), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(142), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(145), 4, + ACTIONS(140), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1543] = 15, - ACTIONS(80), 1, - anon_sym_PIPE, + [1488] = 15, ACTIONS(82), 1, - anon_sym_AMP, - ACTIONS(84), 1, - anon_sym_CARET, - ACTIONS(88), 1, anon_sym_SLASH, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_DOT, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(182), 1, + ACTIONS(94), 1, + anon_sym_CARET, + ACTIONS(96), 1, + anon_sym_PIPE, + ACTIONS(98), 1, + anon_sym_AMP, + ACTIONS(180), 1, anon_sym_DOT_DOT, - STATE(27), 1, + STATE(24), 1, sym_array_bracket_expression, - STATE(28), 1, + STATE(26), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(80), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(147), 2, + ACTIONS(90), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(142), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(145), 4, + ACTIONS(140), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1596] = 15, - ACTIONS(80), 1, - anon_sym_PIPE, + [1541] = 15, ACTIONS(82), 1, - anon_sym_AMP, - ACTIONS(84), 1, - anon_sym_CARET, - ACTIONS(88), 1, anon_sym_SLASH, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(149), 1, + ACTIONS(94), 1, + anon_sym_CARET, + ACTIONS(96), 1, + anon_sym_PIPE, + ACTIONS(98), 1, + anon_sym_AMP, + ACTIONS(144), 1, anon_sym_DOT, - ACTIONS(184), 1, + ACTIONS(182), 1, anon_sym_RBRACK, - STATE(27), 1, + STATE(24), 1, sym_array_bracket_expression, - STATE(28), 1, + STATE(26), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(78), 2, + ACTIONS(80), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(147), 2, + ACTIONS(90), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(142), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(145), 4, + ACTIONS(140), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1649] = 7, - ACTIONS(21), 1, + [1594] = 15, + ACTIONS(82), 1, + anon_sym_SLASH, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(186), 1, - sym_identifier, - ACTIONS(188), 1, - sym_number, - ACTIONS(190), 1, - anon_sym_RPAREN, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(19), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, + ACTIONS(88), 1, + anon_sym_LBRACK, + ACTIONS(94), 1, + anon_sym_CARET, + ACTIONS(96), 1, anon_sym_PIPE, + ACTIONS(98), 1, anon_sym_AMP, - anon_sym_CARET, - STATE(35), 8, - sym_global_identifier, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym__expression, - [1685] = 6, - ACTIONS(21), 1, + ACTIONS(144), 1, + anon_sym_DOT, + ACTIONS(184), 1, + anon_sym_RPAREN, + STATE(24), 1, + sym_array_bracket_expression, + STATE(26), 1, + sym_parenthesis_expression_list, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(80), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(90), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(142), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(140), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [1647] = 7, + ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(186), 1, sym_identifier, - ACTIONS(192), 1, + ACTIONS(188), 1, + anon_sym_RPAREN, + ACTIONS(190), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(19), 7, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5338,33 +5310,32 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(41), 8, - sym_global_identifier, + STATE(34), 8, + sym__expression, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_field_access, sym_parenthesis_expression, - sym__expression, - [1718] = 5, - ACTIONS(23), 1, + sym_global_identifier, + [1683] = 5, + ACTIONS(35), 1, anon_sym_LF, - STATE(31), 1, + STATE(33), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(194), 7, - sym_identifier, + ACTIONS(192), 7, + anon_sym_reg, + anon_sym_initial, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - ACTIONS(196), 9, - sym_number, + sym_identifier, + ACTIONS(194), 9, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5373,17 +5344,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [1749] = 6, - ACTIONS(21), 1, + sym_number, + [1714] = 6, + ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(186), 1, sym_identifier, - ACTIONS(198), 1, + ACTIONS(196), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(19), 7, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5391,26 +5363,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(38), 8, - sym_global_identifier, + STATE(41), 8, + sym__expression, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_field_access, sym_parenthesis_expression, - sym__expression, - [1782] = 6, - ACTIONS(21), 1, + sym_global_identifier, + [1747] = 6, + ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(186), 1, sym_identifier, - ACTIONS(200), 1, + ACTIONS(198), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(19), 7, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5418,26 +5390,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(17), 8, - sym_global_identifier, + STATE(44), 8, + sym__expression, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_field_access, sym_parenthesis_expression, - sym__expression, - [1815] = 6, - ACTIONS(21), 1, + sym_global_identifier, + [1780] = 6, + ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(186), 1, sym_identifier, - ACTIONS(202), 1, + ACTIONS(200), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(19), 7, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5445,26 +5417,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(22), 8, - sym_global_identifier, + STATE(20), 8, + sym__expression, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_field_access, sym_parenthesis_expression, - sym__expression, - [1848] = 6, - ACTIONS(21), 1, + sym_global_identifier, + [1813] = 6, + ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(186), 1, sym_identifier, - ACTIONS(204), 1, + ACTIONS(202), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(19), 7, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5472,26 +5444,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(21), 8, - sym_global_identifier, + STATE(22), 8, + sym__expression, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_field_access, sym_parenthesis_expression, - sym__expression, - [1881] = 6, - ACTIONS(21), 1, + sym_global_identifier, + [1846] = 6, + ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(186), 1, sym_identifier, - ACTIONS(206), 1, + ACTIONS(204), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(19), 7, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5500,25 +5472,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, STATE(42), 8, - sym_global_identifier, + sym__expression, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_field_access, sym_parenthesis_expression, - sym__expression, - [1914] = 6, - ACTIONS(21), 1, + sym_global_identifier, + [1879] = 6, + ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(186), 1, sym_identifier, - ACTIONS(208), 1, + ACTIONS(206), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(19), 7, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5527,25 +5499,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, STATE(19), 8, - sym_global_identifier, + sym__expression, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_field_access, sym_parenthesis_expression, - sym__expression, - [1947] = 6, - ACTIONS(21), 1, + sym_global_identifier, + [1912] = 6, + ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(186), 1, sym_identifier, - ACTIONS(210), 1, + ACTIONS(208), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(19), 7, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5553,26 +5525,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(43), 8, - sym_global_identifier, + STATE(31), 8, + sym__expression, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_field_access, sym_parenthesis_expression, - sym__expression, - [1980] = 6, - ACTIONS(21), 1, + sym_global_identifier, + [1945] = 6, + ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(186), 1, sym_identifier, - ACTIONS(212), 1, + ACTIONS(210), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(19), 7, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5580,26 +5552,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(20), 8, - sym_global_identifier, + STATE(18), 8, + sym__expression, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_field_access, sym_parenthesis_expression, - sym__expression, - [2013] = 6, - ACTIONS(21), 1, + sym_global_identifier, + [1978] = 6, + ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(186), 1, sym_identifier, - ACTIONS(214), 1, + ACTIONS(212), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(19), 7, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5607,26 +5579,52 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(32), 8, - sym_global_identifier, + STATE(38), 8, + sym__expression, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_field_access, sym_parenthesis_expression, - sym__expression, - [2046] = 6, - ACTIONS(21), 1, + sym_global_identifier, + [2011] = 5, + ACTIONS(218), 1, + anon_sym_LF, + STATE(46), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(214), 7, + anon_sym_reg, + anon_sym_initial, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(216), 9, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + sym_number, + [2042] = 6, + ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(186), 1, sym_identifier, - ACTIONS(216), 1, + ACTIONS(220), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(19), 7, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5634,26 +5632,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(16), 8, - sym_global_identifier, + STATE(17), 8, + sym__expression, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_field_access, sym_parenthesis_expression, - sym__expression, - [2079] = 6, - ACTIONS(21), 1, + sym_global_identifier, + [2075] = 6, + ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(186), 1, sym_identifier, - ACTIONS(218), 1, + ACTIONS(222), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(19), 7, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5661,26 +5659,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(44), 8, - sym_global_identifier, + STATE(16), 8, + sym__expression, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_field_access, sym_parenthesis_expression, - sym__expression, - [2112] = 6, - ACTIONS(21), 1, + sym_global_identifier, + [2108] = 6, + ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(186), 1, sym_identifier, - ACTIONS(220), 1, + ACTIONS(224), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(19), 7, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5688,33 +5686,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(40), 8, - sym_global_identifier, + STATE(43), 8, + sym__expression, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_field_access, sym_parenthesis_expression, - sym__expression, - [2145] = 5, + sym_global_identifier, + [2141] = 6, + ACTIONS(33), 1, + anon_sym_LPAREN, + ACTIONS(186), 1, + sym_identifier, ACTIONS(226), 1, - anon_sym_LF, - STATE(47), 1, - aux_sym__linebreak, + sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(222), 7, - sym_identifier, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - anon_sym_reg, - anon_sym_initial, - ACTIONS(224), 9, - sym_number, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5722,9 +5713,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_LPAREN, - [2176] = 6, - ACTIONS(21), 1, + STATE(40), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_global_identifier, + [2174] = 6, + ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(186), 1, sym_identifier, @@ -5733,7 +5732,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(19), 7, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5741,17 +5740,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(15), 8, - sym_global_identifier, + STATE(39), 8, + sym__expression, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_field_access, sym_parenthesis_expression, - sym__expression, - [2209] = 6, - ACTIONS(21), 1, + sym_global_identifier, + [2207] = 6, + ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(186), 1, sym_identifier, @@ -5760,7 +5759,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(19), 7, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5768,17 +5767,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(39), 8, - sym_global_identifier, + STATE(21), 8, + sym__expression, sym_unary_op, sym_binary_op, sym_array_op, sym_func_call, sym_field_access, sym_parenthesis_expression, - sym__expression, - [2242] = 5, - ACTIONS(25), 1, + sym_global_identifier, + [2240] = 5, + ACTIONS(19), 1, anon_sym_reg, STATE(64), 1, aux_sym_write_modifiers_repeat1, @@ -5786,13 +5785,12 @@ static const uint16_t ts_small_parse_table[] = { sym_single_line_comment, sym_multi_line_comment, ACTIONS(232), 5, - sym_identifier, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, + sym_identifier, ACTIONS(234), 9, - sym_number, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5801,8 +5799,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2271] = 5, - ACTIONS(240), 1, + sym_number, + [2269] = 5, + ACTIONS(238), 1, anon_sym_reg, STATE(64), 1, aux_sym_write_modifiers_repeat1, @@ -5810,13 +5809,12 @@ static const uint16_t ts_small_parse_table[] = { sym_single_line_comment, sym_multi_line_comment, ACTIONS(236), 5, - sym_identifier, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, - ACTIONS(238), 9, - sym_number, + sym_identifier, + ACTIONS(241), 9, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5825,19 +5823,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2300] = 3, + sym_number, + [2298] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(243), 6, - sym_identifier, + anon_sym_reg, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, - anon_sym_reg, + sym_identifier, ACTIONS(245), 9, - sym_number, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5846,83 +5844,84 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, - [2324] = 11, + sym_number, + [2322] = 11, ACTIONS(11), 1, sym_identifier, + ACTIONS(35), 1, + anon_sym_LF, ACTIONS(247), 1, anon_sym_DASH_GT, - ACTIONS(249), 1, - anon_sym_LF, - STATE(67), 1, + STATE(33), 1, aux_sym__linebreak, STATE(77), 1, sym_declaration, - STATE(94), 1, + STATE(96), 1, sym_declaration_list, - STATE(142), 1, + STATE(140), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(15), 2, + ACTIONS(27), 2, anon_sym_input, anon_sym_output, - ACTIONS(17), 2, + ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(137), 3, - sym_global_identifier, + STATE(139), 3, sym_array_type, sym__type, - [2363] = 11, + sym_global_identifier, + [2361] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(249), 5, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(251), 9, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + sym_number, + [2384] = 11, ACTIONS(11), 1, sym_identifier, - ACTIONS(23), 1, - anon_sym_LF, ACTIONS(247), 1, anon_sym_DASH_GT, - STATE(31), 1, + ACTIONS(253), 1, + anon_sym_LF, + STATE(66), 1, aux_sym__linebreak, STATE(77), 1, sym_declaration, - STATE(97), 1, + STATE(94), 1, sym_declaration_list, - STATE(139), 1, + STATE(137), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(15), 2, + ACTIONS(27), 2, anon_sym_input, anon_sym_output, - ACTIONS(17), 2, + ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(137), 3, - sym_global_identifier, + STATE(139), 3, sym_array_type, sym__type, - [2402] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(251), 5, - sym_identifier, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - ACTIONS(253), 9, - sym_number, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - [2425] = 9, + sym_global_identifier, + [2423] = 9, ACTIONS(11), 1, sym_identifier, ACTIONS(255), 1, @@ -5931,46 +5930,46 @@ static const uint16_t ts_small_parse_table[] = { aux_sym__linebreak, STATE(77), 1, sym_declaration, - STATE(135), 1, + STATE(147), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(15), 2, + ACTIONS(27), 2, anon_sym_input, anon_sym_output, - ACTIONS(17), 2, + ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(137), 3, - sym_global_identifier, + STATE(139), 3, sym_array_type, sym__type, - [2458] = 9, + sym_global_identifier, + [2456] = 9, ACTIONS(11), 1, sym_identifier, - ACTIONS(23), 1, + ACTIONS(35), 1, anon_sym_LF, - STATE(31), 1, + STATE(33), 1, aux_sym__linebreak, STATE(77), 1, sym_declaration, - STATE(140), 1, + STATE(142), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(15), 2, + ACTIONS(27), 2, anon_sym_input, anon_sym_output, - ACTIONS(17), 2, + ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(137), 3, - sym_global_identifier, + STATE(139), 3, sym_array_type, sym__type, - [2491] = 4, + sym_global_identifier, + [2489] = 4, ACTIONS(259), 1, anon_sym_SQUOTE, STATE(79), 1, @@ -5979,966 +5978,977 @@ static const uint16_t ts_small_parse_table[] = { sym_single_line_comment, sym_multi_line_comment, ACTIONS(257), 7, - anon_sym_COMMA, anon_sym_DASH_GT, - anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, - [2511] = 4, + anon_sym_COMMA, + anon_sym_LF, + [2509] = 4, ACTIONS(259), 1, anon_sym_SQUOTE, - STATE(80), 1, + STATE(81), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(261), 7, - anon_sym_COMMA, anon_sym_DASH_GT, - anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, - [2531] = 4, + anon_sym_COMMA, + anon_sym_LF, + [2529] = 4, ACTIONS(259), 1, anon_sym_SQUOTE, - STATE(83), 1, + STATE(78), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(263), 7, - anon_sym_COMMA, anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_COMMA, anon_sym_LF, + [2549] = 4, + ACTIONS(259), 1, + anon_sym_SQUOTE, + STATE(83), 1, + sym_latency_specifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(265), 7, + anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, - [2551] = 6, + anon_sym_COMMA, + anon_sym_LF, + [2569] = 6, ACTIONS(11), 1, sym_identifier, - STATE(159), 1, + STATE(97), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(15), 2, + ACTIONS(27), 2, anon_sym_input, anon_sym_output, - ACTIONS(17), 2, + ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(137), 3, - sym_global_identifier, + STATE(139), 3, sym_array_type, sym__type, - [2575] = 6, + sym_global_identifier, + [2593] = 6, ACTIONS(11), 1, sym_identifier, - STATE(95), 1, + STATE(161), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(15), 2, + ACTIONS(27), 2, anon_sym_input, anon_sym_output, - ACTIONS(17), 2, + ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(137), 3, - sym_global_identifier, + STATE(139), 3, sym_array_type, sym__type, - [2599] = 4, - ACTIONS(259), 1, - anon_sym_SQUOTE, - STATE(78), 1, - sym_latency_specifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(265), 7, - anon_sym_COMMA, - anon_sym_DASH_GT, - anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, - [2619] = 5, - ACTIONS(159), 1, + sym_global_identifier, + [2617] = 5, + ACTIONS(157), 1, anon_sym_COMMA, STATE(75), 1, sym__comma, - STATE(81), 1, + STATE(82), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(267), 4, anon_sym_DASH_GT, - anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, - [2639] = 2, + anon_sym_LF, + [2637] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(269), 7, - anon_sym_COMMA, anon_sym_DASH_GT, - anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, - [2653] = 2, + anon_sym_COMMA, + anon_sym_LF, + [2651] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(271), 7, - anon_sym_COMMA, anon_sym_DASH_GT, - anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, - [2667] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(273), 7, anon_sym_COMMA, - anon_sym_DASH_GT, anon_sym_LF, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, - [2681] = 5, - ACTIONS(159), 1, + [2665] = 5, + ACTIONS(275), 1, anon_sym_COMMA, STATE(75), 1, sym__comma, - STATE(82), 1, + STATE(80), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(275), 4, + ACTIONS(273), 4, anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_LF, + [2685] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(278), 7, + anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, - [2701] = 5, - ACTIONS(277), 1, + anon_sym_EQ, + anon_sym_in, + anon_sym_COMMA, + anon_sym_LF, + [2699] = 5, + ACTIONS(157), 1, anon_sym_COMMA, STATE(75), 1, sym__comma, - STATE(82), 1, + STATE(80), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(280), 4, anon_sym_DASH_GT, - anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, - [2721] = 2, + anon_sym_LF, + [2719] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(282), 7, - anon_sym_COMMA, anon_sym_DASH_GT, - anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, - [2735] = 4, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(284), 2, - anon_sym_state, - anon_sym_gen, - STATE(136), 3, - sym_global_identifier, - sym_array_type, - sym__type, - [2752] = 5, - ACTIONS(159), 1, anon_sym_COMMA, - STATE(13), 1, + anon_sym_LF, + [2733] = 5, + ACTIONS(157), 1, + anon_sym_COMMA, + STATE(11), 1, sym__comma, - STATE(86), 1, + STATE(85), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(286), 3, - anon_sym_LF, + ACTIONS(284), 3, anon_sym_RBRACE, anon_sym_EQ, - [2771] = 5, - ACTIONS(159), 1, + anon_sym_LF, + [2752] = 5, + ACTIONS(157), 1, anon_sym_COMMA, - STATE(13), 1, + STATE(11), 1, sym__comma, STATE(87), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(288), 3, - anon_sym_LF, + ACTIONS(286), 3, anon_sym_RBRACE, anon_sym_EQ, - [2790] = 5, - ACTIONS(290), 1, + anon_sym_LF, + [2771] = 4, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(288), 2, + anon_sym_state, + anon_sym_gen, + STATE(146), 3, + sym_array_type, + sym__type, + sym_global_identifier, + [2788] = 5, + ACTIONS(292), 1, anon_sym_COMMA, - STATE(13), 1, + STATE(11), 1, sym__comma, STATE(87), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(293), 3, - anon_sym_LF, + ACTIONS(290), 3, anon_sym_RBRACE, anon_sym_EQ, - [2809] = 6, - ACTIONS(295), 1, anon_sym_LF, + [2807] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(295), 1, + ts_builtin_sym_end, ACTIONS(297), 1, - anon_sym_RBRACE, - ACTIONS(299), 1, - anon_sym_EQ, - STATE(6), 1, + anon_sym_LF, + STATE(113), 1, aux_sym__linebreak, - STATE(121), 1, - aux_sym_block_repeat1, + STATE(148), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2829] = 6, - ACTIONS(299), 1, - anon_sym_EQ, - ACTIONS(301), 1, + [2827] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(297), 1, anon_sym_LF, - ACTIONS(303), 1, - anon_sym_RBRACE, - STATE(5), 1, + ACTIONS(299), 1, + ts_builtin_sym_end, + STATE(110), 1, + sym_module, + STATE(113), 1, aux_sym__linebreak, - STATE(132), 1, - aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2849] = 6, + [2847] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(23), 1, + ACTIONS(297), 1, anon_sym_LF, - ACTIONS(305), 1, + ACTIONS(301), 1, ts_builtin_sym_end, - STATE(31), 1, + STATE(113), 1, aux_sym__linebreak, - STATE(112), 1, + STATE(148), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2869] = 6, + [2867] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(23), 1, + ACTIONS(297), 1, anon_sym_LF, - ACTIONS(307), 1, + ACTIONS(303), 1, ts_builtin_sym_end, - STATE(31), 1, + STATE(113), 1, aux_sym__linebreak, - STATE(154), 1, + STATE(148), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2889] = 6, + [2887] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(23), 1, + ACTIONS(297), 1, anon_sym_LF, - ACTIONS(309), 1, + ACTIONS(305), 1, ts_builtin_sym_end, - STATE(31), 1, + STATE(113), 1, aux_sym__linebreak, - STATE(154), 1, + STATE(148), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2909] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(23), 1, - anon_sym_LF, + [2907] = 6, + ACTIONS(307), 1, + anon_sym_RBRACE, + ACTIONS(309), 1, + anon_sym_EQ, ACTIONS(311), 1, - ts_builtin_sym_end, - STATE(31), 1, + anon_sym_LF, + STATE(6), 1, aux_sym__linebreak, - STATE(154), 1, - sym_module, + STATE(133), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2929] = 4, + [2927] = 4, ACTIONS(247), 1, anon_sym_DASH_GT, - STATE(144), 1, + STATE(141), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(313), 3, - anon_sym_LF, anon_sym_LBRACE, anon_sym_RBRACE, - [2945] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(315), 5, - anon_sym_COMMA, - anon_sym_DASH_GT, anon_sym_LF, - anon_sym_LBRACE, + [2943] = 6, + ACTIONS(309), 1, + anon_sym_EQ, + ACTIONS(315), 1, anon_sym_RBRACE, - [2957] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(23), 1, - anon_sym_LF, ACTIONS(317), 1, - ts_builtin_sym_end, - STATE(31), 1, + anon_sym_LF, + STATE(9), 1, aux_sym__linebreak, - STATE(154), 1, - sym_module, + STATE(131), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2977] = 4, + [2963] = 4, ACTIONS(247), 1, anon_sym_DASH_GT, - STATE(141), 1, + STATE(143), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(319), 3, + anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_LF, + [2979] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(321), 5, + anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, - [2993] = 2, + anon_sym_COMMA, + anon_sym_LF, + [2991] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(321), 4, + ACTIONS(323), 4, ts_builtin_sym_end, - anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3004] = 5, - ACTIONS(295), 1, anon_sym_LF, - ACTIONS(297), 1, + [3002] = 5, + ACTIONS(325), 1, anon_sym_RBRACE, - STATE(6), 1, + ACTIONS(327), 1, + anon_sym_LF, + STATE(8), 1, aux_sym__linebreak, - STATE(122), 1, + STATE(117), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3021] = 2, + [3019] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(323), 4, + ACTIONS(329), 4, ts_builtin_sym_end, - anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3032] = 2, + anon_sym_LF, + [3030] = 5, + ACTIONS(331), 1, + ts_builtin_sym_end, + ACTIONS(333), 1, + anon_sym_LF, + STATE(90), 1, + aux_sym__linebreak, + STATE(109), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(325), 4, - ts_builtin_sym_end, + [3047] = 4, + ACTIONS(335), 1, + anon_sym_COLON, + STATE(153), 1, + sym_interface_ports, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(337), 2, + anon_sym_RBRACE, anon_sym_LF, + [3062] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(339), 4, + ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, - [3043] = 2, + anon_sym_LF, + [3073] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(323), 4, + ACTIONS(339), 4, ts_builtin_sym_end, - anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3054] = 5, - ACTIONS(327), 1, - anon_sym_COMMA, - ACTIONS(330), 1, + anon_sym_LF, + [3084] = 5, + ACTIONS(341), 1, anon_sym_RPAREN, - STATE(46), 1, + ACTIONS(343), 1, + anon_sym_COMMA, + STATE(60), 1, sym__comma, - STATE(103), 1, + STATE(105), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3071] = 4, - ACTIONS(332), 1, - anon_sym_COLON, - STATE(150), 1, - sym_interface_ports, + [3101] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(159), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COMMA, + anon_sym_LF, + [3112] = 5, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(335), 1, + anon_sym_COLON, + STATE(151), 1, + sym_interface_ports, + STATE(154), 1, + sym_block, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [3129] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(334), 2, - anon_sym_LF, + ACTIONS(346), 4, + ts_builtin_sym_end, anon_sym_RBRACE, - [3086] = 5, - ACTIONS(336), 1, + anon_sym_else, + anon_sym_LF, + [3140] = 5, + ACTIONS(348), 1, ts_builtin_sym_end, - ACTIONS(338), 1, + ACTIONS(350), 1, anon_sym_LF, STATE(91), 1, aux_sym__linebreak, - STATE(110), 1, + STATE(129), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3103] = 5, - ACTIONS(340), 1, + [3157] = 5, + ACTIONS(352), 1, + ts_builtin_sym_end, + ACTIONS(354), 1, anon_sym_LF, - ACTIONS(342), 1, - anon_sym_RBRACE, - STATE(4), 1, + STATE(92), 1, aux_sym__linebreak, - STATE(130), 1, - aux_sym_block_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3120] = 5, - ACTIONS(29), 1, - anon_sym_LBRACE, - ACTIONS(332), 1, - anon_sym_COLON, - STATE(147), 1, - sym_block, - STATE(149), 1, - sym_interface_ports, + STATE(135), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3137] = 2, + [3174] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(344), 4, + ACTIONS(356), 4, ts_builtin_sym_end, - anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3148] = 2, + anon_sym_LF, + [3185] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(346), 4, + ACTIONS(358), 4, ts_builtin_sym_end, - anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3159] = 5, - ACTIONS(348), 1, - ts_builtin_sym_end, - ACTIONS(350), 1, anon_sym_LF, - STATE(92), 1, + [3196] = 4, + ACTIONS(360), 1, + anon_sym_LF, + STATE(113), 1, aux_sym__linebreak, - STATE(128), 1, - aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3176] = 2, + ACTIONS(150), 2, + ts_builtin_sym_end, + anon_sym_module, + [3211] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(346), 4, + ACTIONS(356), 4, ts_builtin_sym_end, - anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3187] = 5, - ACTIONS(352), 1, - ts_builtin_sym_end, - ACTIONS(354), 1, anon_sym_LF, - STATE(93), 1, - aux_sym__linebreak, - STATE(134), 1, - aux_sym_source_file_repeat1, + [3222] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3204] = 3, + ACTIONS(363), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [3233] = 3, ACTIONS(186), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, STATE(138), 3, - sym_global_identifier, sym_array_type, sym__type, - [3217] = 2, + sym_global_identifier, + [3246] = 5, + ACTIONS(365), 1, + anon_sym_RBRACE, + ACTIONS(367), 1, + anon_sym_LF, + STATE(10), 1, + aux_sym__linebreak, + STATE(117), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(356), 4, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_RBRACE, - anon_sym_else, - [3228] = 2, + [3263] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(356), 4, + ACTIONS(370), 4, ts_builtin_sym_end, - anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3239] = 5, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(23), 1, anon_sym_LF, - STATE(31), 1, - aux_sym__linebreak, - STATE(154), 1, - sym_module, + [3274] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3256] = 2, + ACTIONS(363), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [3285] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(155), 4, - anon_sym_COMMA, - anon_sym_LF, + ACTIONS(372), 4, anon_sym_RBRACE, anon_sym_EQ, - [3267] = 5, - ACTIONS(301), 1, + anon_sym_COMMA, anon_sym_LF, - ACTIONS(303), 1, - anon_sym_RBRACE, - STATE(5), 1, + [3296] = 5, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(297), 1, + anon_sym_LF, + STATE(113), 1, aux_sym__linebreak, - STATE(106), 1, - aux_sym_block_repeat1, + STATE(148), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3284] = 2, + [3313] = 5, + ACTIONS(157), 1, + anon_sym_COMMA, + ACTIONS(374), 1, + anon_sym_RPAREN, + STATE(60), 1, + sym__comma, + STATE(105), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(358), 4, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_RBRACE, - anon_sym_else, - [3295] = 2, + [3330] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(163), 4, - anon_sym_COMMA, - anon_sym_LF, anon_sym_RBRACE, anon_sym_EQ, - [3306] = 5, - ACTIONS(360), 1, + anon_sym_COMMA, anon_sym_LF, - ACTIONS(362), 1, - anon_sym_RBRACE, - STATE(8), 1, - aux_sym__linebreak, - STATE(130), 1, - aux_sym_block_repeat1, + [3341] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3323] = 5, - ACTIONS(364), 1, + ACTIONS(323), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, anon_sym_LF, - ACTIONS(366), 1, + [3352] = 5, + ACTIONS(315), 1, anon_sym_RBRACE, - STATE(7), 1, + ACTIONS(317), 1, + anon_sym_LF, + STATE(9), 1, aux_sym__linebreak, - STATE(130), 1, + STATE(132), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3340] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(368), 4, - anon_sym_COMMA, - anon_sym_LF, + [3369] = 5, + ACTIONS(307), 1, anon_sym_RBRACE, - anon_sym_EQ, - [3351] = 5, - ACTIONS(159), 1, - anon_sym_COMMA, - ACTIONS(370), 1, - anon_sym_RPAREN, - STATE(46), 1, - sym__comma, - STATE(103), 1, - aux_sym_parenthesis_expression_list_repeat1, + ACTIONS(311), 1, + anon_sym_LF, + STATE(6), 1, + aux_sym__linebreak, + STATE(99), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3368] = 2, + [3386] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(372), 4, + ACTIONS(376), 4, ts_builtin_sym_end, - anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3379] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(374), 4, - ts_builtin_sym_end, anon_sym_LF, - anon_sym_RBRACE, - anon_sym_else, - [3390] = 4, - ACTIONS(29), 1, + [3397] = 4, + ACTIONS(13), 1, anon_sym_LBRACE, - ACTIONS(376), 1, + ACTIONS(378), 1, anon_sym_if, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(151), 2, + STATE(152), 2, sym_block, sym_if_statement, - [3405] = 5, - ACTIONS(378), 1, - ts_builtin_sym_end, + [3412] = 5, ACTIONS(380), 1, + ts_builtin_sym_end, + ACTIONS(382), 1, anon_sym_LF, - STATE(116), 1, + STATE(121), 1, aux_sym__linebreak, - STATE(128), 1, + STATE(129), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3422] = 2, + [3429] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(383), 4, + ACTIONS(385), 4, ts_builtin_sym_end, - anon_sym_LF, anon_sym_RBRACE, anon_sym_else, - [3433] = 5, - ACTIONS(385), 1, anon_sym_LF, - ACTIONS(388), 1, + [3440] = 5, + ACTIONS(387), 1, anon_sym_RBRACE, - STATE(10), 1, + ACTIONS(389), 1, + anon_sym_LF, + STATE(2), 1, aux_sym__linebreak, - STATE(130), 1, + STATE(117), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3450] = 2, + [3457] = 5, + ACTIONS(391), 1, + anon_sym_RBRACE, + ACTIONS(393), 1, + anon_sym_LF, + STATE(4), 1, + aux_sym__linebreak, + STATE(117), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(383), 4, - ts_builtin_sym_end, - anon_sym_LF, + [3474] = 5, + ACTIONS(395), 1, anon_sym_RBRACE, - anon_sym_else, - [3461] = 5, - ACTIONS(390), 1, + ACTIONS(397), 1, anon_sym_LF, - ACTIONS(392), 1, - anon_sym_RBRACE, - STATE(3), 1, + STATE(7), 1, aux_sym__linebreak, - STATE(130), 1, + STATE(117), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3478] = 3, + [3491] = 3, ACTIONS(186), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(146), 3, - sym_global_identifier, + STATE(145), 3, sym_array_type, sym__type, - [3491] = 5, - ACTIONS(394), 1, + sym_global_identifier, + [3504] = 5, + ACTIONS(399), 1, ts_builtin_sym_end, - ACTIONS(396), 1, + ACTIONS(401), 1, anon_sym_LF, - STATE(96), 1, + STATE(88), 1, aux_sym__linebreak, - STATE(128), 1, + STATE(129), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3508] = 2, + [3521] = 3, + ACTIONS(309), 1, + anon_sym_EQ, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(398), 3, - anon_sym_LF, - anon_sym_LBRACE, + ACTIONS(403), 2, anon_sym_RBRACE, - [3518] = 4, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(400), 1, - sym_identifier, - STATE(153), 1, - sym_array_bracket_expression, + anon_sym_LF, + [3533] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3532] = 4, - ACTIONS(94), 1, + ACTIONS(405), 3, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_LF, + [3543] = 4, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(402), 1, + ACTIONS(407), 1, sym_identifier, - STATE(153), 1, + STATE(155), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3546] = 4, - ACTIONS(94), 1, + [3557] = 4, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(404), 1, + ACTIONS(409), 1, sym_identifier, - STATE(153), 1, + STATE(155), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3560] = 2, + [3571] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(406), 3, - anon_sym_LF, + ACTIONS(411), 3, anon_sym_LBRACE, anon_sym_RBRACE, - [3570] = 2, + anon_sym_LF, + [3581] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(408), 3, - anon_sym_LF, + ACTIONS(413), 3, anon_sym_LBRACE, anon_sym_RBRACE, - [3580] = 2, + anon_sym_LF, + [3591] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(410), 3, - anon_sym_LF, + ACTIONS(415), 3, anon_sym_LBRACE, anon_sym_RBRACE, - [3590] = 2, + anon_sym_LF, + [3601] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(412), 3, - anon_sym_LF, + ACTIONS(417), 3, anon_sym_LBRACE, anon_sym_RBRACE, - [3600] = 3, - ACTIONS(299), 1, - anon_sym_EQ, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(414), 2, anon_sym_LF, - anon_sym_RBRACE, - [3612] = 2, + [3611] = 3, + ACTIONS(421), 1, + anon_sym_else, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(416), 3, - anon_sym_LF, - anon_sym_LBRACE, + ACTIONS(419), 2, anon_sym_RBRACE, - [3622] = 3, - ACTIONS(420), 1, - anon_sym_else, + anon_sym_LF, + [3623] = 4, + ACTIONS(88), 1, + anon_sym_LBRACK, + ACTIONS(423), 1, + sym_identifier, + STATE(155), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(418), 2, - anon_sym_LF, - anon_sym_RBRACE, - [3634] = 4, - ACTIONS(94), 1, + [3637] = 4, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(422), 1, + ACTIONS(425), 1, sym_identifier, - STATE(153), 1, + STATE(155), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3648] = 2, + [3651] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(424), 2, - ts_builtin_sym_end, + ACTIONS(427), 3, + anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_LF, - [3657] = 2, + [3661] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(414), 2, + ACTIONS(429), 2, + ts_builtin_sym_end, anon_sym_LF, + [3670] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(403), 2, anon_sym_RBRACE, - [3666] = 3, - ACTIONS(29), 1, + anon_sym_LF, + [3679] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(431), 2, + ts_builtin_sym_end, + anon_sym_LF, + [3688] = 3, + ACTIONS(13), 1, anon_sym_LBRACE, - STATE(152), 1, + STATE(150), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3677] = 2, + [3699] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(426), 2, - anon_sym_LF, + ACTIONS(433), 2, anon_sym_RBRACE, - [3686] = 2, + anon_sym_LF, + [3708] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(428), 2, - anon_sym_LF, + ACTIONS(435), 2, anon_sym_RBRACE, - [3695] = 2, + anon_sym_LF, + [3717] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(430), 2, + ACTIONS(437), 2, ts_builtin_sym_end, anon_sym_LF, - [3704] = 2, + [3726] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(432), 2, - sym_identifier, + ACTIONS(439), 2, anon_sym_LBRACK, - [3713] = 2, + sym_identifier, + [3735] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(434), 2, - ts_builtin_sym_end, + ACTIONS(441), 2, + anon_sym_RBRACE, anon_sym_LF, - [3722] = 2, + [3744] = 2, + ACTIONS(443), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(436), 2, - anon_sym_LF, - anon_sym_RBRACE, - [3731] = 2, - ACTIONS(438), 1, + [3752] = 2, + ACTIONS(445), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3739] = 2, - ACTIONS(440), 1, + [3760] = 2, + ACTIONS(447), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3747] = 2, - ACTIONS(442), 1, + [3768] = 2, + ACTIONS(449), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3755] = 2, - ACTIONS(444), 1, + [3776] = 2, + ACTIONS(451), 1, anon_sym_in, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3763] = 2, - ACTIONS(446), 1, - sym_identifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3771] = 2, - ACTIONS(448), 1, + [3784] = 2, + ACTIONS(453), 1, ts_builtin_sym_end, ACTIONS(3), 2, sym_single_line_comment, @@ -6947,17 +6957,17 @@ static const uint16_t ts_small_parse_table[] = { static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(11)] = 0, - [SMALL_STATE(12)] = 43, - [SMALL_STATE(13)] = 86, + [SMALL_STATE(12)] = 65, + [SMALL_STATE(13)] = 108, [SMALL_STATE(14)] = 151, [SMALL_STATE(15)] = 194, - [SMALL_STATE(16)] = 256, - [SMALL_STATE(17)] = 312, - [SMALL_STATE(18)] = 372, - [SMALL_STATE(19)] = 410, - [SMALL_STATE(20)] = 458, - [SMALL_STATE(21)] = 510, - [SMALL_STATE(22)] = 558, + [SMALL_STATE(16)] = 232, + [SMALL_STATE(17)] = 284, + [SMALL_STATE(18)] = 332, + [SMALL_STATE(19)] = 390, + [SMALL_STATE(20)] = 450, + [SMALL_STATE(21)] = 506, + [SMALL_STATE(22)] = 568, [SMALL_STATE(23)] = 616, [SMALL_STATE(24)] = 653, [SMALL_STATE(25)] = 689, @@ -6967,136 +6977,137 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(29)] = 833, [SMALL_STATE(30)] = 869, [SMALL_STATE(31)] = 905, - [SMALL_STATE(32)] = 944, - [SMALL_STATE(33)] = 1007, - [SMALL_STATE(34)] = 1057, - [SMALL_STATE(35)] = 1115, - [SMALL_STATE(36)] = 1177, - [SMALL_STATE(37)] = 1235, - [SMALL_STATE(38)] = 1270, + [SMALL_STATE(32)] = 968, + [SMALL_STATE(33)] = 1018, + [SMALL_STATE(34)] = 1055, + [SMALL_STATE(35)] = 1117, + [SMALL_STATE(36)] = 1175, + [SMALL_STATE(37)] = 1233, + [SMALL_STATE(38)] = 1268, [SMALL_STATE(39)] = 1324, - [SMALL_STATE(40)] = 1380, - [SMALL_STATE(41)] = 1436, - [SMALL_STATE(42)] = 1490, - [SMALL_STATE(43)] = 1543, - [SMALL_STATE(44)] = 1596, - [SMALL_STATE(45)] = 1649, - [SMALL_STATE(46)] = 1685, - [SMALL_STATE(47)] = 1718, - [SMALL_STATE(48)] = 1749, - [SMALL_STATE(49)] = 1782, - [SMALL_STATE(50)] = 1815, - [SMALL_STATE(51)] = 1848, - [SMALL_STATE(52)] = 1881, - [SMALL_STATE(53)] = 1914, - [SMALL_STATE(54)] = 1947, - [SMALL_STATE(55)] = 1980, - [SMALL_STATE(56)] = 2013, - [SMALL_STATE(57)] = 2046, - [SMALL_STATE(58)] = 2079, - [SMALL_STATE(59)] = 2112, - [SMALL_STATE(60)] = 2145, - [SMALL_STATE(61)] = 2176, - [SMALL_STATE(62)] = 2209, - [SMALL_STATE(63)] = 2242, - [SMALL_STATE(64)] = 2271, - [SMALL_STATE(65)] = 2300, - [SMALL_STATE(66)] = 2324, - [SMALL_STATE(67)] = 2363, - [SMALL_STATE(68)] = 2402, - [SMALL_STATE(69)] = 2425, - [SMALL_STATE(70)] = 2458, - [SMALL_STATE(71)] = 2491, - [SMALL_STATE(72)] = 2511, - [SMALL_STATE(73)] = 2531, - [SMALL_STATE(74)] = 2551, - [SMALL_STATE(75)] = 2575, - [SMALL_STATE(76)] = 2599, - [SMALL_STATE(77)] = 2619, - [SMALL_STATE(78)] = 2639, - [SMALL_STATE(79)] = 2653, - [SMALL_STATE(80)] = 2667, - [SMALL_STATE(81)] = 2681, - [SMALL_STATE(82)] = 2701, - [SMALL_STATE(83)] = 2721, - [SMALL_STATE(84)] = 2735, + [SMALL_STATE(40)] = 1378, + [SMALL_STATE(41)] = 1432, + [SMALL_STATE(42)] = 1488, + [SMALL_STATE(43)] = 1541, + [SMALL_STATE(44)] = 1594, + [SMALL_STATE(45)] = 1647, + [SMALL_STATE(46)] = 1683, + [SMALL_STATE(47)] = 1714, + [SMALL_STATE(48)] = 1747, + [SMALL_STATE(49)] = 1780, + [SMALL_STATE(50)] = 1813, + [SMALL_STATE(51)] = 1846, + [SMALL_STATE(52)] = 1879, + [SMALL_STATE(53)] = 1912, + [SMALL_STATE(54)] = 1945, + [SMALL_STATE(55)] = 1978, + [SMALL_STATE(56)] = 2011, + [SMALL_STATE(57)] = 2042, + [SMALL_STATE(58)] = 2075, + [SMALL_STATE(59)] = 2108, + [SMALL_STATE(60)] = 2141, + [SMALL_STATE(61)] = 2174, + [SMALL_STATE(62)] = 2207, + [SMALL_STATE(63)] = 2240, + [SMALL_STATE(64)] = 2269, + [SMALL_STATE(65)] = 2298, + [SMALL_STATE(66)] = 2322, + [SMALL_STATE(67)] = 2361, + [SMALL_STATE(68)] = 2384, + [SMALL_STATE(69)] = 2423, + [SMALL_STATE(70)] = 2456, + [SMALL_STATE(71)] = 2489, + [SMALL_STATE(72)] = 2509, + [SMALL_STATE(73)] = 2529, + [SMALL_STATE(74)] = 2549, + [SMALL_STATE(75)] = 2569, + [SMALL_STATE(76)] = 2593, + [SMALL_STATE(77)] = 2617, + [SMALL_STATE(78)] = 2637, + [SMALL_STATE(79)] = 2651, + [SMALL_STATE(80)] = 2665, + [SMALL_STATE(81)] = 2685, + [SMALL_STATE(82)] = 2699, + [SMALL_STATE(83)] = 2719, + [SMALL_STATE(84)] = 2733, [SMALL_STATE(85)] = 2752, [SMALL_STATE(86)] = 2771, - [SMALL_STATE(87)] = 2790, - [SMALL_STATE(88)] = 2809, - [SMALL_STATE(89)] = 2829, - [SMALL_STATE(90)] = 2849, - [SMALL_STATE(91)] = 2869, - [SMALL_STATE(92)] = 2889, - [SMALL_STATE(93)] = 2909, - [SMALL_STATE(94)] = 2929, - [SMALL_STATE(95)] = 2945, - [SMALL_STATE(96)] = 2957, - [SMALL_STATE(97)] = 2977, - [SMALL_STATE(98)] = 2993, - [SMALL_STATE(99)] = 3004, - [SMALL_STATE(100)] = 3021, - [SMALL_STATE(101)] = 3032, - [SMALL_STATE(102)] = 3043, - [SMALL_STATE(103)] = 3054, - [SMALL_STATE(104)] = 3071, - [SMALL_STATE(105)] = 3086, - [SMALL_STATE(106)] = 3103, - [SMALL_STATE(107)] = 3120, - [SMALL_STATE(108)] = 3137, - [SMALL_STATE(109)] = 3148, - [SMALL_STATE(110)] = 3159, - [SMALL_STATE(111)] = 3176, - [SMALL_STATE(112)] = 3187, - [SMALL_STATE(113)] = 3204, - [SMALL_STATE(114)] = 3217, - [SMALL_STATE(115)] = 3228, - [SMALL_STATE(116)] = 3239, - [SMALL_STATE(117)] = 3256, - [SMALL_STATE(118)] = 3267, - [SMALL_STATE(119)] = 3284, - [SMALL_STATE(120)] = 3295, - [SMALL_STATE(121)] = 3306, - [SMALL_STATE(122)] = 3323, - [SMALL_STATE(123)] = 3340, - [SMALL_STATE(124)] = 3351, - [SMALL_STATE(125)] = 3368, - [SMALL_STATE(126)] = 3379, - [SMALL_STATE(127)] = 3390, - [SMALL_STATE(128)] = 3405, - [SMALL_STATE(129)] = 3422, - [SMALL_STATE(130)] = 3433, - [SMALL_STATE(131)] = 3450, - [SMALL_STATE(132)] = 3461, - [SMALL_STATE(133)] = 3478, + [SMALL_STATE(87)] = 2788, + [SMALL_STATE(88)] = 2807, + [SMALL_STATE(89)] = 2827, + [SMALL_STATE(90)] = 2847, + [SMALL_STATE(91)] = 2867, + [SMALL_STATE(92)] = 2887, + [SMALL_STATE(93)] = 2907, + [SMALL_STATE(94)] = 2927, + [SMALL_STATE(95)] = 2943, + [SMALL_STATE(96)] = 2963, + [SMALL_STATE(97)] = 2979, + [SMALL_STATE(98)] = 2991, + [SMALL_STATE(99)] = 3002, + [SMALL_STATE(100)] = 3019, + [SMALL_STATE(101)] = 3030, + [SMALL_STATE(102)] = 3047, + [SMALL_STATE(103)] = 3062, + [SMALL_STATE(104)] = 3073, + [SMALL_STATE(105)] = 3084, + [SMALL_STATE(106)] = 3101, + [SMALL_STATE(107)] = 3112, + [SMALL_STATE(108)] = 3129, + [SMALL_STATE(109)] = 3140, + [SMALL_STATE(110)] = 3157, + [SMALL_STATE(111)] = 3174, + [SMALL_STATE(112)] = 3185, + [SMALL_STATE(113)] = 3196, + [SMALL_STATE(114)] = 3211, + [SMALL_STATE(115)] = 3222, + [SMALL_STATE(116)] = 3233, + [SMALL_STATE(117)] = 3246, + [SMALL_STATE(118)] = 3263, + [SMALL_STATE(119)] = 3274, + [SMALL_STATE(120)] = 3285, + [SMALL_STATE(121)] = 3296, + [SMALL_STATE(122)] = 3313, + [SMALL_STATE(123)] = 3330, + [SMALL_STATE(124)] = 3341, + [SMALL_STATE(125)] = 3352, + [SMALL_STATE(126)] = 3369, + [SMALL_STATE(127)] = 3386, + [SMALL_STATE(128)] = 3397, + [SMALL_STATE(129)] = 3412, + [SMALL_STATE(130)] = 3429, + [SMALL_STATE(131)] = 3440, + [SMALL_STATE(132)] = 3457, + [SMALL_STATE(133)] = 3474, [SMALL_STATE(134)] = 3491, - [SMALL_STATE(135)] = 3508, - [SMALL_STATE(136)] = 3518, - [SMALL_STATE(137)] = 3532, - [SMALL_STATE(138)] = 3546, - [SMALL_STATE(139)] = 3560, - [SMALL_STATE(140)] = 3570, - [SMALL_STATE(141)] = 3580, - [SMALL_STATE(142)] = 3590, - [SMALL_STATE(143)] = 3600, - [SMALL_STATE(144)] = 3612, - [SMALL_STATE(145)] = 3622, - [SMALL_STATE(146)] = 3634, - [SMALL_STATE(147)] = 3648, - [SMALL_STATE(148)] = 3657, - [SMALL_STATE(149)] = 3666, - [SMALL_STATE(150)] = 3677, - [SMALL_STATE(151)] = 3686, - [SMALL_STATE(152)] = 3695, - [SMALL_STATE(153)] = 3704, - [SMALL_STATE(154)] = 3713, - [SMALL_STATE(155)] = 3722, - [SMALL_STATE(156)] = 3731, - [SMALL_STATE(157)] = 3739, - [SMALL_STATE(158)] = 3747, - [SMALL_STATE(159)] = 3755, - [SMALL_STATE(160)] = 3763, - [SMALL_STATE(161)] = 3771, + [SMALL_STATE(135)] = 3504, + [SMALL_STATE(136)] = 3521, + [SMALL_STATE(137)] = 3533, + [SMALL_STATE(138)] = 3543, + [SMALL_STATE(139)] = 3557, + [SMALL_STATE(140)] = 3571, + [SMALL_STATE(141)] = 3581, + [SMALL_STATE(142)] = 3591, + [SMALL_STATE(143)] = 3601, + [SMALL_STATE(144)] = 3611, + [SMALL_STATE(145)] = 3623, + [SMALL_STATE(146)] = 3637, + [SMALL_STATE(147)] = 3651, + [SMALL_STATE(148)] = 3661, + [SMALL_STATE(149)] = 3670, + [SMALL_STATE(150)] = 3679, + [SMALL_STATE(151)] = 3688, + [SMALL_STATE(152)] = 3699, + [SMALL_STATE(153)] = 3708, + [SMALL_STATE(154)] = 3717, + [SMALL_STATE(155)] = 3726, + [SMALL_STATE(156)] = 3735, + [SMALL_STATE(157)] = 3744, + [SMALL_STATE(158)] = 3752, + [SMALL_STATE(159)] = 3760, + [SMALL_STATE(160)] = 3768, + [SMALL_STATE(161)] = 3776, + [SMALL_STATE(162)] = 3784, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -7104,223 +7115,225 @@ static const TSParseActionEntry ts_parse_actions[] = { [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 = true}}, SHIFT(157), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(84), - [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(133), - [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), - [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(158), - [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), - [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74), - [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), - [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), - [55] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 1), - [57] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 1), - [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(157), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(86), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(134), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [55] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 2), + [57] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 2), + [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), - [65] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), SHIFT_REPEAT(156), - [68] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 2), - [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 2), - [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 30), - [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [76] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), - [78] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [82] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [84] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 30), - [88] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51), - [90] = {.entry = {.count = 1, .reusable = false}}, SHIFT(160), - [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [96] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), - [98] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), - [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 18), - [102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 18), - [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 27), - [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 27), - [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 31), - [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 31), - [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 15), - [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 15), - [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 20), - [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 20), - [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), - [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 27), - [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 27), - [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), - [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), - [140] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(31), - [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 27), - [145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61), - [149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), - [151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 27), - [153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 21), - [157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 21), - [159] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [65] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), SHIFT_REPEAT(158), + [68] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 1), + [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 1), + [72] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), + [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), + [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 31), + [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 31), + [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [82] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57), + [84] = {.entry = {.count = 1, .reusable = false}}, SHIFT(159), + [86] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [88] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [90] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [92] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), + [94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 19), + [102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 19), + [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 29), + [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 29), + [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 15), + [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 15), + [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), + [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 21), + [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 21), + [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 32), + [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 32), + [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 29), + [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 29), + [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 29), + [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 29), + [140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [142] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), + [144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), + [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), + [152] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(33), + [155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 20), + [161] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 20), [163] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 9), [165] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 9), [167] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), [169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), [171] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), [173] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 33), + [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 30), [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), - [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), - [196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), - [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), + [194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), + [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [222] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), - [224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), - [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [214] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), + [216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), + [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), [232] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), [236] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [240] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(65), + [238] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(65), + [241] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), [243] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), [245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [251] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [249] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 23), - [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 24), - [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 34), + [257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 24), + [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 34), + [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 23), [265] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 14), [267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), - [269] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 25), - [271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 35), - [273] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 36), - [275] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), - [277] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(60), - [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), - [282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 38), - [284] = {.entry = {.count = 1, .reusable = false}}, SHIFT(113), - [286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), - [288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), - [290] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(60), - [293] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), - [295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), - [299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), - [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), - [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), + [269] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 35), + [271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 36), + [273] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), + [275] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(56), + [278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 38), + [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), + [282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 25), + [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), + [286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), + [288] = {.entry = {.count = 1, .reusable = false}}, SHIFT(116), + [290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), + [292] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(56), + [295] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), + [297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), + [299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), + [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), + [305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), + [307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), [313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 8), - [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), - [317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), + [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 17), - [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 32), - [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 37), - [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [327] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(60), - [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), - [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 19), - [336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), - [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), - [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), - [344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), - [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), + [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), + [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), + [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), + [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), + [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 18), + [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 37), + [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), + [343] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(56), + [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), [348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), - [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), [352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), - [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 37), - [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 32), - [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), - [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), - [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), - [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), - [380] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(116), - [383] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), - [385] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), - [388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), - [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), - [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), - [396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 12), - [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 16), - [408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 22), - [410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 26), - [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), - [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), - [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 13), - [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 29), - [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), - [422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), - [426] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 28), - [428] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 39), - [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 11), - [432] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 15), - [434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), - [436] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 40), - [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [448] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), + [360] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(113), + [363] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), + [365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), + [367] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), + [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 33), + [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), + [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), + [382] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(121), + [385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 33), + [387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), + [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), + [401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [403] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), + [405] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), + [407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [411] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 16), + [413] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 13), + [415] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 22), + [417] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 26), + [419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 28), + [421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 12), + [429] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), + [431] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 11), + [433] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 39), + [435] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 27), + [437] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), + [439] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 15), + [441] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 40), + [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [453] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), }; #ifdef __cplusplus From 5b85a38b752907048af531e54d6f61200841bc90 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Tue, 18 Jun 2024 17:21:53 +0200 Subject: [PATCH 28/49] Add template declarations and use --- grammar.js | 38 +- src/grammar.json | 211 ++- src/node-types.json | 156 +- src/parser.c | 4241 +++++++++++++++++++++++++------------------ 4 files changed, 2810 insertions(+), 1836 deletions(-) diff --git a/grammar.js b/grammar.js index b5932c8..c48c974 100644 --- a/grammar.js +++ b/grammar.js @@ -44,6 +44,7 @@ module.exports = grammar({ module: $ => seq( 'module', field('name', $.identifier), + optional(field('template_declaration_arguments', $.template_declaration_arguments)), optional(field('interface_ports', $.interface_ports)), field('block', $.block) ), @@ -65,6 +66,18 @@ module.exports = grammar({ field('outputs', $.declaration_list) ), + // Template Declaration + + template_declaration_arguments: $ => seq( + '<', + sepSeq1(choice($.template_declaration_type, $.declaration), $._comma), + '>' + ), + + template_declaration_type: $ => seq( + $.identifier // The template type name + ), + // Statements block: $ => seq( @@ -153,19 +166,32 @@ module.exports = grammar({ optional(field('latency_specifier', $.latency_specifier)) ), + // Types + + _type: $ => choice( + $.named_type, + $.array_type + ), + array_type: $ => seq( field('arr', $._type), field('arr_idx', $.array_bracket_expression) ), - _type: $ => choice( - $.global_identifier, - $.array_type + named_type: $ => seq( + field('name', $.global_identifier), + optional(field('template_params', seq( + '<', + sepSeq1(choice($.template_type, $.template_generative_expression), $._comma), + '>' + ))) ), + template_type: $ => $._type, + template_generative_expression: $ => $._expression, - latency_specifier: $ => seq(seq( + latency_specifier: $ => seq( '\'', field('content', $._expression) - )), + ), // Expressions @@ -260,7 +286,7 @@ module.exports = grammar({ }, conflicts: $ => [ - [$._expression, $._type] // Just because LR(1) is too weak to resolve 'ident[] a' vs 'type_name[]'. Tree sitter resolves this itself with more expensive GLR. NOT a precedence relation. + [$.named_type, $._expression] // Just because LR(1) is too weak to resolve 'ident[] a' vs 'type_name[]'. Tree sitter resolves this itself with more expensive GLR. NOT a precedence relation. ], word: $=> $.identifier, diff --git a/src/grammar.json b/src/grammar.json index 41dcc55..a67e149 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -87,6 +87,22 @@ "name": "identifier" } }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "template_declaration_arguments", + "content": { + "type": "SYMBOL", + "name": "template_declaration_arguments" + } + }, + { + "type": "BLANK" + } + ] + }, { "type": "CHOICE", "members": [ @@ -197,6 +213,71 @@ } ] }, + "template_declaration_arguments": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "<" + }, + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "template_declaration_type" + }, + { + "type": "SYMBOL", + "name": "declaration" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_comma" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "template_declaration_type" + }, + { + "type": "SYMBOL", + "name": "declaration" + } + ] + } + ] + } + } + ] + }, + { + "type": "STRING", + "value": ">" + } + ] + }, + "template_declaration_type": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + } + ] + }, "block": { "type": "SEQ", "members": [ @@ -711,6 +792,19 @@ } ] }, + "_type": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "named_type" + }, + { + "type": "SYMBOL", + "name": "array_type" + } + ] + }, "array_type": { "type": "SEQ", "members": [ @@ -732,41 +826,112 @@ } ] }, - "_type": { - "type": "CHOICE", + "named_type": { + "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "global_identifier" + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "global_identifier" + } }, { - "type": "SYMBOL", - "name": "array_type" - } - ] - }, - "latency_specifier": { - "type": "SEQ", - "members": [ - { - "type": "SEQ", + "type": "CHOICE", "members": [ - { - "type": "STRING", - "value": "'" - }, { "type": "FIELD", - "name": "content", + "name": "template_params", "content": { - "type": "SYMBOL", - "name": "_expression" + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "<" + }, + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "template_type" + }, + { + "type": "SYMBOL", + "name": "template_generative_expression" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_comma" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "template_type" + }, + { + "type": "SYMBOL", + "name": "template_generative_expression" + } + ] + } + ] + } + } + ] + }, + { + "type": "STRING", + "value": ">" + } + ] } + }, + { + "type": "BLANK" } ] } ] }, + "template_type": { + "type": "SYMBOL", + "name": "_type" + }, + "template_generative_expression": { + "type": "SYMBOL", + "name": "_expression" + }, + "latency_specifier": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "'" + }, + { + "type": "FIELD", + "name": "content", + "content": { + "type": "SYMBOL", + "name": "_expression" + } + } + ] + }, "_expression": { "type": "CHOICE", "members": [ @@ -1386,8 +1551,8 @@ ], "conflicts": [ [ - "_expression", - "_type" + "named_type", + "_expression" ] ], "precedences": [], diff --git a/src/node-types.json b/src/node-types.json index 7465727..d31423c 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -110,7 +110,7 @@ "named": true }, { - "type": "global_identifier", + "type": "named_type", "named": true } ] @@ -496,7 +496,7 @@ "named": true }, { - "type": "global_identifier", + "type": "named_type", "named": true } ] @@ -942,6 +942,62 @@ "named": true } ] + }, + "template_declaration_arguments": { + "multiple": false, + "required": false, + "types": [ + { + "type": "template_declaration_arguments", + "named": true + } + ] + } + } + }, + { + "type": "named_type", + "named": true, + "fields": { + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "global_identifier", + "named": true + } + ] + }, + "template_params": { + "multiple": true, + "required": false, + "types": [ + { + "type": "\n", + "named": false + }, + { + "type": ",", + "named": false + }, + { + "type": "<", + "named": false + }, + { + "type": ">", + "named": false + }, + { + "type": "template_generative_expression", + "named": true + }, + { + "type": "template_type", + "named": true + } + ] } } }, @@ -1049,6 +1105,102 @@ } } }, + { + "type": "template_declaration_arguments", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "declaration", + "named": true + }, + { + "type": "template_declaration_type", + "named": true + } + ] + } + }, + { + "type": "template_declaration_type", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + }, + { + "type": "template_generative_expression", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "array_op", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "field_access", + "named": true + }, + { + "type": "func_call", + "named": true + }, + { + "type": "global_identifier", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "parenthesis_expression", + "named": true + }, + { + "type": "unary_op", + "named": true + } + ] + } + }, + { + "type": "template_type", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "array_type", + "named": true + }, + { + "type": "named_type", + "named": true + } + ] + } + }, { "type": "unary_op", "named": true, diff --git a/src/parser.c b/src/parser.c index dfd575f..2529fc7 100644 --- a/src/parser.c +++ b/src/parser.c @@ -5,49 +5,49 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 163 -#define LARGE_STATE_COUNT 11 -#define SYMBOL_COUNT 83 +#define STATE_COUNT 188 +#define LARGE_STATE_COUNT 10 +#define SYMBOL_COUNT 90 #define ALIAS_COUNT 0 #define TOKEN_COUNT 47 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 27 +#define FIELD_COUNT 29 #define MAX_ALIAS_SEQUENCE_LENGTH 7 -#define PRODUCTION_ID_COUNT 41 +#define PRODUCTION_ID_COUNT 46 enum ts_symbol_identifiers { sym_identifier = 1, anon_sym_module = 2, anon_sym_COLON = 3, anon_sym_DASH_GT = 4, - anon_sym_LBRACE = 5, - anon_sym_RBRACE = 6, - anon_sym_interface = 7, - anon_sym_EQ = 8, - anon_sym_reg = 9, - anon_sym_initial = 10, - anon_sym_if = 11, - anon_sym_else = 12, - anon_sym_for = 13, - anon_sym_in = 14, - anon_sym_DOT_DOT = 15, - anon_sym_input = 16, - anon_sym_output = 17, - anon_sym_state = 18, - anon_sym_gen = 19, - anon_sym_SQUOTE = 20, - anon_sym_PLUS = 21, - anon_sym_DASH = 22, - anon_sym_STAR = 23, - anon_sym_BANG = 24, - anon_sym_PIPE = 25, - anon_sym_AMP = 26, - anon_sym_CARET = 27, - anon_sym_EQ_EQ = 28, - anon_sym_BANG_EQ = 29, - anon_sym_LT = 30, - anon_sym_LT_EQ = 31, - anon_sym_GT = 32, + anon_sym_LT = 5, + anon_sym_GT = 6, + anon_sym_LBRACE = 7, + anon_sym_RBRACE = 8, + anon_sym_interface = 9, + anon_sym_EQ = 10, + anon_sym_reg = 11, + anon_sym_initial = 12, + anon_sym_if = 13, + anon_sym_else = 14, + anon_sym_for = 15, + anon_sym_in = 16, + anon_sym_DOT_DOT = 17, + anon_sym_input = 18, + anon_sym_output = 19, + anon_sym_state = 20, + anon_sym_gen = 21, + anon_sym_SQUOTE = 22, + anon_sym_PLUS = 23, + anon_sym_DASH = 24, + anon_sym_STAR = 25, + anon_sym_BANG = 26, + anon_sym_PIPE = 27, + anon_sym_AMP = 28, + anon_sym_CARET = 29, + anon_sym_EQ_EQ = 30, + anon_sym_BANG_EQ = 31, + anon_sym_LT_EQ = 32, anon_sym_GT_EQ = 33, anon_sym_SLASH = 34, anon_sym_PERCENT = 35, @@ -66,38 +66,45 @@ enum ts_symbol_identifiers { sym_module = 48, sym_interface_ports = 49, sym__interface_ports_output = 50, - sym_block = 51, - sym_interface_statement = 52, - sym_decl_assign_statement = 53, - sym_assign_left_side = 54, - sym_assign_to = 55, - sym_write_modifiers = 56, - sym_if_statement = 57, - sym_for_statement = 58, - sym_declaration_list = 59, - sym_declaration = 60, - sym_array_type = 61, - sym__type = 62, - sym_latency_specifier = 63, - sym__expression = 64, - sym_unary_op = 65, - sym_binary_op = 66, - sym_array_op = 67, - sym_func_call = 68, - sym_field_access = 69, - sym_parenthesis_expression_list = 70, - sym_parenthesis_expression = 71, - sym_array_bracket_expression = 72, - sym__comma = 73, - aux_sym__linebreak = 74, - sym_global_identifier = 75, - aux_sym_source_file_repeat1 = 76, - aux_sym_block_repeat1 = 77, - aux_sym_assign_left_side_repeat1 = 78, - aux_sym_write_modifiers_repeat1 = 79, - aux_sym_declaration_list_repeat1 = 80, - aux_sym_parenthesis_expression_list_repeat1 = 81, - aux_sym_global_identifier_repeat1 = 82, + sym_template_declaration_arguments = 51, + sym_template_declaration_type = 52, + sym_block = 53, + sym_interface_statement = 54, + sym_decl_assign_statement = 55, + sym_assign_left_side = 56, + sym_assign_to = 57, + sym_write_modifiers = 58, + sym_if_statement = 59, + sym_for_statement = 60, + sym_declaration_list = 61, + sym_declaration = 62, + sym__type = 63, + sym_array_type = 64, + sym_named_type = 65, + sym_template_type = 66, + sym_template_generative_expression = 67, + sym_latency_specifier = 68, + sym__expression = 69, + sym_unary_op = 70, + sym_binary_op = 71, + sym_array_op = 72, + sym_func_call = 73, + sym_field_access = 74, + sym_parenthesis_expression_list = 75, + sym_parenthesis_expression = 76, + sym_array_bracket_expression = 77, + sym__comma = 78, + aux_sym__linebreak = 79, + sym_global_identifier = 80, + aux_sym_source_file_repeat1 = 81, + aux_sym_template_declaration_arguments_repeat1 = 82, + aux_sym_block_repeat1 = 83, + aux_sym_assign_left_side_repeat1 = 84, + aux_sym_write_modifiers_repeat1 = 85, + aux_sym_declaration_list_repeat1 = 86, + aux_sym_named_type_repeat1 = 87, + aux_sym_parenthesis_expression_list_repeat1 = 88, + aux_sym_global_identifier_repeat1 = 89, }; static const char * const ts_symbol_names[] = { @@ -106,6 +113,8 @@ static const char * const ts_symbol_names[] = { [anon_sym_module] = "module", [anon_sym_COLON] = ":", [anon_sym_DASH_GT] = "->", + [anon_sym_LT] = "<", + [anon_sym_GT] = ">", [anon_sym_LBRACE] = "{", [anon_sym_RBRACE] = "}", [anon_sym_interface] = "interface", @@ -131,9 +140,7 @@ static const char * const ts_symbol_names[] = { [anon_sym_CARET] = "^", [anon_sym_EQ_EQ] = "==", [anon_sym_BANG_EQ] = "!=", - [anon_sym_LT] = "<", [anon_sym_LT_EQ] = "<=", - [anon_sym_GT] = ">", [anon_sym_GT_EQ] = ">=", [anon_sym_SLASH] = "/", [anon_sym_PERCENT] = "%", @@ -152,6 +159,8 @@ static const char * const ts_symbol_names[] = { [sym_module] = "module", [sym_interface_ports] = "interface_ports", [sym__interface_ports_output] = "_interface_ports_output", + [sym_template_declaration_arguments] = "template_declaration_arguments", + [sym_template_declaration_type] = "template_declaration_type", [sym_block] = "block", [sym_interface_statement] = "interface_statement", [sym_decl_assign_statement] = "decl_assign_statement", @@ -162,8 +171,11 @@ static const char * const ts_symbol_names[] = { [sym_for_statement] = "for_statement", [sym_declaration_list] = "declaration_list", [sym_declaration] = "declaration", - [sym_array_type] = "array_type", [sym__type] = "_type", + [sym_array_type] = "array_type", + [sym_named_type] = "named_type", + [sym_template_type] = "template_type", + [sym_template_generative_expression] = "template_generative_expression", [sym_latency_specifier] = "latency_specifier", [sym__expression] = "_expression", [sym_unary_op] = "unary_op", @@ -178,10 +190,12 @@ static const char * const ts_symbol_names[] = { [aux_sym__linebreak] = "_linebreak", [sym_global_identifier] = "global_identifier", [aux_sym_source_file_repeat1] = "source_file_repeat1", + [aux_sym_template_declaration_arguments_repeat1] = "template_declaration_arguments_repeat1", [aux_sym_block_repeat1] = "block_repeat1", [aux_sym_assign_left_side_repeat1] = "assign_left_side_repeat1", [aux_sym_write_modifiers_repeat1] = "write_modifiers_repeat1", [aux_sym_declaration_list_repeat1] = "declaration_list_repeat1", + [aux_sym_named_type_repeat1] = "named_type_repeat1", [aux_sym_parenthesis_expression_list_repeat1] = "parenthesis_expression_list_repeat1", [aux_sym_global_identifier_repeat1] = "global_identifier_repeat1", }; @@ -192,6 +206,8 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_module] = anon_sym_module, [anon_sym_COLON] = anon_sym_COLON, [anon_sym_DASH_GT] = anon_sym_DASH_GT, + [anon_sym_LT] = anon_sym_LT, + [anon_sym_GT] = anon_sym_GT, [anon_sym_LBRACE] = anon_sym_LBRACE, [anon_sym_RBRACE] = anon_sym_RBRACE, [anon_sym_interface] = anon_sym_interface, @@ -217,9 +233,7 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_CARET] = anon_sym_CARET, [anon_sym_EQ_EQ] = anon_sym_EQ_EQ, [anon_sym_BANG_EQ] = anon_sym_BANG_EQ, - [anon_sym_LT] = anon_sym_LT, [anon_sym_LT_EQ] = anon_sym_LT_EQ, - [anon_sym_GT] = anon_sym_GT, [anon_sym_GT_EQ] = anon_sym_GT_EQ, [anon_sym_SLASH] = anon_sym_SLASH, [anon_sym_PERCENT] = anon_sym_PERCENT, @@ -238,6 +252,8 @@ static const TSSymbol ts_symbol_map[] = { [sym_module] = sym_module, [sym_interface_ports] = sym_interface_ports, [sym__interface_ports_output] = sym__interface_ports_output, + [sym_template_declaration_arguments] = sym_template_declaration_arguments, + [sym_template_declaration_type] = sym_template_declaration_type, [sym_block] = sym_block, [sym_interface_statement] = sym_interface_statement, [sym_decl_assign_statement] = sym_decl_assign_statement, @@ -248,8 +264,11 @@ static const TSSymbol ts_symbol_map[] = { [sym_for_statement] = sym_for_statement, [sym_declaration_list] = sym_declaration_list, [sym_declaration] = sym_declaration, - [sym_array_type] = sym_array_type, [sym__type] = sym__type, + [sym_array_type] = sym_array_type, + [sym_named_type] = sym_named_type, + [sym_template_type] = sym_template_type, + [sym_template_generative_expression] = sym_template_generative_expression, [sym_latency_specifier] = sym_latency_specifier, [sym__expression] = sym__expression, [sym_unary_op] = sym_unary_op, @@ -264,10 +283,12 @@ static const TSSymbol ts_symbol_map[] = { [aux_sym__linebreak] = aux_sym__linebreak, [sym_global_identifier] = sym_global_identifier, [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1, + [aux_sym_template_declaration_arguments_repeat1] = aux_sym_template_declaration_arguments_repeat1, [aux_sym_block_repeat1] = aux_sym_block_repeat1, [aux_sym_assign_left_side_repeat1] = aux_sym_assign_left_side_repeat1, [aux_sym_write_modifiers_repeat1] = aux_sym_write_modifiers_repeat1, [aux_sym_declaration_list_repeat1] = aux_sym_declaration_list_repeat1, + [aux_sym_named_type_repeat1] = aux_sym_named_type_repeat1, [aux_sym_parenthesis_expression_list_repeat1] = aux_sym_parenthesis_expression_list_repeat1, [aux_sym_global_identifier_repeat1] = aux_sym_global_identifier_repeat1, }; @@ -293,6 +314,14 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_LT] = { + .visible = true, + .named = false, + }, + [anon_sym_GT] = { + .visible = true, + .named = false, + }, [anon_sym_LBRACE] = { .visible = true, .named = false, @@ -393,18 +422,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_LT] = { - .visible = true, - .named = false, - }, [anon_sym_LT_EQ] = { .visible = true, .named = false, }, - [anon_sym_GT] = { - .visible = true, - .named = false, - }, [anon_sym_GT_EQ] = { .visible = true, .named = false, @@ -477,6 +498,14 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = true, }, + [sym_template_declaration_arguments] = { + .visible = true, + .named = true, + }, + [sym_template_declaration_type] = { + .visible = true, + .named = true, + }, [sym_block] = { .visible = true, .named = true, @@ -517,12 +546,24 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym__type] = { + .visible = false, + .named = true, + }, [sym_array_type] = { .visible = true, .named = true, }, - [sym__type] = { - .visible = false, + [sym_named_type] = { + .visible = true, + .named = true, + }, + [sym_template_type] = { + .visible = true, + .named = true, + }, + [sym_template_generative_expression] = { + .visible = true, .named = true, }, [sym_latency_specifier] = { @@ -581,6 +622,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, + [aux_sym_template_declaration_arguments_repeat1] = { + .visible = false, + .named = false, + }, [aux_sym_block_repeat1] = { .visible = false, .named = false, @@ -597,6 +642,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, + [aux_sym_named_type_repeat1] = { + .visible = false, + .named = false, + }, [aux_sym_parenthesis_expression_list_repeat1] = { .visible = false, .named = false, @@ -631,10 +680,12 @@ enum ts_field_identifiers { field_operator = 21, field_outputs = 22, field_right = 23, - field_then_block = 24, - field_to = 25, - field_type = 26, - field_write_modifiers = 27, + field_template_declaration_arguments = 24, + field_template_params = 25, + field_then_block = 26, + field_to = 27, + field_type = 28, + field_write_modifiers = 29, }; static const char * const ts_field_names[] = { @@ -662,6 +713,8 @@ static const char * const ts_field_names[] = { [field_operator] = "operator", [field_outputs] = "outputs", [field_right] = "right", + [field_template_declaration_arguments] = "template_declaration_arguments", + [field_template_params] = "template_params", [field_then_block] = "then_block", [field_to] = "to", [field_type] = "type", @@ -679,36 +732,41 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [8] = {.index = 11, .length = 1}, [9] = {.index = 12, .length = 1}, [10] = {.index = 13, .length = 1}, - [11] = {.index = 14, .length = 3}, - [12] = {.index = 17, .length = 1}, - [13] = {.index = 18, .length = 2}, - [14] = {.index = 20, .length = 2}, + [11] = {.index = 14, .length = 1}, + [12] = {.index = 15, .length = 3}, + [13] = {.index = 18, .length = 3}, + [14] = {.index = 21, .length = 1}, [15] = {.index = 22, .length = 2}, - [16] = {.index = 24, .length = 1}, - [17] = {.index = 25, .length = 1}, - [18] = {.index = 26, .length = 1}, - [19] = {.index = 27, .length = 2}, - [20] = {.index = 29, .length = 2}, + [16] = {.index = 24, .length = 2}, + [17] = {.index = 26, .length = 2}, + [18] = {.index = 28, .length = 1}, + [19] = {.index = 29, .length = 1}, + [20] = {.index = 30, .length = 1}, [21] = {.index = 31, .length = 2}, - [22] = {.index = 33, .length = 1}, - [23] = {.index = 34, .length = 3}, - [24] = {.index = 37, .length = 3}, - [25] = {.index = 40, .length = 3}, - [26] = {.index = 43, .length = 2}, - [27] = {.index = 45, .length = 2}, - [28] = {.index = 47, .length = 2}, - [29] = {.index = 49, .length = 1}, - [30] = {.index = 50, .length = 2}, - [31] = {.index = 52, .length = 3}, - [32] = {.index = 55, .length = 2}, - [33] = {.index = 57, .length = 1}, - [34] = {.index = 58, .length = 4}, - [35] = {.index = 62, .length = 4}, - [36] = {.index = 66, .length = 4}, - [37] = {.index = 70, .length = 2}, - [38] = {.index = 72, .length = 5}, - [39] = {.index = 77, .length = 3}, - [40] = {.index = 80, .length = 4}, + [22] = {.index = 33, .length = 2}, + [23] = {.index = 35, .length = 2}, + [24] = {.index = 37, .length = 4}, + [25] = {.index = 41, .length = 1}, + [26] = {.index = 42, .length = 3}, + [27] = {.index = 45, .length = 3}, + [28] = {.index = 48, .length = 3}, + [29] = {.index = 51, .length = 2}, + [30] = {.index = 53, .length = 2}, + [31] = {.index = 55, .length = 2}, + [32] = {.index = 57, .length = 1}, + [33] = {.index = 58, .length = 2}, + [34] = {.index = 60, .length = 3}, + [35] = {.index = 63, .length = 2}, + [36] = {.index = 65, .length = 1}, + [37] = {.index = 66, .length = 4}, + [38] = {.index = 70, .length = 4}, + [39] = {.index = 74, .length = 4}, + [40] = {.index = 78, .length = 4}, + [41] = {.index = 82, .length = 2}, + [42] = {.index = 84, .length = 5}, + [43] = {.index = 89, .length = 5}, + [44] = {.index = 94, .length = 3}, + [45] = {.index = 97, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -733,105 +791,127 @@ static const TSFieldMapEntry ts_field_map_entries[] = { [11] = {field_inputs, 1}, [12] = - {field_expr_or_decl, 0}, + {field_name, 0}, [13] = - {field_item, 0, .inherited = true}, + {field_expr_or_decl, 0}, [14] = + {field_item, 0, .inherited = true}, + [15] = {field_block, 3}, {field_interface_ports, 2}, {field_name, 1}, - [17] = - {field_outputs, 1}, [18] = + {field_block, 3}, + {field_name, 1}, + {field_template_declaration_arguments, 2}, + [21] = + {field_outputs, 1}, + [22] = {field_inputs, 1}, {field_outputs, 2, .inherited = true}, - [20] = + [24] = {field_name, 1}, {field_type, 0}, - [22] = + [26] = {field_arr, 0}, {field_arr_idx, 1}, - [24] = + [28] = {field_outputs, 2, .inherited = true}, - [25] = + [29] = {field_inputs, 2}, - [26] = + [30] = {field_name, 1}, - [27] = + [31] = {field_operator, 0}, {field_right, 1}, - [29] = + [33] = {field_expr_or_decl, 1}, {field_write_modifiers, 0}, - [31] = + [35] = {field_arguments, 1}, {field_name, 0}, - [33] = + [37] = + {field_block, 4}, + {field_interface_ports, 3}, + {field_name, 1}, + {field_template_declaration_arguments, 2}, + [41] = {field_outputs, 2}, - [34] = + [42] = {field_io_port_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [37] = + [45] = {field_declaration_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [40] = + [48] = {field_latency_specifier, 2}, {field_name, 1}, {field_type, 0}, - [43] = + [51] = {field_inputs, 2}, {field_outputs, 3, .inherited = true}, - [45] = + [53] = {field_interface_ports, 2}, {field_name, 1}, - [47] = + [55] = {field_condition, 1}, {field_then_block, 2}, - [49] = + [57] = {field_content, 1}, - [50] = + [58] = {field_assign_left, 0}, {field_assign_value, 2}, - [52] = + [60] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [55] = + [63] = {field_left, 0}, {field_name, 2}, - [57] = + [65] = {field_item, 2}, - [58] = + [66] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_name, 3}, {field_type, 2}, - [62] = + [70] = {field_io_port_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [66] = + [74] = {field_declaration_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [70] = + [78] = + {field_name, 0}, + {field_template_params, 1}, + {field_template_params, 2}, + {field_template_params, 3}, + [82] = {field_item, 2}, {field_item, 3, .inherited = true}, - [72] = + [84] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_latency_specifier, 4}, {field_name, 3}, {field_type, 2}, - [77] = + [89] = + {field_name, 0}, + {field_template_params, 1}, + {field_template_params, 2}, + {field_template_params, 3}, + {field_template_params, 4}, + [94] = {field_condition, 1}, {field_else_block, 4}, {field_then_block, 2}, - [80] = + [97] = {field_block, 6}, {field_for_decl, 1}, {field_from, 3}, @@ -900,7 +980,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [50] = 50, [51] = 51, [52] = 52, - [53] = 53, + [53] = 39, [54] = 54, [55] = 55, [56] = 56, @@ -960,7 +1040,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [110] = 110, [111] = 111, [112] = 112, - [113] = 33, + [113] = 113, [114] = 114, [115] = 115, [116] = 116, @@ -997,7 +1077,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [147] = 147, [148] = 148, [149] = 149, - [150] = 150, + [150] = 33, [151] = 151, [152] = 152, [153] = 153, @@ -1010,6 +1090,31 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [160] = 160, [161] = 161, [162] = 162, + [163] = 163, + [164] = 164, + [165] = 165, + [166] = 166, + [167] = 167, + [168] = 168, + [169] = 169, + [170] = 170, + [171] = 171, + [172] = 172, + [173] = 173, + [174] = 174, + [175] = 175, + [176] = 176, + [177] = 177, + [178] = 178, + [179] = 179, + [180] = 180, + [181] = 181, + [182] = 182, + [183] = 183, + [184] = 184, + [185] = 185, + [186] = 186, + [187] = 187, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -2927,227 +3032,248 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (eof) ADVANCE(8); - if (lookahead == '\n') ADVANCE(39); - if (lookahead == '!') ADVANCE(21); - if (lookahead == '%') ADVANCE(32); - if (lookahead == '&') ADVANCE(23); - if (lookahead == '\'') ADVANCE(16); - if (lookahead == '(') ADVANCE(34); - if (lookahead == ')') ADVANCE(35); - if (lookahead == '*') ADVANCE(19); - if (lookahead == '+') ADVANCE(17); - if (lookahead == ',') ADVANCE(38); - if (lookahead == '-') ADVANCE(18); - if (lookahead == '.') ADVANCE(33); - if (lookahead == '/') ADVANCE(31); - if (lookahead == ':') ADVANCE(10); - if (lookahead == '<') ADVANCE(27); - if (lookahead == '=') ADVANCE(14); - if (lookahead == '>') ADVANCE(29); - if (lookahead == '[') ADVANCE(36); - if (lookahead == ']') ADVANCE(37); - if (lookahead == '^') ADVANCE(24); - if (lookahead == '{') ADVANCE(12); - if (lookahead == '|') ADVANCE(22); - if (lookahead == '}') ADVANCE(13); + if (eof) ADVANCE(9); + if (lookahead == '\n') ADVANCE(42); + if (lookahead == '!') ADVANCE(26); + if (lookahead == '%') ADVANCE(35); + if (lookahead == '&') ADVANCE(28); + if (lookahead == '\'') ADVANCE(21); + if (lookahead == '(') ADVANCE(37); + if (lookahead == ')') ADVANCE(38); + if (lookahead == '*') ADVANCE(24); + if (lookahead == '+') ADVANCE(22); + if (lookahead == ',') ADVANCE(41); + if (lookahead == '-') ADVANCE(23); + if (lookahead == '.') ADVANCE(36); + if (lookahead == '/') ADVANCE(34); + if (lookahead == ':') ADVANCE(11); + if (lookahead == '<') ADVANCE(14); + if (lookahead == '=') ADVANCE(19); + if (lookahead == '>') ADVANCE(16); + if (lookahead == '[') ADVANCE(39); + if (lookahead == ']') ADVANCE(40); + if (lookahead == '^') ADVANCE(29); + if (lookahead == '{') ADVANCE(17); + if (lookahead == '|') ADVANCE(27); + if (lookahead == '}') ADVANCE(18); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(0) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(41); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(45); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(44); END_STATE(); case 1: - if (lookahead == '\n') ADVANCE(39); - if (lookahead == '!') ADVANCE(20); - if (lookahead == '&') ADVANCE(23); - if (lookahead == '(') ADVANCE(34); - if (lookahead == ')') ADVANCE(35); - if (lookahead == '*') ADVANCE(19); - if (lookahead == '+') ADVANCE(17); - if (lookahead == '-') ADVANCE(18); - if (lookahead == '/') ADVANCE(3); - if (lookahead == ':') ADVANCE(9); - if (lookahead == '^') ADVANCE(24); - if (lookahead == '{') ADVANCE(12); - if (lookahead == '|') ADVANCE(22); - if (lookahead == '}') ADVANCE(13); + if (lookahead == '\n') ADVANCE(42); + if (lookahead == '!') ADVANCE(25); + if (lookahead == '&') ADVANCE(28); + if (lookahead == '(') ADVANCE(37); + if (lookahead == ')') ADVANCE(38); + if (lookahead == '*') ADVANCE(24); + if (lookahead == '+') ADVANCE(22); + if (lookahead == ',') ADVANCE(41); + if (lookahead == '-') ADVANCE(23); + if (lookahead == '/') ADVANCE(4); + if (lookahead == ':') ADVANCE(7); + if (lookahead == '<') ADVANCE(13); + if (lookahead == '>') ADVANCE(15); + if (lookahead == '[') ADVANCE(39); + if (lookahead == '^') ADVANCE(29); + if (lookahead == '{') ADVANCE(17); + if (lookahead == '|') ADVANCE(27); + if (lookahead == '}') ADVANCE(18); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(1) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(41); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(45); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(44); END_STATE(); case 2: - if (lookahead == '\n') ADVANCE(39); - if (lookahead == '!') ADVANCE(7); - if (lookahead == '%') ADVANCE(32); - if (lookahead == '&') ADVANCE(23); - if (lookahead == '(') ADVANCE(34); - if (lookahead == ')') ADVANCE(35); - if (lookahead == '*') ADVANCE(19); - if (lookahead == '+') ADVANCE(17); - if (lookahead == ',') ADVANCE(38); - if (lookahead == '-') ADVANCE(18); - if (lookahead == '.') ADVANCE(33); - if (lookahead == '/') ADVANCE(31); - if (lookahead == ':') ADVANCE(6); - if (lookahead == '<') ADVANCE(27); - if (lookahead == '=') ADVANCE(14); - if (lookahead == '>') ADVANCE(29); - if (lookahead == '[') ADVANCE(36); - if (lookahead == ']') ADVANCE(37); - if (lookahead == '^') ADVANCE(24); - if (lookahead == '{') ADVANCE(12); - if (lookahead == '|') ADVANCE(22); - if (lookahead == '}') ADVANCE(13); + if (lookahead == '\n') ADVANCE(42); + if (lookahead == '!') ADVANCE(8); + if (lookahead == '%') ADVANCE(35); + if (lookahead == '&') ADVANCE(28); + if (lookahead == '(') ADVANCE(37); + if (lookahead == ')') ADVANCE(38); + if (lookahead == '*') ADVANCE(24); + if (lookahead == '+') ADVANCE(22); + if (lookahead == ',') ADVANCE(41); + if (lookahead == '-') ADVANCE(23); + if (lookahead == '.') ADVANCE(36); + if (lookahead == '/') ADVANCE(34); + if (lookahead == ':') ADVANCE(7); + if (lookahead == '<') ADVANCE(14); + if (lookahead == '=') ADVANCE(19); + if (lookahead == '>') ADVANCE(16); + if (lookahead == '[') ADVANCE(39); + if (lookahead == ']') ADVANCE(40); + if (lookahead == '^') ADVANCE(29); + if (lookahead == '{') ADVANCE(17); + if (lookahead == '|') ADVANCE(27); + if (lookahead == '}') ADVANCE(18); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(2) - if (sym_identifier_character_set_1(lookahead)) ADVANCE(41); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(44); END_STATE(); case 3: - if (lookahead == '*') ADVANCE(5); - if (lookahead == '/') ADVANCE(43); + if (lookahead == '\n') ADVANCE(42); + if (lookahead == '/') ADVANCE(4); + if (lookahead == ':') ADVANCE(10); + if (lookahead == '<') ADVANCE(13); + if (lookahead == '{') ADVANCE(17); + if (lookahead == '}') ADVANCE(18); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') SKIP(3) END_STATE(); case 4: - if (lookahead == '*') ADVANCE(4); - if (lookahead == '/') ADVANCE(44); - if (lookahead != 0) ADVANCE(5); + if (lookahead == '*') ADVANCE(6); + if (lookahead == '/') ADVANCE(46); END_STATE(); case 5: - if (lookahead == '*') ADVANCE(4); - if (lookahead != 0) ADVANCE(5); + if (lookahead == '*') ADVANCE(5); + if (lookahead == '/') ADVANCE(47); + if (lookahead != 0) ADVANCE(6); END_STATE(); case 6: - if (lookahead == ':') ADVANCE(40); + if (lookahead == '*') ADVANCE(5); + if (lookahead != 0) ADVANCE(6); END_STATE(); case 7: - if (lookahead == '=') ADVANCE(26); + if (lookahead == ':') ADVANCE(43); END_STATE(); case 8: - ACCEPT_TOKEN(ts_builtin_sym_end); + if (lookahead == '=') ADVANCE(31); END_STATE(); case 9: - ACCEPT_TOKEN(anon_sym_COLON); + ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); case 10: ACCEPT_TOKEN(anon_sym_COLON); - if (lookahead == ':') ADVANCE(40); END_STATE(); case 11: - ACCEPT_TOKEN(anon_sym_DASH_GT); + ACCEPT_TOKEN(anon_sym_COLON); + if (lookahead == ':') ADVANCE(43); END_STATE(); case 12: - ACCEPT_TOKEN(anon_sym_LBRACE); + ACCEPT_TOKEN(anon_sym_DASH_GT); END_STATE(); case 13: - ACCEPT_TOKEN(anon_sym_RBRACE); + ACCEPT_TOKEN(anon_sym_LT); END_STATE(); case 14: - ACCEPT_TOKEN(anon_sym_EQ); - if (lookahead == '=') ADVANCE(25); + ACCEPT_TOKEN(anon_sym_LT); + if (lookahead == '=') ADVANCE(32); END_STATE(); case 15: - ACCEPT_TOKEN(anon_sym_DOT_DOT); + ACCEPT_TOKEN(anon_sym_GT); END_STATE(); case 16: - ACCEPT_TOKEN(anon_sym_SQUOTE); + ACCEPT_TOKEN(anon_sym_GT); + if (lookahead == '=') ADVANCE(33); END_STATE(); case 17: - ACCEPT_TOKEN(anon_sym_PLUS); + ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); case 18: - ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '>') ADVANCE(11); + ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); case 19: - ACCEPT_TOKEN(anon_sym_STAR); + ACCEPT_TOKEN(anon_sym_EQ); + if (lookahead == '=') ADVANCE(30); END_STATE(); case 20: - ACCEPT_TOKEN(anon_sym_BANG); + ACCEPT_TOKEN(anon_sym_DOT_DOT); END_STATE(); case 21: - ACCEPT_TOKEN(anon_sym_BANG); - if (lookahead == '=') ADVANCE(26); + ACCEPT_TOKEN(anon_sym_SQUOTE); END_STATE(); case 22: - ACCEPT_TOKEN(anon_sym_PIPE); + ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); case 23: - ACCEPT_TOKEN(anon_sym_AMP); + ACCEPT_TOKEN(anon_sym_DASH); + if (lookahead == '>') ADVANCE(12); END_STATE(); case 24: - ACCEPT_TOKEN(anon_sym_CARET); + ACCEPT_TOKEN(anon_sym_STAR); END_STATE(); case 25: - ACCEPT_TOKEN(anon_sym_EQ_EQ); + ACCEPT_TOKEN(anon_sym_BANG); END_STATE(); case 26: - ACCEPT_TOKEN(anon_sym_BANG_EQ); + ACCEPT_TOKEN(anon_sym_BANG); + if (lookahead == '=') ADVANCE(31); END_STATE(); case 27: - ACCEPT_TOKEN(anon_sym_LT); - if (lookahead == '=') ADVANCE(28); + ACCEPT_TOKEN(anon_sym_PIPE); END_STATE(); case 28: - ACCEPT_TOKEN(anon_sym_LT_EQ); + ACCEPT_TOKEN(anon_sym_AMP); END_STATE(); case 29: - ACCEPT_TOKEN(anon_sym_GT); - if (lookahead == '=') ADVANCE(30); + ACCEPT_TOKEN(anon_sym_CARET); END_STATE(); case 30: - ACCEPT_TOKEN(anon_sym_GT_EQ); + ACCEPT_TOKEN(anon_sym_EQ_EQ); END_STATE(); case 31: - ACCEPT_TOKEN(anon_sym_SLASH); - if (lookahead == '*') ADVANCE(5); - if (lookahead == '/') ADVANCE(43); + ACCEPT_TOKEN(anon_sym_BANG_EQ); END_STATE(); case 32: - ACCEPT_TOKEN(anon_sym_PERCENT); + ACCEPT_TOKEN(anon_sym_LT_EQ); END_STATE(); case 33: - ACCEPT_TOKEN(anon_sym_DOT); - if (lookahead == '.') ADVANCE(15); + ACCEPT_TOKEN(anon_sym_GT_EQ); END_STATE(); case 34: - ACCEPT_TOKEN(anon_sym_LPAREN); + ACCEPT_TOKEN(anon_sym_SLASH); + if (lookahead == '*') ADVANCE(6); + if (lookahead == '/') ADVANCE(46); END_STATE(); case 35: - ACCEPT_TOKEN(anon_sym_RPAREN); + ACCEPT_TOKEN(anon_sym_PERCENT); END_STATE(); case 36: - ACCEPT_TOKEN(anon_sym_LBRACK); + ACCEPT_TOKEN(anon_sym_DOT); + if (lookahead == '.') ADVANCE(20); END_STATE(); case 37: - ACCEPT_TOKEN(anon_sym_RBRACK); + ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); case 38: - ACCEPT_TOKEN(anon_sym_COMMA); + ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); case 39: - ACCEPT_TOKEN(anon_sym_LF); + ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); case 40: - ACCEPT_TOKEN(anon_sym_COLON_COLON); + ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); case 41: - ACCEPT_TOKEN(sym_identifier); - if (sym_identifier_character_set_2(lookahead)) ADVANCE(41); + ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); case 42: + ACCEPT_TOKEN(anon_sym_LF); + END_STATE(); + case 43: + ACCEPT_TOKEN(anon_sym_COLON_COLON); + END_STATE(); + case 44: + ACCEPT_TOKEN(sym_identifier); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(44); + END_STATE(); + case 45: ACCEPT_TOKEN(sym_number); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(42); + lookahead == '_') ADVANCE(45); END_STATE(); - case 43: + case 46: ACCEPT_TOKEN(sym_single_line_comment); if (lookahead != 0 && - lookahead != '\n') ADVANCE(43); + lookahead != '\n') ADVANCE(46); END_STATE(); - case 44: + case 47: ACCEPT_TOKEN(sym_multi_line_comment); END_STATE(); default: @@ -3362,8 +3488,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [33] = {.lex_state = 1}, [34] = {.lex_state = 2}, [35] = {.lex_state = 2}, - [36] = {.lex_state = 2}, - [37] = {.lex_state = 2}, + [36] = {.lex_state = 1}, + [37] = {.lex_state = 1}, [38] = {.lex_state = 2}, [39] = {.lex_state = 2}, [40] = {.lex_state = 2}, @@ -3371,15 +3497,15 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [42] = {.lex_state = 2}, [43] = {.lex_state = 2}, [44] = {.lex_state = 2}, - [45] = {.lex_state = 1}, - [46] = {.lex_state = 1}, - [47] = {.lex_state = 1}, + [45] = {.lex_state = 2}, + [46] = {.lex_state = 2}, + [47] = {.lex_state = 2}, [48] = {.lex_state = 1}, [49] = {.lex_state = 1}, [50] = {.lex_state = 1}, [51] = {.lex_state = 1}, [52] = {.lex_state = 1}, - [53] = {.lex_state = 1}, + [53] = {.lex_state = 2}, [54] = {.lex_state = 1}, [55] = {.lex_state = 1}, [56] = {.lex_state = 1}, @@ -3392,13 +3518,13 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [63] = {.lex_state = 1}, [64] = {.lex_state = 1}, [65] = {.lex_state = 1}, - [66] = {.lex_state = 0}, + [66] = {.lex_state = 1}, [67] = {.lex_state = 1}, - [68] = {.lex_state = 0}, + [68] = {.lex_state = 1}, [69] = {.lex_state = 0}, - [70] = {.lex_state = 0}, + [70] = {.lex_state = 1}, [71] = {.lex_state = 0}, - [72] = {.lex_state = 0}, + [72] = {.lex_state = 1}, [73] = {.lex_state = 0}, [74] = {.lex_state = 0}, [75] = {.lex_state = 0}, @@ -3413,13 +3539,13 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [84] = {.lex_state = 0}, [85] = {.lex_state = 0}, [86] = {.lex_state = 0}, - [87] = {.lex_state = 0}, + [87] = {.lex_state = 1}, [88] = {.lex_state = 0}, [89] = {.lex_state = 0}, [90] = {.lex_state = 0}, [91] = {.lex_state = 0}, [92] = {.lex_state = 0}, - [93] = {.lex_state = 0}, + [93] = {.lex_state = 3}, [94] = {.lex_state = 0}, [95] = {.lex_state = 0}, [96] = {.lex_state = 0}, @@ -3428,12 +3554,12 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [99] = {.lex_state = 0}, [100] = {.lex_state = 0}, [101] = {.lex_state = 0}, - [102] = {.lex_state = 1}, + [102] = {.lex_state = 0}, [103] = {.lex_state = 0}, [104] = {.lex_state = 0}, [105] = {.lex_state = 0}, [106] = {.lex_state = 0}, - [107] = {.lex_state = 1}, + [107] = {.lex_state = 0}, [108] = {.lex_state = 0}, [109] = {.lex_state = 0}, [110] = {.lex_state = 0}, @@ -3465,12 +3591,12 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [136] = {.lex_state = 0}, [137] = {.lex_state = 0}, [138] = {.lex_state = 0}, - [139] = {.lex_state = 0}, + [139] = {.lex_state = 3}, [140] = {.lex_state = 0}, [141] = {.lex_state = 0}, [142] = {.lex_state = 0}, [143] = {.lex_state = 0}, - [144] = {.lex_state = 0}, + [144] = {.lex_state = 3}, [145] = {.lex_state = 0}, [146] = {.lex_state = 0}, [147] = {.lex_state = 0}, @@ -3489,6 +3615,31 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [160] = {.lex_state = 0}, [161] = {.lex_state = 0}, [162] = {.lex_state = 0}, + [163] = {.lex_state = 0}, + [164] = {.lex_state = 0}, + [165] = {.lex_state = 0}, + [166] = {.lex_state = 0}, + [167] = {.lex_state = 0}, + [168] = {.lex_state = 0}, + [169] = {.lex_state = 0}, + [170] = {.lex_state = 0}, + [171] = {.lex_state = 0}, + [172] = {.lex_state = 0}, + [173] = {.lex_state = 3}, + [174] = {.lex_state = 0}, + [175] = {.lex_state = 0}, + [176] = {.lex_state = 0}, + [177] = {.lex_state = 0}, + [178] = {.lex_state = 0}, + [179] = {.lex_state = 0}, + [180] = {.lex_state = 0}, + [181] = {.lex_state = 3}, + [182] = {.lex_state = 0}, + [183] = {.lex_state = 0}, + [184] = {.lex_state = 0}, + [185] = {.lex_state = 0}, + [186] = {.lex_state = 0}, + [187] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -3498,6 +3649,8 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_module] = ACTIONS(1), [anon_sym_COLON] = ACTIONS(1), [anon_sym_DASH_GT] = ACTIONS(1), + [anon_sym_LT] = ACTIONS(1), + [anon_sym_GT] = ACTIONS(1), [anon_sym_LBRACE] = ACTIONS(1), [anon_sym_RBRACE] = ACTIONS(1), [anon_sym_interface] = ACTIONS(1), @@ -3523,9 +3676,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_CARET] = ACTIONS(1), [anon_sym_EQ_EQ] = ACTIONS(1), [anon_sym_BANG_EQ] = ACTIONS(1), - [anon_sym_LT] = ACTIONS(1), [anon_sym_LT_EQ] = ACTIONS(1), - [anon_sym_GT] = ACTIONS(1), [anon_sym_GT_EQ] = ACTIONS(1), [anon_sym_SLASH] = ACTIONS(1), [anon_sym_PERCENT] = ACTIONS(1), @@ -3542,9 +3693,9 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(162), - [sym_module] = STATE(101), - [aux_sym__linebreak] = STATE(89), + [sym_source_file] = STATE(187), + [sym_module] = STATE(116), + [aux_sym__linebreak] = STATE(98), [ts_builtin_sym_end] = ACTIONS(5), [anon_sym_module] = ACTIONS(7), [anon_sym_LF] = ACTIONS(9), @@ -3552,27 +3703,28 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [2] = { - [sym_block] = STATE(149), - [sym_interface_statement] = STATE(149), - [sym_decl_assign_statement] = STATE(149), - [sym_assign_left_side] = STATE(136), - [sym_assign_to] = STATE(84), + [sym_block] = STATE(167), + [sym_interface_statement] = STATE(167), + [sym_decl_assign_statement] = STATE(167), + [sym_assign_left_side] = STATE(155), + [sym_assign_to] = STATE(94), [sym_write_modifiers] = STATE(32), - [sym_if_statement] = STATE(149), - [sym_for_statement] = STATE(149), - [sym_declaration] = STATE(123), - [sym_array_type] = STATE(139), - [sym__type] = STATE(139), - [sym__expression] = STATE(36), - [sym_unary_op] = STATE(36), - [sym_binary_op] = STATE(36), - [sym_array_op] = STATE(36), - [sym_func_call] = STATE(36), - [sym_field_access] = STATE(36), - [sym_parenthesis_expression] = STATE(36), + [sym_if_statement] = STATE(167), + [sym_for_statement] = STATE(167), + [sym_declaration] = STATE(124), + [sym__type] = STATE(163), + [sym_array_type] = STATE(163), + [sym_named_type] = STATE(163), + [sym__expression] = STATE(34), + [sym_unary_op] = STATE(34), + [sym_binary_op] = STATE(34), + [sym_array_op] = STATE(34), + [sym_func_call] = STATE(34), + [sym_field_access] = STATE(34), + [sym_parenthesis_expression] = STATE(34), [aux_sym__linebreak] = STATE(33), - [sym_global_identifier] = STATE(37), - [aux_sym_write_modifiers_repeat1] = STATE(63), + [sym_global_identifier] = STATE(39), + [aux_sym_write_modifiers_repeat1] = STATE(67), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), [anon_sym_RBRACE] = ACTIONS(15), @@ -3599,27 +3751,28 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [3] = { - [sym_block] = STATE(126), - [sym_interface_statement] = STATE(126), - [sym_decl_assign_statement] = STATE(126), - [sym_assign_left_side] = STATE(93), - [sym_assign_to] = STATE(84), + [sym_block] = STATE(167), + [sym_interface_statement] = STATE(167), + [sym_decl_assign_statement] = STATE(167), + [sym_assign_left_side] = STATE(155), + [sym_assign_to] = STATE(94), [sym_write_modifiers] = STATE(32), - [sym_if_statement] = STATE(126), - [sym_for_statement] = STATE(126), - [sym_declaration] = STATE(123), - [sym_array_type] = STATE(139), - [sym__type] = STATE(139), - [sym__expression] = STATE(36), - [sym_unary_op] = STATE(36), - [sym_binary_op] = STATE(36), - [sym_array_op] = STATE(36), - [sym_func_call] = STATE(36), - [sym_field_access] = STATE(36), - [sym_parenthesis_expression] = STATE(36), + [sym_if_statement] = STATE(167), + [sym_for_statement] = STATE(167), + [sym_declaration] = STATE(124), + [sym__type] = STATE(163), + [sym_array_type] = STATE(163), + [sym_named_type] = STATE(163), + [sym__expression] = STATE(34), + [sym_unary_op] = STATE(34), + [sym_binary_op] = STATE(34), + [sym_array_op] = STATE(34), + [sym_func_call] = STATE(34), + [sym_field_access] = STATE(34), + [sym_parenthesis_expression] = STATE(34), [aux_sym__linebreak] = STATE(33), - [sym_global_identifier] = STATE(37), - [aux_sym_write_modifiers_repeat1] = STATE(63), + [sym_global_identifier] = STATE(39), + [aux_sym_write_modifiers_repeat1] = STATE(67), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), [anon_sym_RBRACE] = ACTIONS(39), @@ -3646,27 +3799,28 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [4] = { - [sym_block] = STATE(149), - [sym_interface_statement] = STATE(149), - [sym_decl_assign_statement] = STATE(149), - [sym_assign_left_side] = STATE(136), - [sym_assign_to] = STATE(84), + [sym_block] = STATE(167), + [sym_interface_statement] = STATE(167), + [sym_decl_assign_statement] = STATE(167), + [sym_assign_left_side] = STATE(155), + [sym_assign_to] = STATE(94), [sym_write_modifiers] = STATE(32), - [sym_if_statement] = STATE(149), - [sym_for_statement] = STATE(149), - [sym_declaration] = STATE(123), - [sym_array_type] = STATE(139), - [sym__type] = STATE(139), - [sym__expression] = STATE(36), - [sym_unary_op] = STATE(36), - [sym_binary_op] = STATE(36), - [sym_array_op] = STATE(36), - [sym_func_call] = STATE(36), - [sym_field_access] = STATE(36), - [sym_parenthesis_expression] = STATE(36), + [sym_if_statement] = STATE(167), + [sym_for_statement] = STATE(167), + [sym_declaration] = STATE(124), + [sym__type] = STATE(163), + [sym_array_type] = STATE(163), + [sym_named_type] = STATE(163), + [sym__expression] = STATE(34), + [sym_unary_op] = STATE(34), + [sym_binary_op] = STATE(34), + [sym_array_op] = STATE(34), + [sym_func_call] = STATE(34), + [sym_field_access] = STATE(34), + [sym_parenthesis_expression] = STATE(34), [aux_sym__linebreak] = STATE(33), - [sym_global_identifier] = STATE(37), - [aux_sym_write_modifiers_repeat1] = STATE(63), + [sym_global_identifier] = STATE(39), + [aux_sym_write_modifiers_repeat1] = STATE(67), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), [anon_sym_RBRACE] = ACTIONS(41), @@ -3693,27 +3847,28 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [5] = { - [sym_block] = STATE(125), - [sym_interface_statement] = STATE(125), - [sym_decl_assign_statement] = STATE(125), - [sym_assign_left_side] = STATE(95), - [sym_assign_to] = STATE(84), + [sym_block] = STATE(167), + [sym_interface_statement] = STATE(167), + [sym_decl_assign_statement] = STATE(167), + [sym_assign_left_side] = STATE(155), + [sym_assign_to] = STATE(94), [sym_write_modifiers] = STATE(32), - [sym_if_statement] = STATE(125), - [sym_for_statement] = STATE(125), - [sym_declaration] = STATE(123), - [sym_array_type] = STATE(139), - [sym__type] = STATE(139), - [sym__expression] = STATE(36), - [sym_unary_op] = STATE(36), - [sym_binary_op] = STATE(36), - [sym_array_op] = STATE(36), - [sym_func_call] = STATE(36), - [sym_field_access] = STATE(36), - [sym_parenthesis_expression] = STATE(36), - [aux_sym__linebreak] = STATE(3), - [sym_global_identifier] = STATE(37), - [aux_sym_write_modifiers_repeat1] = STATE(63), + [sym_if_statement] = STATE(167), + [sym_for_statement] = STATE(167), + [sym_declaration] = STATE(124), + [sym__type] = STATE(163), + [sym_array_type] = STATE(163), + [sym_named_type] = STATE(163), + [sym__expression] = STATE(34), + [sym_unary_op] = STATE(34), + [sym_binary_op] = STATE(34), + [sym_array_op] = STATE(34), + [sym_func_call] = STATE(34), + [sym_field_access] = STATE(34), + [sym_parenthesis_expression] = STATE(34), + [aux_sym__linebreak] = STATE(33), + [sym_global_identifier] = STATE(39), + [aux_sym_write_modifiers_repeat1] = STATE(67), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), [anon_sym_RBRACE] = ACTIONS(43), @@ -3734,36 +3889,37 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_AMP] = ACTIONS(31), [anon_sym_CARET] = ACTIONS(31), [anon_sym_LPAREN] = ACTIONS(33), - [anon_sym_LF] = ACTIONS(45), + [anon_sym_LF] = ACTIONS(35), [sym_number] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [6] = { - [sym_block] = STATE(149), - [sym_interface_statement] = STATE(149), - [sym_decl_assign_statement] = STATE(149), - [sym_assign_left_side] = STATE(136), - [sym_assign_to] = STATE(84), + [sym_block] = STATE(167), + [sym_interface_statement] = STATE(167), + [sym_decl_assign_statement] = STATE(167), + [sym_assign_left_side] = STATE(155), + [sym_assign_to] = STATE(94), [sym_write_modifiers] = STATE(32), - [sym_if_statement] = STATE(149), - [sym_for_statement] = STATE(149), - [sym_declaration] = STATE(123), - [sym_array_type] = STATE(139), - [sym__type] = STATE(139), - [sym__expression] = STATE(36), - [sym_unary_op] = STATE(36), - [sym_binary_op] = STATE(36), - [sym_array_op] = STATE(36), - [sym_func_call] = STATE(36), - [sym_field_access] = STATE(36), - [sym_parenthesis_expression] = STATE(36), + [sym_if_statement] = STATE(167), + [sym_for_statement] = STATE(167), + [sym_declaration] = STATE(124), + [sym__type] = STATE(163), + [sym_array_type] = STATE(163), + [sym_named_type] = STATE(163), + [sym__expression] = STATE(34), + [sym_unary_op] = STATE(34), + [sym_binary_op] = STATE(34), + [sym_array_op] = STATE(34), + [sym_func_call] = STATE(34), + [sym_field_access] = STATE(34), + [sym_parenthesis_expression] = STATE(34), [aux_sym__linebreak] = STATE(33), - [sym_global_identifier] = STATE(37), - [aux_sym_write_modifiers_repeat1] = STATE(63), + [sym_global_identifier] = STATE(39), + [aux_sym_write_modifiers_repeat1] = STATE(67), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(47), + [anon_sym_RBRACE] = ACTIONS(45), [anon_sym_interface] = ACTIONS(17), [anon_sym_reg] = ACTIONS(19), [anon_sym_initial] = ACTIONS(21), @@ -3787,30 +3943,31 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [7] = { - [sym_block] = STATE(149), - [sym_interface_statement] = STATE(149), - [sym_decl_assign_statement] = STATE(149), - [sym_assign_left_side] = STATE(136), - [sym_assign_to] = STATE(84), + [sym_block] = STATE(114), + [sym_interface_statement] = STATE(114), + [sym_decl_assign_statement] = STATE(114), + [sym_assign_left_side] = STATE(102), + [sym_assign_to] = STATE(94), [sym_write_modifiers] = STATE(32), - [sym_if_statement] = STATE(149), - [sym_for_statement] = STATE(149), - [sym_declaration] = STATE(123), - [sym_array_type] = STATE(139), - [sym__type] = STATE(139), - [sym__expression] = STATE(36), - [sym_unary_op] = STATE(36), - [sym_binary_op] = STATE(36), - [sym_array_op] = STATE(36), - [sym_func_call] = STATE(36), - [sym_field_access] = STATE(36), - [sym_parenthesis_expression] = STATE(36), + [sym_if_statement] = STATE(114), + [sym_for_statement] = STATE(114), + [sym_declaration] = STATE(124), + [sym__type] = STATE(163), + [sym_array_type] = STATE(163), + [sym_named_type] = STATE(163), + [sym__expression] = STATE(34), + [sym_unary_op] = STATE(34), + [sym_binary_op] = STATE(34), + [sym_array_op] = STATE(34), + [sym_func_call] = STATE(34), + [sym_field_access] = STATE(34), + [sym_parenthesis_expression] = STATE(34), [aux_sym__linebreak] = STATE(33), - [sym_global_identifier] = STATE(37), - [aux_sym_write_modifiers_repeat1] = STATE(63), + [sym_global_identifier] = STATE(39), + [aux_sym_write_modifiers_repeat1] = STATE(67), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(49), + [anon_sym_RBRACE] = ACTIONS(47), [anon_sym_interface] = ACTIONS(17), [anon_sym_reg] = ACTIONS(19), [anon_sym_initial] = ACTIONS(21), @@ -3834,30 +3991,31 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [8] = { - [sym_block] = STATE(149), - [sym_interface_statement] = STATE(149), - [sym_decl_assign_statement] = STATE(149), - [sym_assign_left_side] = STATE(136), - [sym_assign_to] = STATE(84), + [sym_block] = STATE(122), + [sym_interface_statement] = STATE(122), + [sym_decl_assign_statement] = STATE(122), + [sym_assign_left_side] = STATE(97), + [sym_assign_to] = STATE(94), [sym_write_modifiers] = STATE(32), - [sym_if_statement] = STATE(149), - [sym_for_statement] = STATE(149), - [sym_declaration] = STATE(123), - [sym_array_type] = STATE(139), - [sym__type] = STATE(139), - [sym__expression] = STATE(36), - [sym_unary_op] = STATE(36), - [sym_binary_op] = STATE(36), - [sym_array_op] = STATE(36), - [sym_func_call] = STATE(36), - [sym_field_access] = STATE(36), - [sym_parenthesis_expression] = STATE(36), - [aux_sym__linebreak] = STATE(33), - [sym_global_identifier] = STATE(37), - [aux_sym_write_modifiers_repeat1] = STATE(63), + [sym_if_statement] = STATE(122), + [sym_for_statement] = STATE(122), + [sym_declaration] = STATE(124), + [sym__type] = STATE(163), + [sym_array_type] = STATE(163), + [sym_named_type] = STATE(163), + [sym__expression] = STATE(34), + [sym_unary_op] = STATE(34), + [sym_binary_op] = STATE(34), + [sym_array_op] = STATE(34), + [sym_func_call] = STATE(34), + [sym_field_access] = STATE(34), + [sym_parenthesis_expression] = STATE(34), + [aux_sym__linebreak] = STATE(7), + [sym_global_identifier] = STATE(39), + [aux_sym_write_modifiers_repeat1] = STATE(67), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(51), + [anon_sym_RBRACE] = ACTIONS(49), [anon_sym_interface] = ACTIONS(17), [anon_sym_reg] = ACTIONS(19), [anon_sym_initial] = ACTIONS(21), @@ -3875,33 +4033,34 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_AMP] = ACTIONS(31), [anon_sym_CARET] = ACTIONS(31), [anon_sym_LPAREN] = ACTIONS(33), - [anon_sym_LF] = ACTIONS(35), + [anon_sym_LF] = ACTIONS(51), [sym_number] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [9] = { - [sym_block] = STATE(149), - [sym_interface_statement] = STATE(149), - [sym_decl_assign_statement] = STATE(149), - [sym_assign_left_side] = STATE(136), - [sym_assign_to] = STATE(84), + [sym_block] = STATE(167), + [sym_interface_statement] = STATE(167), + [sym_decl_assign_statement] = STATE(167), + [sym_assign_left_side] = STATE(155), + [sym_assign_to] = STATE(94), [sym_write_modifiers] = STATE(32), - [sym_if_statement] = STATE(149), - [sym_for_statement] = STATE(149), - [sym_declaration] = STATE(123), - [sym_array_type] = STATE(139), - [sym__type] = STATE(139), - [sym__expression] = STATE(36), - [sym_unary_op] = STATE(36), - [sym_binary_op] = STATE(36), - [sym_array_op] = STATE(36), - [sym_func_call] = STATE(36), - [sym_field_access] = STATE(36), - [sym_parenthesis_expression] = STATE(36), + [sym_if_statement] = STATE(167), + [sym_for_statement] = STATE(167), + [sym_declaration] = STATE(124), + [sym__type] = STATE(163), + [sym_array_type] = STATE(163), + [sym_named_type] = STATE(163), + [sym__expression] = STATE(34), + [sym_unary_op] = STATE(34), + [sym_binary_op] = STATE(34), + [sym_array_op] = STATE(34), + [sym_func_call] = STATE(34), + [sym_field_access] = STATE(34), + [sym_parenthesis_expression] = STATE(34), [aux_sym__linebreak] = STATE(33), - [sym_global_identifier] = STATE(37), - [aux_sym_write_modifiers_repeat1] = STATE(63), + [sym_global_identifier] = STATE(39), + [aux_sym_write_modifiers_repeat1] = STATE(67), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), [anon_sym_RBRACE] = ACTIONS(53), @@ -3927,76 +4086,44 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, - [10] = { - [sym_block] = STATE(149), - [sym_interface_statement] = STATE(149), - [sym_decl_assign_statement] = STATE(149), - [sym_assign_left_side] = STATE(136), - [sym_assign_to] = STATE(84), - [sym_write_modifiers] = STATE(32), - [sym_if_statement] = STATE(149), - [sym_for_statement] = STATE(149), - [sym_declaration] = STATE(123), - [sym_array_type] = STATE(139), - [sym__type] = STATE(139), - [sym__expression] = STATE(36), - [sym_unary_op] = STATE(36), - [sym_binary_op] = STATE(36), - [sym_array_op] = STATE(36), - [sym_func_call] = STATE(36), - [sym_field_access] = STATE(36), - [sym_parenthesis_expression] = STATE(36), - [aux_sym__linebreak] = STATE(33), - [sym_global_identifier] = STATE(37), - [aux_sym_write_modifiers_repeat1] = STATE(63), - [sym_identifier] = ACTIONS(11), - [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_interface] = ACTIONS(17), - [anon_sym_reg] = ACTIONS(19), - [anon_sym_initial] = ACTIONS(21), - [anon_sym_if] = ACTIONS(23), - [anon_sym_for] = ACTIONS(25), - [anon_sym_input] = ACTIONS(27), - [anon_sym_output] = ACTIONS(27), - [anon_sym_state] = ACTIONS(29), - [anon_sym_gen] = ACTIONS(29), - [anon_sym_PLUS] = ACTIONS(31), - [anon_sym_DASH] = ACTIONS(31), - [anon_sym_STAR] = ACTIONS(31), - [anon_sym_BANG] = ACTIONS(31), - [anon_sym_PIPE] = ACTIONS(31), - [anon_sym_AMP] = ACTIONS(31), - [anon_sym_CARET] = ACTIONS(31), - [anon_sym_LPAREN] = ACTIONS(33), - [anon_sym_LF] = ACTIONS(35), - [sym_number] = ACTIONS(37), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), - }, }; static const uint16_t ts_small_parse_table[] = { - [0] = 16, + [0] = 24, ACTIONS(11), 1, sym_identifier, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(17), 1, + anon_sym_interface, ACTIONS(19), 1, anon_sym_reg, ACTIONS(21), 1, anon_sym_initial, + ACTIONS(23), 1, + anon_sym_if, + ACTIONS(25), 1, + anon_sym_for, ACTIONS(33), 1, anon_sym_LPAREN, + ACTIONS(35), 1, + anon_sym_LF, ACTIONS(37), 1, sym_number, STATE(32), 1, sym_write_modifiers, - STATE(37), 1, + STATE(33), 1, + aux_sym__linebreak, + STATE(39), 1, sym_global_identifier, - STATE(63), 1, + STATE(67), 1, aux_sym_write_modifiers_repeat1, - STATE(120), 1, + STATE(94), 1, sym_assign_to, - STATE(123), 1, + STATE(124), 1, sym_declaration, + STATE(155), 1, + sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4006,9 +4133,16 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(139), 2, - sym_array_type, + STATE(163), 3, sym__type, + sym_array_type, + sym_named_type, + STATE(167), 5, + sym_block, + sym_interface_statement, + sym_decl_assign_statement, + sym_if_statement, + sym_for_statement, ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, @@ -4017,7 +4151,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(36), 7, + STATE(34), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4025,20 +4159,70 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [65] = 5, - ACTIONS(59), 1, - anon_sym_COLON_COLON, - STATE(13), 1, - aux_sym_global_identifier_repeat1, + [94] = 16, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(19), 1, + anon_sym_reg, + ACTIONS(21), 1, + anon_sym_initial, + ACTIONS(33), 1, + anon_sym_LPAREN, + ACTIONS(37), 1, + sym_number, + STATE(32), 1, + sym_write_modifiers, + STATE(39), 1, + sym_global_identifier, + STATE(67), 1, + aux_sym_write_modifiers_repeat1, + STATE(124), 1, + sym_declaration, + STATE(137), 1, + sym_assign_to, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(55), 8, - anon_sym_EQ, - anon_sym_in, + ACTIONS(27), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(29), 2, + anon_sym_state, + anon_sym_gen, + STATE(163), 3, + sym__type, + sym_array_type, + sym_named_type, + ACTIONS(31), 7, + anon_sym_PLUS, anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(34), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + [160] = 5, + ACTIONS(59), 1, + anon_sym_COLON_COLON, + STATE(14), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(55), 8, anon_sym_LT, anon_sym_GT, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, sym_identifier, @@ -4063,20 +4247,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [108] = 5, - ACTIONS(65), 1, + [203] = 5, + ACTIONS(59), 1, anon_sym_COLON_COLON, - STATE(13), 1, + STATE(12), 1, aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(61), 8, + anon_sym_LT, + anon_sym_GT, anon_sym_EQ, anon_sym_in, anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, sym_identifier, @@ -4101,24 +4285,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [151] = 5, - ACTIONS(59), 1, + [246] = 5, + ACTIONS(69), 1, anon_sym_COLON_COLON, - STATE(12), 1, + STATE(14), 1, aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(68), 8, + ACTIONS(65), 8, + anon_sym_LT, + anon_sym_GT, anon_sym_EQ, anon_sym_in, anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(70), 20, + ACTIONS(67), 20, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4139,16 +4323,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [194] = 3, + [289] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(72), 8, + anon_sym_LT, + anon_sym_GT, anon_sym_EQ, anon_sym_in, anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, sym_identifier, @@ -4174,40 +4358,43 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_LF, anon_sym_COLON_COLON, - [232] = 10, + [327] = 13, + ACTIONS(80), 1, + anon_sym_PLUS, ACTIONS(82), 1, + anon_sym_DASH, + ACTIONS(86), 1, + anon_sym_CARET, + ACTIONS(88), 1, anon_sym_SLASH, - ACTIONS(84), 1, + ACTIONS(90), 1, anon_sym_DOT, - ACTIONS(86), 1, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - STATE(24), 1, + STATE(27), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(28), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 2, + ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(78), 4, - anon_sym_EQ, - anon_sym_DASH, + ACTIONS(78), 3, anon_sym_LT, anon_sym_GT, - ACTIONS(76), 17, + anon_sym_EQ, + ACTIONS(76), 15, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - anon_sym_PLUS, anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -4216,25 +4403,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [284] = 8, - ACTIONS(84), 1, + [385] = 8, + ACTIONS(90), 1, anon_sym_DOT, - ACTIONS(86), 1, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - STATE(24), 1, + STATE(27), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(28), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(78), 5, - anon_sym_EQ, - anon_sym_DASH, anon_sym_LT, anon_sym_GT, + anon_sym_EQ, + anon_sym_DASH, anon_sym_SLASH, ACTIONS(76), 19, anon_sym_DASH_GT, @@ -4256,43 +4443,40 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [332] = 13, - ACTIONS(82), 1, - anon_sym_SLASH, - ACTIONS(84), 1, - anon_sym_DOT, - ACTIONS(86), 1, - anon_sym_LPAREN, + [433] = 10, ACTIONS(88), 1, - anon_sym_LBRACK, + anon_sym_SLASH, ACTIONS(90), 1, - anon_sym_PLUS, + anon_sym_DOT, ACTIONS(92), 1, - anon_sym_DASH, + anon_sym_LPAREN, ACTIONS(94), 1, - anon_sym_CARET, - STATE(24), 1, + anon_sym_LBRACK, + STATE(27), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(28), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 2, + ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(78), 3, - anon_sym_EQ, + ACTIONS(78), 4, anon_sym_LT, anon_sym_GT, - ACTIONS(76), 15, + anon_sym_EQ, + anon_sym_DASH, + ACTIONS(76), 17, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, + anon_sym_PLUS, anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -4301,44 +4485,45 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [390] = 14, + [485] = 15, + ACTIONS(80), 1, + anon_sym_PLUS, ACTIONS(82), 1, - anon_sym_SLASH, - ACTIONS(84), 1, - anon_sym_DOT, + anon_sym_DASH, ACTIONS(86), 1, - anon_sym_LPAREN, + anon_sym_CARET, ACTIONS(88), 1, - anon_sym_LBRACK, + anon_sym_SLASH, ACTIONS(90), 1, - anon_sym_PLUS, + anon_sym_DOT, ACTIONS(92), 1, - anon_sym_DASH, + anon_sym_LPAREN, ACTIONS(94), 1, - anon_sym_CARET, + anon_sym_LBRACK, ACTIONS(96), 1, anon_sym_PIPE, - STATE(24), 1, + ACTIONS(98), 1, + anon_sym_AMP, + STATE(27), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(28), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 2, + ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(78), 3, - anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(76), 14, + anon_sym_EQ, + ACTIONS(76), 13, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -4347,42 +4532,44 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [450] = 12, + [547] = 14, + ACTIONS(80), 1, + anon_sym_PLUS, ACTIONS(82), 1, - anon_sym_SLASH, - ACTIONS(84), 1, - anon_sym_DOT, + anon_sym_DASH, ACTIONS(86), 1, - anon_sym_LPAREN, + anon_sym_CARET, ACTIONS(88), 1, - anon_sym_LBRACK, + anon_sym_SLASH, ACTIONS(90), 1, - anon_sym_PLUS, + anon_sym_DOT, ACTIONS(92), 1, - anon_sym_DASH, - STATE(24), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, + anon_sym_LBRACK, + ACTIONS(96), 1, + anon_sym_PIPE, + STATE(27), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(28), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 2, + ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(78), 3, - anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(76), 16, + anon_sym_EQ, + ACTIONS(76), 14, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -4391,45 +4578,42 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [506] = 15, + [607] = 12, + ACTIONS(80), 1, + anon_sym_PLUS, ACTIONS(82), 1, - anon_sym_SLASH, - ACTIONS(84), 1, - anon_sym_DOT, - ACTIONS(86), 1, - anon_sym_LPAREN, + anon_sym_DASH, ACTIONS(88), 1, - anon_sym_LBRACK, + anon_sym_SLASH, ACTIONS(90), 1, - anon_sym_PLUS, + anon_sym_DOT, ACTIONS(92), 1, - anon_sym_DASH, + anon_sym_LPAREN, ACTIONS(94), 1, - anon_sym_CARET, - ACTIONS(96), 1, - anon_sym_PIPE, - ACTIONS(98), 1, - anon_sym_AMP, - STATE(24), 1, + anon_sym_LBRACK, + STATE(27), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(28), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 2, + ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(78), 3, - anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(76), 13, + anon_sym_EQ, + ACTIONS(76), 16, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -4438,25 +4622,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [568] = 8, - ACTIONS(84), 1, + [663] = 8, + ACTIONS(90), 1, anon_sym_DOT, - ACTIONS(86), 1, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - STATE(24), 1, + STATE(27), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(28), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(102), 5, - anon_sym_EQ, - anon_sym_DASH, anon_sym_LT, anon_sym_GT, + anon_sym_EQ, + anon_sym_DASH, anon_sym_SLASH, ACTIONS(100), 19, anon_sym_DASH_GT, @@ -4478,16 +4662,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [616] = 3, + [711] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(104), 8, + anon_sym_LT, + anon_sym_GT, anon_sym_EQ, anon_sym_in, anon_sym_DASH, - anon_sym_LT, - anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, sym_identifier, @@ -4512,15 +4696,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [653] = 3, + [748] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(110), 6, - anon_sym_EQ, - anon_sym_DASH, anon_sym_LT, anon_sym_GT, + anon_sym_EQ, + anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, ACTIONS(108), 21, @@ -4545,15 +4729,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [689] = 3, + [784] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(114), 6, - anon_sym_EQ, - anon_sym_DASH, anon_sym_LT, anon_sym_GT, + anon_sym_EQ, + anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, ACTIONS(112), 21, @@ -4578,15 +4762,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [725] = 3, + [820] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(118), 6, - anon_sym_EQ, - anon_sym_DASH, anon_sym_LT, anon_sym_GT, + anon_sym_EQ, + anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, ACTIONS(116), 21, @@ -4611,15 +4795,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [761] = 3, + [856] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(122), 6, - anon_sym_EQ, - anon_sym_DASH, anon_sym_LT, anon_sym_GT, + anon_sym_EQ, + anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, ACTIONS(120), 21, @@ -4644,15 +4828,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [797] = 3, + [892] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(126), 6, - anon_sym_EQ, - anon_sym_DASH, anon_sym_LT, anon_sym_GT, + anon_sym_EQ, + anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, ACTIONS(124), 21, @@ -4677,15 +4861,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [833] = 3, + [928] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(130), 6, - anon_sym_EQ, - anon_sym_DASH, anon_sym_LT, anon_sym_GT, + anon_sym_EQ, + anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, ACTIONS(128), 21, @@ -4710,15 +4894,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [869] = 3, + [964] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(134), 6, - anon_sym_EQ, - anon_sym_DASH, anon_sym_LT, anon_sym_GT, + anon_sym_EQ, + anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, ACTIONS(132), 21, @@ -4743,41 +4927,41 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [905] = 17, + [1000] = 17, + ACTIONS(80), 1, + anon_sym_PLUS, ACTIONS(82), 1, - anon_sym_SLASH, + anon_sym_DASH, ACTIONS(86), 1, - anon_sym_LPAREN, + anon_sym_CARET, ACTIONS(88), 1, - anon_sym_LBRACK, - ACTIONS(90), 1, - anon_sym_PLUS, + anon_sym_SLASH, ACTIONS(92), 1, - anon_sym_DASH, + anon_sym_LPAREN, ACTIONS(94), 1, - anon_sym_CARET, + anon_sym_LBRACK, ACTIONS(96), 1, anon_sym_PIPE, ACTIONS(98), 1, anon_sym_AMP, - ACTIONS(138), 1, + ACTIONS(140), 1, anon_sym_EQ, ACTIONS(144), 1, anon_sym_DOT, - STATE(24), 1, + STATE(27), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(28), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 2, + ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(142), 2, + ACTIONS(138), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(140), 4, + ACTIONS(142), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -4789,16 +4973,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [968] = 11, + [1063] = 11, ACTIONS(11), 1, sym_identifier, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(146), 1, sym_number, - STATE(37), 1, + STATE(39), 1, sym_global_identifier, - STATE(106), 1, + STATE(126), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -4809,9 +4993,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(139), 2, - sym_array_type, + STATE(163), 3, sym__type, + sym_array_type, + sym_named_type, ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, @@ -4820,7 +5005,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(35), 7, + STATE(38), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4828,7 +5013,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [1018] = 5, + [1114] = 5, ACTIONS(152), 1, anon_sym_LF, STATE(33), 1, @@ -4860,148 +5045,219 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, anon_sym_LPAREN, sym_number, - [1055] = 18, - ACTIONS(82), 1, - anon_sym_SLASH, + [1151] = 16, ACTIONS(86), 1, - anon_sym_LPAREN, + anon_sym_CARET, ACTIONS(88), 1, - anon_sym_LBRACK, + anon_sym_SLASH, + ACTIONS(92), 1, + anon_sym_LPAREN, ACTIONS(94), 1, - anon_sym_CARET, + anon_sym_LBRACK, ACTIONS(96), 1, anon_sym_PIPE, ACTIONS(98), 1, anon_sym_AMP, ACTIONS(144), 1, anon_sym_DOT, - ACTIONS(155), 1, - anon_sym_RPAREN, ACTIONS(157), 1, - anon_sym_COMMA, - STATE(24), 1, + anon_sym_EQ, + STATE(27), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(28), 1, sym_parenthesis_expression_list, - STATE(60), 1, - sym__comma, - STATE(122), 1, - aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(80), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(90), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(142), 2, + ACTIONS(84), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(138), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(140), 4, + ACTIONS(155), 3, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LF, + ACTIONS(142), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1117] = 16, - ACTIONS(82), 1, - anon_sym_SLASH, + [1209] = 18, ACTIONS(86), 1, - anon_sym_LPAREN, + anon_sym_CARET, ACTIONS(88), 1, - anon_sym_LBRACK, + anon_sym_SLASH, + ACTIONS(92), 1, + anon_sym_LPAREN, ACTIONS(94), 1, - anon_sym_CARET, + anon_sym_LBRACK, ACTIONS(96), 1, anon_sym_PIPE, ACTIONS(98), 1, anon_sym_AMP, ACTIONS(144), 1, anon_sym_DOT, + ACTIONS(159), 1, + anon_sym_RPAREN, ACTIONS(161), 1, - anon_sym_EQ, - STATE(24), 1, + anon_sym_COMMA, + STATE(27), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(28), 1, sym_parenthesis_expression_list, + STATE(55), 1, + sym__comma, + STATE(138), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(80), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(90), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(142), 2, + ACTIONS(84), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(138), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(159), 3, - anon_sym_RBRACE, - anon_sym_COMMA, - anon_sym_LF, - ACTIONS(140), 4, + ACTIONS(142), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1175] = 16, - ACTIONS(82), 1, - anon_sym_SLASH, - ACTIONS(86), 1, + [1271] = 9, + ACTIONS(33), 1, + anon_sym_LPAREN, + ACTIONS(163), 1, + sym_identifier, + ACTIONS(165), 1, + sym_number, + STATE(53), 1, + sym_global_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(119), 2, + sym_template_type, + sym_template_generative_expression, + STATE(118), 3, + sym__type, + sym_array_type, + sym_named_type, + ACTIONS(31), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(47), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + [1315] = 9, + ACTIONS(33), 1, anon_sym_LPAREN, + ACTIONS(163), 1, + sym_identifier, + ACTIONS(165), 1, + sym_number, + STATE(53), 1, + sym_global_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(172), 2, + sym_template_type, + sym_template_generative_expression, + STATE(118), 3, + sym__type, + sym_array_type, + sym_named_type, + ACTIONS(31), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(47), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + [1359] = 16, + ACTIONS(86), 1, + anon_sym_CARET, ACTIONS(88), 1, - anon_sym_LBRACK, + anon_sym_SLASH, + ACTIONS(92), 1, + anon_sym_LPAREN, ACTIONS(94), 1, - anon_sym_CARET, + anon_sym_LBRACK, ACTIONS(96), 1, anon_sym_PIPE, ACTIONS(98), 1, anon_sym_AMP, ACTIONS(144), 1, anon_sym_DOT, - ACTIONS(165), 1, + ACTIONS(169), 1, anon_sym_EQ, - STATE(24), 1, + STATE(27), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(28), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(80), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(90), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(142), 2, + ACTIONS(84), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(138), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(163), 3, + ACTIONS(167), 3, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, - ACTIONS(140), 4, + ACTIONS(142), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1233] = 5, - ACTIONS(167), 1, + [1417] = 6, + ACTIONS(171), 1, sym_identifier, ACTIONS(173), 1, + anon_sym_LT, + ACTIONS(180), 1, anon_sym_LBRACK, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(171), 4, - anon_sym_EQ, - anon_sym_LT, + ACTIONS(176), 3, anon_sym_GT, + anon_sym_EQ, anon_sym_SLASH, - ACTIONS(169), 16, + ACTIONS(178), 16, anon_sym_RBRACE, anon_sym_PLUS, anon_sym_DASH, @@ -5018,286 +5274,324 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COMMA, anon_sym_LF, - [1268] = 16, + [1454] = 16, ACTIONS(13), 1, anon_sym_LBRACE, - ACTIONS(82), 1, - anon_sym_SLASH, ACTIONS(86), 1, - anon_sym_LPAREN, + anon_sym_CARET, ACTIONS(88), 1, - anon_sym_LBRACK, + anon_sym_SLASH, + ACTIONS(92), 1, + anon_sym_LPAREN, ACTIONS(94), 1, - anon_sym_CARET, + anon_sym_LBRACK, ACTIONS(96), 1, anon_sym_PIPE, ACTIONS(98), 1, anon_sym_AMP, ACTIONS(144), 1, anon_sym_DOT, - STATE(24), 1, + STATE(27), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(28), 1, sym_parenthesis_expression_list, - STATE(144), 1, + STATE(180), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(80), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(90), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(142), 2, + ACTIONS(84), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(138), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(140), 4, + ACTIONS(142), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1324] = 15, - ACTIONS(82), 1, - anon_sym_SLASH, + [1510] = 15, ACTIONS(86), 1, - anon_sym_LPAREN, + anon_sym_CARET, ACTIONS(88), 1, - anon_sym_LBRACK, + anon_sym_SLASH, + ACTIONS(92), 1, + anon_sym_LPAREN, ACTIONS(94), 1, - anon_sym_CARET, + anon_sym_LBRACK, ACTIONS(96), 1, anon_sym_PIPE, ACTIONS(98), 1, anon_sym_AMP, ACTIONS(144), 1, anon_sym_DOT, - STATE(24), 1, + STATE(27), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(28), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(80), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(90), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(142), 2, + ACTIONS(84), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(138), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(176), 2, - anon_sym_RBRACE, - anon_sym_LF, - ACTIONS(140), 4, + ACTIONS(183), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + ACTIONS(142), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1378] = 15, - ACTIONS(82), 1, - anon_sym_SLASH, + [1564] = 16, + ACTIONS(13), 1, + anon_sym_LBRACE, ACTIONS(86), 1, - anon_sym_LPAREN, + anon_sym_CARET, ACTIONS(88), 1, - anon_sym_LBRACK, + anon_sym_SLASH, + ACTIONS(92), 1, + anon_sym_LPAREN, ACTIONS(94), 1, - anon_sym_CARET, + anon_sym_LBRACK, ACTIONS(96), 1, anon_sym_PIPE, ACTIONS(98), 1, anon_sym_AMP, ACTIONS(144), 1, anon_sym_DOT, - STATE(24), 1, + STATE(27), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(28), 1, sym_parenthesis_expression_list, + STATE(165), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(80), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(90), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(142), 2, + ACTIONS(84), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(138), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(178), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - ACTIONS(140), 4, + ACTIONS(142), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1432] = 16, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(82), 1, - anon_sym_SLASH, + [1620] = 15, ACTIONS(86), 1, - anon_sym_LPAREN, + anon_sym_CARET, ACTIONS(88), 1, - anon_sym_LBRACK, + anon_sym_SLASH, + ACTIONS(92), 1, + anon_sym_LPAREN, ACTIONS(94), 1, - anon_sym_CARET, + anon_sym_LBRACK, ACTIONS(96), 1, anon_sym_PIPE, ACTIONS(98), 1, anon_sym_AMP, ACTIONS(144), 1, anon_sym_DOT, - STATE(24), 1, + STATE(27), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(28), 1, sym_parenthesis_expression_list, - STATE(156), 1, - sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(80), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(90), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(142), 2, + ACTIONS(84), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(138), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(140), 4, + ACTIONS(185), 2, + anon_sym_RBRACE, + anon_sym_LF, + ACTIONS(142), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1488] = 15, - ACTIONS(82), 1, - anon_sym_SLASH, - ACTIONS(84), 1, - anon_sym_DOT, + [1674] = 15, ACTIONS(86), 1, - anon_sym_LPAREN, + anon_sym_CARET, ACTIONS(88), 1, - anon_sym_LBRACK, + anon_sym_SLASH, + ACTIONS(92), 1, + anon_sym_LPAREN, ACTIONS(94), 1, - anon_sym_CARET, + anon_sym_LBRACK, ACTIONS(96), 1, anon_sym_PIPE, ACTIONS(98), 1, anon_sym_AMP, - ACTIONS(180), 1, - anon_sym_DOT_DOT, - STATE(24), 1, + ACTIONS(144), 1, + anon_sym_DOT, + ACTIONS(187), 1, + anon_sym_RBRACK, + STATE(27), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(28), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(80), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(90), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(142), 2, + ACTIONS(84), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(138), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(140), 4, + ACTIONS(142), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1541] = 15, - ACTIONS(82), 1, - anon_sym_SLASH, + [1727] = 15, ACTIONS(86), 1, - anon_sym_LPAREN, + anon_sym_CARET, ACTIONS(88), 1, - anon_sym_LBRACK, + anon_sym_SLASH, + ACTIONS(92), 1, + anon_sym_LPAREN, ACTIONS(94), 1, - anon_sym_CARET, + anon_sym_LBRACK, ACTIONS(96), 1, anon_sym_PIPE, ACTIONS(98), 1, anon_sym_AMP, ACTIONS(144), 1, anon_sym_DOT, - ACTIONS(182), 1, - anon_sym_RBRACK, - STATE(24), 1, + ACTIONS(189), 1, + anon_sym_RPAREN, + STATE(27), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(28), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(80), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(90), 2, + ACTIONS(138), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(142), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [1780] = 15, + ACTIONS(86), 1, + anon_sym_CARET, + ACTIONS(88), 1, + anon_sym_SLASH, + ACTIONS(90), 1, + anon_sym_DOT, + ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, + anon_sym_LBRACK, + ACTIONS(96), 1, + anon_sym_PIPE, + ACTIONS(98), 1, + anon_sym_AMP, + ACTIONS(191), 1, + anon_sym_DOT_DOT, + STATE(27), 1, + sym_array_bracket_expression, + STATE(28), 1, + sym_parenthesis_expression_list, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(80), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(142), 2, + ACTIONS(84), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(138), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(140), 4, + ACTIONS(142), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1594] = 15, - ACTIONS(82), 1, - anon_sym_SLASH, + [1833] = 15, ACTIONS(86), 1, - anon_sym_LPAREN, + anon_sym_CARET, ACTIONS(88), 1, - anon_sym_LBRACK, + anon_sym_SLASH, + ACTIONS(92), 1, + anon_sym_LPAREN, ACTIONS(94), 1, - anon_sym_CARET, + anon_sym_LBRACK, ACTIONS(96), 1, anon_sym_PIPE, ACTIONS(98), 1, anon_sym_AMP, ACTIONS(144), 1, anon_sym_DOT, - ACTIONS(184), 1, - anon_sym_RPAREN, - STATE(24), 1, + ACTIONS(193), 1, + anon_sym_COMMA, + STATE(27), 1, sym_array_bracket_expression, - STATE(26), 1, + STATE(28), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(80), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(90), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(142), 2, + ACTIONS(84), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(138), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(140), 4, + ACTIONS(142), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1647] = 7, + [1886] = 7, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(163), 1, sym_identifier, - ACTIONS(188), 1, + ACTIONS(195), 1, anon_sym_RPAREN, - ACTIONS(190), 1, + ACTIONS(197), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5310,7 +5604,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(34), 8, + STATE(35), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5319,23 +5613,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [1683] = 5, - ACTIONS(35), 1, - anon_sym_LF, - STATE(33), 1, - aux_sym__linebreak, + [1922] = 6, + ACTIONS(33), 1, + anon_sym_LPAREN, + ACTIONS(163), 1, + sym_identifier, + ACTIONS(199), 1, + sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(192), 7, - anon_sym_reg, - anon_sym_initial, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(194), 9, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5343,14 +5631,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_LPAREN, - sym_number, - [1714] = 6, + STATE(18), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_global_identifier, + [1955] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(163), 1, sym_identifier, - ACTIONS(196), 1, + ACTIONS(201), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5363,7 +5658,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(41), 8, + STATE(17), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5372,17 +5667,23 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [1747] = 6, - ACTIONS(33), 1, - anon_sym_LPAREN, - ACTIONS(186), 1, - sym_identifier, - ACTIONS(198), 1, - sym_number, + [1988] = 5, + ACTIONS(207), 1, + anon_sym_LF, + STATE(66), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(203), 7, + anon_sym_reg, + anon_sym_initial, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(205), 9, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5390,21 +5691,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(44), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_global_identifier, - [1780] = 6, + anon_sym_LPAREN, + sym_number, + [2019] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(163), 1, sym_identifier, - ACTIONS(200), 1, + ACTIONS(209), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5417,7 +5711,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(20), 8, + STATE(19), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5426,12 +5720,39 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [1813] = 6, + [2052] = 6, + ACTIONS(173), 1, + anon_sym_LT, + ACTIONS(176), 1, + anon_sym_SLASH, + ACTIONS(211), 1, + anon_sym_GT, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(180), 2, + anon_sym_LBRACK, + anon_sym_COMMA, + ACTIONS(178), 13, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_DOT, + anon_sym_LPAREN, + [2085] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(163), 1, sym_identifier, - ACTIONS(202), 1, + ACTIONS(214), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5444,7 +5765,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(22), 8, + STATE(16), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5453,12 +5774,12 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [1846] = 6, + [2118] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(163), 1, sym_identifier, - ACTIONS(204), 1, + ACTIONS(216), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5471,7 +5792,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(42), 8, + STATE(41), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5480,12 +5801,12 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [1879] = 6, + [2151] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(163), 1, sym_identifier, - ACTIONS(206), 1, + ACTIONS(218), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5498,7 +5819,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(19), 8, + STATE(45), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5507,12 +5828,12 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [1912] = 6, + [2184] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(163), 1, sym_identifier, - ACTIONS(208), 1, + ACTIONS(220), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5525,7 +5846,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(31), 8, + STATE(22), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5534,12 +5855,12 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [1945] = 6, + [2217] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(163), 1, sym_identifier, - ACTIONS(210), 1, + ACTIONS(222), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5552,7 +5873,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(18), 8, + STATE(20), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5561,12 +5882,12 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [1978] = 6, + [2250] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(163), 1, sym_identifier, - ACTIONS(212), 1, + ACTIONS(224), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5579,7 +5900,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(38), 8, + STATE(46), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5588,38 +5909,12 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [2011] = 5, - ACTIONS(218), 1, - anon_sym_LF, - STATE(46), 1, - aux_sym__linebreak, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(214), 7, - anon_sym_reg, - anon_sym_initial, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(216), 9, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - sym_number, - [2042] = 6, + [2283] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(163), 1, sym_identifier, - ACTIONS(220), 1, + ACTIONS(226), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5632,7 +5927,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(17), 8, + STATE(43), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5641,12 +5936,12 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [2075] = 6, + [2316] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(163), 1, sym_identifier, - ACTIONS(222), 1, + ACTIONS(228), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5659,7 +5954,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(16), 8, + STATE(42), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5668,12 +5963,12 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [2108] = 6, + [2349] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(163), 1, sym_identifier, - ACTIONS(224), 1, + ACTIONS(230), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5686,7 +5981,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(43), 8, + STATE(21), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5695,12 +5990,12 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [2141] = 6, + [2382] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(163), 1, sym_identifier, - ACTIONS(226), 1, + ACTIONS(232), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5713,7 +6008,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(40), 8, + STATE(31), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5722,12 +6017,12 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [2174] = 6, + [2415] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(163), 1, sym_identifier, - ACTIONS(228), 1, + ACTIONS(234), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5740,7 +6035,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(39), 8, + STATE(40), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5749,12 +6044,12 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [2207] = 6, + [2448] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(186), 1, + ACTIONS(163), 1, sym_identifier, - ACTIONS(230), 1, + ACTIONS(236), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5767,7 +6062,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(21), 8, + STATE(44), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5776,21 +6071,23 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [2240] = 5, - ACTIONS(19), 1, - anon_sym_reg, - STATE(64), 1, - aux_sym_write_modifiers_repeat1, + [2481] = 5, + ACTIONS(35), 1, + anon_sym_LF, + STATE(33), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(232), 5, + ACTIONS(238), 7, + anon_sym_reg, + anon_sym_initial, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(234), 9, + ACTIONS(240), 9, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5800,21 +6097,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, anon_sym_LPAREN, sym_number, - [2269] = 5, - ACTIONS(238), 1, + [2512] = 5, + ACTIONS(19), 1, anon_sym_reg, - STATE(64), 1, + STATE(68), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(236), 5, + ACTIONS(242), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(241), 9, + ACTIONS(244), 9, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5824,18 +6121,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, anon_sym_LPAREN, sym_number, - [2298] = 3, + [2541] = 5, + ACTIONS(248), 1, + anon_sym_reg, + STATE(68), 1, + aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(243), 6, - anon_sym_reg, + ACTIONS(246), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(245), 9, + ACTIONS(251), 9, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5845,21 +6145,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, anon_sym_LPAREN, sym_number, - [2322] = 11, + [2570] = 12, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, anon_sym_LF, - ACTIONS(247), 1, + ACTIONS(253), 1, anon_sym_DASH_GT, STATE(33), 1, aux_sym__linebreak, - STATE(77), 1, + STATE(90), 1, sym_declaration, - STATE(96), 1, + STATE(100), 1, sym_declaration_list, - STATE(140), 1, + STATE(154), 1, sym__interface_ports_output, + STATE(157), 1, + sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -5869,21 +6171,22 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(139), 3, - sym_array_type, + STATE(163), 3, sym__type, - sym_global_identifier, - [2361] = 3, + sym_array_type, + sym_named_type, + [2612] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(249), 5, + ACTIONS(255), 6, + anon_sym_reg, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(251), 9, + ACTIONS(257), 9, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5893,20 +6196,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, anon_sym_LPAREN, sym_number, - [2384] = 11, + [2636] = 12, ACTIONS(11), 1, sym_identifier, - ACTIONS(247), 1, - anon_sym_DASH_GT, ACTIONS(253), 1, + anon_sym_DASH_GT, + ACTIONS(259), 1, anon_sym_LF, - STATE(66), 1, + STATE(69), 1, aux_sym__linebreak, - STATE(77), 1, + STATE(90), 1, sym_declaration, - STATE(94), 1, + STATE(99), 1, sym_declaration_list, - STATE(137), 1, + STATE(157), 1, + sym_global_identifier, + STATE(162), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, @@ -5917,20 +6222,42 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(139), 3, - sym_array_type, + STATE(163), 3, sym__type, - sym_global_identifier, - [2423] = 9, + sym_array_type, + sym_named_type, + [2678] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(261), 5, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(263), 9, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + sym_number, + [2701] = 10, ACTIONS(11), 1, sym_identifier, - ACTIONS(255), 1, + ACTIONS(265), 1, anon_sym_LF, - STATE(70), 1, + STATE(74), 1, aux_sym__linebreak, - STATE(77), 1, + STATE(90), 1, sym_declaration, - STATE(147), 1, + STATE(157), 1, + sym_global_identifier, + STATE(158), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, @@ -5941,20 +6268,22 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(139), 3, - sym_array_type, + STATE(163), 3, sym__type, - sym_global_identifier, - [2456] = 9, + sym_array_type, + sym_named_type, + [2737] = 10, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, anon_sym_LF, STATE(33), 1, aux_sym__linebreak, - STATE(77), 1, + STATE(90), 1, sym_declaration, - STATE(142), 1, + STATE(157), 1, + sym_global_identifier, + STATE(166), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, @@ -5965,79 +6294,110 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(139), 3, + STATE(163), 3, + sym__type, sym_array_type, + sym_named_type, + [2773] = 7, + ACTIONS(267), 1, + sym_identifier, + STATE(157), 1, + sym_global_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(27), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(29), 2, + anon_sym_state, + anon_sym_gen, + STATE(110), 2, + sym_template_declaration_type, + sym_declaration, + STATE(163), 3, sym__type, + sym_array_type, + sym_named_type, + [2801] = 7, + ACTIONS(267), 1, + sym_identifier, + STATE(157), 1, sym_global_identifier, - [2489] = 4, - ACTIONS(259), 1, - anon_sym_SQUOTE, - STATE(79), 1, - sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(257), 7, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_COMMA, - anon_sym_LF, - [2509] = 4, - ACTIONS(259), 1, + ACTIONS(27), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(29), 2, + anon_sym_state, + anon_sym_gen, + STATE(174), 2, + sym_template_declaration_type, + sym_declaration, + STATE(163), 3, + sym__type, + sym_array_type, + sym_named_type, + [2829] = 4, + ACTIONS(271), 1, anon_sym_SQUOTE, - STATE(81), 1, + STATE(85), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(261), 7, + ACTIONS(269), 8, anon_sym_DASH_GT, + anon_sym_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [2529] = 4, - ACTIONS(259), 1, + [2850] = 4, + ACTIONS(271), 1, anon_sym_SQUOTE, - STATE(78), 1, + STATE(84), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(263), 7, + ACTIONS(273), 8, anon_sym_DASH_GT, + anon_sym_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [2549] = 4, - ACTIONS(259), 1, + [2871] = 4, + ACTIONS(271), 1, anon_sym_SQUOTE, STATE(83), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(265), 7, + ACTIONS(275), 8, anon_sym_DASH_GT, + anon_sym_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [2569] = 6, + [2892] = 7, ACTIONS(11), 1, sym_identifier, - STATE(97), 1, + STATE(104), 1, sym_declaration, + STATE(157), 1, + sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6047,14 +6407,16 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(139), 3, - sym_array_type, + STATE(163), 3, sym__type, - sym_global_identifier, - [2593] = 6, + sym_array_type, + sym_named_type, + [2919] = 7, ACTIONS(11), 1, sym_identifier, - STATE(161), 1, + STATE(157), 1, + sym_global_identifier, + STATE(182), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -6065,890 +6427,1110 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(139), 3, - sym_array_type, + STATE(163), 3, sym__type, - sym_global_identifier, - [2617] = 5, - ACTIONS(157), 1, - anon_sym_COMMA, - STATE(75), 1, - sym__comma, - STATE(82), 1, - aux_sym_declaration_list_repeat1, + sym_array_type, + sym_named_type, + [2946] = 4, + ACTIONS(271), 1, + anon_sym_SQUOTE, + STATE(86), 1, + sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(267), 4, + ACTIONS(277), 8, anon_sym_DASH_GT, + anon_sym_GT, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_COMMA, anon_sym_LF, - [2637] = 2, + [2967] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(269), 7, + ACTIONS(279), 8, anon_sym_DASH_GT, + anon_sym_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [2651] = 2, + [2982] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(271), 7, + ACTIONS(281), 8, anon_sym_DASH_GT, + anon_sym_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [2665] = 5, - ACTIONS(275), 1, - anon_sym_COMMA, - STATE(75), 1, - sym__comma, - STATE(80), 1, - aux_sym_declaration_list_repeat1, + [2997] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(273), 4, + ACTIONS(283), 8, anon_sym_DASH_GT, + anon_sym_GT, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_COMMA, anon_sym_LF, - [2685] = 2, + [3012] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(278), 7, + ACTIONS(285), 8, anon_sym_DASH_GT, + anon_sym_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [2699] = 5, - ACTIONS(157), 1, - anon_sym_COMMA, - STATE(75), 1, - sym__comma, - STATE(80), 1, - aux_sym_declaration_list_repeat1, + [3027] = 5, + ACTIONS(59), 1, + anon_sym_COLON_COLON, + STATE(12), 1, + aux_sym_global_identifier_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(287), 2, + anon_sym_GT, + anon_sym_COMMA, + ACTIONS(63), 3, + anon_sym_LT, + anon_sym_LBRACK, + sym_identifier, + [3047] = 5, + ACTIONS(291), 1, + anon_sym_COMMA, + STATE(80), 1, + sym__comma, + STATE(88), 1, + aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(280), 4, + ACTIONS(289), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [2719] = 2, + [3067] = 5, + ACTIONS(11), 1, + sym_identifier, + STATE(157), 1, + sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(282), 7, + ACTIONS(294), 2, + anon_sym_state, + anon_sym_gen, + STATE(160), 3, + sym__type, + sym_array_type, + sym_named_type, + [3087] = 5, + ACTIONS(161), 1, + anon_sym_COMMA, + STATE(80), 1, + sym__comma, + STATE(91), 1, + aux_sym_declaration_list_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(296), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, + anon_sym_LF, + [3107] = 5, + ACTIONS(161), 1, anon_sym_COMMA, + STATE(80), 1, + sym__comma, + STATE(88), 1, + aux_sym_declaration_list_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(298), 4, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_LF, - [2733] = 5, - ACTIONS(157), 1, + [3127] = 5, + ACTIONS(161), 1, anon_sym_COMMA, STATE(11), 1, sym__comma, - STATE(85), 1, + STATE(95), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(284), 3, + ACTIONS(300), 3, anon_sym_RBRACE, anon_sym_EQ, anon_sym_LF, - [2752] = 5, - ACTIONS(157), 1, + [3146] = 7, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(302), 1, + anon_sym_COLON, + ACTIONS(304), 1, + anon_sym_LT, + STATE(144), 1, + sym_template_declaration_arguments, + STATE(178), 1, + sym_block, + STATE(179), 1, + sym_interface_ports, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [3169] = 5, + ACTIONS(161), 1, anon_sym_COMMA, STATE(11), 1, sym__comma, - STATE(87), 1, + STATE(92), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(286), 3, + ACTIONS(306), 3, anon_sym_RBRACE, anon_sym_EQ, anon_sym_LF, - [2771] = 4, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(288), 2, - anon_sym_state, - anon_sym_gen, - STATE(146), 3, - sym_array_type, - sym__type, - sym_global_identifier, - [2788] = 5, - ACTIONS(292), 1, + [3188] = 5, + ACTIONS(310), 1, anon_sym_COMMA, STATE(11), 1, sym__comma, - STATE(87), 1, + STATE(95), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(290), 3, + ACTIONS(308), 3, anon_sym_RBRACE, anon_sym_EQ, anon_sym_LF, - [2807] = 6, + [3207] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(295), 1, + ACTIONS(313), 1, ts_builtin_sym_end, - ACTIONS(297), 1, + ACTIONS(315), 1, anon_sym_LF, - STATE(113), 1, + STATE(150), 1, aux_sym__linebreak, - STATE(148), 1, + STATE(169), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2827] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(297), 1, + [3227] = 6, + ACTIONS(317), 1, + anon_sym_RBRACE, + ACTIONS(319), 1, + anon_sym_EQ, + ACTIONS(321), 1, anon_sym_LF, - ACTIONS(299), 1, - ts_builtin_sym_end, - STATE(110), 1, - sym_module, - STATE(113), 1, + STATE(5), 1, aux_sym__linebreak, + STATE(127), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2847] = 6, + [3247] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(297), 1, + ACTIONS(315), 1, anon_sym_LF, - ACTIONS(301), 1, + ACTIONS(323), 1, ts_builtin_sym_end, - STATE(113), 1, + STATE(150), 1, aux_sym__linebreak, - STATE(148), 1, + STATE(151), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2867] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(297), 1, + [3267] = 4, + ACTIONS(253), 1, + anon_sym_DASH_GT, + STATE(156), 1, + sym__interface_ports_output, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(325), 3, + anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_LF, - ACTIONS(303), 1, - ts_builtin_sym_end, - STATE(113), 1, - aux_sym__linebreak, - STATE(148), 1, - sym_module, + [3283] = 4, + ACTIONS(253), 1, + anon_sym_DASH_GT, + STATE(164), 1, + sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2887] = 6, + ACTIONS(327), 3, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_LF, + [3299] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(297), 1, + ACTIONS(315), 1, anon_sym_LF, - ACTIONS(305), 1, + ACTIONS(329), 1, ts_builtin_sym_end, - STATE(113), 1, + STATE(150), 1, aux_sym__linebreak, - STATE(148), 1, + STATE(169), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2907] = 6, - ACTIONS(307), 1, - anon_sym_RBRACE, - ACTIONS(309), 1, + [3319] = 6, + ACTIONS(319), 1, anon_sym_EQ, - ACTIONS(311), 1, + ACTIONS(331), 1, + anon_sym_RBRACE, + ACTIONS(333), 1, anon_sym_LF, STATE(6), 1, aux_sym__linebreak, - STATE(133), 1, + STATE(149), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2927] = 4, - ACTIONS(247), 1, - anon_sym_DASH_GT, - STATE(141), 1, - sym__interface_ports_output, + [3339] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(315), 1, + anon_sym_LF, + ACTIONS(335), 1, + ts_builtin_sym_end, + STATE(150), 1, + aux_sym__linebreak, + STATE(169), 1, + sym_module, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [3359] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(313), 3, + ACTIONS(337), 5, + anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_COMMA, anon_sym_LF, - [2943] = 6, - ACTIONS(309), 1, - anon_sym_EQ, + [3371] = 4, + ACTIONS(163), 1, + sym_identifier, + STATE(157), 1, + sym_global_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(161), 3, + sym__type, + sym_array_type, + sym_named_type, + [3387] = 4, + ACTIONS(163), 1, + sym_identifier, + STATE(157), 1, + sym_global_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(159), 3, + sym__type, + sym_array_type, + sym_named_type, + [3403] = 6, + ACTIONS(7), 1, + anon_sym_module, ACTIONS(315), 1, - anon_sym_RBRACE, - ACTIONS(317), 1, anon_sym_LF, - STATE(9), 1, + ACTIONS(339), 1, + ts_builtin_sym_end, + STATE(150), 1, aux_sym__linebreak, - STATE(131), 1, - aux_sym_block_repeat1, + STATE(169), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [2963] = 4, - ACTIONS(247), 1, - anon_sym_DASH_GT, - STATE(143), 1, - sym__interface_ports_output, + [3423] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(319), 3, - anon_sym_LBRACE, + ACTIONS(341), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + sym_identifier, + [3434] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(343), 4, + ts_builtin_sym_end, anon_sym_RBRACE, + anon_sym_else, anon_sym_LF, - [2979] = 2, + [3445] = 5, + ACTIONS(161), 1, + anon_sym_COMMA, + ACTIONS(345), 1, + anon_sym_GT, + STATE(76), 1, + sym__comma, + STATE(141), 1, + aux_sym_template_declaration_arguments_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(321), 5, - anon_sym_DASH_GT, - anon_sym_LBRACE, + [3462] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(347), 4, + ts_builtin_sym_end, anon_sym_RBRACE, - anon_sym_COMMA, + anon_sym_else, anon_sym_LF, - [2991] = 2, + [3473] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(323), 4, + ACTIONS(347), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3002] = 5, - ACTIONS(325), 1, + [3484] = 5, + ACTIONS(349), 1, + anon_sym_RPAREN, + ACTIONS(351), 1, + anon_sym_COMMA, + STATE(55), 1, + sym__comma, + STATE(113), 1, + aux_sym_parenthesis_expression_list_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [3501] = 5, + ACTIONS(331), 1, anon_sym_RBRACE, - ACTIONS(327), 1, + ACTIONS(333), 1, anon_sym_LF, - STATE(8), 1, + STATE(6), 1, aux_sym__linebreak, - STATE(117), 1, + STATE(148), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3019] = 2, + [3518] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(329), 4, + ACTIONS(354), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3030] = 5, - ACTIONS(331), 1, + [3529] = 5, + ACTIONS(356), 1, ts_builtin_sym_end, - ACTIONS(333), 1, + ACTIONS(358), 1, anon_sym_LF, - STATE(90), 1, + STATE(101), 1, aux_sym__linebreak, - STATE(109), 1, + STATE(143), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3047] = 4, - ACTIONS(335), 1, - anon_sym_COLON, - STATE(153), 1, - sym_interface_ports, + [3546] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(337), 2, + ACTIONS(360), 4, + ts_builtin_sym_end, anon_sym_RBRACE, + anon_sym_else, anon_sym_LF, - [3062] = 2, + [3557] = 4, + ACTIONS(94), 1, + anon_sym_LBRACK, + STATE(108), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(339), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [3073] = 2, + ACTIONS(362), 2, + anon_sym_GT, + anon_sym_COMMA, + [3572] = 5, + ACTIONS(161), 1, + anon_sym_COMMA, + ACTIONS(364), 1, + anon_sym_GT, + STATE(37), 1, + sym__comma, + STATE(153), 1, + aux_sym_named_type_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(339), 4, - ts_builtin_sym_end, + [3589] = 5, + ACTIONS(366), 1, + anon_sym_GT, + ACTIONS(368), 1, + anon_sym_COMMA, + STATE(37), 1, + sym__comma, + STATE(120), 1, + aux_sym_named_type_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [3606] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(371), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + sym_identifier, + [3617] = 5, + ACTIONS(317), 1, anon_sym_RBRACE, - anon_sym_else, + ACTIONS(321), 1, anon_sym_LF, - [3084] = 5, - ACTIONS(341), 1, - anon_sym_RPAREN, - ACTIONS(343), 1, + STATE(5), 1, + aux_sym__linebreak, + STATE(132), 1, + aux_sym_block_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [3634] = 5, + ACTIONS(373), 1, + anon_sym_GT, + ACTIONS(375), 1, anon_sym_COMMA, - STATE(60), 1, + STATE(76), 1, sym__comma, - STATE(105), 1, - aux_sym_parenthesis_expression_list_repeat1, + STATE(123), 1, + aux_sym_template_declaration_arguments_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3101] = 2, + [3651] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(159), 4, + ACTIONS(155), 4, anon_sym_RBRACE, anon_sym_EQ, anon_sym_COMMA, anon_sym_LF, - [3112] = 5, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(335), 1, - anon_sym_COLON, - STATE(151), 1, - sym_interface_ports, - STATE(154), 1, - sym_block, + [3662] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3129] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(346), 4, + ACTIONS(378), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3140] = 5, - ACTIONS(348), 1, - ts_builtin_sym_end, - ACTIONS(350), 1, - anon_sym_LF, - STATE(91), 1, - aux_sym__linebreak, - STATE(129), 1, - aux_sym_source_file_repeat1, + [3673] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3157] = 5, - ACTIONS(352), 1, - ts_builtin_sym_end, - ACTIONS(354), 1, + ACTIONS(167), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COMMA, anon_sym_LF, - STATE(92), 1, + [3684] = 5, + ACTIONS(380), 1, + anon_sym_RBRACE, + ACTIONS(382), 1, + anon_sym_LF, + STATE(2), 1, aux_sym__linebreak, - STATE(135), 1, - aux_sym_source_file_repeat1, + STATE(133), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3174] = 2, + [3701] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(356), 4, + ACTIONS(384), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3185] = 2, + [3712] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(358), 4, + ACTIONS(378), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3196] = 4, - ACTIONS(360), 1, - anon_sym_LF, - STATE(113), 1, - aux_sym__linebreak, + [3723] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(150), 2, - ts_builtin_sym_end, - anon_sym_module, - [3211] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(356), 4, + ACTIONS(386), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3222] = 2, + [3734] = 4, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(388), 1, + anon_sym_if, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(363), 4, - ts_builtin_sym_end, + STATE(175), 2, + sym_block, + sym_if_statement, + [3749] = 5, + ACTIONS(390), 1, anon_sym_RBRACE, - anon_sym_else, + ACTIONS(392), 1, anon_sym_LF, - [3233] = 3, - ACTIONS(186), 1, - sym_identifier, + STATE(9), 1, + aux_sym__linebreak, + STATE(133), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(138), 3, - sym_array_type, - sym__type, - sym_global_identifier, - [3246] = 5, - ACTIONS(365), 1, + [3766] = 5, + ACTIONS(394), 1, anon_sym_RBRACE, - ACTIONS(367), 1, + ACTIONS(396), 1, anon_sym_LF, STATE(10), 1, aux_sym__linebreak, - STATE(117), 1, + STATE(133), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3263] = 2, + [3783] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(370), 4, + ACTIONS(399), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3274] = 2, + [3794] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(363), 4, + ACTIONS(343), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3285] = 2, + [3805] = 5, + ACTIONS(401), 1, + ts_builtin_sym_end, + ACTIONS(403), 1, + anon_sym_LF, + STATE(103), 1, + aux_sym__linebreak, + STATE(140), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(372), 4, + [3822] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(405), 4, anon_sym_RBRACE, anon_sym_EQ, anon_sym_COMMA, anon_sym_LF, - [3296] = 5, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(297), 1, - anon_sym_LF, - STATE(113), 1, - aux_sym__linebreak, - STATE(148), 1, - sym_module, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3313] = 5, - ACTIONS(157), 1, + [3833] = 5, + ACTIONS(161), 1, anon_sym_COMMA, - ACTIONS(374), 1, + ACTIONS(407), 1, anon_sym_RPAREN, - STATE(60), 1, + STATE(55), 1, sym__comma, - STATE(105), 1, + STATE(113), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3330] = 2, + [3850] = 4, + ACTIONS(302), 1, + anon_sym_COLON, + STATE(171), 1, + sym_interface_ports, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(163), 4, + ACTIONS(409), 2, anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COMMA, anon_sym_LF, - [3341] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(323), 4, + [3865] = 5, + ACTIONS(411), 1, ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [3352] = 5, - ACTIONS(315), 1, - anon_sym_RBRACE, - ACTIONS(317), 1, + ACTIONS(413), 1, anon_sym_LF, - STATE(9), 1, + STATE(140), 1, + aux_sym_source_file_repeat1, + STATE(146), 1, aux_sym__linebreak, - STATE(132), 1, - aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3369] = 5, - ACTIONS(307), 1, - anon_sym_RBRACE, - ACTIONS(311), 1, - anon_sym_LF, - STATE(6), 1, - aux_sym__linebreak, - STATE(99), 1, - aux_sym_block_repeat1, + [3882] = 5, + ACTIONS(161), 1, + anon_sym_COMMA, + ACTIONS(416), 1, + anon_sym_GT, + STATE(76), 1, + sym__comma, + STATE(123), 1, + aux_sym_template_declaration_arguments_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3386] = 2, + [3899] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(376), 4, + ACTIONS(418), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3397] = 4, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(378), 1, - anon_sym_if, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(152), 2, - sym_block, - sym_if_statement, - [3412] = 5, - ACTIONS(380), 1, + [3910] = 5, + ACTIONS(420), 1, ts_builtin_sym_end, - ACTIONS(382), 1, + ACTIONS(422), 1, anon_sym_LF, - STATE(121), 1, + STATE(107), 1, aux_sym__linebreak, - STATE(129), 1, + STATE(140), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3429] = 2, + [3927] = 5, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(302), 1, + anon_sym_COLON, + STATE(168), 1, + sym_interface_ports, + STATE(176), 1, + sym_block, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [3944] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(385), 4, + ACTIONS(418), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3440] = 5, - ACTIONS(387), 1, - anon_sym_RBRACE, - ACTIONS(389), 1, + [3955] = 5, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(315), 1, anon_sym_LF, - STATE(2), 1, + STATE(150), 1, aux_sym__linebreak, - STATE(117), 1, - aux_sym_block_repeat1, + STATE(169), 1, + sym_module, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [3972] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3457] = 5, - ACTIONS(391), 1, + ACTIONS(424), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [3983] = 5, + ACTIONS(426), 1, anon_sym_RBRACE, - ACTIONS(393), 1, + ACTIONS(428), 1, anon_sym_LF, STATE(4), 1, aux_sym__linebreak, - STATE(117), 1, + STATE(133), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3474] = 5, - ACTIONS(395), 1, + [4000] = 5, + ACTIONS(430), 1, anon_sym_RBRACE, - ACTIONS(397), 1, + ACTIONS(432), 1, anon_sym_LF, - STATE(7), 1, + STATE(3), 1, aux_sym__linebreak, - STATE(117), 1, + STATE(133), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3491] = 3, - ACTIONS(186), 1, - sym_identifier, + [4017] = 4, + ACTIONS(434), 1, + anon_sym_LF, + STATE(150), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(145), 3, - sym_array_type, - sym__type, - sym_global_identifier, - [3504] = 5, - ACTIONS(399), 1, + ACTIONS(150), 2, ts_builtin_sym_end, - ACTIONS(401), 1, + anon_sym_module, + [4032] = 5, + ACTIONS(437), 1, + ts_builtin_sym_end, + ACTIONS(439), 1, anon_sym_LF, - STATE(88), 1, + STATE(96), 1, aux_sym__linebreak, - STATE(129), 1, + STATE(136), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3521] = 3, - ACTIONS(309), 1, + [4049] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(441), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + sym_identifier, + [4060] = 5, + ACTIONS(161), 1, + anon_sym_COMMA, + ACTIONS(443), 1, + anon_sym_GT, + STATE(37), 1, + sym__comma, + STATE(120), 1, + aux_sym_named_type_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [4077] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(445), 3, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_LF, + [4087] = 3, + ACTIONS(319), 1, anon_sym_EQ, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(403), 2, + ACTIONS(447), 2, anon_sym_RBRACE, anon_sym_LF, - [3533] = 2, + [4099] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(405), 3, + ACTIONS(449), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [3543] = 4, - ACTIONS(88), 1, + [4109] = 3, + ACTIONS(451), 1, + anon_sym_LT, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(171), 2, anon_sym_LBRACK, - ACTIONS(407), 1, sym_identifier, - STATE(155), 1, + [4121] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(453), 3, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_LF, + [4131] = 4, + ACTIONS(94), 1, + anon_sym_LBRACK, + ACTIONS(455), 1, + sym_identifier, + STATE(108), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3557] = 4, - ACTIONS(88), 1, + [4145] = 4, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(409), 1, + ACTIONS(457), 1, sym_identifier, - STATE(155), 1, + STATE(108), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3571] = 2, + [4159] = 4, + ACTIONS(94), 1, + anon_sym_LBRACK, + ACTIONS(459), 1, + sym_identifier, + STATE(108), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(411), 3, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_LF, - [3581] = 2, + [4173] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(413), 3, + ACTIONS(461), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [3591] = 2, + [4183] = 4, + ACTIONS(94), 1, + anon_sym_LBRACK, + ACTIONS(463), 1, + sym_identifier, + STATE(108), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [4197] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(415), 3, + ACTIONS(465), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [3601] = 2, + [4207] = 3, + ACTIONS(469), 1, + anon_sym_else, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(417), 3, - anon_sym_LBRACE, + ACTIONS(467), 2, anon_sym_RBRACE, anon_sym_LF, - [3611] = 3, - ACTIONS(421), 1, - anon_sym_else, + [4219] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(419), 2, + ACTIONS(471), 3, + anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [3623] = 4, - ACTIONS(88), 1, - anon_sym_LBRACK, - ACTIONS(423), 1, - sym_identifier, - STATE(155), 1, - sym_array_bracket_expression, + [4229] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3637] = 4, - ACTIONS(88), 1, - anon_sym_LBRACK, - ACTIONS(425), 1, - sym_identifier, - STATE(155), 1, - sym_array_bracket_expression, + ACTIONS(447), 2, + anon_sym_RBRACE, + anon_sym_LF, + [4238] = 3, + ACTIONS(13), 1, + anon_sym_LBRACE, + STATE(177), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3651] = 2, + [4249] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(427), 3, - anon_sym_LBRACE, - anon_sym_RBRACE, + ACTIONS(473), 2, + ts_builtin_sym_end, anon_sym_LF, - [3661] = 2, + [4258] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(429), 2, + ACTIONS(475), 2, ts_builtin_sym_end, anon_sym_LF, - [3670] = 2, + [4267] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(403), 2, + ACTIONS(477), 2, anon_sym_RBRACE, anon_sym_LF, - [3679] = 2, + [4276] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(431), 2, - ts_builtin_sym_end, - anon_sym_LF, - [3688] = 3, - ACTIONS(13), 1, + ACTIONS(366), 2, + anon_sym_GT, + anon_sym_COMMA, + [4285] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(479), 2, + anon_sym_COLON, anon_sym_LBRACE, - STATE(150), 1, - sym_block, + [4294] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3699] = 2, + ACTIONS(373), 2, + anon_sym_GT, + anon_sym_COMMA, + [4303] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(433), 2, + ACTIONS(481), 2, anon_sym_RBRACE, anon_sym_LF, - [3708] = 2, + [4312] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(435), 2, - anon_sym_RBRACE, + ACTIONS(483), 2, + ts_builtin_sym_end, anon_sym_LF, - [3717] = 2, + [4321] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(437), 2, + ACTIONS(485), 2, ts_builtin_sym_end, anon_sym_LF, - [3726] = 2, + [4330] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(439), 2, - anon_sym_LBRACK, - sym_identifier, - [3735] = 2, + ACTIONS(487), 2, + ts_builtin_sym_end, + anon_sym_LF, + [4339] = 3, + ACTIONS(13), 1, + anon_sym_LBRACE, + STATE(170), 1, + sym_block, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [4350] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(441), 2, + ACTIONS(489), 2, anon_sym_RBRACE, anon_sym_LF, - [3744] = 2, - ACTIONS(443), 1, - sym_identifier, + [4359] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(491), 2, + anon_sym_COLON, + anon_sym_LBRACE, + [4368] = 2, + ACTIONS(493), 1, + anon_sym_in, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3752] = 2, - ACTIONS(445), 1, + [4376] = 2, + ACTIONS(495), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3760] = 2, - ACTIONS(447), 1, + [4384] = 2, + ACTIONS(497), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3768] = 2, - ACTIONS(449), 1, + [4392] = 2, + ACTIONS(499), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3776] = 2, - ACTIONS(451), 1, - anon_sym_in, + [4400] = 2, + ACTIONS(501), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3784] = 2, - ACTIONS(453), 1, + [4408] = 2, + ACTIONS(503), 1, ts_builtin_sym_end, ACTIONS(3), 2, sym_single_line_comment, @@ -6956,158 +7538,184 @@ static const uint16_t ts_small_parse_table[] = { }; static const uint32_t ts_small_parse_table_map[] = { - [SMALL_STATE(11)] = 0, - [SMALL_STATE(12)] = 65, - [SMALL_STATE(13)] = 108, - [SMALL_STATE(14)] = 151, - [SMALL_STATE(15)] = 194, - [SMALL_STATE(16)] = 232, - [SMALL_STATE(17)] = 284, - [SMALL_STATE(18)] = 332, - [SMALL_STATE(19)] = 390, - [SMALL_STATE(20)] = 450, - [SMALL_STATE(21)] = 506, - [SMALL_STATE(22)] = 568, - [SMALL_STATE(23)] = 616, - [SMALL_STATE(24)] = 653, - [SMALL_STATE(25)] = 689, - [SMALL_STATE(26)] = 725, - [SMALL_STATE(27)] = 761, - [SMALL_STATE(28)] = 797, - [SMALL_STATE(29)] = 833, - [SMALL_STATE(30)] = 869, - [SMALL_STATE(31)] = 905, - [SMALL_STATE(32)] = 968, - [SMALL_STATE(33)] = 1018, - [SMALL_STATE(34)] = 1055, - [SMALL_STATE(35)] = 1117, - [SMALL_STATE(36)] = 1175, - [SMALL_STATE(37)] = 1233, - [SMALL_STATE(38)] = 1268, - [SMALL_STATE(39)] = 1324, - [SMALL_STATE(40)] = 1378, - [SMALL_STATE(41)] = 1432, - [SMALL_STATE(42)] = 1488, - [SMALL_STATE(43)] = 1541, - [SMALL_STATE(44)] = 1594, - [SMALL_STATE(45)] = 1647, - [SMALL_STATE(46)] = 1683, - [SMALL_STATE(47)] = 1714, - [SMALL_STATE(48)] = 1747, - [SMALL_STATE(49)] = 1780, - [SMALL_STATE(50)] = 1813, - [SMALL_STATE(51)] = 1846, - [SMALL_STATE(52)] = 1879, - [SMALL_STATE(53)] = 1912, - [SMALL_STATE(54)] = 1945, - [SMALL_STATE(55)] = 1978, - [SMALL_STATE(56)] = 2011, - [SMALL_STATE(57)] = 2042, - [SMALL_STATE(58)] = 2075, - [SMALL_STATE(59)] = 2108, - [SMALL_STATE(60)] = 2141, - [SMALL_STATE(61)] = 2174, - [SMALL_STATE(62)] = 2207, - [SMALL_STATE(63)] = 2240, - [SMALL_STATE(64)] = 2269, - [SMALL_STATE(65)] = 2298, - [SMALL_STATE(66)] = 2322, - [SMALL_STATE(67)] = 2361, - [SMALL_STATE(68)] = 2384, - [SMALL_STATE(69)] = 2423, - [SMALL_STATE(70)] = 2456, - [SMALL_STATE(71)] = 2489, - [SMALL_STATE(72)] = 2509, - [SMALL_STATE(73)] = 2529, - [SMALL_STATE(74)] = 2549, - [SMALL_STATE(75)] = 2569, - [SMALL_STATE(76)] = 2593, - [SMALL_STATE(77)] = 2617, - [SMALL_STATE(78)] = 2637, - [SMALL_STATE(79)] = 2651, - [SMALL_STATE(80)] = 2665, - [SMALL_STATE(81)] = 2685, - [SMALL_STATE(82)] = 2699, - [SMALL_STATE(83)] = 2719, - [SMALL_STATE(84)] = 2733, - [SMALL_STATE(85)] = 2752, - [SMALL_STATE(86)] = 2771, - [SMALL_STATE(87)] = 2788, - [SMALL_STATE(88)] = 2807, - [SMALL_STATE(89)] = 2827, - [SMALL_STATE(90)] = 2847, - [SMALL_STATE(91)] = 2867, - [SMALL_STATE(92)] = 2887, - [SMALL_STATE(93)] = 2907, - [SMALL_STATE(94)] = 2927, - [SMALL_STATE(95)] = 2943, - [SMALL_STATE(96)] = 2963, - [SMALL_STATE(97)] = 2979, - [SMALL_STATE(98)] = 2991, - [SMALL_STATE(99)] = 3002, - [SMALL_STATE(100)] = 3019, - [SMALL_STATE(101)] = 3030, - [SMALL_STATE(102)] = 3047, - [SMALL_STATE(103)] = 3062, - [SMALL_STATE(104)] = 3073, - [SMALL_STATE(105)] = 3084, - [SMALL_STATE(106)] = 3101, - [SMALL_STATE(107)] = 3112, - [SMALL_STATE(108)] = 3129, - [SMALL_STATE(109)] = 3140, - [SMALL_STATE(110)] = 3157, - [SMALL_STATE(111)] = 3174, - [SMALL_STATE(112)] = 3185, - [SMALL_STATE(113)] = 3196, - [SMALL_STATE(114)] = 3211, - [SMALL_STATE(115)] = 3222, - [SMALL_STATE(116)] = 3233, - [SMALL_STATE(117)] = 3246, - [SMALL_STATE(118)] = 3263, - [SMALL_STATE(119)] = 3274, - [SMALL_STATE(120)] = 3285, - [SMALL_STATE(121)] = 3296, - [SMALL_STATE(122)] = 3313, - [SMALL_STATE(123)] = 3330, - [SMALL_STATE(124)] = 3341, - [SMALL_STATE(125)] = 3352, - [SMALL_STATE(126)] = 3369, - [SMALL_STATE(127)] = 3386, - [SMALL_STATE(128)] = 3397, - [SMALL_STATE(129)] = 3412, - [SMALL_STATE(130)] = 3429, - [SMALL_STATE(131)] = 3440, - [SMALL_STATE(132)] = 3457, - [SMALL_STATE(133)] = 3474, - [SMALL_STATE(134)] = 3491, - [SMALL_STATE(135)] = 3504, - [SMALL_STATE(136)] = 3521, - [SMALL_STATE(137)] = 3533, - [SMALL_STATE(138)] = 3543, - [SMALL_STATE(139)] = 3557, - [SMALL_STATE(140)] = 3571, - [SMALL_STATE(141)] = 3581, - [SMALL_STATE(142)] = 3591, - [SMALL_STATE(143)] = 3601, - [SMALL_STATE(144)] = 3611, - [SMALL_STATE(145)] = 3623, - [SMALL_STATE(146)] = 3637, - [SMALL_STATE(147)] = 3651, - [SMALL_STATE(148)] = 3661, - [SMALL_STATE(149)] = 3670, - [SMALL_STATE(150)] = 3679, - [SMALL_STATE(151)] = 3688, - [SMALL_STATE(152)] = 3699, - [SMALL_STATE(153)] = 3708, - [SMALL_STATE(154)] = 3717, - [SMALL_STATE(155)] = 3726, - [SMALL_STATE(156)] = 3735, - [SMALL_STATE(157)] = 3744, - [SMALL_STATE(158)] = 3752, - [SMALL_STATE(159)] = 3760, - [SMALL_STATE(160)] = 3768, - [SMALL_STATE(161)] = 3776, - [SMALL_STATE(162)] = 3784, + [SMALL_STATE(10)] = 0, + [SMALL_STATE(11)] = 94, + [SMALL_STATE(12)] = 160, + [SMALL_STATE(13)] = 203, + [SMALL_STATE(14)] = 246, + [SMALL_STATE(15)] = 289, + [SMALL_STATE(16)] = 327, + [SMALL_STATE(17)] = 385, + [SMALL_STATE(18)] = 433, + [SMALL_STATE(19)] = 485, + [SMALL_STATE(20)] = 547, + [SMALL_STATE(21)] = 607, + [SMALL_STATE(22)] = 663, + [SMALL_STATE(23)] = 711, + [SMALL_STATE(24)] = 748, + [SMALL_STATE(25)] = 784, + [SMALL_STATE(26)] = 820, + [SMALL_STATE(27)] = 856, + [SMALL_STATE(28)] = 892, + [SMALL_STATE(29)] = 928, + [SMALL_STATE(30)] = 964, + [SMALL_STATE(31)] = 1000, + [SMALL_STATE(32)] = 1063, + [SMALL_STATE(33)] = 1114, + [SMALL_STATE(34)] = 1151, + [SMALL_STATE(35)] = 1209, + [SMALL_STATE(36)] = 1271, + [SMALL_STATE(37)] = 1315, + [SMALL_STATE(38)] = 1359, + [SMALL_STATE(39)] = 1417, + [SMALL_STATE(40)] = 1454, + [SMALL_STATE(41)] = 1510, + [SMALL_STATE(42)] = 1564, + [SMALL_STATE(43)] = 1620, + [SMALL_STATE(44)] = 1674, + [SMALL_STATE(45)] = 1727, + [SMALL_STATE(46)] = 1780, + [SMALL_STATE(47)] = 1833, + [SMALL_STATE(48)] = 1886, + [SMALL_STATE(49)] = 1922, + [SMALL_STATE(50)] = 1955, + [SMALL_STATE(51)] = 1988, + [SMALL_STATE(52)] = 2019, + [SMALL_STATE(53)] = 2052, + [SMALL_STATE(54)] = 2085, + [SMALL_STATE(55)] = 2118, + [SMALL_STATE(56)] = 2151, + [SMALL_STATE(57)] = 2184, + [SMALL_STATE(58)] = 2217, + [SMALL_STATE(59)] = 2250, + [SMALL_STATE(60)] = 2283, + [SMALL_STATE(61)] = 2316, + [SMALL_STATE(62)] = 2349, + [SMALL_STATE(63)] = 2382, + [SMALL_STATE(64)] = 2415, + [SMALL_STATE(65)] = 2448, + [SMALL_STATE(66)] = 2481, + [SMALL_STATE(67)] = 2512, + [SMALL_STATE(68)] = 2541, + [SMALL_STATE(69)] = 2570, + [SMALL_STATE(70)] = 2612, + [SMALL_STATE(71)] = 2636, + [SMALL_STATE(72)] = 2678, + [SMALL_STATE(73)] = 2701, + [SMALL_STATE(74)] = 2737, + [SMALL_STATE(75)] = 2773, + [SMALL_STATE(76)] = 2801, + [SMALL_STATE(77)] = 2829, + [SMALL_STATE(78)] = 2850, + [SMALL_STATE(79)] = 2871, + [SMALL_STATE(80)] = 2892, + [SMALL_STATE(81)] = 2919, + [SMALL_STATE(82)] = 2946, + [SMALL_STATE(83)] = 2967, + [SMALL_STATE(84)] = 2982, + [SMALL_STATE(85)] = 2997, + [SMALL_STATE(86)] = 3012, + [SMALL_STATE(87)] = 3027, + [SMALL_STATE(88)] = 3047, + [SMALL_STATE(89)] = 3067, + [SMALL_STATE(90)] = 3087, + [SMALL_STATE(91)] = 3107, + [SMALL_STATE(92)] = 3127, + [SMALL_STATE(93)] = 3146, + [SMALL_STATE(94)] = 3169, + [SMALL_STATE(95)] = 3188, + [SMALL_STATE(96)] = 3207, + [SMALL_STATE(97)] = 3227, + [SMALL_STATE(98)] = 3247, + [SMALL_STATE(99)] = 3267, + [SMALL_STATE(100)] = 3283, + [SMALL_STATE(101)] = 3299, + [SMALL_STATE(102)] = 3319, + [SMALL_STATE(103)] = 3339, + [SMALL_STATE(104)] = 3359, + [SMALL_STATE(105)] = 3371, + [SMALL_STATE(106)] = 3387, + [SMALL_STATE(107)] = 3403, + [SMALL_STATE(108)] = 3423, + [SMALL_STATE(109)] = 3434, + [SMALL_STATE(110)] = 3445, + [SMALL_STATE(111)] = 3462, + [SMALL_STATE(112)] = 3473, + [SMALL_STATE(113)] = 3484, + [SMALL_STATE(114)] = 3501, + [SMALL_STATE(115)] = 3518, + [SMALL_STATE(116)] = 3529, + [SMALL_STATE(117)] = 3546, + [SMALL_STATE(118)] = 3557, + [SMALL_STATE(119)] = 3572, + [SMALL_STATE(120)] = 3589, + [SMALL_STATE(121)] = 3606, + [SMALL_STATE(122)] = 3617, + [SMALL_STATE(123)] = 3634, + [SMALL_STATE(124)] = 3651, + [SMALL_STATE(125)] = 3662, + [SMALL_STATE(126)] = 3673, + [SMALL_STATE(127)] = 3684, + [SMALL_STATE(128)] = 3701, + [SMALL_STATE(129)] = 3712, + [SMALL_STATE(130)] = 3723, + [SMALL_STATE(131)] = 3734, + [SMALL_STATE(132)] = 3749, + [SMALL_STATE(133)] = 3766, + [SMALL_STATE(134)] = 3783, + [SMALL_STATE(135)] = 3794, + [SMALL_STATE(136)] = 3805, + [SMALL_STATE(137)] = 3822, + [SMALL_STATE(138)] = 3833, + [SMALL_STATE(139)] = 3850, + [SMALL_STATE(140)] = 3865, + [SMALL_STATE(141)] = 3882, + [SMALL_STATE(142)] = 3899, + [SMALL_STATE(143)] = 3910, + [SMALL_STATE(144)] = 3927, + [SMALL_STATE(145)] = 3944, + [SMALL_STATE(146)] = 3955, + [SMALL_STATE(147)] = 3972, + [SMALL_STATE(148)] = 3983, + [SMALL_STATE(149)] = 4000, + [SMALL_STATE(150)] = 4017, + [SMALL_STATE(151)] = 4032, + [SMALL_STATE(152)] = 4049, + [SMALL_STATE(153)] = 4060, + [SMALL_STATE(154)] = 4077, + [SMALL_STATE(155)] = 4087, + [SMALL_STATE(156)] = 4099, + [SMALL_STATE(157)] = 4109, + [SMALL_STATE(158)] = 4121, + [SMALL_STATE(159)] = 4131, + [SMALL_STATE(160)] = 4145, + [SMALL_STATE(161)] = 4159, + [SMALL_STATE(162)] = 4173, + [SMALL_STATE(163)] = 4183, + [SMALL_STATE(164)] = 4197, + [SMALL_STATE(165)] = 4207, + [SMALL_STATE(166)] = 4219, + [SMALL_STATE(167)] = 4229, + [SMALL_STATE(168)] = 4238, + [SMALL_STATE(169)] = 4249, + [SMALL_STATE(170)] = 4258, + [SMALL_STATE(171)] = 4267, + [SMALL_STATE(172)] = 4276, + [SMALL_STATE(173)] = 4285, + [SMALL_STATE(174)] = 4294, + [SMALL_STATE(175)] = 4303, + [SMALL_STATE(176)] = 4312, + [SMALL_STATE(177)] = 4321, + [SMALL_STATE(178)] = 4330, + [SMALL_STATE(179)] = 4339, + [SMALL_STATE(180)] = 4350, + [SMALL_STATE(181)] = 4359, + [SMALL_STATE(182)] = 4368, + [SMALL_STATE(183)] = 4376, + [SMALL_STATE(184)] = 4384, + [SMALL_STATE(185)] = 4392, + [SMALL_STATE(186)] = 4400, + [SMALL_STATE(187)] = 4408, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -7115,225 +7723,248 @@ static const TSParseActionEntry ts_parse_actions[] = { [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 = true}}, SHIFT(160), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(157), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(86), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(134), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(184), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(89), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(106), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), - [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), [55] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 2), [57] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 2), - [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), - [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), - [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), - [65] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), SHIFT_REPEAT(158), - [68] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 1), - [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 1), + [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), + [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 1), + [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 1), + [65] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), + [67] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), + [69] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), SHIFT_REPEAT(183), [72] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), - [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 31), - [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 31), - [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [82] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57), - [84] = {.entry = {.count = 1, .reusable = false}}, SHIFT(159), - [86] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [88] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [90] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [92] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), - [94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 34), + [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 34), + [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [82] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49), + [84] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [86] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [88] = {.entry = {.count = 1, .reusable = false}}, SHIFT(50), + [90] = {.entry = {.count = 1, .reusable = false}}, SHIFT(185), + [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 19), - [102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 19), - [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 29), - [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 29), - [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 15), - [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 15), - [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), - [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 21), - [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 21), - [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 32), - [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 32), - [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 21), + [102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 21), + [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 32), + [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 32), + [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 32), + [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 32), + [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 35), + [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 35), + [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), + [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 17), + [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 17), + [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 23), + [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 23), [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 29), - [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 29), - [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 29), - [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 29), - [140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [142] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), - [144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), - [146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 32), + [138] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), + [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 32), + [142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), + [146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), [152] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(33), - [155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 20), - [161] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 20), - [163] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 9), - [165] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 9), - [167] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), - [169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [171] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [173] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 30), - [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), - [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), - [194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), - [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [214] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), - [216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), - [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 10), + [157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 10), + [159] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [165] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [167] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 22), + [169] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 22), + [171] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_type, 1, .production_id = 9), + [173] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__expression, 1), SHIFT(36), + [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [180] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_named_type, 1, .production_id = 9), REDUCE(sym__expression, 1), + [183] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), + [185] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 33), + [187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_generative_expression, 1), + [195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [203] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), + [205] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), + [207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [211] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_named_type, 1, .production_id = 9), REDUCE(sym__expression, 1), + [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [232] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), - [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), - [236] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [238] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(65), - [241] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [243] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [249] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 24), - [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 34), - [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 23), - [265] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 14), - [267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), - [269] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 35), - [271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 36), - [273] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), - [275] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(56), - [278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 38), - [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), - [282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 25), - [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), - [286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), - [288] = {.entry = {.count = 1, .reusable = false}}, SHIFT(116), - [290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), - [292] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(56), - [295] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), - [297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), - [299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), - [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), - [305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), - [307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), - [309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 8), - [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 17), - [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), - [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), - [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), - [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), - [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), - [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 18), - [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 37), - [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), - [343] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(56), - [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), - [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), - [352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), - [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 37), - [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), - [360] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(113), - [363] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), - [365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), - [367] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), - [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 33), - [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), - [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), - [382] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(121), - [385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 33), - [387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), - [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), - [397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), - [401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [403] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), - [405] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), - [407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [411] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 16), - [413] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 13), - [415] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 22), - [417] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 26), - [419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 28), - [421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), - [423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 12), - [429] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), - [431] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 11), - [433] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 39), - [435] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 27), - [437] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), - [439] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 15), - [441] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 40), - [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), - [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [453] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [238] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), + [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), + [242] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 11), + [244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 11), + [246] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [248] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(70), + [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [255] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [261] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [267] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87), + [269] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 27), + [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [273] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 16), + [275] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 26), + [277] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 37), + [279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 38), + [281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 28), + [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 39), + [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 42), + [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1), + [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), + [291] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(51), + [294] = {.entry = {.count = 1, .reusable = false}}, SHIFT(105), + [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), + [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), + [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), + [302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), + [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), + [310] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(51), + [313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), + [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), + [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), + [319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 8), + [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 19), + [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), + [331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), + [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), + [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), + [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), + [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 17), + [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), + [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), + [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 41), + [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), + [351] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(51), + [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), + [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type, 1), + [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), + [366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_named_type_repeat1, 2), + [368] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_named_type_repeat1, 2), SHIFT_REPEAT(51), + [371] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_type, 5, .production_id = 43), + [373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2), + [375] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2), SHIFT_REPEAT(51), + [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 41), + [380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), + [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), + [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 36), + [388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), + [396] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), + [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), + [401] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), + [403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [405] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), + [407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [409] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 20), + [411] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), + [413] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(146), + [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), + [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), + [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), + [422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 36), + [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), + [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), + [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [434] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(150), + [437] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), + [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [441] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_type, 4, .production_id = 40), + [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [445] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 18), + [447] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), + [449] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 15), + [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [453] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 14), + [455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [461] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), + [463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [465] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 29), + [467] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 31), + [469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), + [471] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 25), + [473] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), + [475] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 12), + [477] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 30), + [479] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4), + [481] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 44), + [483] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 13), + [485] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5, .production_id = 24), + [487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), + [489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 45), + [491] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3), + [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), + [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [503] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), }; #ifdef __cplusplus From b1403df77b7d60cb8f9527a8faf0f3fb1b16d1af Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Tue, 18 Jun 2024 18:32:08 +0200 Subject: [PATCH 29/49] Fixed template args should be items --- grammar.js | 35 +- src/grammar.json | 158 +- src/node-types.json | 73 +- src/parser.c | 3751 ++++++++++++++++++++++--------------------- 4 files changed, 2051 insertions(+), 1966 deletions(-) diff --git a/grammar.js b/grammar.js index c48c974..4dc1fae 100644 --- a/grammar.js +++ b/grammar.js @@ -1,12 +1,16 @@ +// Makes a list of "item" fields function sepSeq1(rule, sepChar) { - return seq(rule, repeat(seq(sepChar, rule))) + const itemRule = field("item", rule); + return seq(itemRule, repeat(seq(sepChar, itemRule))) } +// Makes a list of "item" fields function sepSeq(rule, sepChar) { - return optional(sepSeq1(rule, sepChar)) + return optional(sepSeq1(rule, sepChar)) } +// Makes a list of "item" fields function newlineSepSeq($, rule) { return seq( optional($._linebreak), @@ -70,7 +74,7 @@ module.exports = grammar({ template_declaration_arguments: $ => seq( '<', - sepSeq1(choice($.template_declaration_type, $.declaration), $._comma), + sepSeq(choice($.template_declaration_type, $.declaration), $._comma), '>' ), @@ -107,10 +111,7 @@ module.exports = grammar({ '=', field('assign_value', $._expression) ), - assign_left_side: $ => sepSeq1( - field('item', $.assign_to), - $._comma - ), + assign_left_side: $ => sepSeq1($.assign_to, $._comma), assign_to: $ => seq( optional(field('write_modifiers', $.write_modifiers)), field('expr_or_decl', choice( @@ -147,10 +148,7 @@ module.exports = grammar({ // Declarations - declaration_list: $ => sepSeq1( - field('item', $.declaration), - $._comma - ), + declaration_list: $ => sepSeq1($.declaration, $._comma), declaration: $ => seq( optional(field('io_port_modifiers', choice( @@ -179,11 +177,12 @@ module.exports = grammar({ ), named_type: $ => seq( field('name', $.global_identifier), - optional(field('template_params', seq( - '<', - sepSeq1(choice($.template_type, $.template_generative_expression), $._comma), - '>' - ))) + optional(field('template_params', $.template_params)) + ), + template_params: $ => seq( + '<', + sepSeq(choice($.template_type, $.template_generative_expression), $._comma), + '>' ), template_type: $ => $._type, template_generative_expression: $ => $._expression, @@ -246,7 +245,7 @@ module.exports = grammar({ parenthesis_expression_list: $ => seq( '(', - sepSeq(field('item', $._expression), $._comma), + sepSeq($._expression, $._comma), ')' ), @@ -273,7 +272,7 @@ module.exports = grammar({ global_identifier: $ => prec(PREC.namespace_path, seq( //optional('::'), - sepSeq1(field('item', $.identifier), '::') + sepSeq1($.identifier, '::') )), identifier: $ => /[\p{Alphabetic}_][\p{Alphabetic}_\p{Decimal_Number}]*/, diff --git a/src/grammar.json b/src/grammar.json index a67e149..66f0b14 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -221,31 +221,15 @@ "value": "<" }, { - "type": "SEQ", + "type": "CHOICE", "members": [ { - "type": "CHOICE", + "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "template_declaration_type" - }, - { - "type": "SYMBOL", - "name": "declaration" - } - ] - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_comma" - }, - { + "type": "FIELD", + "name": "item", + "content": { "type": "CHOICE", "members": [ { @@ -258,8 +242,40 @@ } ] } - ] - } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_comma" + }, + { + "type": "FIELD", + "name": "item", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "template_declaration_type" + }, + { + "type": "SYMBOL", + "name": "declaration" + } + ] + } + } + ] + } + } + ] + }, + { + "type": "BLANK" } ] }, @@ -844,66 +860,86 @@ "type": "FIELD", "name": "template_params", "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "<" - }, - { + "type": "SYMBOL", + "name": "template_params" + } + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "template_params": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "<" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "item", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "template_type" + }, + { + "type": "SYMBOL", + "name": "template_generative_expression" + } + ] + } + }, + { + "type": "REPEAT", + "content": { "type": "SEQ", "members": [ { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "template_type" - }, - { - "type": "SYMBOL", - "name": "template_generative_expression" - } - ] + "type": "SYMBOL", + "name": "_comma" }, { - "type": "REPEAT", + "type": "FIELD", + "name": "item", "content": { - "type": "SEQ", + "type": "CHOICE", "members": [ { "type": "SYMBOL", - "name": "_comma" + "name": "template_type" }, { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "template_type" - }, - { - "type": "SYMBOL", - "name": "template_generative_expression" - } - ] + "type": "SYMBOL", + "name": "template_generative_expression" } ] } } ] - }, - { - "type": "STRING", - "value": ">" } - ] - } + } + ] }, { "type": "BLANK" } ] + }, + { + "type": "STRING", + "value": ">" } ] }, diff --git a/src/node-types.json b/src/node-types.json index d31423c..e665e0b 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -970,31 +970,11 @@ ] }, "template_params": { - "multiple": true, + "multiple": false, "required": false, "types": [ { - "type": "\n", - "named": false - }, - { - "type": ",", - "named": false - }, - { - "type": "<", - "named": false - }, - { - "type": ">", - "named": false - }, - { - "type": "template_generative_expression", - "named": true - }, - { - "type": "template_type", + "type": "template_params", "named": true } ] @@ -1108,20 +1088,21 @@ { "type": "template_declaration_arguments", "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "declaration", - "named": true - }, - { - "type": "template_declaration_type", - "named": true - } - ] + "fields": { + "item": { + "multiple": true, + "required": false, + "types": [ + { + "type": "declaration", + "named": true + }, + { + "type": "template_declaration_type", + "named": true + } + ] + } } }, { @@ -1182,6 +1163,26 @@ ] } }, + { + "type": "template_params", + "named": true, + "fields": { + "item": { + "multiple": true, + "required": false, + "types": [ + { + "type": "template_generative_expression", + "named": true + }, + { + "type": "template_type", + "named": true + } + ] + } + } + }, { "type": "template_type", "named": true, diff --git a/src/parser.c b/src/parser.c index 2529fc7..9ff3b13 100644 --- a/src/parser.c +++ b/src/parser.c @@ -5,15 +5,15 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 188 +#define STATE_COUNT 191 #define LARGE_STATE_COUNT 10 -#define SYMBOL_COUNT 90 +#define SYMBOL_COUNT 91 #define ALIAS_COUNT 0 #define TOKEN_COUNT 47 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 29 #define MAX_ALIAS_SEQUENCE_LENGTH 7 -#define PRODUCTION_ID_COUNT 46 +#define PRODUCTION_ID_COUNT 45 enum ts_symbol_identifiers { sym_identifier = 1, @@ -81,30 +81,31 @@ enum ts_symbol_identifiers { sym__type = 63, sym_array_type = 64, sym_named_type = 65, - sym_template_type = 66, - sym_template_generative_expression = 67, - sym_latency_specifier = 68, - sym__expression = 69, - sym_unary_op = 70, - sym_binary_op = 71, - sym_array_op = 72, - sym_func_call = 73, - sym_field_access = 74, - sym_parenthesis_expression_list = 75, - sym_parenthesis_expression = 76, - sym_array_bracket_expression = 77, - sym__comma = 78, - aux_sym__linebreak = 79, - sym_global_identifier = 80, - aux_sym_source_file_repeat1 = 81, - aux_sym_template_declaration_arguments_repeat1 = 82, - aux_sym_block_repeat1 = 83, - aux_sym_assign_left_side_repeat1 = 84, - aux_sym_write_modifiers_repeat1 = 85, - aux_sym_declaration_list_repeat1 = 86, - aux_sym_named_type_repeat1 = 87, - aux_sym_parenthesis_expression_list_repeat1 = 88, - aux_sym_global_identifier_repeat1 = 89, + sym_template_params = 66, + sym_template_type = 67, + sym_template_generative_expression = 68, + sym_latency_specifier = 69, + sym__expression = 70, + sym_unary_op = 71, + sym_binary_op = 72, + sym_array_op = 73, + sym_func_call = 74, + sym_field_access = 75, + sym_parenthesis_expression_list = 76, + sym_parenthesis_expression = 77, + sym_array_bracket_expression = 78, + sym__comma = 79, + aux_sym__linebreak = 80, + sym_global_identifier = 81, + aux_sym_source_file_repeat1 = 82, + aux_sym_template_declaration_arguments_repeat1 = 83, + aux_sym_block_repeat1 = 84, + aux_sym_assign_left_side_repeat1 = 85, + aux_sym_write_modifiers_repeat1 = 86, + aux_sym_declaration_list_repeat1 = 87, + aux_sym_template_params_repeat1 = 88, + aux_sym_parenthesis_expression_list_repeat1 = 89, + aux_sym_global_identifier_repeat1 = 90, }; static const char * const ts_symbol_names[] = { @@ -174,6 +175,7 @@ static const char * const ts_symbol_names[] = { [sym__type] = "_type", [sym_array_type] = "array_type", [sym_named_type] = "named_type", + [sym_template_params] = "template_params", [sym_template_type] = "template_type", [sym_template_generative_expression] = "template_generative_expression", [sym_latency_specifier] = "latency_specifier", @@ -195,7 +197,7 @@ static const char * const ts_symbol_names[] = { [aux_sym_assign_left_side_repeat1] = "assign_left_side_repeat1", [aux_sym_write_modifiers_repeat1] = "write_modifiers_repeat1", [aux_sym_declaration_list_repeat1] = "declaration_list_repeat1", - [aux_sym_named_type_repeat1] = "named_type_repeat1", + [aux_sym_template_params_repeat1] = "template_params_repeat1", [aux_sym_parenthesis_expression_list_repeat1] = "parenthesis_expression_list_repeat1", [aux_sym_global_identifier_repeat1] = "global_identifier_repeat1", }; @@ -267,6 +269,7 @@ static const TSSymbol ts_symbol_map[] = { [sym__type] = sym__type, [sym_array_type] = sym_array_type, [sym_named_type] = sym_named_type, + [sym_template_params] = sym_template_params, [sym_template_type] = sym_template_type, [sym_template_generative_expression] = sym_template_generative_expression, [sym_latency_specifier] = sym_latency_specifier, @@ -288,7 +291,7 @@ static const TSSymbol ts_symbol_map[] = { [aux_sym_assign_left_side_repeat1] = aux_sym_assign_left_side_repeat1, [aux_sym_write_modifiers_repeat1] = aux_sym_write_modifiers_repeat1, [aux_sym_declaration_list_repeat1] = aux_sym_declaration_list_repeat1, - [aux_sym_named_type_repeat1] = aux_sym_named_type_repeat1, + [aux_sym_template_params_repeat1] = aux_sym_template_params_repeat1, [aux_sym_parenthesis_expression_list_repeat1] = aux_sym_parenthesis_expression_list_repeat1, [aux_sym_global_identifier_repeat1] = aux_sym_global_identifier_repeat1, }; @@ -558,6 +561,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_template_params] = { + .visible = true, + .named = true, + }, [sym_template_type] = { .visible = true, .named = true, @@ -642,7 +649,7 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, - [aux_sym_named_type_repeat1] = { + [aux_sym_template_params_repeat1] = { .visible = false, .named = false, }, @@ -741,32 +748,31 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [17] = {.index = 26, .length = 2}, [18] = {.index = 28, .length = 1}, [19] = {.index = 29, .length = 1}, - [20] = {.index = 30, .length = 1}, - [21] = {.index = 31, .length = 2}, + [20] = {.index = 30, .length = 2}, + [21] = {.index = 32, .length = 1}, [22] = {.index = 33, .length = 2}, [23] = {.index = 35, .length = 2}, - [24] = {.index = 37, .length = 4}, - [25] = {.index = 41, .length = 1}, - [26] = {.index = 42, .length = 3}, - [27] = {.index = 45, .length = 3}, - [28] = {.index = 48, .length = 3}, - [29] = {.index = 51, .length = 2}, + [24] = {.index = 37, .length = 2}, + [25] = {.index = 39, .length = 4}, + [26] = {.index = 43, .length = 1}, + [27] = {.index = 44, .length = 3}, + [28] = {.index = 47, .length = 3}, + [29] = {.index = 50, .length = 3}, [30] = {.index = 53, .length = 2}, [31] = {.index = 55, .length = 2}, - [32] = {.index = 57, .length = 1}, - [33] = {.index = 58, .length = 2}, - [34] = {.index = 60, .length = 3}, - [35] = {.index = 63, .length = 2}, - [36] = {.index = 65, .length = 1}, - [37] = {.index = 66, .length = 4}, - [38] = {.index = 70, .length = 4}, - [39] = {.index = 74, .length = 4}, - [40] = {.index = 78, .length = 4}, - [41] = {.index = 82, .length = 2}, - [42] = {.index = 84, .length = 5}, - [43] = {.index = 89, .length = 5}, - [44] = {.index = 94, .length = 3}, - [45] = {.index = 97, .length = 4}, + [32] = {.index = 57, .length = 2}, + [33] = {.index = 59, .length = 1}, + [34] = {.index = 60, .length = 2}, + [35] = {.index = 62, .length = 3}, + [36] = {.index = 65, .length = 2}, + [37] = {.index = 67, .length = 1}, + [38] = {.index = 68, .length = 4}, + [39] = {.index = 72, .length = 4}, + [40] = {.index = 76, .length = 4}, + [41] = {.index = 80, .length = 2}, + [42] = {.index = 82, .length = 5}, + [43] = {.index = 87, .length = 3}, + [44] = {.index = 90, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -820,98 +826,90 @@ static const TSFieldMapEntry ts_field_map_entries[] = { [29] = {field_inputs, 2}, [30] = + {field_name, 0}, + {field_template_params, 1}, + [32] = {field_name, 1}, - [31] = + [33] = {field_operator, 0}, {field_right, 1}, - [33] = + [35] = {field_expr_or_decl, 1}, {field_write_modifiers, 0}, - [35] = + [37] = {field_arguments, 1}, {field_name, 0}, - [37] = + [39] = {field_block, 4}, {field_interface_ports, 3}, {field_name, 1}, {field_template_declaration_arguments, 2}, - [41] = + [43] = {field_outputs, 2}, - [42] = + [44] = {field_io_port_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [45] = + [47] = {field_declaration_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [48] = + [50] = {field_latency_specifier, 2}, {field_name, 1}, {field_type, 0}, - [51] = + [53] = {field_inputs, 2}, {field_outputs, 3, .inherited = true}, - [53] = + [55] = {field_interface_ports, 2}, {field_name, 1}, - [55] = + [57] = {field_condition, 1}, {field_then_block, 2}, - [57] = + [59] = {field_content, 1}, - [58] = + [60] = {field_assign_left, 0}, {field_assign_value, 2}, - [60] = + [62] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [63] = + [65] = {field_left, 0}, {field_name, 2}, - [65] = + [67] = {field_item, 2}, - [66] = + [68] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_name, 3}, {field_type, 2}, - [70] = + [72] = {field_io_port_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [74] = + [76] = {field_declaration_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [78] = - {field_name, 0}, - {field_template_params, 1}, - {field_template_params, 2}, - {field_template_params, 3}, - [82] = + [80] = {field_item, 2}, {field_item, 3, .inherited = true}, - [84] = + [82] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_latency_specifier, 4}, {field_name, 3}, {field_type, 2}, - [89] = - {field_name, 0}, - {field_template_params, 1}, - {field_template_params, 2}, - {field_template_params, 3}, - {field_template_params, 4}, - [94] = + [87] = {field_condition, 1}, {field_else_block, 4}, {field_then_block, 2}, - [97] = + [90] = {field_block, 6}, {field_for_decl, 1}, {field_from, 3}, @@ -975,12 +973,12 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [45] = 45, [46] = 46, [47] = 47, - [48] = 48, + [48] = 38, [49] = 49, [50] = 50, [51] = 51, [52] = 52, - [53] = 39, + [53] = 53, [54] = 54, [55] = 55, [56] = 56, @@ -1069,7 +1067,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [139] = 139, [140] = 140, [141] = 141, - [142] = 142, + [142] = 33, [143] = 143, [144] = 144, [145] = 145, @@ -1077,7 +1075,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [147] = 147, [148] = 148, [149] = 149, - [150] = 33, + [150] = 150, [151] = 151, [152] = 152, [153] = 153, @@ -1115,6 +1113,9 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [185] = 185, [186] = 186, [187] = 187, + [188] = 188, + [189] = 189, + [190] = 190, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -3483,12 +3484,12 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [28] = {.lex_state = 2}, [29] = {.lex_state = 2}, [30] = {.lex_state = 2}, - [31] = {.lex_state = 2}, - [32] = {.lex_state = 1}, + [31] = {.lex_state = 1}, + [32] = {.lex_state = 2}, [33] = {.lex_state = 1}, - [34] = {.lex_state = 2}, + [34] = {.lex_state = 1}, [35] = {.lex_state = 2}, - [36] = {.lex_state = 1}, + [36] = {.lex_state = 2}, [37] = {.lex_state = 1}, [38] = {.lex_state = 2}, [39] = {.lex_state = 2}, @@ -3500,12 +3501,12 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [45] = {.lex_state = 2}, [46] = {.lex_state = 2}, [47] = {.lex_state = 2}, - [48] = {.lex_state = 1}, + [48] = {.lex_state = 2}, [49] = {.lex_state = 1}, [50] = {.lex_state = 1}, [51] = {.lex_state = 1}, [52] = {.lex_state = 1}, - [53] = {.lex_state = 2}, + [53] = {.lex_state = 1}, [54] = {.lex_state = 1}, [55] = {.lex_state = 1}, [56] = {.lex_state = 1}, @@ -3539,13 +3540,13 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [84] = {.lex_state = 0}, [85] = {.lex_state = 0}, [86] = {.lex_state = 0}, - [87] = {.lex_state = 1}, + [87] = {.lex_state = 0}, [88] = {.lex_state = 0}, [89] = {.lex_state = 0}, [90] = {.lex_state = 0}, - [91] = {.lex_state = 0}, - [92] = {.lex_state = 0}, - [93] = {.lex_state = 3}, + [91] = {.lex_state = 1}, + [92] = {.lex_state = 3}, + [93] = {.lex_state = 0}, [94] = {.lex_state = 0}, [95] = {.lex_state = 0}, [96] = {.lex_state = 0}, @@ -3591,7 +3592,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [136] = {.lex_state = 0}, [137] = {.lex_state = 0}, [138] = {.lex_state = 0}, - [139] = {.lex_state = 3}, + [139] = {.lex_state = 0}, [140] = {.lex_state = 0}, [141] = {.lex_state = 0}, [142] = {.lex_state = 0}, @@ -3608,7 +3609,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [153] = {.lex_state = 0}, [154] = {.lex_state = 0}, [155] = {.lex_state = 0}, - [156] = {.lex_state = 0}, + [156] = {.lex_state = 3}, [157] = {.lex_state = 0}, [158] = {.lex_state = 0}, [159] = {.lex_state = 0}, @@ -3621,25 +3622,28 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [166] = {.lex_state = 0}, [167] = {.lex_state = 0}, [168] = {.lex_state = 0}, - [169] = {.lex_state = 0}, + [169] = {.lex_state = 3}, [170] = {.lex_state = 0}, [171] = {.lex_state = 0}, [172] = {.lex_state = 0}, - [173] = {.lex_state = 3}, + [173] = {.lex_state = 0}, [174] = {.lex_state = 0}, - [175] = {.lex_state = 0}, + [175] = {.lex_state = 3}, [176] = {.lex_state = 0}, [177] = {.lex_state = 0}, - [178] = {.lex_state = 0}, + [178] = {.lex_state = 3}, [179] = {.lex_state = 0}, [180] = {.lex_state = 0}, - [181] = {.lex_state = 3}, + [181] = {.lex_state = 0}, [182] = {.lex_state = 0}, [183] = {.lex_state = 0}, [184] = {.lex_state = 0}, [185] = {.lex_state = 0}, [186] = {.lex_state = 0}, [187] = {.lex_state = 0}, + [188] = {.lex_state = 0}, + [189] = {.lex_state = 0}, + [190] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -3693,9 +3697,9 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(187), - [sym_module] = STATE(116), - [aux_sym__linebreak] = STATE(98), + [sym_source_file] = STATE(190), + [sym_module] = STATE(110), + [aux_sym__linebreak] = STATE(105), [ts_builtin_sym_end] = ACTIONS(5), [anon_sym_module] = ACTIONS(7), [anon_sym_LF] = ACTIONS(9), @@ -3703,28 +3707,28 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [2] = { - [sym_block] = STATE(167), - [sym_interface_statement] = STATE(167), - [sym_decl_assign_statement] = STATE(167), - [sym_assign_left_side] = STATE(155), - [sym_assign_to] = STATE(94), - [sym_write_modifiers] = STATE(32), - [sym_if_statement] = STATE(167), - [sym_for_statement] = STATE(167), - [sym_declaration] = STATE(124), - [sym__type] = STATE(163), - [sym_array_type] = STATE(163), - [sym_named_type] = STATE(163), - [sym__expression] = STATE(34), - [sym_unary_op] = STATE(34), - [sym_binary_op] = STATE(34), - [sym_array_op] = STATE(34), - [sym_func_call] = STATE(34), - [sym_field_access] = STATE(34), - [sym_parenthesis_expression] = STATE(34), + [sym_block] = STATE(172), + [sym_interface_statement] = STATE(172), + [sym_decl_assign_statement] = STATE(172), + [sym_assign_left_side] = STATE(168), + [sym_assign_to] = STATE(95), + [sym_write_modifiers] = STATE(31), + [sym_if_statement] = STATE(172), + [sym_for_statement] = STATE(172), + [sym_declaration] = STATE(111), + [sym__type] = STATE(165), + [sym_array_type] = STATE(165), + [sym_named_type] = STATE(165), + [sym__expression] = STATE(36), + [sym_unary_op] = STATE(36), + [sym_binary_op] = STATE(36), + [sym_array_op] = STATE(36), + [sym_func_call] = STATE(36), + [sym_field_access] = STATE(36), + [sym_parenthesis_expression] = STATE(36), [aux_sym__linebreak] = STATE(33), - [sym_global_identifier] = STATE(39), - [aux_sym_write_modifiers_repeat1] = STATE(67), + [sym_global_identifier] = STATE(38), + [aux_sym_write_modifiers_repeat1] = STATE(68), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), [anon_sym_RBRACE] = ACTIONS(15), @@ -3751,28 +3755,28 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [3] = { - [sym_block] = STATE(167), - [sym_interface_statement] = STATE(167), - [sym_decl_assign_statement] = STATE(167), - [sym_assign_left_side] = STATE(155), - [sym_assign_to] = STATE(94), - [sym_write_modifiers] = STATE(32), - [sym_if_statement] = STATE(167), - [sym_for_statement] = STATE(167), - [sym_declaration] = STATE(124), - [sym__type] = STATE(163), - [sym_array_type] = STATE(163), - [sym_named_type] = STATE(163), - [sym__expression] = STATE(34), - [sym_unary_op] = STATE(34), - [sym_binary_op] = STATE(34), - [sym_array_op] = STATE(34), - [sym_func_call] = STATE(34), - [sym_field_access] = STATE(34), - [sym_parenthesis_expression] = STATE(34), + [sym_block] = STATE(113), + [sym_interface_statement] = STATE(113), + [sym_decl_assign_statement] = STATE(113), + [sym_assign_left_side] = STATE(104), + [sym_assign_to] = STATE(95), + [sym_write_modifiers] = STATE(31), + [sym_if_statement] = STATE(113), + [sym_for_statement] = STATE(113), + [sym_declaration] = STATE(111), + [sym__type] = STATE(165), + [sym_array_type] = STATE(165), + [sym_named_type] = STATE(165), + [sym__expression] = STATE(36), + [sym_unary_op] = STATE(36), + [sym_binary_op] = STATE(36), + [sym_array_op] = STATE(36), + [sym_func_call] = STATE(36), + [sym_field_access] = STATE(36), + [sym_parenthesis_expression] = STATE(36), [aux_sym__linebreak] = STATE(33), - [sym_global_identifier] = STATE(39), - [aux_sym_write_modifiers_repeat1] = STATE(67), + [sym_global_identifier] = STATE(38), + [aux_sym_write_modifiers_repeat1] = STATE(68), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), [anon_sym_RBRACE] = ACTIONS(39), @@ -3799,28 +3803,28 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [4] = { - [sym_block] = STATE(167), - [sym_interface_statement] = STATE(167), - [sym_decl_assign_statement] = STATE(167), - [sym_assign_left_side] = STATE(155), - [sym_assign_to] = STATE(94), - [sym_write_modifiers] = STATE(32), - [sym_if_statement] = STATE(167), - [sym_for_statement] = STATE(167), - [sym_declaration] = STATE(124), - [sym__type] = STATE(163), - [sym_array_type] = STATE(163), - [sym_named_type] = STATE(163), - [sym__expression] = STATE(34), - [sym_unary_op] = STATE(34), - [sym_binary_op] = STATE(34), - [sym_array_op] = STATE(34), - [sym_func_call] = STATE(34), - [sym_field_access] = STATE(34), - [sym_parenthesis_expression] = STATE(34), + [sym_block] = STATE(172), + [sym_interface_statement] = STATE(172), + [sym_decl_assign_statement] = STATE(172), + [sym_assign_left_side] = STATE(168), + [sym_assign_to] = STATE(95), + [sym_write_modifiers] = STATE(31), + [sym_if_statement] = STATE(172), + [sym_for_statement] = STATE(172), + [sym_declaration] = STATE(111), + [sym__type] = STATE(165), + [sym_array_type] = STATE(165), + [sym_named_type] = STATE(165), + [sym__expression] = STATE(36), + [sym_unary_op] = STATE(36), + [sym_binary_op] = STATE(36), + [sym_array_op] = STATE(36), + [sym_func_call] = STATE(36), + [sym_field_access] = STATE(36), + [sym_parenthesis_expression] = STATE(36), [aux_sym__linebreak] = STATE(33), - [sym_global_identifier] = STATE(39), - [aux_sym_write_modifiers_repeat1] = STATE(67), + [sym_global_identifier] = STATE(38), + [aux_sym_write_modifiers_repeat1] = STATE(68), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), [anon_sym_RBRACE] = ACTIONS(41), @@ -3847,28 +3851,28 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [5] = { - [sym_block] = STATE(167), - [sym_interface_statement] = STATE(167), - [sym_decl_assign_statement] = STATE(167), - [sym_assign_left_side] = STATE(155), - [sym_assign_to] = STATE(94), - [sym_write_modifiers] = STATE(32), - [sym_if_statement] = STATE(167), - [sym_for_statement] = STATE(167), - [sym_declaration] = STATE(124), - [sym__type] = STATE(163), - [sym_array_type] = STATE(163), - [sym_named_type] = STATE(163), - [sym__expression] = STATE(34), - [sym_unary_op] = STATE(34), - [sym_binary_op] = STATE(34), - [sym_array_op] = STATE(34), - [sym_func_call] = STATE(34), - [sym_field_access] = STATE(34), - [sym_parenthesis_expression] = STATE(34), + [sym_block] = STATE(172), + [sym_interface_statement] = STATE(172), + [sym_decl_assign_statement] = STATE(172), + [sym_assign_left_side] = STATE(168), + [sym_assign_to] = STATE(95), + [sym_write_modifiers] = STATE(31), + [sym_if_statement] = STATE(172), + [sym_for_statement] = STATE(172), + [sym_declaration] = STATE(111), + [sym__type] = STATE(165), + [sym_array_type] = STATE(165), + [sym_named_type] = STATE(165), + [sym__expression] = STATE(36), + [sym_unary_op] = STATE(36), + [sym_binary_op] = STATE(36), + [sym_array_op] = STATE(36), + [sym_func_call] = STATE(36), + [sym_field_access] = STATE(36), + [sym_parenthesis_expression] = STATE(36), [aux_sym__linebreak] = STATE(33), - [sym_global_identifier] = STATE(39), - [aux_sym_write_modifiers_repeat1] = STATE(67), + [sym_global_identifier] = STATE(38), + [aux_sym_write_modifiers_repeat1] = STATE(68), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), [anon_sym_RBRACE] = ACTIONS(43), @@ -3895,28 +3899,28 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [6] = { - [sym_block] = STATE(167), - [sym_interface_statement] = STATE(167), - [sym_decl_assign_statement] = STATE(167), - [sym_assign_left_side] = STATE(155), - [sym_assign_to] = STATE(94), - [sym_write_modifiers] = STATE(32), - [sym_if_statement] = STATE(167), - [sym_for_statement] = STATE(167), - [sym_declaration] = STATE(124), - [sym__type] = STATE(163), - [sym_array_type] = STATE(163), - [sym_named_type] = STATE(163), - [sym__expression] = STATE(34), - [sym_unary_op] = STATE(34), - [sym_binary_op] = STATE(34), - [sym_array_op] = STATE(34), - [sym_func_call] = STATE(34), - [sym_field_access] = STATE(34), - [sym_parenthesis_expression] = STATE(34), + [sym_block] = STATE(172), + [sym_interface_statement] = STATE(172), + [sym_decl_assign_statement] = STATE(172), + [sym_assign_left_side] = STATE(168), + [sym_assign_to] = STATE(95), + [sym_write_modifiers] = STATE(31), + [sym_if_statement] = STATE(172), + [sym_for_statement] = STATE(172), + [sym_declaration] = STATE(111), + [sym__type] = STATE(165), + [sym_array_type] = STATE(165), + [sym_named_type] = STATE(165), + [sym__expression] = STATE(36), + [sym_unary_op] = STATE(36), + [sym_binary_op] = STATE(36), + [sym_array_op] = STATE(36), + [sym_func_call] = STATE(36), + [sym_field_access] = STATE(36), + [sym_parenthesis_expression] = STATE(36), [aux_sym__linebreak] = STATE(33), - [sym_global_identifier] = STATE(39), - [aux_sym_write_modifiers_repeat1] = STATE(67), + [sym_global_identifier] = STATE(38), + [aux_sym_write_modifiers_repeat1] = STATE(68), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), [anon_sym_RBRACE] = ACTIONS(45), @@ -3943,28 +3947,28 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [7] = { - [sym_block] = STATE(114), - [sym_interface_statement] = STATE(114), - [sym_decl_assign_statement] = STATE(114), - [sym_assign_left_side] = STATE(102), - [sym_assign_to] = STATE(94), - [sym_write_modifiers] = STATE(32), - [sym_if_statement] = STATE(114), - [sym_for_statement] = STATE(114), - [sym_declaration] = STATE(124), - [sym__type] = STATE(163), - [sym_array_type] = STATE(163), - [sym_named_type] = STATE(163), - [sym__expression] = STATE(34), - [sym_unary_op] = STATE(34), - [sym_binary_op] = STATE(34), - [sym_array_op] = STATE(34), - [sym_func_call] = STATE(34), - [sym_field_access] = STATE(34), - [sym_parenthesis_expression] = STATE(34), + [sym_block] = STATE(172), + [sym_interface_statement] = STATE(172), + [sym_decl_assign_statement] = STATE(172), + [sym_assign_left_side] = STATE(168), + [sym_assign_to] = STATE(95), + [sym_write_modifiers] = STATE(31), + [sym_if_statement] = STATE(172), + [sym_for_statement] = STATE(172), + [sym_declaration] = STATE(111), + [sym__type] = STATE(165), + [sym_array_type] = STATE(165), + [sym_named_type] = STATE(165), + [sym__expression] = STATE(36), + [sym_unary_op] = STATE(36), + [sym_binary_op] = STATE(36), + [sym_array_op] = STATE(36), + [sym_func_call] = STATE(36), + [sym_field_access] = STATE(36), + [sym_parenthesis_expression] = STATE(36), [aux_sym__linebreak] = STATE(33), - [sym_global_identifier] = STATE(39), - [aux_sym_write_modifiers_repeat1] = STATE(67), + [sym_global_identifier] = STATE(38), + [aux_sym_write_modifiers_repeat1] = STATE(68), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), [anon_sym_RBRACE] = ACTIONS(47), @@ -3991,28 +3995,28 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [8] = { - [sym_block] = STATE(122), - [sym_interface_statement] = STATE(122), - [sym_decl_assign_statement] = STATE(122), - [sym_assign_left_side] = STATE(97), - [sym_assign_to] = STATE(94), - [sym_write_modifiers] = STATE(32), - [sym_if_statement] = STATE(122), - [sym_for_statement] = STATE(122), - [sym_declaration] = STATE(124), - [sym__type] = STATE(163), - [sym_array_type] = STATE(163), - [sym_named_type] = STATE(163), - [sym__expression] = STATE(34), - [sym_unary_op] = STATE(34), - [sym_binary_op] = STATE(34), - [sym_array_op] = STATE(34), - [sym_func_call] = STATE(34), - [sym_field_access] = STATE(34), - [sym_parenthesis_expression] = STATE(34), - [aux_sym__linebreak] = STATE(7), - [sym_global_identifier] = STATE(39), - [aux_sym_write_modifiers_repeat1] = STATE(67), + [sym_block] = STATE(172), + [sym_interface_statement] = STATE(172), + [sym_decl_assign_statement] = STATE(172), + [sym_assign_left_side] = STATE(168), + [sym_assign_to] = STATE(95), + [sym_write_modifiers] = STATE(31), + [sym_if_statement] = STATE(172), + [sym_for_statement] = STATE(172), + [sym_declaration] = STATE(111), + [sym__type] = STATE(165), + [sym_array_type] = STATE(165), + [sym_named_type] = STATE(165), + [sym__expression] = STATE(36), + [sym_unary_op] = STATE(36), + [sym_binary_op] = STATE(36), + [sym_array_op] = STATE(36), + [sym_func_call] = STATE(36), + [sym_field_access] = STATE(36), + [sym_parenthesis_expression] = STATE(36), + [aux_sym__linebreak] = STATE(33), + [sym_global_identifier] = STATE(38), + [aux_sym_write_modifiers_repeat1] = STATE(68), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), [anon_sym_RBRACE] = ACTIONS(49), @@ -4033,37 +4037,37 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_AMP] = ACTIONS(31), [anon_sym_CARET] = ACTIONS(31), [anon_sym_LPAREN] = ACTIONS(33), - [anon_sym_LF] = ACTIONS(51), + [anon_sym_LF] = ACTIONS(35), [sym_number] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [9] = { - [sym_block] = STATE(167), - [sym_interface_statement] = STATE(167), - [sym_decl_assign_statement] = STATE(167), - [sym_assign_left_side] = STATE(155), - [sym_assign_to] = STATE(94), - [sym_write_modifiers] = STATE(32), - [sym_if_statement] = STATE(167), - [sym_for_statement] = STATE(167), - [sym_declaration] = STATE(124), - [sym__type] = STATE(163), - [sym_array_type] = STATE(163), - [sym_named_type] = STATE(163), - [sym__expression] = STATE(34), - [sym_unary_op] = STATE(34), - [sym_binary_op] = STATE(34), - [sym_array_op] = STATE(34), - [sym_func_call] = STATE(34), - [sym_field_access] = STATE(34), - [sym_parenthesis_expression] = STATE(34), - [aux_sym__linebreak] = STATE(33), - [sym_global_identifier] = STATE(39), - [aux_sym_write_modifiers_repeat1] = STATE(67), + [sym_block] = STATE(129), + [sym_interface_statement] = STATE(129), + [sym_decl_assign_statement] = STATE(129), + [sym_assign_left_side] = STATE(103), + [sym_assign_to] = STATE(95), + [sym_write_modifiers] = STATE(31), + [sym_if_statement] = STATE(129), + [sym_for_statement] = STATE(129), + [sym_declaration] = STATE(111), + [sym__type] = STATE(165), + [sym_array_type] = STATE(165), + [sym_named_type] = STATE(165), + [sym__expression] = STATE(36), + [sym_unary_op] = STATE(36), + [sym_binary_op] = STATE(36), + [sym_array_op] = STATE(36), + [sym_func_call] = STATE(36), + [sym_field_access] = STATE(36), + [sym_parenthesis_expression] = STATE(36), + [aux_sym__linebreak] = STATE(3), + [sym_global_identifier] = STATE(38), + [aux_sym_write_modifiers_repeat1] = STATE(68), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(53), + [anon_sym_RBRACE] = ACTIONS(51), [anon_sym_interface] = ACTIONS(17), [anon_sym_reg] = ACTIONS(19), [anon_sym_initial] = ACTIONS(21), @@ -4081,7 +4085,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_AMP] = ACTIONS(31), [anon_sym_CARET] = ACTIONS(31), [anon_sym_LPAREN] = ACTIONS(33), - [anon_sym_LF] = ACTIONS(35), + [anon_sym_LF] = ACTIONS(53), [sym_number] = ACTIONS(37), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), @@ -4110,19 +4114,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(37), 1, sym_number, - STATE(32), 1, + STATE(31), 1, sym_write_modifiers, STATE(33), 1, aux_sym__linebreak, - STATE(39), 1, + STATE(38), 1, sym_global_identifier, - STATE(67), 1, + STATE(68), 1, aux_sym_write_modifiers_repeat1, - STATE(94), 1, + STATE(95), 1, sym_assign_to, - STATE(124), 1, + STATE(111), 1, sym_declaration, - STATE(155), 1, + STATE(168), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4133,11 +4137,11 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(163), 3, + STATE(165), 3, sym__type, sym_array_type, sym_named_type, - STATE(167), 5, + STATE(172), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -4151,7 +4155,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(34), 7, + STATE(36), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4170,15 +4174,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(37), 1, sym_number, - STATE(32), 1, + STATE(31), 1, sym_write_modifiers, - STATE(39), 1, + STATE(38), 1, sym_global_identifier, - STATE(67), 1, + STATE(68), 1, aux_sym_write_modifiers_repeat1, - STATE(124), 1, + STATE(111), 1, sym_declaration, - STATE(137), 1, + STATE(140), 1, sym_assign_to, ACTIONS(3), 2, sym_single_line_comment, @@ -4189,7 +4193,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(163), 3, + STATE(165), 3, sym__type, sym_array_type, sym_named_type, @@ -4201,7 +4205,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(34), 7, + STATE(36), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4212,7 +4216,7 @@ static const uint16_t ts_small_parse_table[] = { [160] = 5, ACTIONS(59), 1, anon_sym_COLON_COLON, - STATE(14), 1, + STATE(12), 1, aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, @@ -4248,14 +4252,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_LF, [203] = 5, - ACTIONS(59), 1, + ACTIONS(66), 1, anon_sym_COLON_COLON, STATE(12), 1, aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(61), 8, + ACTIONS(62), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4264,7 +4268,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(63), 20, + ACTIONS(64), 20, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4286,14 +4290,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_LF, [246] = 5, - ACTIONS(69), 1, + ACTIONS(66), 1, anon_sym_COLON_COLON, - STATE(14), 1, + STATE(13), 1, aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(65), 8, + ACTIONS(68), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4302,7 +4306,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(67), 20, + ACTIONS(70), 20, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4358,43 +4362,40 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_LF, anon_sym_COLON_COLON, - [327] = 13, - ACTIONS(80), 1, - anon_sym_PLUS, + [327] = 10, ACTIONS(82), 1, - anon_sym_DASH, - ACTIONS(86), 1, - anon_sym_CARET, - ACTIONS(88), 1, anon_sym_SLASH, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_DOT, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - STATE(27), 1, - sym_array_bracket_expression, - STATE(28), 1, + STATE(24), 1, sym_parenthesis_expression_list, + STATE(28), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(84), 2, + ACTIONS(80), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(78), 3, + ACTIONS(78), 4, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(76), 15, + anon_sym_DASH, + ACTIONS(76), 17, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, + anon_sym_PLUS, anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -4403,27 +4404,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [385] = 8, - ACTIONS(90), 1, + [379] = 8, + ACTIONS(84), 1, anon_sym_DOT, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - STATE(27), 1, - sym_array_bracket_expression, - STATE(28), 1, + STATE(24), 1, sym_parenthesis_expression_list, + STATE(28), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 5, + ACTIONS(92), 5, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, - ACTIONS(76), 19, + ACTIONS(90), 19, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4443,40 +4444,45 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [433] = 10, - ACTIONS(88), 1, + [427] = 15, + ACTIONS(82), 1, anon_sym_SLASH, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_DOT, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - STATE(27), 1, - sym_array_bracket_expression, - STATE(28), 1, + ACTIONS(94), 1, + anon_sym_PLUS, + ACTIONS(96), 1, + anon_sym_DASH, + ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, + anon_sym_AMP, + ACTIONS(102), 1, + anon_sym_CARET, + STATE(24), 1, sym_parenthesis_expression_list, + STATE(28), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(84), 2, + ACTIONS(80), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(78), 4, + ACTIONS(78), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_DASH, - ACTIONS(76), 17, + ACTIONS(76), 13, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - anon_sym_PLUS, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -4485,45 +4491,42 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [485] = 15, - ACTIONS(80), 1, - anon_sym_PLUS, + [489] = 12, ACTIONS(82), 1, - anon_sym_DASH, - ACTIONS(86), 1, - anon_sym_CARET, - ACTIONS(88), 1, anon_sym_SLASH, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_DOT, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, + ACTIONS(94), 1, + anon_sym_PLUS, ACTIONS(96), 1, - anon_sym_PIPE, - ACTIONS(98), 1, - anon_sym_AMP, - STATE(27), 1, - sym_array_bracket_expression, - STATE(28), 1, + anon_sym_DASH, + STATE(24), 1, sym_parenthesis_expression_list, + STATE(28), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(84), 2, + ACTIONS(80), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(78), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(76), 13, + ACTIONS(76), 16, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -4532,31 +4535,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [547] = 14, - ACTIONS(80), 1, - anon_sym_PLUS, + [545] = 14, ACTIONS(82), 1, - anon_sym_DASH, - ACTIONS(86), 1, - anon_sym_CARET, - ACTIONS(88), 1, anon_sym_SLASH, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_DOT, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, + ACTIONS(94), 1, + anon_sym_PLUS, ACTIONS(96), 1, + anon_sym_DASH, + ACTIONS(98), 1, anon_sym_PIPE, - STATE(27), 1, - sym_array_bracket_expression, - STATE(28), 1, + ACTIONS(102), 1, + anon_sym_CARET, + STATE(24), 1, sym_parenthesis_expression_list, + STATE(28), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(84), 2, + ACTIONS(80), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(78), 3, @@ -4578,34 +4581,36 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [607] = 12, - ACTIONS(80), 1, - anon_sym_PLUS, + [605] = 13, ACTIONS(82), 1, - anon_sym_DASH, - ACTIONS(88), 1, anon_sym_SLASH, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_DOT, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - STATE(27), 1, - sym_array_bracket_expression, - STATE(28), 1, + ACTIONS(94), 1, + anon_sym_PLUS, + ACTIONS(96), 1, + anon_sym_DASH, + ACTIONS(102), 1, + anon_sym_CARET, + STATE(24), 1, sym_parenthesis_expression_list, + STATE(28), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(84), 2, + ACTIONS(80), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(78), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(76), 16, + ACTIONS(76), 15, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4613,7 +4618,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DOT_DOT, anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -4623,26 +4627,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_LF, [663] = 8, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_DOT, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - STATE(27), 1, - sym_array_bracket_expression, - STATE(28), 1, + STATE(24), 1, sym_parenthesis_expression_list, + STATE(28), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(102), 5, + ACTIONS(78), 5, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, - ACTIONS(100), 19, + ACTIONS(76), 19, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4927,62 +4931,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1000] = 17, - ACTIONS(80), 1, - anon_sym_PLUS, - ACTIONS(82), 1, - anon_sym_DASH, - ACTIONS(86), 1, - anon_sym_CARET, - ACTIONS(88), 1, - anon_sym_SLASH, - ACTIONS(92), 1, - anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(96), 1, - anon_sym_PIPE, - ACTIONS(98), 1, - anon_sym_AMP, - ACTIONS(140), 1, - anon_sym_EQ, - ACTIONS(144), 1, - anon_sym_DOT, - STATE(27), 1, - sym_array_bracket_expression, - STATE(28), 1, - sym_parenthesis_expression_list, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(84), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(138), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(142), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - ACTIONS(136), 6, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_COMMA, - anon_sym_LF, - [1063] = 11, + [1000] = 11, ACTIONS(11), 1, sym_identifier, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(146), 1, + ACTIONS(136), 1, sym_number, - STATE(39), 1, + STATE(38), 1, sym_global_identifier, - STATE(126), 1, + STATE(135), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -4993,7 +4951,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(163), 3, + STATE(165), 3, sym__type, sym_array_type, sym_named_type, @@ -5005,7 +4963,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(38), 7, + STATE(39), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -5013,6 +4971,52 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, + [1051] = 17, + ACTIONS(82), 1, + anon_sym_SLASH, + ACTIONS(86), 1, + anon_sym_LPAREN, + ACTIONS(88), 1, + anon_sym_LBRACK, + ACTIONS(94), 1, + anon_sym_PLUS, + ACTIONS(96), 1, + anon_sym_DASH, + ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, + anon_sym_AMP, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(142), 1, + anon_sym_EQ, + ACTIONS(146), 1, + anon_sym_DOT, + STATE(24), 1, + sym_parenthesis_expression_list, + STATE(28), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(80), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(140), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(144), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(138), 6, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_COMMA, + anon_sym_LF, [1114] = 5, ACTIONS(152), 1, anon_sym_LF, @@ -5045,108 +5049,145 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, anon_sym_LPAREN, sym_number, - [1151] = 16, - ACTIONS(86), 1, - anon_sym_CARET, - ACTIONS(88), 1, - anon_sym_SLASH, - ACTIONS(92), 1, + [1151] = 10, + ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(96), 1, - anon_sym_PIPE, + ACTIONS(155), 1, + sym_identifier, + ACTIONS(157), 1, + anon_sym_GT, + ACTIONS(159), 1, + sym_number, + STATE(48), 1, + sym_global_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(122), 2, + sym_template_type, + sym_template_generative_expression, + STATE(121), 3, + sym__type, + sym_array_type, + sym_named_type, + ACTIONS(31), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(44), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + [1198] = 18, + ACTIONS(82), 1, + anon_sym_SLASH, + ACTIONS(86), 1, + anon_sym_LPAREN, + ACTIONS(88), 1, + anon_sym_LBRACK, ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(144), 1, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(146), 1, anon_sym_DOT, - ACTIONS(157), 1, - anon_sym_EQ, - STATE(27), 1, - sym_array_bracket_expression, - STATE(28), 1, + ACTIONS(161), 1, + anon_sym_RPAREN, + ACTIONS(163), 1, + anon_sym_COMMA, + STATE(24), 1, sym_parenthesis_expression_list, + STATE(28), 1, + sym_array_bracket_expression, + STATE(62), 1, + sym__comma, + STATE(137), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(80), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 2, + ACTIONS(94), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(140), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(155), 3, - anon_sym_RBRACE, - anon_sym_COMMA, - anon_sym_LF, - ACTIONS(142), 4, + ACTIONS(144), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1209] = 18, - ACTIONS(86), 1, - anon_sym_CARET, - ACTIONS(88), 1, + [1260] = 16, + ACTIONS(82), 1, anon_sym_SLASH, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(96), 1, - anon_sym_PIPE, ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(144), 1, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(146), 1, anon_sym_DOT, - ACTIONS(159), 1, - anon_sym_RPAREN, - ACTIONS(161), 1, - anon_sym_COMMA, - STATE(27), 1, - sym_array_bracket_expression, - STATE(28), 1, + ACTIONS(167), 1, + anon_sym_EQ, + STATE(24), 1, sym_parenthesis_expression_list, - STATE(55), 1, - sym__comma, - STATE(138), 1, - aux_sym_parenthesis_expression_list_repeat1, + STATE(28), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(80), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 2, + ACTIONS(94), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(140), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(142), 4, + ACTIONS(165), 3, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LF, + ACTIONS(144), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1271] = 9, + [1318] = 9, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(163), 1, + ACTIONS(155), 1, sym_identifier, - ACTIONS(165), 1, + ACTIONS(159), 1, sym_number, - STATE(53), 1, + STATE(48), 1, sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(119), 2, + STATE(177), 2, sym_template_type, sym_template_generative_expression, - STATE(118), 3, + STATE(121), 3, sym__type, sym_array_type, sym_named_type, @@ -5158,7 +5199,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(44), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -5166,459 +5207,428 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [1315] = 9, - ACTIONS(33), 1, - anon_sym_LPAREN, - ACTIONS(163), 1, + [1362] = 7, + ACTIONS(169), 1, sym_identifier, - ACTIONS(165), 1, - sym_number, - STATE(53), 1, - sym_global_identifier, + ACTIONS(171), 1, + anon_sym_LT, + ACTIONS(178), 1, + anon_sym_LBRACK, + STATE(148), 1, + sym_template_params, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(172), 2, - sym_template_type, - sym_template_generative_expression, - STATE(118), 3, - sym__type, - sym_array_type, - sym_named_type, - ACTIONS(31), 7, + ACTIONS(174), 3, + anon_sym_GT, + anon_sym_EQ, + anon_sym_SLASH, + ACTIONS(176), 16, + anon_sym_RBRACE, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, - anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - [1359] = 16, - ACTIONS(86), 1, - anon_sym_CARET, - ACTIONS(88), 1, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_LF, + [1402] = 16, + ACTIONS(82), 1, anon_sym_SLASH, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(96), 1, - anon_sym_PIPE, ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(144), 1, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(146), 1, anon_sym_DOT, - ACTIONS(169), 1, + ACTIONS(183), 1, anon_sym_EQ, - STATE(27), 1, - sym_array_bracket_expression, - STATE(28), 1, + STATE(24), 1, sym_parenthesis_expression_list, + STATE(28), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(80), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 2, + ACTIONS(94), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(140), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(167), 3, + ACTIONS(181), 3, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, - ACTIONS(142), 4, + ACTIONS(144), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1417] = 6, - ACTIONS(171), 1, - sym_identifier, - ACTIONS(173), 1, - anon_sym_LT, - ACTIONS(180), 1, - anon_sym_LBRACK, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(176), 3, - anon_sym_GT, - anon_sym_EQ, + [1460] = 15, + ACTIONS(82), 1, anon_sym_SLASH, - ACTIONS(178), 16, - anon_sym_RBRACE, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_LF, - [1454] = 16, - ACTIONS(13), 1, - anon_sym_LBRACE, ACTIONS(86), 1, - anon_sym_CARET, - ACTIONS(88), 1, - anon_sym_SLASH, - ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(96), 1, - anon_sym_PIPE, ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(144), 1, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(146), 1, anon_sym_DOT, - STATE(27), 1, - sym_array_bracket_expression, - STATE(28), 1, + STATE(24), 1, sym_parenthesis_expression_list, - STATE(180), 1, - sym_block, + STATE(28), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(80), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 2, + ACTIONS(94), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(140), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(142), 4, + ACTIONS(185), 2, + anon_sym_RBRACE, + anon_sym_LF, + ACTIONS(144), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1510] = 15, - ACTIONS(86), 1, - anon_sym_CARET, - ACTIONS(88), 1, + [1514] = 16, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(82), 1, anon_sym_SLASH, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(96), 1, - anon_sym_PIPE, ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(144), 1, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(146), 1, anon_sym_DOT, - STATE(27), 1, - sym_array_bracket_expression, - STATE(28), 1, + STATE(24), 1, sym_parenthesis_expression_list, + STATE(28), 1, + sym_array_bracket_expression, + STATE(171), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(80), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 2, + ACTIONS(94), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(140), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(183), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - ACTIONS(142), 4, + ACTIONS(144), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1564] = 16, + [1570] = 16, ACTIONS(13), 1, anon_sym_LBRACE, - ACTIONS(86), 1, - anon_sym_CARET, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_SLASH, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(96), 1, - anon_sym_PIPE, ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(144), 1, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(146), 1, anon_sym_DOT, - STATE(27), 1, - sym_array_bracket_expression, - STATE(28), 1, + STATE(24), 1, sym_parenthesis_expression_list, - STATE(165), 1, + STATE(28), 1, + sym_array_bracket_expression, + STATE(163), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(80), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 2, + ACTIONS(94), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(140), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(142), 4, + ACTIONS(144), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1620] = 15, - ACTIONS(86), 1, - anon_sym_CARET, - ACTIONS(88), 1, + [1626] = 15, + ACTIONS(82), 1, anon_sym_SLASH, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(96), 1, - anon_sym_PIPE, ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(144), 1, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(146), 1, anon_sym_DOT, - STATE(27), 1, - sym_array_bracket_expression, - STATE(28), 1, + STATE(24), 1, sym_parenthesis_expression_list, + STATE(28), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(80), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 2, + ACTIONS(94), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(140), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(185), 2, - anon_sym_RBRACE, - anon_sym_LF, - ACTIONS(142), 4, + ACTIONS(187), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + ACTIONS(144), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1674] = 15, - ACTIONS(86), 1, - anon_sym_CARET, - ACTIONS(88), 1, + [1680] = 15, + ACTIONS(82), 1, anon_sym_SLASH, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(96), 1, - anon_sym_PIPE, ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(144), 1, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(146), 1, anon_sym_DOT, - ACTIONS(187), 1, - anon_sym_RBRACK, - STATE(27), 1, - sym_array_bracket_expression, - STATE(28), 1, + ACTIONS(189), 1, + anon_sym_COMMA, + STATE(24), 1, sym_parenthesis_expression_list, + STATE(28), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(80), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 2, + ACTIONS(94), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(140), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(142), 4, + ACTIONS(144), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1727] = 15, - ACTIONS(86), 1, - anon_sym_CARET, - ACTIONS(88), 1, + [1733] = 15, + ACTIONS(82), 1, anon_sym_SLASH, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(96), 1, - anon_sym_PIPE, ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(144), 1, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(146), 1, anon_sym_DOT, - ACTIONS(189), 1, + ACTIONS(191), 1, anon_sym_RPAREN, - STATE(27), 1, - sym_array_bracket_expression, - STATE(28), 1, + STATE(24), 1, sym_parenthesis_expression_list, + STATE(28), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(80), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 2, + ACTIONS(94), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(140), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(142), 4, + ACTIONS(144), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1780] = 15, - ACTIONS(86), 1, - anon_sym_CARET, - ACTIONS(88), 1, + [1786] = 15, + ACTIONS(82), 1, anon_sym_SLASH, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_DOT, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(96), 1, - anon_sym_PIPE, ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(191), 1, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(193), 1, anon_sym_DOT_DOT, - STATE(27), 1, - sym_array_bracket_expression, - STATE(28), 1, + STATE(24), 1, sym_parenthesis_expression_list, + STATE(28), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(80), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 2, + ACTIONS(94), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(140), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(142), 4, + ACTIONS(144), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1833] = 15, - ACTIONS(86), 1, - anon_sym_CARET, - ACTIONS(88), 1, + [1839] = 15, + ACTIONS(82), 1, anon_sym_SLASH, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(96), 1, - anon_sym_PIPE, ACTIONS(98), 1, + anon_sym_PIPE, + ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(144), 1, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(146), 1, anon_sym_DOT, - ACTIONS(193), 1, - anon_sym_COMMA, - STATE(27), 1, - sym_array_bracket_expression, - STATE(28), 1, + ACTIONS(195), 1, + anon_sym_RBRACK, + STATE(24), 1, sym_parenthesis_expression_list, + STATE(28), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(80), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(84), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(138), 2, + ACTIONS(94), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(140), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(142), 4, + ACTIONS(144), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1886] = 7, - ACTIONS(33), 1, - anon_sym_LPAREN, - ACTIONS(163), 1, - sym_identifier, - ACTIONS(195), 1, - anon_sym_RPAREN, + [1892] = 7, + ACTIONS(171), 1, + anon_sym_LT, + ACTIONS(174), 1, + anon_sym_SLASH, ACTIONS(197), 1, - sym_number, + anon_sym_GT, + STATE(148), 1, + sym_template_params, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(178), 2, + anon_sym_LBRACK, + anon_sym_COMMA, + ACTIONS(176), 13, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, - anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(35), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_global_identifier, - [1922] = 6, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_DOT, + anon_sym_LPAREN, + [1928] = 7, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(163), 1, + ACTIONS(155), 1, sym_identifier, - ACTIONS(199), 1, + ACTIONS(200), 1, + anon_sym_RPAREN, + ACTIONS(202), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5631,7 +5641,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(18), 8, + STATE(35), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5640,12 +5650,12 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [1955] = 6, + [1964] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(163), 1, + ACTIONS(155), 1, sym_identifier, - ACTIONS(201), 1, + ACTIONS(204), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5658,7 +5668,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(17), 8, + STATE(22), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5667,15 +5677,15 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [1988] = 5, - ACTIONS(207), 1, + [1997] = 5, + ACTIONS(210), 1, anon_sym_LF, - STATE(66), 1, + STATE(55), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(203), 7, + ACTIONS(206), 7, anon_sym_reg, anon_sym_initial, anon_sym_input, @@ -5683,7 +5693,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(205), 9, + ACTIONS(208), 9, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5693,12 +5703,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, anon_sym_LPAREN, sym_number, - [2019] = 6, + [2028] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(163), 1, + ACTIONS(155), 1, sym_identifier, - ACTIONS(209), 1, + ACTIONS(212), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5711,7 +5721,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(19), 8, + STATE(42), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5720,37 +5730,10 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [2052] = 6, - ACTIONS(173), 1, - anon_sym_LT, - ACTIONS(176), 1, - anon_sym_SLASH, - ACTIONS(211), 1, - anon_sym_GT, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(180), 2, - anon_sym_LBRACK, - anon_sym_COMMA, - ACTIONS(178), 13, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_DOT, - anon_sym_LPAREN, - [2085] = 6, + [2061] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(163), 1, + ACTIONS(155), 1, sym_identifier, ACTIONS(214), 1, sym_number, @@ -5765,7 +5748,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(16), 8, + STATE(17), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5774,10 +5757,10 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [2118] = 6, + [2094] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(163), 1, + ACTIONS(155), 1, sym_identifier, ACTIONS(216), 1, sym_number, @@ -5792,7 +5775,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(41), 8, + STATE(45), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5801,12 +5784,38 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [2151] = 6, + [2127] = 5, + ACTIONS(35), 1, + anon_sym_LF, + STATE(33), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(218), 7, + anon_sym_reg, + anon_sym_initial, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(220), 9, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + sym_number, + [2158] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(163), 1, + ACTIONS(155), 1, sym_identifier, - ACTIONS(218), 1, + ACTIONS(222), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5819,7 +5828,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(45), 8, + STATE(32), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5828,12 +5837,12 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [2184] = 6, + [2191] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(163), 1, + ACTIONS(155), 1, sym_identifier, - ACTIONS(220), 1, + ACTIONS(224), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5846,7 +5855,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(22), 8, + STATE(19), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5855,12 +5864,12 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [2217] = 6, + [2224] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(163), 1, + ACTIONS(155), 1, sym_identifier, - ACTIONS(222), 1, + ACTIONS(226), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5882,12 +5891,12 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [2250] = 6, + [2257] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(163), 1, + ACTIONS(155), 1, sym_identifier, - ACTIONS(224), 1, + ACTIONS(228), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5900,7 +5909,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(46), 8, + STATE(21), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5909,12 +5918,12 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [2283] = 6, + [2290] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(163), 1, + ACTIONS(155), 1, sym_identifier, - ACTIONS(226), 1, + ACTIONS(230), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5927,7 +5936,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(43), 8, + STATE(41), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5936,12 +5945,12 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [2316] = 6, + [2323] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(163), 1, + ACTIONS(155), 1, sym_identifier, - ACTIONS(228), 1, + ACTIONS(232), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5954,7 +5963,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(42), 8, + STATE(16), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5963,12 +5972,12 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [2349] = 6, + [2356] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(163), 1, + ACTIONS(155), 1, sym_identifier, - ACTIONS(230), 1, + ACTIONS(234), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5981,7 +5990,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(21), 8, + STATE(43), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5990,12 +5999,12 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [2382] = 6, + [2389] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(163), 1, + ACTIONS(155), 1, sym_identifier, - ACTIONS(232), 1, + ACTIONS(236), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6008,7 +6017,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(31), 8, + STATE(18), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6017,12 +6026,12 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [2415] = 6, + [2422] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(163), 1, + ACTIONS(155), 1, sym_identifier, - ACTIONS(234), 1, + ACTIONS(238), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6035,7 +6044,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(40), 8, + STATE(46), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6044,12 +6053,12 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [2448] = 6, + [2455] = 6, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(163), 1, + ACTIONS(155), 1, sym_identifier, - ACTIONS(236), 1, + ACTIONS(240), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6062,7 +6071,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(44), 8, + STATE(40), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6071,23 +6080,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_global_identifier, - [2481] = 5, - ACTIONS(35), 1, - anon_sym_LF, - STATE(33), 1, - aux_sym__linebreak, + [2488] = 6, + ACTIONS(33), 1, + anon_sym_LPAREN, + ACTIONS(155), 1, + sym_identifier, + ACTIONS(242), 1, + sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(238), 7, - anon_sym_reg, - anon_sym_initial, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(240), 9, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6095,23 +6098,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_LPAREN, - sym_number, - [2512] = 5, - ACTIONS(19), 1, + STATE(47), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_global_identifier, + [2521] = 5, + ACTIONS(246), 1, anon_sym_reg, - STATE(68), 1, + STATE(67), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(242), 5, + ACTIONS(244), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(244), 9, + ACTIONS(249), 9, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6121,21 +6131,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, anon_sym_LPAREN, sym_number, - [2541] = 5, - ACTIONS(248), 1, + [2550] = 5, + ACTIONS(19), 1, anon_sym_reg, - STATE(68), 1, + STATE(67), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(246), 5, + ACTIONS(251), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(251), 9, + ACTIONS(253), 9, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6145,23 +6155,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, anon_sym_LPAREN, sym_number, - [2570] = 12, + [2579] = 12, ACTIONS(11), 1, sym_identifier, - ACTIONS(35), 1, - anon_sym_LF, - ACTIONS(253), 1, + ACTIONS(255), 1, anon_sym_DASH_GT, - STATE(33), 1, + ACTIONS(257), 1, + anon_sym_LF, + STATE(71), 1, aux_sym__linebreak, STATE(90), 1, sym_declaration, STATE(100), 1, sym_declaration_list, - STATE(154), 1, - sym__interface_ports_output, - STATE(157), 1, + STATE(130), 1, sym_global_identifier, + STATE(167), 1, + sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6171,22 +6181,22 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(163), 3, + STATE(165), 3, sym__type, sym_array_type, sym_named_type, - [2612] = 3, + [2621] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(255), 6, + ACTIONS(259), 6, anon_sym_reg, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(257), 9, + ACTIONS(261), 9, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6196,20 +6206,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, anon_sym_LPAREN, sym_number, - [2636] = 12, + [2645] = 12, ACTIONS(11), 1, sym_identifier, - ACTIONS(253), 1, - anon_sym_DASH_GT, - ACTIONS(259), 1, + ACTIONS(35), 1, anon_sym_LF, - STATE(69), 1, + ACTIONS(255), 1, + anon_sym_DASH_GT, + STATE(33), 1, aux_sym__linebreak, STATE(90), 1, sym_declaration, - STATE(99), 1, + STATE(102), 1, sym_declaration_list, - STATE(157), 1, + STATE(130), 1, sym_global_identifier, STATE(162), 1, sym__interface_ports_output, @@ -6222,21 +6232,21 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(163), 3, + STATE(165), 3, sym__type, sym_array_type, sym_named_type, - [2678] = 3, + [2687] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(261), 5, + ACTIONS(263), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(263), 9, + ACTIONS(265), 9, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6246,16 +6256,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, anon_sym_LPAREN, sym_number, - [2701] = 10, + [2710] = 10, ACTIONS(11), 1, sym_identifier, - ACTIONS(265), 1, + ACTIONS(35), 1, anon_sym_LF, - STATE(74), 1, + STATE(33), 1, aux_sym__linebreak, STATE(90), 1, sym_declaration, - STATE(157), 1, + STATE(130), 1, sym_global_identifier, STATE(158), 1, sym_declaration_list, @@ -6268,22 +6278,22 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(163), 3, + STATE(165), 3, sym__type, sym_array_type, sym_named_type, - [2737] = 10, + [2746] = 10, ACTIONS(11), 1, sym_identifier, - ACTIONS(35), 1, + ACTIONS(267), 1, anon_sym_LF, - STATE(33), 1, + STATE(73), 1, aux_sym__linebreak, STATE(90), 1, sym_declaration, - STATE(157), 1, + STATE(130), 1, sym_global_identifier, - STATE(166), 1, + STATE(157), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, @@ -6294,14 +6304,16 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(163), 3, + STATE(165), 3, sym__type, sym_array_type, sym_named_type, - [2773] = 7, - ACTIONS(267), 1, + [2782] = 8, + ACTIONS(269), 1, sym_identifier, - STATE(157), 1, + ACTIONS(271), 1, + anon_sym_GT, + STATE(130), 1, sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, @@ -6312,17 +6324,17 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(110), 2, + STATE(118), 2, sym_template_declaration_type, sym_declaration, - STATE(163), 3, + STATE(165), 3, sym__type, sym_array_type, sym_named_type, - [2801] = 7, - ACTIONS(267), 1, + [2813] = 7, + ACTIONS(269), 1, sym_identifier, - STATE(157), 1, + STATE(130), 1, sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, @@ -6333,22 +6345,42 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(174), 2, + STATE(176), 2, sym_template_declaration_type, sym_declaration, - STATE(163), 3, + STATE(165), 3, sym__type, sym_array_type, sym_named_type, - [2829] = 4, - ACTIONS(271), 1, + [2841] = 7, + ACTIONS(11), 1, + sym_identifier, + STATE(106), 1, + sym_declaration, + STATE(130), 1, + sym_global_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(27), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(29), 2, + anon_sym_state, + anon_sym_gen, + STATE(165), 3, + sym__type, + sym_array_type, + sym_named_type, + [2868] = 4, + ACTIONS(275), 1, anon_sym_SQUOTE, - STATE(85), 1, + STATE(83), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(269), 8, + ACTIONS(273), 8, anon_sym_DASH_GT, anon_sym_GT, anon_sym_LBRACE, @@ -6357,15 +6389,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [2850] = 4, - ACTIONS(271), 1, + [2889] = 4, + ACTIONS(275), 1, anon_sym_SQUOTE, STATE(84), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(273), 8, + ACTIONS(277), 8, anon_sym_DASH_GT, anon_sym_GT, anon_sym_LBRACE, @@ -6374,15 +6406,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [2871] = 4, - ACTIONS(271), 1, + [2910] = 4, + ACTIONS(275), 1, anon_sym_SQUOTE, - STATE(83), 1, + STATE(86), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(275), 8, + ACTIONS(279), 8, anon_sym_DASH_GT, anon_sym_GT, anon_sym_LBRACE, @@ -6391,32 +6423,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [2892] = 7, - ACTIONS(11), 1, - sym_identifier, - STATE(104), 1, - sym_declaration, - STATE(157), 1, - sym_global_identifier, + [2931] = 4, + ACTIONS(275), 1, + anon_sym_SQUOTE, + STATE(85), 1, + sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(27), 2, - anon_sym_input, - anon_sym_output, - ACTIONS(29), 2, - anon_sym_state, - anon_sym_gen, - STATE(163), 3, - sym__type, - sym_array_type, - sym_named_type, - [2919] = 7, + ACTIONS(281), 8, + anon_sym_DASH_GT, + anon_sym_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_COMMA, + anon_sym_LF, + [2952] = 7, ACTIONS(11), 1, sym_identifier, - STATE(157), 1, + STATE(130), 1, sym_global_identifier, - STATE(182), 1, + STATE(188), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -6427,32 +6456,15 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(163), 3, + STATE(165), 3, sym__type, sym_array_type, sym_named_type, - [2946] = 4, - ACTIONS(271), 1, - anon_sym_SQUOTE, - STATE(86), 1, - sym_latency_specifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(277), 8, - anon_sym_DASH_GT, - anon_sym_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_COMMA, - anon_sym_LF, - [2967] = 2, + [2979] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(279), 8, + ACTIONS(283), 8, anon_sym_DASH_GT, anon_sym_GT, anon_sym_LBRACE, @@ -6461,11 +6473,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [2982] = 2, + [2994] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(281), 8, + ACTIONS(285), 8, anon_sym_DASH_GT, anon_sym_GT, anon_sym_LBRACE, @@ -6474,11 +6486,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [2997] = 2, + [3009] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(283), 8, + ACTIONS(287), 8, anon_sym_DASH_GT, anon_sym_GT, anon_sym_LBRACE, @@ -6487,11 +6499,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [3012] = 2, + [3024] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(285), 8, + ACTIONS(289), 8, anon_sym_DASH_GT, anon_sym_GT, anon_sym_LBRACE, @@ -6500,185 +6512,197 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [3027] = 5, - ACTIONS(59), 1, - anon_sym_COLON_COLON, - STATE(12), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(287), 2, - anon_sym_GT, - anon_sym_COMMA, - ACTIONS(63), 3, - anon_sym_LT, - anon_sym_LBRACK, - sym_identifier, - [3047] = 5, - ACTIONS(291), 1, + [3039] = 5, + ACTIONS(293), 1, anon_sym_COMMA, - STATE(80), 1, + STATE(77), 1, sym__comma, - STATE(88), 1, + STATE(87), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(289), 4, + ACTIONS(291), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [3067] = 5, + [3059] = 5, ACTIONS(11), 1, sym_identifier, - STATE(157), 1, + STATE(130), 1, sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(294), 2, + ACTIONS(296), 2, anon_sym_state, anon_sym_gen, - STATE(160), 3, + STATE(166), 3, sym__type, sym_array_type, sym_named_type, - [3087] = 5, - ACTIONS(161), 1, + [3079] = 5, + ACTIONS(163), 1, anon_sym_COMMA, - STATE(80), 1, + STATE(77), 1, sym__comma, - STATE(91), 1, + STATE(87), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(296), 4, + ACTIONS(298), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [3107] = 5, - ACTIONS(161), 1, + [3099] = 5, + ACTIONS(163), 1, anon_sym_COMMA, - STATE(80), 1, + STATE(77), 1, sym__comma, - STATE(88), 1, + STATE(89), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(298), 4, + ACTIONS(300), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [3127] = 5, - ACTIONS(161), 1, - anon_sym_COMMA, - STATE(11), 1, - sym__comma, - STATE(95), 1, - aux_sym_assign_left_side_repeat1, + [3119] = 5, + ACTIONS(66), 1, + anon_sym_COLON_COLON, + STATE(13), 1, + aux_sym_global_identifier_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(300), 3, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_LF, - [3146] = 7, + ACTIONS(302), 2, + anon_sym_GT, + anon_sym_COMMA, + ACTIONS(70), 3, + anon_sym_LT, + anon_sym_LBRACK, + sym_identifier, + [3139] = 7, ACTIONS(13), 1, anon_sym_LBRACE, - ACTIONS(302), 1, - anon_sym_COLON, ACTIONS(304), 1, + anon_sym_COLON, + ACTIONS(306), 1, anon_sym_LT, - STATE(144), 1, + STATE(156), 1, sym_template_declaration_arguments, - STATE(178), 1, + STATE(173), 1, sym_block, - STATE(179), 1, + STATE(184), 1, sym_interface_ports, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3169] = 5, - ACTIONS(161), 1, + [3162] = 5, + ACTIONS(163), 1, anon_sym_COMMA, STATE(11), 1, sym__comma, - STATE(92), 1, + STATE(94), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(306), 3, + ACTIONS(308), 3, anon_sym_RBRACE, anon_sym_EQ, anon_sym_LF, - [3188] = 5, - ACTIONS(310), 1, + [3181] = 5, + ACTIONS(312), 1, anon_sym_COMMA, STATE(11), 1, sym__comma, - STATE(95), 1, + STATE(94), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(308), 3, + ACTIONS(310), 3, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_LF, + [3200] = 5, + ACTIONS(163), 1, + anon_sym_COMMA, + STATE(11), 1, + sym__comma, + STATE(93), 1, + aux_sym_assign_left_side_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(315), 3, anon_sym_RBRACE, anon_sym_EQ, anon_sym_LF, - [3207] = 6, + [3219] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(313), 1, + ACTIONS(317), 1, ts_builtin_sym_end, - ACTIONS(315), 1, + ACTIONS(319), 1, anon_sym_LF, - STATE(150), 1, + STATE(142), 1, aux_sym__linebreak, - STATE(169), 1, + STATE(180), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3227] = 6, - ACTIONS(317), 1, - anon_sym_RBRACE, + [3239] = 6, + ACTIONS(7), 1, + anon_sym_module, ACTIONS(319), 1, - anon_sym_EQ, - ACTIONS(321), 1, anon_sym_LF, - STATE(5), 1, + ACTIONS(321), 1, + ts_builtin_sym_end, + STATE(142), 1, aux_sym__linebreak, - STATE(127), 1, - aux_sym_block_repeat1, + STATE(180), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3247] = 6, + [3259] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(315), 1, + ACTIONS(319), 1, anon_sym_LF, ACTIONS(323), 1, ts_builtin_sym_end, - STATE(150), 1, + STATE(142), 1, aux_sym__linebreak, - STATE(151), 1, + STATE(180), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3267] = 4, - ACTIONS(253), 1, + [3279] = 4, + ACTIONS(155), 1, + sym_identifier, + STATE(130), 1, + sym_global_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(160), 3, + sym__type, + sym_array_type, + sym_named_type, + [3295] = 4, + ACTIONS(255), 1, anon_sym_DASH_GT, - STATE(156), 1, + STATE(159), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, @@ -6687,10 +6711,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [3283] = 4, - ACTIONS(253), 1, + [3311] = 4, + ACTIONS(155), 1, + sym_identifier, + STATE(130), 1, + sym_global_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(164), 3, + sym__type, + sym_array_type, + sym_named_type, + [3327] = 4, + ACTIONS(255), 1, anon_sym_DASH_GT, - STATE(164), 1, + STATE(161), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, @@ -6699,838 +6735,841 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [3299] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(315), 1, - anon_sym_LF, + [3343] = 6, ACTIONS(329), 1, - ts_builtin_sym_end, - STATE(150), 1, + anon_sym_RBRACE, + ACTIONS(331), 1, + anon_sym_EQ, + ACTIONS(333), 1, + anon_sym_LF, + STATE(8), 1, aux_sym__linebreak, - STATE(169), 1, - sym_module, + STATE(139), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3319] = 6, - ACTIONS(319), 1, - anon_sym_EQ, + [3363] = 6, ACTIONS(331), 1, + anon_sym_EQ, + ACTIONS(335), 1, anon_sym_RBRACE, - ACTIONS(333), 1, + ACTIONS(337), 1, anon_sym_LF, - STATE(6), 1, + STATE(5), 1, aux_sym__linebreak, - STATE(149), 1, + STATE(154), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3339] = 6, + [3383] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(315), 1, + ACTIONS(319), 1, anon_sym_LF, - ACTIONS(335), 1, + ACTIONS(339), 1, ts_builtin_sym_end, - STATE(150), 1, - aux_sym__linebreak, - STATE(169), 1, + STATE(128), 1, sym_module, + STATE(142), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3359] = 2, + [3403] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(337), 5, + ACTIONS(341), 5, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, - [3371] = 4, - ACTIONS(163), 1, - sym_identifier, - STATE(157), 1, - sym_global_identifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(161), 3, - sym__type, - sym_array_type, - sym_named_type, - [3387] = 4, - ACTIONS(163), 1, - sym_identifier, - STATE(157), 1, - sym_global_identifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(159), 3, - sym__type, - sym_array_type, - sym_named_type, - [3403] = 6, + [3415] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(315), 1, + ACTIONS(319), 1, anon_sym_LF, - ACTIONS(339), 1, + ACTIONS(343), 1, ts_builtin_sym_end, - STATE(150), 1, + STATE(142), 1, aux_sym__linebreak, - STATE(169), 1, + STATE(180), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3423] = 2, + [3435] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(341), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COMMA, - sym_identifier, - [3434] = 2, + ACTIONS(345), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [3446] = 5, + ACTIONS(347), 1, + ts_builtin_sym_end, + ACTIONS(349), 1, + anon_sym_LF, + STATE(109), 1, + aux_sym_source_file_repeat1, + STATE(124), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(343), 4, + [3463] = 5, + ACTIONS(352), 1, ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, + ACTIONS(354), 1, anon_sym_LF, - [3445] = 5, - ACTIONS(161), 1, - anon_sym_COMMA, - ACTIONS(345), 1, - anon_sym_GT, - STATE(76), 1, - sym__comma, - STATE(141), 1, - aux_sym_template_declaration_arguments_repeat1, + STATE(98), 1, + aux_sym__linebreak, + STATE(125), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3462] = 2, + [3480] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(347), 4, - ts_builtin_sym_end, + ACTIONS(165), 4, anon_sym_RBRACE, - anon_sym_else, + anon_sym_EQ, + anon_sym_COMMA, anon_sym_LF, - [3473] = 2, + [3491] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(347), 4, + ACTIONS(356), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3484] = 5, - ACTIONS(349), 1, - anon_sym_RPAREN, - ACTIONS(351), 1, - anon_sym_COMMA, - STATE(55), 1, - sym__comma, - STATE(113), 1, - aux_sym_parenthesis_expression_list_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3501] = 5, - ACTIONS(331), 1, + [3502] = 5, + ACTIONS(335), 1, anon_sym_RBRACE, - ACTIONS(333), 1, + ACTIONS(337), 1, anon_sym_LF, - STATE(6), 1, + STATE(5), 1, aux_sym__linebreak, - STATE(148), 1, + STATE(153), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3518] = 2, + [3519] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(354), 4, + ACTIONS(358), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3529] = 5, - ACTIONS(356), 1, + [3530] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(358), 4, ts_builtin_sym_end, - ACTIONS(358), 1, + anon_sym_RBRACE, + anon_sym_else, anon_sym_LF, - STATE(101), 1, - aux_sym__linebreak, - STATE(143), 1, - aux_sym_source_file_repeat1, + [3541] = 5, + ACTIONS(360), 1, + anon_sym_RPAREN, + ACTIONS(362), 1, + anon_sym_COMMA, + STATE(62), 1, + sym__comma, + STATE(116), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3546] = 2, + [3558] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(360), 4, + ACTIONS(365), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3557] = 4, - ACTIONS(94), 1, - anon_sym_LBRACK, - STATE(108), 1, - sym_array_bracket_expression, + [3569] = 5, + ACTIONS(163), 1, + anon_sym_COMMA, + ACTIONS(367), 1, + anon_sym_GT, + STATE(76), 1, + sym__comma, + STATE(145), 1, + aux_sym_template_declaration_arguments_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(362), 2, + [3586] = 5, + ACTIONS(369), 1, anon_sym_GT, + ACTIONS(371), 1, anon_sym_COMMA, - [3572] = 5, - ACTIONS(161), 1, - anon_sym_COMMA, - ACTIONS(364), 1, - anon_sym_GT, STATE(37), 1, sym__comma, - STATE(153), 1, - aux_sym_named_type_repeat1, + STATE(119), 1, + aux_sym_template_params_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [3603] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(374), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + sym_identifier, + [3614] = 4, + ACTIONS(88), 1, + anon_sym_LBRACK, + STATE(155), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3589] = 5, - ACTIONS(366), 1, + ACTIONS(376), 2, anon_sym_GT, - ACTIONS(368), 1, anon_sym_COMMA, + [3629] = 5, + ACTIONS(163), 1, + anon_sym_COMMA, + ACTIONS(378), 1, + anon_sym_GT, STATE(37), 1, sym__comma, - STATE(120), 1, - aux_sym_named_type_repeat1, + STATE(150), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3606] = 2, + [3646] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(371), 4, + ACTIONS(380), 4, anon_sym_GT, anon_sym_LBRACK, anon_sym_COMMA, sym_identifier, - [3617] = 5, - ACTIONS(317), 1, - anon_sym_RBRACE, - ACTIONS(321), 1, + [3657] = 5, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(319), 1, anon_sym_LF, - STATE(5), 1, + STATE(142), 1, aux_sym__linebreak, - STATE(132), 1, - aux_sym_block_repeat1, + STATE(180), 1, + sym_module, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [3674] = 5, + ACTIONS(382), 1, + ts_builtin_sym_end, + ACTIONS(384), 1, + anon_sym_LF, + STATE(96), 1, + aux_sym__linebreak, + STATE(109), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3634] = 5, - ACTIONS(373), 1, + [3691] = 5, + ACTIONS(386), 1, anon_sym_GT, - ACTIONS(375), 1, + ACTIONS(388), 1, anon_sym_COMMA, STATE(76), 1, sym__comma, - STATE(123), 1, + STATE(126), 1, aux_sym_template_declaration_arguments_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3651] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(155), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COMMA, - anon_sym_LF, - [3662] = 2, + [3708] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(378), 4, + ACTIONS(391), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3673] = 2, + [3719] = 5, + ACTIONS(393), 1, + ts_builtin_sym_end, + ACTIONS(395), 1, + anon_sym_LF, + STATE(107), 1, + aux_sym__linebreak, + STATE(147), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(167), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COMMA, - anon_sym_LF, - [3684] = 5, - ACTIONS(380), 1, + [3736] = 5, + ACTIONS(329), 1, anon_sym_RBRACE, - ACTIONS(382), 1, + ACTIONS(333), 1, anon_sym_LF, - STATE(2), 1, + STATE(8), 1, aux_sym__linebreak, - STATE(133), 1, + STATE(141), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3701] = 2, + [3753] = 4, + ACTIONS(397), 1, + anon_sym_LT, + STATE(148), 1, + sym_template_params, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(169), 2, + anon_sym_LBRACK, + sym_identifier, + [3768] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(384), 4, + ACTIONS(399), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3712] = 2, + [3779] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(378), 4, + ACTIONS(391), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3723] = 2, + [3790] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(386), 4, + ACTIONS(401), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3734] = 4, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(388), 1, - anon_sym_if, + [3801] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(175), 2, - sym_block, - sym_if_statement, - [3749] = 5, - ACTIONS(390), 1, + ACTIONS(403), 4, + ts_builtin_sym_end, anon_sym_RBRACE, - ACTIONS(392), 1, + anon_sym_else, anon_sym_LF, - STATE(9), 1, - aux_sym__linebreak, - STATE(133), 1, - aux_sym_block_repeat1, + [3812] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3766] = 5, - ACTIONS(394), 1, + ACTIONS(181), 4, anon_sym_RBRACE, - ACTIONS(396), 1, + anon_sym_EQ, + anon_sym_COMMA, + anon_sym_LF, + [3823] = 5, + ACTIONS(405), 1, + anon_sym_RBRACE, + ACTIONS(407), 1, anon_sym_LF, STATE(10), 1, aux_sym__linebreak, - STATE(133), 1, + STATE(136), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3783] = 2, + [3840] = 5, + ACTIONS(163), 1, + anon_sym_COMMA, + ACTIONS(410), 1, + anon_sym_RPAREN, + STATE(62), 1, + sym__comma, + STATE(116), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(399), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [3794] = 2, + [3857] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(343), 4, + ACTIONS(403), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3805] = 5, - ACTIONS(401), 1, - ts_builtin_sym_end, - ACTIONS(403), 1, + [3868] = 5, + ACTIONS(412), 1, + anon_sym_RBRACE, + ACTIONS(414), 1, anon_sym_LF, - STATE(103), 1, + STATE(4), 1, aux_sym__linebreak, - STATE(140), 1, - aux_sym_source_file_repeat1, + STATE(136), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3822] = 2, + [3885] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(405), 4, + ACTIONS(416), 4, anon_sym_RBRACE, anon_sym_EQ, anon_sym_COMMA, anon_sym_LF, - [3833] = 5, - ACTIONS(161), 1, - anon_sym_COMMA, - ACTIONS(407), 1, - anon_sym_RPAREN, - STATE(55), 1, - sym__comma, - STATE(113), 1, - aux_sym_parenthesis_expression_list_repeat1, + [3896] = 5, + ACTIONS(418), 1, + anon_sym_RBRACE, + ACTIONS(420), 1, + anon_sym_LF, + STATE(2), 1, + aux_sym__linebreak, + STATE(136), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3850] = 4, - ACTIONS(302), 1, - anon_sym_COLON, - STATE(171), 1, - sym_interface_ports, + [3913] = 4, + ACTIONS(422), 1, + anon_sym_LF, + STATE(142), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(409), 2, - anon_sym_RBRACE, - anon_sym_LF, - [3865] = 5, - ACTIONS(411), 1, + ACTIONS(150), 2, + ts_builtin_sym_end, + anon_sym_module, + [3928] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(425), 4, ts_builtin_sym_end, - ACTIONS(413), 1, + anon_sym_RBRACE, + anon_sym_else, anon_sym_LF, - STATE(140), 1, - aux_sym_source_file_repeat1, - STATE(146), 1, - aux_sym__linebreak, + [3939] = 4, + ACTIONS(304), 1, + anon_sym_COLON, + STATE(174), 1, + sym_interface_ports, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3882] = 5, - ACTIONS(161), 1, + ACTIONS(427), 2, + anon_sym_RBRACE, + anon_sym_LF, + [3954] = 5, + ACTIONS(163), 1, anon_sym_COMMA, - ACTIONS(416), 1, + ACTIONS(429), 1, anon_sym_GT, STATE(76), 1, sym__comma, - STATE(123), 1, + STATE(126), 1, aux_sym_template_declaration_arguments_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3899] = 2, + [3971] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(418), 4, + ACTIONS(425), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3910] = 5, - ACTIONS(420), 1, + [3982] = 5, + ACTIONS(431), 1, ts_builtin_sym_end, - ACTIONS(422), 1, + ACTIONS(433), 1, anon_sym_LF, - STATE(107), 1, + STATE(97), 1, aux_sym__linebreak, - STATE(140), 1, + STATE(109), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3927] = 5, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(302), 1, - anon_sym_COLON, - STATE(168), 1, - sym_interface_ports, - STATE(176), 1, - sym_block, + [3999] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3944] = 2, + ACTIONS(435), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + sym_identifier, + [4010] = 4, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(437), 1, + anon_sym_if, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(418), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [3955] = 5, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(315), 1, - anon_sym_LF, - STATE(150), 1, - aux_sym__linebreak, - STATE(169), 1, - sym_module, + STATE(170), 2, + sym_block, + sym_if_statement, + [4025] = 5, + ACTIONS(163), 1, + anon_sym_COMMA, + ACTIONS(439), 1, + anon_sym_GT, + STATE(37), 1, + sym__comma, + STATE(119), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3972] = 2, + [4042] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(424), 4, + ACTIONS(441), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3983] = 5, - ACTIONS(426), 1, - anon_sym_RBRACE, - ACTIONS(428), 1, - anon_sym_LF, - STATE(4), 1, - aux_sym__linebreak, - STATE(133), 1, - aux_sym_block_repeat1, + [4053] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4000] = 5, - ACTIONS(430), 1, + ACTIONS(443), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + sym_identifier, + [4064] = 5, + ACTIONS(445), 1, anon_sym_RBRACE, - ACTIONS(432), 1, + ACTIONS(447), 1, anon_sym_LF, - STATE(3), 1, + STATE(7), 1, aux_sym__linebreak, - STATE(133), 1, + STATE(136), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4017] = 4, - ACTIONS(434), 1, - anon_sym_LF, - STATE(150), 1, - aux_sym__linebreak, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(150), 2, - ts_builtin_sym_end, - anon_sym_module, - [4032] = 5, - ACTIONS(437), 1, - ts_builtin_sym_end, - ACTIONS(439), 1, + [4081] = 5, + ACTIONS(449), 1, + anon_sym_RBRACE, + ACTIONS(451), 1, anon_sym_LF, - STATE(96), 1, + STATE(6), 1, aux_sym__linebreak, STATE(136), 1, - aux_sym_source_file_repeat1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4049] = 2, + [4098] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(441), 4, + ACTIONS(453), 4, anon_sym_GT, anon_sym_LBRACK, anon_sym_COMMA, sym_identifier, - [4060] = 5, - ACTIONS(161), 1, - anon_sym_COMMA, - ACTIONS(443), 1, - anon_sym_GT, - STATE(37), 1, - sym__comma, - STATE(120), 1, - aux_sym_named_type_repeat1, + [4109] = 5, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(304), 1, + anon_sym_COLON, + STATE(181), 1, + sym_block, + STATE(182), 1, + sym_interface_ports, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4077] = 2, + [4126] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(445), 3, + ACTIONS(455), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4087] = 3, - ACTIONS(319), 1, - anon_sym_EQ, + [4136] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(447), 2, + ACTIONS(457), 3, + anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4099] = 2, + [4146] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(449), 3, + ACTIONS(459), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4109] = 3, - ACTIONS(451), 1, - anon_sym_LT, + [4156] = 4, + ACTIONS(88), 1, + anon_sym_LBRACK, + ACTIONS(461), 1, + sym_identifier, + STATE(155), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(171), 2, - anon_sym_LBRACK, - sym_identifier, - [4121] = 2, + [4170] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(453), 3, + ACTIONS(463), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4131] = 4, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(455), 1, - sym_identifier, - STATE(108), 1, - sym_array_bracket_expression, + [4180] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4145] = 4, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(457), 1, - sym_identifier, - STATE(108), 1, - sym_array_bracket_expression, + ACTIONS(465), 3, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_LF, + [4190] = 3, + ACTIONS(469), 1, + anon_sym_else, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4159] = 4, - ACTIONS(94), 1, + ACTIONS(467), 2, + anon_sym_RBRACE, + anon_sym_LF, + [4202] = 4, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(459), 1, + ACTIONS(471), 1, sym_identifier, - STATE(108), 1, + STATE(155), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4173] = 2, + [4216] = 4, + ACTIONS(88), 1, + anon_sym_LBRACK, + ACTIONS(473), 1, + sym_identifier, + STATE(155), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(461), 3, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_LF, - [4183] = 4, - ACTIONS(94), 1, + [4230] = 4, + ACTIONS(88), 1, anon_sym_LBRACK, - ACTIONS(463), 1, + ACTIONS(475), 1, sym_identifier, - STATE(108), 1, + STATE(155), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4197] = 2, + [4244] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(465), 3, + ACTIONS(477), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4207] = 3, - ACTIONS(469), 1, - anon_sym_else, + [4254] = 3, + ACTIONS(331), 1, + anon_sym_EQ, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(467), 2, + ACTIONS(479), 2, anon_sym_RBRACE, anon_sym_LF, - [4219] = 2, + [4266] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(471), 3, + ACTIONS(481), 2, + anon_sym_COLON, anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_LF, - [4229] = 2, + [4275] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(447), 2, + ACTIONS(483), 2, anon_sym_RBRACE, anon_sym_LF, - [4238] = 3, - ACTIONS(13), 1, - anon_sym_LBRACE, - STATE(177), 1, - sym_block, + [4284] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4249] = 2, + ACTIONS(485), 2, + anon_sym_RBRACE, + anon_sym_LF, + [4293] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(473), 2, - ts_builtin_sym_end, + ACTIONS(479), 2, + anon_sym_RBRACE, anon_sym_LF, - [4258] = 2, + [4302] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(475), 2, + ACTIONS(487), 2, ts_builtin_sym_end, anon_sym_LF, - [4267] = 2, + [4311] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(477), 2, + ACTIONS(489), 2, anon_sym_RBRACE, anon_sym_LF, - [4276] = 2, + [4320] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(366), 2, - anon_sym_GT, - anon_sym_COMMA, - [4285] = 2, + ACTIONS(491), 2, + anon_sym_COLON, + anon_sym_LBRACE, + [4329] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(479), 2, - anon_sym_COLON, - anon_sym_LBRACE, - [4294] = 2, + ACTIONS(493), 2, + anon_sym_GT, + anon_sym_COMMA, + [4338] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(373), 2, + ACTIONS(495), 2, anon_sym_GT, anon_sym_COMMA, - [4303] = 2, + [4347] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(481), 2, - anon_sym_RBRACE, - anon_sym_LF, - [4312] = 2, + ACTIONS(497), 2, + anon_sym_COLON, + anon_sym_LBRACE, + [4356] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(483), 2, + ACTIONS(499), 2, ts_builtin_sym_end, anon_sym_LF, - [4321] = 2, + [4365] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(485), 2, + ACTIONS(501), 2, ts_builtin_sym_end, anon_sym_LF, - [4330] = 2, + [4374] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(487), 2, + ACTIONS(503), 2, ts_builtin_sym_end, anon_sym_LF, - [4339] = 3, + [4383] = 3, ACTIONS(13), 1, anon_sym_LBRACE, - STATE(170), 1, + STATE(179), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4350] = 2, + [4394] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(489), 2, - anon_sym_RBRACE, + ACTIONS(505), 2, + ts_builtin_sym_end, anon_sym_LF, - [4359] = 2, + [4403] = 3, + ACTIONS(13), 1, + anon_sym_LBRACE, + STATE(183), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(491), 2, - anon_sym_COLON, - anon_sym_LBRACE, - [4368] = 2, - ACTIONS(493), 1, - anon_sym_in, + [4414] = 2, + ACTIONS(507), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4376] = 2, - ACTIONS(495), 1, + [4422] = 2, + ACTIONS(509), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4384] = 2, - ACTIONS(497), 1, + [4430] = 2, + ACTIONS(511), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4392] = 2, - ACTIONS(499), 1, - sym_identifier, + [4438] = 2, + ACTIONS(513), 1, + anon_sym_in, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4400] = 2, - ACTIONS(501), 1, + [4446] = 2, + ACTIONS(515), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4408] = 2, - ACTIONS(503), 1, + [4454] = 2, + ACTIONS(517), 1, ts_builtin_sym_end, ACTIONS(3), 2, sym_single_line_comment, @@ -7545,11 +7584,11 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(14)] = 246, [SMALL_STATE(15)] = 289, [SMALL_STATE(16)] = 327, - [SMALL_STATE(17)] = 385, - [SMALL_STATE(18)] = 433, - [SMALL_STATE(19)] = 485, - [SMALL_STATE(20)] = 547, - [SMALL_STATE(21)] = 607, + [SMALL_STATE(17)] = 379, + [SMALL_STATE(18)] = 427, + [SMALL_STATE(19)] = 489, + [SMALL_STATE(20)] = 545, + [SMALL_STATE(21)] = 605, [SMALL_STATE(22)] = 663, [SMALL_STATE(23)] = 711, [SMALL_STATE(24)] = 748, @@ -7560,162 +7599,165 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(29)] = 928, [SMALL_STATE(30)] = 964, [SMALL_STATE(31)] = 1000, - [SMALL_STATE(32)] = 1063, + [SMALL_STATE(32)] = 1051, [SMALL_STATE(33)] = 1114, [SMALL_STATE(34)] = 1151, - [SMALL_STATE(35)] = 1209, - [SMALL_STATE(36)] = 1271, - [SMALL_STATE(37)] = 1315, - [SMALL_STATE(38)] = 1359, - [SMALL_STATE(39)] = 1417, - [SMALL_STATE(40)] = 1454, - [SMALL_STATE(41)] = 1510, - [SMALL_STATE(42)] = 1564, - [SMALL_STATE(43)] = 1620, - [SMALL_STATE(44)] = 1674, - [SMALL_STATE(45)] = 1727, - [SMALL_STATE(46)] = 1780, - [SMALL_STATE(47)] = 1833, - [SMALL_STATE(48)] = 1886, - [SMALL_STATE(49)] = 1922, - [SMALL_STATE(50)] = 1955, - [SMALL_STATE(51)] = 1988, - [SMALL_STATE(52)] = 2019, - [SMALL_STATE(53)] = 2052, - [SMALL_STATE(54)] = 2085, - [SMALL_STATE(55)] = 2118, - [SMALL_STATE(56)] = 2151, - [SMALL_STATE(57)] = 2184, - [SMALL_STATE(58)] = 2217, - [SMALL_STATE(59)] = 2250, - [SMALL_STATE(60)] = 2283, - [SMALL_STATE(61)] = 2316, - [SMALL_STATE(62)] = 2349, - [SMALL_STATE(63)] = 2382, - [SMALL_STATE(64)] = 2415, - [SMALL_STATE(65)] = 2448, - [SMALL_STATE(66)] = 2481, - [SMALL_STATE(67)] = 2512, - [SMALL_STATE(68)] = 2541, - [SMALL_STATE(69)] = 2570, - [SMALL_STATE(70)] = 2612, - [SMALL_STATE(71)] = 2636, - [SMALL_STATE(72)] = 2678, - [SMALL_STATE(73)] = 2701, - [SMALL_STATE(74)] = 2737, - [SMALL_STATE(75)] = 2773, - [SMALL_STATE(76)] = 2801, - [SMALL_STATE(77)] = 2829, - [SMALL_STATE(78)] = 2850, - [SMALL_STATE(79)] = 2871, - [SMALL_STATE(80)] = 2892, - [SMALL_STATE(81)] = 2919, - [SMALL_STATE(82)] = 2946, - [SMALL_STATE(83)] = 2967, - [SMALL_STATE(84)] = 2982, - [SMALL_STATE(85)] = 2997, - [SMALL_STATE(86)] = 3012, - [SMALL_STATE(87)] = 3027, - [SMALL_STATE(88)] = 3047, - [SMALL_STATE(89)] = 3067, - [SMALL_STATE(90)] = 3087, - [SMALL_STATE(91)] = 3107, - [SMALL_STATE(92)] = 3127, - [SMALL_STATE(93)] = 3146, - [SMALL_STATE(94)] = 3169, - [SMALL_STATE(95)] = 3188, - [SMALL_STATE(96)] = 3207, - [SMALL_STATE(97)] = 3227, - [SMALL_STATE(98)] = 3247, - [SMALL_STATE(99)] = 3267, - [SMALL_STATE(100)] = 3283, - [SMALL_STATE(101)] = 3299, - [SMALL_STATE(102)] = 3319, - [SMALL_STATE(103)] = 3339, - [SMALL_STATE(104)] = 3359, - [SMALL_STATE(105)] = 3371, - [SMALL_STATE(106)] = 3387, - [SMALL_STATE(107)] = 3403, - [SMALL_STATE(108)] = 3423, - [SMALL_STATE(109)] = 3434, - [SMALL_STATE(110)] = 3445, - [SMALL_STATE(111)] = 3462, - [SMALL_STATE(112)] = 3473, - [SMALL_STATE(113)] = 3484, - [SMALL_STATE(114)] = 3501, - [SMALL_STATE(115)] = 3518, - [SMALL_STATE(116)] = 3529, - [SMALL_STATE(117)] = 3546, - [SMALL_STATE(118)] = 3557, - [SMALL_STATE(119)] = 3572, - [SMALL_STATE(120)] = 3589, - [SMALL_STATE(121)] = 3606, - [SMALL_STATE(122)] = 3617, - [SMALL_STATE(123)] = 3634, - [SMALL_STATE(124)] = 3651, - [SMALL_STATE(125)] = 3662, - [SMALL_STATE(126)] = 3673, - [SMALL_STATE(127)] = 3684, - [SMALL_STATE(128)] = 3701, - [SMALL_STATE(129)] = 3712, - [SMALL_STATE(130)] = 3723, - [SMALL_STATE(131)] = 3734, - [SMALL_STATE(132)] = 3749, - [SMALL_STATE(133)] = 3766, - [SMALL_STATE(134)] = 3783, - [SMALL_STATE(135)] = 3794, - [SMALL_STATE(136)] = 3805, - [SMALL_STATE(137)] = 3822, - [SMALL_STATE(138)] = 3833, - [SMALL_STATE(139)] = 3850, - [SMALL_STATE(140)] = 3865, - [SMALL_STATE(141)] = 3882, - [SMALL_STATE(142)] = 3899, - [SMALL_STATE(143)] = 3910, - [SMALL_STATE(144)] = 3927, - [SMALL_STATE(145)] = 3944, - [SMALL_STATE(146)] = 3955, - [SMALL_STATE(147)] = 3972, - [SMALL_STATE(148)] = 3983, - [SMALL_STATE(149)] = 4000, - [SMALL_STATE(150)] = 4017, - [SMALL_STATE(151)] = 4032, - [SMALL_STATE(152)] = 4049, - [SMALL_STATE(153)] = 4060, - [SMALL_STATE(154)] = 4077, - [SMALL_STATE(155)] = 4087, - [SMALL_STATE(156)] = 4099, - [SMALL_STATE(157)] = 4109, - [SMALL_STATE(158)] = 4121, - [SMALL_STATE(159)] = 4131, - [SMALL_STATE(160)] = 4145, - [SMALL_STATE(161)] = 4159, - [SMALL_STATE(162)] = 4173, - [SMALL_STATE(163)] = 4183, - [SMALL_STATE(164)] = 4197, - [SMALL_STATE(165)] = 4207, - [SMALL_STATE(166)] = 4219, - [SMALL_STATE(167)] = 4229, - [SMALL_STATE(168)] = 4238, - [SMALL_STATE(169)] = 4249, - [SMALL_STATE(170)] = 4258, - [SMALL_STATE(171)] = 4267, - [SMALL_STATE(172)] = 4276, - [SMALL_STATE(173)] = 4285, - [SMALL_STATE(174)] = 4294, - [SMALL_STATE(175)] = 4303, - [SMALL_STATE(176)] = 4312, - [SMALL_STATE(177)] = 4321, - [SMALL_STATE(178)] = 4330, - [SMALL_STATE(179)] = 4339, - [SMALL_STATE(180)] = 4350, - [SMALL_STATE(181)] = 4359, - [SMALL_STATE(182)] = 4368, - [SMALL_STATE(183)] = 4376, - [SMALL_STATE(184)] = 4384, - [SMALL_STATE(185)] = 4392, - [SMALL_STATE(186)] = 4400, - [SMALL_STATE(187)] = 4408, + [SMALL_STATE(35)] = 1198, + [SMALL_STATE(36)] = 1260, + [SMALL_STATE(37)] = 1318, + [SMALL_STATE(38)] = 1362, + [SMALL_STATE(39)] = 1402, + [SMALL_STATE(40)] = 1460, + [SMALL_STATE(41)] = 1514, + [SMALL_STATE(42)] = 1570, + [SMALL_STATE(43)] = 1626, + [SMALL_STATE(44)] = 1680, + [SMALL_STATE(45)] = 1733, + [SMALL_STATE(46)] = 1786, + [SMALL_STATE(47)] = 1839, + [SMALL_STATE(48)] = 1892, + [SMALL_STATE(49)] = 1928, + [SMALL_STATE(50)] = 1964, + [SMALL_STATE(51)] = 1997, + [SMALL_STATE(52)] = 2028, + [SMALL_STATE(53)] = 2061, + [SMALL_STATE(54)] = 2094, + [SMALL_STATE(55)] = 2127, + [SMALL_STATE(56)] = 2158, + [SMALL_STATE(57)] = 2191, + [SMALL_STATE(58)] = 2224, + [SMALL_STATE(59)] = 2257, + [SMALL_STATE(60)] = 2290, + [SMALL_STATE(61)] = 2323, + [SMALL_STATE(62)] = 2356, + [SMALL_STATE(63)] = 2389, + [SMALL_STATE(64)] = 2422, + [SMALL_STATE(65)] = 2455, + [SMALL_STATE(66)] = 2488, + [SMALL_STATE(67)] = 2521, + [SMALL_STATE(68)] = 2550, + [SMALL_STATE(69)] = 2579, + [SMALL_STATE(70)] = 2621, + [SMALL_STATE(71)] = 2645, + [SMALL_STATE(72)] = 2687, + [SMALL_STATE(73)] = 2710, + [SMALL_STATE(74)] = 2746, + [SMALL_STATE(75)] = 2782, + [SMALL_STATE(76)] = 2813, + [SMALL_STATE(77)] = 2841, + [SMALL_STATE(78)] = 2868, + [SMALL_STATE(79)] = 2889, + [SMALL_STATE(80)] = 2910, + [SMALL_STATE(81)] = 2931, + [SMALL_STATE(82)] = 2952, + [SMALL_STATE(83)] = 2979, + [SMALL_STATE(84)] = 2994, + [SMALL_STATE(85)] = 3009, + [SMALL_STATE(86)] = 3024, + [SMALL_STATE(87)] = 3039, + [SMALL_STATE(88)] = 3059, + [SMALL_STATE(89)] = 3079, + [SMALL_STATE(90)] = 3099, + [SMALL_STATE(91)] = 3119, + [SMALL_STATE(92)] = 3139, + [SMALL_STATE(93)] = 3162, + [SMALL_STATE(94)] = 3181, + [SMALL_STATE(95)] = 3200, + [SMALL_STATE(96)] = 3219, + [SMALL_STATE(97)] = 3239, + [SMALL_STATE(98)] = 3259, + [SMALL_STATE(99)] = 3279, + [SMALL_STATE(100)] = 3295, + [SMALL_STATE(101)] = 3311, + [SMALL_STATE(102)] = 3327, + [SMALL_STATE(103)] = 3343, + [SMALL_STATE(104)] = 3363, + [SMALL_STATE(105)] = 3383, + [SMALL_STATE(106)] = 3403, + [SMALL_STATE(107)] = 3415, + [SMALL_STATE(108)] = 3435, + [SMALL_STATE(109)] = 3446, + [SMALL_STATE(110)] = 3463, + [SMALL_STATE(111)] = 3480, + [SMALL_STATE(112)] = 3491, + [SMALL_STATE(113)] = 3502, + [SMALL_STATE(114)] = 3519, + [SMALL_STATE(115)] = 3530, + [SMALL_STATE(116)] = 3541, + [SMALL_STATE(117)] = 3558, + [SMALL_STATE(118)] = 3569, + [SMALL_STATE(119)] = 3586, + [SMALL_STATE(120)] = 3603, + [SMALL_STATE(121)] = 3614, + [SMALL_STATE(122)] = 3629, + [SMALL_STATE(123)] = 3646, + [SMALL_STATE(124)] = 3657, + [SMALL_STATE(125)] = 3674, + [SMALL_STATE(126)] = 3691, + [SMALL_STATE(127)] = 3708, + [SMALL_STATE(128)] = 3719, + [SMALL_STATE(129)] = 3736, + [SMALL_STATE(130)] = 3753, + [SMALL_STATE(131)] = 3768, + [SMALL_STATE(132)] = 3779, + [SMALL_STATE(133)] = 3790, + [SMALL_STATE(134)] = 3801, + [SMALL_STATE(135)] = 3812, + [SMALL_STATE(136)] = 3823, + [SMALL_STATE(137)] = 3840, + [SMALL_STATE(138)] = 3857, + [SMALL_STATE(139)] = 3868, + [SMALL_STATE(140)] = 3885, + [SMALL_STATE(141)] = 3896, + [SMALL_STATE(142)] = 3913, + [SMALL_STATE(143)] = 3928, + [SMALL_STATE(144)] = 3939, + [SMALL_STATE(145)] = 3954, + [SMALL_STATE(146)] = 3971, + [SMALL_STATE(147)] = 3982, + [SMALL_STATE(148)] = 3999, + [SMALL_STATE(149)] = 4010, + [SMALL_STATE(150)] = 4025, + [SMALL_STATE(151)] = 4042, + [SMALL_STATE(152)] = 4053, + [SMALL_STATE(153)] = 4064, + [SMALL_STATE(154)] = 4081, + [SMALL_STATE(155)] = 4098, + [SMALL_STATE(156)] = 4109, + [SMALL_STATE(157)] = 4126, + [SMALL_STATE(158)] = 4136, + [SMALL_STATE(159)] = 4146, + [SMALL_STATE(160)] = 4156, + [SMALL_STATE(161)] = 4170, + [SMALL_STATE(162)] = 4180, + [SMALL_STATE(163)] = 4190, + [SMALL_STATE(164)] = 4202, + [SMALL_STATE(165)] = 4216, + [SMALL_STATE(166)] = 4230, + [SMALL_STATE(167)] = 4244, + [SMALL_STATE(168)] = 4254, + [SMALL_STATE(169)] = 4266, + [SMALL_STATE(170)] = 4275, + [SMALL_STATE(171)] = 4284, + [SMALL_STATE(172)] = 4293, + [SMALL_STATE(173)] = 4302, + [SMALL_STATE(174)] = 4311, + [SMALL_STATE(175)] = 4320, + [SMALL_STATE(176)] = 4329, + [SMALL_STATE(177)] = 4338, + [SMALL_STATE(178)] = 4347, + [SMALL_STATE(179)] = 4356, + [SMALL_STATE(180)] = 4365, + [SMALL_STATE(181)] = 4374, + [SMALL_STATE(182)] = 4383, + [SMALL_STATE(183)] = 4394, + [SMALL_STATE(184)] = 4403, + [SMALL_STATE(185)] = 4414, + [SMALL_STATE(186)] = 4422, + [SMALL_STATE(187)] = 4430, + [SMALL_STATE(188)] = 4438, + [SMALL_STATE(189)] = 4446, + [SMALL_STATE(190)] = 4454, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -7723,248 +7765,255 @@ static const TSParseActionEntry ts_parse_actions[] = { [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 = true}}, SHIFT(186), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), - [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(184), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(187), [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(89), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(106), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(82), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(88), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(101), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), - [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), - [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), + [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), - [55] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 2), - [57] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 2), - [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), - [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 1), - [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 1), - [65] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), - [67] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), - [69] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), SHIFT_REPEAT(183), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [55] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), + [57] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), + [59] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), SHIFT_REPEAT(185), + [62] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 2), + [64] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 2), + [66] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), + [68] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 1), + [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 1), [72] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), - [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 34), - [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 34), - [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [82] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49), - [84] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [86] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [88] = {.entry = {.count = 1, .reusable = false}}, SHIFT(50), - [90] = {.entry = {.count = 1, .reusable = false}}, SHIFT(185), - [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 21), - [102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 21), - [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 32), - [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 32), - [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 32), - [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 32), - [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 35), - [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 35), - [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), - [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 17), - [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 17), - [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 23), - [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 23), + [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 35), + [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 35), + [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [82] = {.entry = {.count = 1, .reusable = false}}, SHIFT(50), + [84] = {.entry = {.count = 1, .reusable = false}}, SHIFT(186), + [86] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [88] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 22), + [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 22), + [94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [96] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61), + [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 33), + [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 33), + [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 24), + [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 24), + [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), + [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 33), + [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 33), + [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 36), + [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 36), + [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 17), + [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 17), [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 32), - [138] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), - [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 32), - [142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), - [146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 33), + [140] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), + [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 33), + [144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), [152] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(33), - [155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 10), - [157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 10), - [159] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [165] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [167] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 22), - [169] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 22), - [171] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_type, 1, .production_id = 9), - [173] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__expression, 1), SHIFT(36), - [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [180] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_named_type, 1, .production_id = 9), REDUCE(sym__expression, 1), - [183] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), - [185] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 33), - [187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_generative_expression, 1), - [195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [203] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), - [205] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), - [207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [211] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_named_type, 1, .production_id = 9), REDUCE(sym__expression, 1), - [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [238] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), - [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), - [242] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 11), - [244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 11), - [246] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [248] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(70), - [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [255] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [261] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [267] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87), - [269] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 27), - [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), + [159] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [165] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 10), + [167] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 10), + [169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_type, 1, .production_id = 9), + [171] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__expression, 1), SHIFT(34), + [174] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [178] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_named_type, 1, .production_id = 9), REDUCE(sym__expression, 1), + [181] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 23), + [183] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 23), + [185] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 34), + [187] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), + [189] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_generative_expression, 1), + [191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [197] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_named_type, 1, .production_id = 9), REDUCE(sym__expression, 1), + [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [206] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), + [208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), + [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [218] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), + [220] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), + [222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [244] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [246] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(70), + [249] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [251] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 11), + [253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 11), + [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [259] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [263] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [265] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [269] = {.entry = {.count = 1, .reusable = false}}, SHIFT(91), + [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), [273] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 16), - [275] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 26), - [277] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 37), - [279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 38), - [281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 28), - [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 39), - [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 42), - [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1), - [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), - [291] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(51), - [294] = {.entry = {.count = 1, .reusable = false}}, SHIFT(105), - [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), + [275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [277] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 28), + [279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 27), + [281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 38), + [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 29), + [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 40), + [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 42), + [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 39), + [291] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), + [293] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(51), + [296] = {.entry = {.count = 1, .reusable = false}}, SHIFT(99), [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), - [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), - [302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), - [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), - [310] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(51), - [313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), - [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), - [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), - [319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), + [302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1), + [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), + [310] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), + [312] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(51), + [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), + [317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), + [319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), + [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), + [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 8), [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 19), - [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), - [331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), - [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), - [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), - [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), - [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 17), - [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), - [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), - [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 41), - [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), - [351] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(51), - [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), - [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type, 1), - [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), - [366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_named_type_repeat1, 2), - [368] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_named_type_repeat1, 2), SHIFT_REPEAT(51), - [371] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_type, 5, .production_id = 43), - [373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2), - [375] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2), SHIFT_REPEAT(51), - [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 41), - [380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), - [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), - [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 36), - [388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), - [396] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), - [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), - [401] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), - [403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [405] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), - [407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [409] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 20), - [411] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), - [413] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(146), - [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), - [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), - [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), - [422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 36), - [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), - [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), - [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [434] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(150), - [437] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), - [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [441] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_type, 4, .production_id = 40), - [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), - [445] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 18), - [447] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), - [449] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 15), - [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [453] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 14), - [455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [461] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), - [463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [465] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 29), - [467] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 31), - [469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), - [471] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 25), - [473] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), - [475] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 12), - [477] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 30), - [479] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4), - [481] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 44), - [483] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 13), - [485] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5, .production_id = 24), + [329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), + [337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), + [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), + [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), + [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), + [349] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(124), + [352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), + [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 41), + [360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), + [362] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(51), + [365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169), + [369] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), + [371] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), SHIFT_REPEAT(51), + [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 2), + [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type, 1), + [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), + [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 6), + [382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), + [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), + [388] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), SHIFT_REPEAT(51), + [391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 41), + [393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), + [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), + [401] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 37), + [403] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), + [405] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), + [407] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), + [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), + [414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), + [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), + [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [422] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(142), + [425] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), + [427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 21), + [429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), + [431] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), + [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [435] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_type, 2, .production_id = 20), + [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), + [441] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 37), + [443] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3, .production_id = 3), + [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), + [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [453] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 17), + [455] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 14), + [457] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 26), + [459] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 15), + [461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 30), + [465] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 18), + [467] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 32), + [469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), + [471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [477] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), + [479] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), + [481] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 3), + [483] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 43), + [485] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 44), [487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), - [489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 45), - [491] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3), - [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), - [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [503] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 31), + [491] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 6), + [493] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 3), + [495] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 3), + [497] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), + [499] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5, .production_id = 25), + [501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), + [503] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 13), + [505] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 12), + [507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), + [513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [517] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), }; #ifdef __cplusplus From 06f50e5d517d163f0e4de435a4379d162d73d716 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Wed, 19 Jun 2024 15:09:14 +0200 Subject: [PATCH 30/49] Add template args to inline function calls and constants --- grammar.js | 56 +- src/grammar.json | 345 ++- src/node-types.json | 164 +- src/parser.c | 4851 +++++++++++++++++++++++-------------------- 4 files changed, 2815 insertions(+), 2601 deletions(-) diff --git a/grammar.js b/grammar.js index 4dc1fae..44cbe9c 100644 --- a/grammar.js +++ b/grammar.js @@ -164,10 +164,15 @@ module.exports = grammar({ optional(field('latency_specifier', $.latency_specifier)) ), + latency_specifier: $ => seq( + '\'', + field('content', $._expression) + ), + // Types _type: $ => choice( - $.named_type, + $.template_global, $.array_type ), @@ -175,27 +180,11 @@ module.exports = grammar({ field('arr', $._type), field('arr_idx', $.array_bracket_expression) ), - named_type: $ => seq( - field('name', $.global_identifier), - optional(field('template_params', $.template_params)) - ), - template_params: $ => seq( - '<', - sepSeq(choice($.template_type, $.template_generative_expression), $._comma), - '>' - ), - template_type: $ => $._type, - template_generative_expression: $ => $._expression, - - latency_specifier: $ => seq( - '\'', - field('content', $._expression) - ), // Expressions _expression: $ => choice( - $.global_identifier, + $.template_global, $.array_op, $.number, $.parenthesis_expression, @@ -263,6 +252,27 @@ module.exports = grammar({ // Utilities + // myFunc:: + template_global: $ => prec(PREC.namespace_path, seq( + optional(field('global_path', '::')), + field('item', $.identifier), + repeat(seq( + '::', + field('item', choice($.identifier, $.template_params)) + )) + )), + + template_params: $ => seq( + '<', + sepSeq(choice($.template_type, $.template_generative_expression), $._comma), + '>' + ), + template_type: $ => $._type, + template_generative_expression: $ => $._expression, + + identifier: $ => /[\p{Alphabetic}_][\p{Alphabetic}_\p{Decimal_Number}]*/, + number: $ => /\d[\d_]*/, + _comma: $ => seq( ',', optional($._linebreak) @@ -270,14 +280,6 @@ module.exports = grammar({ _linebreak: $ => repeat1('\n'), // For things that must be separated by at least one newline (whitespace after is to optimize gobbling up any extra newlines) - global_identifier: $ => prec(PREC.namespace_path, seq( - //optional('::'), - sepSeq1($.identifier, '::') - )), - - identifier: $ => /[\p{Alphabetic}_][\p{Alphabetic}_\p{Decimal_Number}]*/, - number: $ => /\d[\d_]*/, - // Extras single_line_comment: $ => /\/\/[^\n]*/, @@ -285,7 +287,7 @@ module.exports = grammar({ }, conflicts: $ => [ - [$.named_type, $._expression] // Just because LR(1) is too weak to resolve 'ident[] a' vs 'type_name[]'. Tree sitter resolves this itself with more expensive GLR. NOT a precedence relation. + [$._type, $._expression] // Just because LR(1) is too weak to resolve 'ident[] a' vs 'type_name[]'. Tree sitter resolves this itself with more expensive GLR. NOT a precedence relation. ], word: $=> $.identifier, diff --git a/src/grammar.json b/src/grammar.json index 66f0b14..c3d45bc 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -808,12 +808,29 @@ } ] }, + "latency_specifier": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "'" + }, + { + "type": "FIELD", + "name": "content", + "content": { + "type": "SYMBOL", + "name": "_expression" + } + } + ] + }, "_type": { "type": "CHOICE", "members": [ { "type": "SYMBOL", - "name": "named_type" + "name": "template_global" }, { "type": "SYMBOL", @@ -842,138 +859,12 @@ } ] }, - "named_type": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "global_identifier" - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "template_params", - "content": { - "type": "SYMBOL", - "name": "template_params" - } - }, - { - "type": "BLANK" - } - ] - } - ] - }, - "template_params": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "<" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "item", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "template_type" - }, - { - "type": "SYMBOL", - "name": "template_generative_expression" - } - ] - } - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_comma" - }, - { - "type": "FIELD", - "name": "item", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "template_type" - }, - { - "type": "SYMBOL", - "name": "template_generative_expression" - } - ] - } - } - ] - } - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": ">" - } - ] - }, - "template_type": { - "type": "SYMBOL", - "name": "_type" - }, - "template_generative_expression": { - "type": "SYMBOL", - "name": "_expression" - }, - "latency_specifier": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "'" - }, - { - "type": "FIELD", - "name": "content", - "content": { - "type": "SYMBOL", - "name": "_expression" - } - } - ] - }, "_expression": { "type": "CHOICE", "members": [ { "type": "SYMBOL", - "name": "global_identifier" + "name": "template_global" }, { "type": "SYMBOL", @@ -1484,6 +1375,152 @@ } ] }, + "template_global": { + "type": "PREC", + "value": 10, + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "::" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "item", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "::" + }, + { + "type": "FIELD", + "name": "item", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "SYMBOL", + "name": "template_params" + } + ] + } + } + ] + } + } + ] + } + }, + "template_params": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "<" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "item", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "template_type" + }, + { + "type": "SYMBOL", + "name": "template_generative_expression" + } + ] + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_comma" + }, + { + "type": "FIELD", + "name": "item", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "template_type" + }, + { + "type": "SYMBOL", + "name": "template_generative_expression" + } + ] + } + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ">" + } + ] + }, + "template_type": { + "type": "SYMBOL", + "name": "_type" + }, + "template_generative_expression": { + "type": "SYMBOL", + "name": "_expression" + }, + "identifier": { + "type": "PATTERN", + "value": "[\\p{Alphabetic}_][\\p{Alphabetic}_\\p{Decimal_Number}]*" + }, + "number": { + "type": "PATTERN", + "value": "\\d[\\d_]*" + }, "_comma": { "type": "SEQ", "members": [ @@ -1512,56 +1549,6 @@ "value": "\n" } }, - "global_identifier": { - "type": "PREC", - "value": 10, - "content": { - "type": "SEQ", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "item", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "::" - }, - { - "type": "FIELD", - "name": "item", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - } - ] - } - } - ] - } - ] - } - }, - "identifier": { - "type": "PATTERN", - "value": "[\\p{Alphabetic}_][\\p{Alphabetic}_\\p{Decimal_Number}]*" - }, - "number": { - "type": "PATTERN", - "value": "\\d[\\d_]*" - }, "single_line_comment": { "type": "PATTERN", "value": "\\/\\/[^\\n]*" @@ -1587,7 +1574,7 @@ ], "conflicts": [ [ - "named_type", + "_type", "_expression" ] ], diff --git a/src/node-types.json b/src/node-types.json index e665e0b..fa8bde5 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -24,15 +24,15 @@ "named": true }, { - "type": "global_identifier", + "type": "number", "named": true }, { - "type": "number", + "type": "parenthesis_expression", "named": true }, { - "type": "parenthesis_expression", + "type": "template_global", "named": true }, { @@ -68,15 +68,15 @@ "named": true }, { - "type": "global_identifier", + "type": "number", "named": true }, { - "type": "number", + "type": "parenthesis_expression", "named": true }, { - "type": "parenthesis_expression", + "type": "template_global", "named": true }, { @@ -110,7 +110,7 @@ "named": true }, { - "type": "named_type", + "type": "template_global", "named": true } ] @@ -172,15 +172,15 @@ "named": true }, { - "type": "global_identifier", + "type": "number", "named": true }, { - "type": "number", + "type": "parenthesis_expression", "named": true }, { - "type": "parenthesis_expression", + "type": "template_global", "named": true }, { @@ -226,15 +226,15 @@ "named": true }, { - "type": "global_identifier", + "type": "number", "named": true }, { - "type": "number", + "type": "parenthesis_expression", "named": true }, { - "type": "parenthesis_expression", + "type": "template_global", "named": true }, { @@ -326,15 +326,15 @@ "named": true }, { - "type": "global_identifier", + "type": "number", "named": true }, { - "type": "number", + "type": "parenthesis_expression", "named": true }, { - "type": "parenthesis_expression", + "type": "template_global", "named": true }, { @@ -416,15 +416,15 @@ "named": true }, { - "type": "global_identifier", + "type": "number", "named": true }, { - "type": "number", + "type": "parenthesis_expression", "named": true }, { - "type": "parenthesis_expression", + "type": "template_global", "named": true }, { @@ -496,7 +496,7 @@ "named": true }, { - "type": "named_type", + "type": "template_global", "named": true } ] @@ -544,15 +544,15 @@ "named": true }, { - "type": "global_identifier", + "type": "number", "named": true }, { - "type": "number", + "type": "parenthesis_expression", "named": true }, { - "type": "parenthesis_expression", + "type": "template_global", "named": true }, { @@ -618,15 +618,15 @@ "named": true }, { - "type": "global_identifier", + "type": "number", "named": true }, { - "type": "number", + "type": "parenthesis_expression", "named": true }, { - "type": "parenthesis_expression", + "type": "template_global", "named": true }, { @@ -656,15 +656,15 @@ "named": true }, { - "type": "global_identifier", + "type": "number", "named": true }, { - "type": "number", + "type": "parenthesis_expression", "named": true }, { - "type": "parenthesis_expression", + "type": "template_global", "named": true }, { @@ -709,10 +709,6 @@ "type": "func_call", "named": true }, - { - "type": "global_identifier", - "named": true - }, { "type": "number", "named": true @@ -722,23 +718,11 @@ "named": true }, { - "type": "unary_op", + "type": "template_global", "named": true - } - ] - } - } - }, - { - "type": "global_identifier", - "named": true, - "fields": { - "item": { - "multiple": true, - "required": true, - "types": [ + }, { - "type": "identifier", + "type": "unary_op", "named": true } ] @@ -770,15 +754,15 @@ "named": true }, { - "type": "global_identifier", + "type": "number", "named": true }, { - "type": "number", + "type": "parenthesis_expression", "named": true }, { - "type": "parenthesis_expression", + "type": "template_global", "named": true }, { @@ -890,15 +874,15 @@ "named": true }, { - "type": "global_identifier", + "type": "number", "named": true }, { - "type": "number", + "type": "parenthesis_expression", "named": true }, { - "type": "parenthesis_expression", + "type": "template_global", "named": true }, { @@ -955,32 +939,6 @@ } } }, - { - "type": "named_type", - "named": true, - "fields": { - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "global_identifier", - "named": true - } - ] - }, - "template_params": { - "multiple": false, - "required": false, - "types": [ - { - "type": "template_params", - "named": true - } - ] - } - } - }, { "type": "parenthesis_expression", "named": true, @@ -1006,15 +964,15 @@ "named": true }, { - "type": "global_identifier", + "type": "number", "named": true }, { - "type": "number", + "type": "parenthesis_expression", "named": true }, { - "type": "parenthesis_expression", + "type": "template_global", "named": true }, { @@ -1050,15 +1008,15 @@ "named": true }, { - "type": "global_identifier", + "type": "number", "named": true }, { - "type": "number", + "type": "parenthesis_expression", "named": true }, { - "type": "parenthesis_expression", + "type": "template_global", "named": true }, { @@ -1145,15 +1103,15 @@ "named": true }, { - "type": "global_identifier", + "type": "number", "named": true }, { - "type": "number", + "type": "parenthesis_expression", "named": true }, { - "type": "parenthesis_expression", + "type": "template_global", "named": true }, { @@ -1163,6 +1121,26 @@ ] } }, + { + "type": "template_global", + "named": true, + "fields": { + "item": { + "multiple": true, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + }, + { + "type": "template_params", + "named": true + } + ] + } + } + }, { "type": "template_params", "named": true, @@ -1196,7 +1174,7 @@ "named": true }, { - "type": "named_type", + "type": "template_global", "named": true } ] @@ -1261,15 +1239,15 @@ "named": true }, { - "type": "global_identifier", + "type": "number", "named": true }, { - "type": "number", + "type": "parenthesis_expression", "named": true }, { - "type": "parenthesis_expression", + "type": "template_global", "named": true }, { diff --git a/src/parser.c b/src/parser.c index 9ff3b13..f878efc 100644 --- a/src/parser.c +++ b/src/parser.c @@ -5,15 +5,15 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 191 +#define STATE_COUNT 195 #define LARGE_STATE_COUNT 10 -#define SYMBOL_COUNT 91 +#define SYMBOL_COUNT 90 #define ALIAS_COUNT 0 #define TOKEN_COUNT 47 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 29 +#define FIELD_COUNT 28 #define MAX_ALIAS_SEQUENCE_LENGTH 7 -#define PRODUCTION_ID_COUNT 45 +#define PRODUCTION_ID_COUNT 43 enum ts_symbol_identifiers { sym_identifier = 1, @@ -56,10 +56,10 @@ enum ts_symbol_identifiers { anon_sym_RPAREN = 38, anon_sym_LBRACK = 39, anon_sym_RBRACK = 40, - anon_sym_COMMA = 41, - anon_sym_LF = 42, - anon_sym_COLON_COLON = 43, - sym_number = 44, + anon_sym_COLON_COLON = 41, + sym_number = 42, + anon_sym_COMMA = 43, + anon_sym_LF = 44, sym_single_line_comment = 45, sym_multi_line_comment = 46, sym_source_file = 47, @@ -78,34 +78,33 @@ enum ts_symbol_identifiers { sym_for_statement = 60, sym_declaration_list = 61, sym_declaration = 62, - sym__type = 63, - sym_array_type = 64, - sym_named_type = 65, - sym_template_params = 66, - sym_template_type = 67, - sym_template_generative_expression = 68, - sym_latency_specifier = 69, - sym__expression = 70, - sym_unary_op = 71, - sym_binary_op = 72, - sym_array_op = 73, - sym_func_call = 74, - sym_field_access = 75, - sym_parenthesis_expression_list = 76, - sym_parenthesis_expression = 77, - sym_array_bracket_expression = 78, + sym_latency_specifier = 63, + sym__type = 64, + sym_array_type = 65, + sym__expression = 66, + sym_unary_op = 67, + sym_binary_op = 68, + sym_array_op = 69, + sym_func_call = 70, + sym_field_access = 71, + sym_parenthesis_expression_list = 72, + sym_parenthesis_expression = 73, + sym_array_bracket_expression = 74, + sym_template_global = 75, + sym_template_params = 76, + sym_template_type = 77, + sym_template_generative_expression = 78, sym__comma = 79, aux_sym__linebreak = 80, - sym_global_identifier = 81, - aux_sym_source_file_repeat1 = 82, - aux_sym_template_declaration_arguments_repeat1 = 83, - aux_sym_block_repeat1 = 84, - aux_sym_assign_left_side_repeat1 = 85, - aux_sym_write_modifiers_repeat1 = 86, - aux_sym_declaration_list_repeat1 = 87, - aux_sym_template_params_repeat1 = 88, - aux_sym_parenthesis_expression_list_repeat1 = 89, - aux_sym_global_identifier_repeat1 = 90, + aux_sym_source_file_repeat1 = 81, + aux_sym_template_declaration_arguments_repeat1 = 82, + aux_sym_block_repeat1 = 83, + aux_sym_assign_left_side_repeat1 = 84, + aux_sym_write_modifiers_repeat1 = 85, + aux_sym_declaration_list_repeat1 = 86, + aux_sym_parenthesis_expression_list_repeat1 = 87, + aux_sym_template_global_repeat1 = 88, + aux_sym_template_params_repeat1 = 89, }; static const char * const ts_symbol_names[] = { @@ -150,10 +149,10 @@ static const char * const ts_symbol_names[] = { [anon_sym_RPAREN] = ")", [anon_sym_LBRACK] = "[", [anon_sym_RBRACK] = "]", - [anon_sym_COMMA] = ",", - [anon_sym_LF] = "\n", [anon_sym_COLON_COLON] = "::", [sym_number] = "number", + [anon_sym_COMMA] = ",", + [anon_sym_LF] = "\n", [sym_single_line_comment] = "single_line_comment", [sym_multi_line_comment] = "multi_line_comment", [sym_source_file] = "source_file", @@ -172,13 +171,9 @@ static const char * const ts_symbol_names[] = { [sym_for_statement] = "for_statement", [sym_declaration_list] = "declaration_list", [sym_declaration] = "declaration", + [sym_latency_specifier] = "latency_specifier", [sym__type] = "_type", [sym_array_type] = "array_type", - [sym_named_type] = "named_type", - [sym_template_params] = "template_params", - [sym_template_type] = "template_type", - [sym_template_generative_expression] = "template_generative_expression", - [sym_latency_specifier] = "latency_specifier", [sym__expression] = "_expression", [sym_unary_op] = "unary_op", [sym_binary_op] = "binary_op", @@ -188,18 +183,21 @@ static const char * const ts_symbol_names[] = { [sym_parenthesis_expression_list] = "parenthesis_expression_list", [sym_parenthesis_expression] = "parenthesis_expression", [sym_array_bracket_expression] = "array_bracket_expression", + [sym_template_global] = "template_global", + [sym_template_params] = "template_params", + [sym_template_type] = "template_type", + [sym_template_generative_expression] = "template_generative_expression", [sym__comma] = "_comma", [aux_sym__linebreak] = "_linebreak", - [sym_global_identifier] = "global_identifier", [aux_sym_source_file_repeat1] = "source_file_repeat1", [aux_sym_template_declaration_arguments_repeat1] = "template_declaration_arguments_repeat1", [aux_sym_block_repeat1] = "block_repeat1", [aux_sym_assign_left_side_repeat1] = "assign_left_side_repeat1", [aux_sym_write_modifiers_repeat1] = "write_modifiers_repeat1", [aux_sym_declaration_list_repeat1] = "declaration_list_repeat1", - [aux_sym_template_params_repeat1] = "template_params_repeat1", [aux_sym_parenthesis_expression_list_repeat1] = "parenthesis_expression_list_repeat1", - [aux_sym_global_identifier_repeat1] = "global_identifier_repeat1", + [aux_sym_template_global_repeat1] = "template_global_repeat1", + [aux_sym_template_params_repeat1] = "template_params_repeat1", }; static const TSSymbol ts_symbol_map[] = { @@ -244,10 +242,10 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_RPAREN] = anon_sym_RPAREN, [anon_sym_LBRACK] = anon_sym_LBRACK, [anon_sym_RBRACK] = anon_sym_RBRACK, - [anon_sym_COMMA] = anon_sym_COMMA, - [anon_sym_LF] = anon_sym_LF, [anon_sym_COLON_COLON] = anon_sym_COLON_COLON, [sym_number] = sym_number, + [anon_sym_COMMA] = anon_sym_COMMA, + [anon_sym_LF] = anon_sym_LF, [sym_single_line_comment] = sym_single_line_comment, [sym_multi_line_comment] = sym_multi_line_comment, [sym_source_file] = sym_source_file, @@ -266,13 +264,9 @@ static const TSSymbol ts_symbol_map[] = { [sym_for_statement] = sym_for_statement, [sym_declaration_list] = sym_declaration_list, [sym_declaration] = sym_declaration, + [sym_latency_specifier] = sym_latency_specifier, [sym__type] = sym__type, [sym_array_type] = sym_array_type, - [sym_named_type] = sym_named_type, - [sym_template_params] = sym_template_params, - [sym_template_type] = sym_template_type, - [sym_template_generative_expression] = sym_template_generative_expression, - [sym_latency_specifier] = sym_latency_specifier, [sym__expression] = sym__expression, [sym_unary_op] = sym_unary_op, [sym_binary_op] = sym_binary_op, @@ -282,18 +276,21 @@ static const TSSymbol ts_symbol_map[] = { [sym_parenthesis_expression_list] = sym_parenthesis_expression_list, [sym_parenthesis_expression] = sym_parenthesis_expression, [sym_array_bracket_expression] = sym_array_bracket_expression, + [sym_template_global] = sym_template_global, + [sym_template_params] = sym_template_params, + [sym_template_type] = sym_template_type, + [sym_template_generative_expression] = sym_template_generative_expression, [sym__comma] = sym__comma, [aux_sym__linebreak] = aux_sym__linebreak, - [sym_global_identifier] = sym_global_identifier, [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1, [aux_sym_template_declaration_arguments_repeat1] = aux_sym_template_declaration_arguments_repeat1, [aux_sym_block_repeat1] = aux_sym_block_repeat1, [aux_sym_assign_left_side_repeat1] = aux_sym_assign_left_side_repeat1, [aux_sym_write_modifiers_repeat1] = aux_sym_write_modifiers_repeat1, [aux_sym_declaration_list_repeat1] = aux_sym_declaration_list_repeat1, - [aux_sym_template_params_repeat1] = aux_sym_template_params_repeat1, [aux_sym_parenthesis_expression_list_repeat1] = aux_sym_parenthesis_expression_list_repeat1, - [aux_sym_global_identifier_repeat1] = aux_sym_global_identifier_repeat1, + [aux_sym_template_global_repeat1] = aux_sym_template_global_repeat1, + [aux_sym_template_params_repeat1] = aux_sym_template_params_repeat1, }; static const TSSymbolMetadata ts_symbol_metadata[] = { @@ -461,21 +458,21 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_COMMA] = { + [anon_sym_COLON_COLON] = { .visible = true, .named = false, }, - [anon_sym_LF] = { + [sym_number] = { .visible = true, - .named = false, + .named = true, }, - [anon_sym_COLON_COLON] = { + [anon_sym_COMMA] = { .visible = true, .named = false, }, - [sym_number] = { + [anon_sym_LF] = { .visible = true, - .named = true, + .named = false, }, [sym_single_line_comment] = { .visible = true, @@ -549,6 +546,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_latency_specifier] = { + .visible = true, + .named = true, + }, [sym__type] = { .visible = false, .named = true, @@ -557,59 +558,55 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_named_type] = { - .visible = true, + [sym__expression] = { + .visible = false, .named = true, }, - [sym_template_params] = { + [sym_unary_op] = { .visible = true, .named = true, }, - [sym_template_type] = { + [sym_binary_op] = { .visible = true, .named = true, }, - [sym_template_generative_expression] = { + [sym_array_op] = { .visible = true, .named = true, }, - [sym_latency_specifier] = { + [sym_func_call] = { .visible = true, .named = true, }, - [sym__expression] = { - .visible = false, - .named = true, - }, - [sym_unary_op] = { + [sym_field_access] = { .visible = true, .named = true, }, - [sym_binary_op] = { + [sym_parenthesis_expression_list] = { .visible = true, .named = true, }, - [sym_array_op] = { + [sym_parenthesis_expression] = { .visible = true, .named = true, }, - [sym_func_call] = { + [sym_array_bracket_expression] = { .visible = true, .named = true, }, - [sym_field_access] = { + [sym_template_global] = { .visible = true, .named = true, }, - [sym_parenthesis_expression_list] = { + [sym_template_params] = { .visible = true, .named = true, }, - [sym_parenthesis_expression] = { + [sym_template_type] = { .visible = true, .named = true, }, - [sym_array_bracket_expression] = { + [sym_template_generative_expression] = { .visible = true, .named = true, }, @@ -621,10 +618,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, - [sym_global_identifier] = { - .visible = true, - .named = true, - }, [aux_sym_source_file_repeat1] = { .visible = false, .named = false, @@ -649,15 +642,15 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, - [aux_sym_template_params_repeat1] = { + [aux_sym_parenthesis_expression_list_repeat1] = { .visible = false, .named = false, }, - [aux_sym_parenthesis_expression_list_repeat1] = { + [aux_sym_template_global_repeat1] = { .visible = false, .named = false, }, - [aux_sym_global_identifier_repeat1] = { + [aux_sym_template_params_repeat1] = { .visible = false, .named = false, }, @@ -688,11 +681,10 @@ enum ts_field_identifiers { field_outputs = 22, field_right = 23, field_template_declaration_arguments = 24, - field_template_params = 25, - field_then_block = 26, - field_to = 27, - field_type = 28, - field_write_modifiers = 29, + field_then_block = 25, + field_to = 26, + field_type = 27, + field_write_modifiers = 28, }; static const char * const ts_field_names[] = { @@ -721,7 +713,6 @@ static const char * const ts_field_names[] = { [field_outputs] = "outputs", [field_right] = "right", [field_template_declaration_arguments] = "template_declaration_arguments", - [field_template_params] = "template_params", [field_then_block] = "then_block", [field_to] = "to", [field_type] = "type", @@ -739,40 +730,38 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [8] = {.index = 11, .length = 1}, [9] = {.index = 12, .length = 1}, [10] = {.index = 13, .length = 1}, - [11] = {.index = 14, .length = 1}, - [12] = {.index = 15, .length = 3}, - [13] = {.index = 18, .length = 3}, - [14] = {.index = 21, .length = 1}, - [15] = {.index = 22, .length = 2}, - [16] = {.index = 24, .length = 2}, - [17] = {.index = 26, .length = 2}, + [11] = {.index = 14, .length = 3}, + [12] = {.index = 17, .length = 3}, + [13] = {.index = 20, .length = 1}, + [14] = {.index = 21, .length = 2}, + [15] = {.index = 23, .length = 2}, + [16] = {.index = 25, .length = 2}, + [17] = {.index = 27, .length = 1}, [18] = {.index = 28, .length = 1}, [19] = {.index = 29, .length = 1}, [20] = {.index = 30, .length = 2}, - [21] = {.index = 32, .length = 1}, - [22] = {.index = 33, .length = 2}, - [23] = {.index = 35, .length = 2}, - [24] = {.index = 37, .length = 2}, - [25] = {.index = 39, .length = 4}, - [26] = {.index = 43, .length = 1}, - [27] = {.index = 44, .length = 3}, - [28] = {.index = 47, .length = 3}, - [29] = {.index = 50, .length = 3}, - [30] = {.index = 53, .length = 2}, - [31] = {.index = 55, .length = 2}, + [21] = {.index = 32, .length = 2}, + [22] = {.index = 34, .length = 2}, + [23] = {.index = 36, .length = 4}, + [24] = {.index = 40, .length = 1}, + [25] = {.index = 41, .length = 3}, + [26] = {.index = 44, .length = 3}, + [27] = {.index = 47, .length = 3}, + [28] = {.index = 50, .length = 2}, + [29] = {.index = 52, .length = 2}, + [30] = {.index = 54, .length = 2}, + [31] = {.index = 56, .length = 1}, [32] = {.index = 57, .length = 2}, - [33] = {.index = 59, .length = 1}, - [34] = {.index = 60, .length = 2}, - [35] = {.index = 62, .length = 3}, - [36] = {.index = 65, .length = 2}, - [37] = {.index = 67, .length = 1}, - [38] = {.index = 68, .length = 4}, - [39] = {.index = 72, .length = 4}, - [40] = {.index = 76, .length = 4}, - [41] = {.index = 80, .length = 2}, - [42] = {.index = 82, .length = 5}, - [43] = {.index = 87, .length = 3}, - [44] = {.index = 90, .length = 4}, + [33] = {.index = 59, .length = 3}, + [34] = {.index = 62, .length = 2}, + [35] = {.index = 64, .length = 1}, + [36] = {.index = 65, .length = 4}, + [37] = {.index = 69, .length = 4}, + [38] = {.index = 73, .length = 4}, + [39] = {.index = 77, .length = 2}, + [40] = {.index = 79, .length = 5}, + [41] = {.index = 84, .length = 3}, + [42] = {.index = 87, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -797,119 +786,114 @@ static const TSFieldMapEntry ts_field_map_entries[] = { [11] = {field_inputs, 1}, [12] = - {field_name, 0}, - [13] = {field_expr_or_decl, 0}, - [14] = + [13] = {field_item, 0, .inherited = true}, - [15] = + [14] = {field_block, 3}, {field_interface_ports, 2}, {field_name, 1}, - [18] = + [17] = {field_block, 3}, {field_name, 1}, {field_template_declaration_arguments, 2}, - [21] = + [20] = {field_outputs, 1}, - [22] = + [21] = {field_inputs, 1}, {field_outputs, 2, .inherited = true}, - [24] = + [23] = {field_name, 1}, {field_type, 0}, - [26] = + [25] = {field_arr, 0}, {field_arr_idx, 1}, - [28] = + [27] = {field_outputs, 2, .inherited = true}, - [29] = + [28] = {field_inputs, 2}, - [30] = - {field_name, 0}, - {field_template_params, 1}, - [32] = + [29] = {field_name, 1}, - [33] = + [30] = {field_operator, 0}, {field_right, 1}, - [35] = + [32] = {field_expr_or_decl, 1}, {field_write_modifiers, 0}, - [37] = + [34] = {field_arguments, 1}, {field_name, 0}, - [39] = + [36] = {field_block, 4}, {field_interface_ports, 3}, {field_name, 1}, {field_template_declaration_arguments, 2}, - [43] = + [40] = {field_outputs, 2}, - [44] = + [41] = {field_io_port_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [47] = + [44] = {field_declaration_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [50] = + [47] = {field_latency_specifier, 2}, {field_name, 1}, {field_type, 0}, - [53] = + [50] = {field_inputs, 2}, {field_outputs, 3, .inherited = true}, - [55] = + [52] = {field_interface_ports, 2}, {field_name, 1}, - [57] = + [54] = {field_condition, 1}, {field_then_block, 2}, - [59] = + [56] = {field_content, 1}, - [60] = + [57] = {field_assign_left, 0}, {field_assign_value, 2}, - [62] = + [59] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [65] = + [62] = {field_left, 0}, {field_name, 2}, - [67] = + [64] = {field_item, 2}, - [68] = + [65] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_name, 3}, {field_type, 2}, - [72] = + [69] = {field_io_port_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [76] = + [73] = {field_declaration_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [80] = + [77] = {field_item, 2}, {field_item, 3, .inherited = true}, - [82] = + [79] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_latency_specifier, 4}, {field_name, 3}, {field_type, 2}, - [87] = + [84] = {field_condition, 1}, {field_else_block, 4}, {field_then_block, 2}, - [90] = + [87] = {field_block, 6}, {field_for_decl, 1}, {field_from, 3}, @@ -973,13 +957,13 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [45] = 45, [46] = 46, [47] = 47, - [48] = 38, + [48] = 48, [49] = 49, [50] = 50, [51] = 51, [52] = 52, [53] = 53, - [54] = 54, + [54] = 53, [55] = 55, [56] = 56, [57] = 57, @@ -996,9 +980,9 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [68] = 68, [69] = 69, [70] = 70, - [71] = 71, + [71] = 57, [72] = 72, - [73] = 73, + [73] = 44, [74] = 74, [75] = 75, [76] = 76, @@ -1066,8 +1050,8 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [138] = 138, [139] = 139, [140] = 140, - [141] = 141, - [142] = 33, + [141] = 38, + [142] = 142, [143] = 143, [144] = 144, [145] = 145, @@ -1094,7 +1078,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [166] = 166, [167] = 167, [168] = 168, - [169] = 169, + [169] = 28, [170] = 170, [171] = 171, [172] = 172, @@ -1116,6 +1100,10 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [188] = 188, [189] = 189, [190] = 190, + [191] = 191, + [192] = 192, + [193] = 193, + [194] = 194, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -3033,248 +3021,234 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (eof) ADVANCE(9); - if (lookahead == '\n') ADVANCE(42); - if (lookahead == '!') ADVANCE(26); - if (lookahead == '%') ADVANCE(35); - if (lookahead == '&') ADVANCE(28); - if (lookahead == '\'') ADVANCE(21); - if (lookahead == '(') ADVANCE(37); - if (lookahead == ')') ADVANCE(38); - if (lookahead == '*') ADVANCE(24); - if (lookahead == '+') ADVANCE(22); - if (lookahead == ',') ADVANCE(41); - if (lookahead == '-') ADVANCE(23); - if (lookahead == '.') ADVANCE(36); - if (lookahead == '/') ADVANCE(34); - if (lookahead == ':') ADVANCE(11); - if (lookahead == '<') ADVANCE(14); - if (lookahead == '=') ADVANCE(19); - if (lookahead == '>') ADVANCE(16); - if (lookahead == '[') ADVANCE(39); - if (lookahead == ']') ADVANCE(40); - if (lookahead == '^') ADVANCE(29); - if (lookahead == '{') ADVANCE(17); - if (lookahead == '|') ADVANCE(27); - if (lookahead == '}') ADVANCE(18); + if (eof) ADVANCE(8); + if (lookahead == '\n') ADVANCE(43); + if (lookahead == '!') ADVANCE(24); + if (lookahead == '%') ADVANCE(33); + if (lookahead == '&') ADVANCE(26); + if (lookahead == '\'') ADVANCE(19); + if (lookahead == '(') ADVANCE(35); + if (lookahead == ')') ADVANCE(36); + if (lookahead == '*') ADVANCE(22); + if (lookahead == '+') ADVANCE(20); + if (lookahead == ',') ADVANCE(42); + if (lookahead == '-') ADVANCE(21); + if (lookahead == '.') ADVANCE(34); + if (lookahead == '/') ADVANCE(32); + if (lookahead == ':') ADVANCE(9); + if (lookahead == '<') ADVANCE(11); + if (lookahead == '=') ADVANCE(17); + if (lookahead == '>') ADVANCE(13); + if (lookahead == '[') ADVANCE(37); + if (lookahead == ']') ADVANCE(38); + if (lookahead == '^') ADVANCE(27); + if (lookahead == '{') ADVANCE(14); + if (lookahead == '|') ADVANCE(25); + if (lookahead == '}') ADVANCE(15); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(0) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(45); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(44); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(41); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(40); END_STATE(); case 1: - if (lookahead == '\n') ADVANCE(42); - if (lookahead == '!') ADVANCE(25); - if (lookahead == '&') ADVANCE(28); - if (lookahead == '(') ADVANCE(37); - if (lookahead == ')') ADVANCE(38); - if (lookahead == '*') ADVANCE(24); - if (lookahead == '+') ADVANCE(22); - if (lookahead == ',') ADVANCE(41); - if (lookahead == '-') ADVANCE(23); - if (lookahead == '/') ADVANCE(4); - if (lookahead == ':') ADVANCE(7); - if (lookahead == '<') ADVANCE(13); - if (lookahead == '>') ADVANCE(15); - if (lookahead == '[') ADVANCE(39); - if (lookahead == '^') ADVANCE(29); - if (lookahead == '{') ADVANCE(17); - if (lookahead == '|') ADVANCE(27); - if (lookahead == '}') ADVANCE(18); + if (lookahead == '\n') ADVANCE(43); + if (lookahead == '!') ADVANCE(23); + if (lookahead == '&') ADVANCE(26); + if (lookahead == '\'') ADVANCE(19); + if (lookahead == '(') ADVANCE(35); + if (lookahead == ')') ADVANCE(36); + if (lookahead == '*') ADVANCE(22); + if (lookahead == '+') ADVANCE(20); + if (lookahead == ',') ADVANCE(42); + if (lookahead == '-') ADVANCE(21); + if (lookahead == '/') ADVANCE(3); + if (lookahead == ':') ADVANCE(6); + if (lookahead == '=') ADVANCE(16); + if (lookahead == '>') ADVANCE(12); + if (lookahead == '[') ADVANCE(37); + if (lookahead == '^') ADVANCE(27); + if (lookahead == '{') ADVANCE(14); + if (lookahead == '|') ADVANCE(25); + if (lookahead == '}') ADVANCE(15); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(1) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(45); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(44); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(41); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(40); END_STATE(); case 2: - if (lookahead == '\n') ADVANCE(42); - if (lookahead == '!') ADVANCE(8); - if (lookahead == '%') ADVANCE(35); - if (lookahead == '&') ADVANCE(28); - if (lookahead == '(') ADVANCE(37); - if (lookahead == ')') ADVANCE(38); - if (lookahead == '*') ADVANCE(24); - if (lookahead == '+') ADVANCE(22); - if (lookahead == ',') ADVANCE(41); - if (lookahead == '-') ADVANCE(23); - if (lookahead == '.') ADVANCE(36); - if (lookahead == '/') ADVANCE(34); - if (lookahead == ':') ADVANCE(7); - if (lookahead == '<') ADVANCE(14); - if (lookahead == '=') ADVANCE(19); - if (lookahead == '>') ADVANCE(16); - if (lookahead == '[') ADVANCE(39); - if (lookahead == ']') ADVANCE(40); - if (lookahead == '^') ADVANCE(29); - if (lookahead == '{') ADVANCE(17); - if (lookahead == '|') ADVANCE(27); - if (lookahead == '}') ADVANCE(18); + if (lookahead == '\n') ADVANCE(43); + if (lookahead == '!') ADVANCE(7); + if (lookahead == '%') ADVANCE(33); + if (lookahead == '&') ADVANCE(26); + if (lookahead == '(') ADVANCE(35); + if (lookahead == ')') ADVANCE(36); + if (lookahead == '*') ADVANCE(22); + if (lookahead == '+') ADVANCE(20); + if (lookahead == ',') ADVANCE(42); + if (lookahead == '-') ADVANCE(21); + if (lookahead == '.') ADVANCE(34); + if (lookahead == '/') ADVANCE(32); + if (lookahead == ':') ADVANCE(6); + if (lookahead == '<') ADVANCE(11); + if (lookahead == '=') ADVANCE(17); + if (lookahead == '>') ADVANCE(13); + if (lookahead == '[') ADVANCE(37); + if (lookahead == ']') ADVANCE(38); + if (lookahead == '^') ADVANCE(27); + if (lookahead == '{') ADVANCE(14); + if (lookahead == '|') ADVANCE(25); + if (lookahead == '}') ADVANCE(15); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(2) - if (sym_identifier_character_set_1(lookahead)) ADVANCE(44); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(40); END_STATE(); case 3: - if (lookahead == '\n') ADVANCE(42); - if (lookahead == '/') ADVANCE(4); - if (lookahead == ':') ADVANCE(10); - if (lookahead == '<') ADVANCE(13); - if (lookahead == '{') ADVANCE(17); - if (lookahead == '}') ADVANCE(18); - if (lookahead == '\t' || - lookahead == '\r' || - lookahead == ' ') SKIP(3) + if (lookahead == '*') ADVANCE(5); + if (lookahead == '/') ADVANCE(44); END_STATE(); case 4: - if (lookahead == '*') ADVANCE(6); - if (lookahead == '/') ADVANCE(46); + if (lookahead == '*') ADVANCE(4); + if (lookahead == '/') ADVANCE(45); + if (lookahead != 0) ADVANCE(5); END_STATE(); case 5: - if (lookahead == '*') ADVANCE(5); - if (lookahead == '/') ADVANCE(47); - if (lookahead != 0) ADVANCE(6); + if (lookahead == '*') ADVANCE(4); + if (lookahead != 0) ADVANCE(5); END_STATE(); case 6: - if (lookahead == '*') ADVANCE(5); - if (lookahead != 0) ADVANCE(6); + if (lookahead == ':') ADVANCE(39); END_STATE(); case 7: - if (lookahead == ':') ADVANCE(43); + if (lookahead == '=') ADVANCE(29); END_STATE(); case 8: - if (lookahead == '=') ADVANCE(31); + ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); case 9: - ACCEPT_TOKEN(ts_builtin_sym_end); + ACCEPT_TOKEN(anon_sym_COLON); END_STATE(); case 10: - ACCEPT_TOKEN(anon_sym_COLON); + ACCEPT_TOKEN(anon_sym_DASH_GT); END_STATE(); case 11: - ACCEPT_TOKEN(anon_sym_COLON); - if (lookahead == ':') ADVANCE(43); + ACCEPT_TOKEN(anon_sym_LT); + if (lookahead == '=') ADVANCE(30); END_STATE(); case 12: - ACCEPT_TOKEN(anon_sym_DASH_GT); + ACCEPT_TOKEN(anon_sym_GT); END_STATE(); case 13: - ACCEPT_TOKEN(anon_sym_LT); + ACCEPT_TOKEN(anon_sym_GT); + if (lookahead == '=') ADVANCE(31); END_STATE(); case 14: - ACCEPT_TOKEN(anon_sym_LT); - if (lookahead == '=') ADVANCE(32); + ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); case 15: - ACCEPT_TOKEN(anon_sym_GT); + ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); case 16: - ACCEPT_TOKEN(anon_sym_GT); - if (lookahead == '=') ADVANCE(33); + ACCEPT_TOKEN(anon_sym_EQ); END_STATE(); case 17: - ACCEPT_TOKEN(anon_sym_LBRACE); + ACCEPT_TOKEN(anon_sym_EQ); + if (lookahead == '=') ADVANCE(28); END_STATE(); case 18: - ACCEPT_TOKEN(anon_sym_RBRACE); + ACCEPT_TOKEN(anon_sym_DOT_DOT); END_STATE(); case 19: - ACCEPT_TOKEN(anon_sym_EQ); - if (lookahead == '=') ADVANCE(30); + ACCEPT_TOKEN(anon_sym_SQUOTE); END_STATE(); case 20: - ACCEPT_TOKEN(anon_sym_DOT_DOT); + ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); case 21: - ACCEPT_TOKEN(anon_sym_SQUOTE); + ACCEPT_TOKEN(anon_sym_DASH); + if (lookahead == '>') ADVANCE(10); END_STATE(); case 22: - ACCEPT_TOKEN(anon_sym_PLUS); + ACCEPT_TOKEN(anon_sym_STAR); END_STATE(); case 23: - ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '>') ADVANCE(12); + ACCEPT_TOKEN(anon_sym_BANG); END_STATE(); case 24: - ACCEPT_TOKEN(anon_sym_STAR); + ACCEPT_TOKEN(anon_sym_BANG); + if (lookahead == '=') ADVANCE(29); END_STATE(); case 25: - ACCEPT_TOKEN(anon_sym_BANG); + ACCEPT_TOKEN(anon_sym_PIPE); END_STATE(); case 26: - ACCEPT_TOKEN(anon_sym_BANG); - if (lookahead == '=') ADVANCE(31); + ACCEPT_TOKEN(anon_sym_AMP); END_STATE(); case 27: - ACCEPT_TOKEN(anon_sym_PIPE); + ACCEPT_TOKEN(anon_sym_CARET); END_STATE(); case 28: - ACCEPT_TOKEN(anon_sym_AMP); + ACCEPT_TOKEN(anon_sym_EQ_EQ); END_STATE(); case 29: - ACCEPT_TOKEN(anon_sym_CARET); + ACCEPT_TOKEN(anon_sym_BANG_EQ); END_STATE(); case 30: - ACCEPT_TOKEN(anon_sym_EQ_EQ); + ACCEPT_TOKEN(anon_sym_LT_EQ); END_STATE(); case 31: - ACCEPT_TOKEN(anon_sym_BANG_EQ); + ACCEPT_TOKEN(anon_sym_GT_EQ); END_STATE(); case 32: - ACCEPT_TOKEN(anon_sym_LT_EQ); + ACCEPT_TOKEN(anon_sym_SLASH); + if (lookahead == '*') ADVANCE(5); + if (lookahead == '/') ADVANCE(44); END_STATE(); case 33: - ACCEPT_TOKEN(anon_sym_GT_EQ); + ACCEPT_TOKEN(anon_sym_PERCENT); END_STATE(); case 34: - ACCEPT_TOKEN(anon_sym_SLASH); - if (lookahead == '*') ADVANCE(6); - if (lookahead == '/') ADVANCE(46); + ACCEPT_TOKEN(anon_sym_DOT); + if (lookahead == '.') ADVANCE(18); END_STATE(); case 35: - ACCEPT_TOKEN(anon_sym_PERCENT); + ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); case 36: - ACCEPT_TOKEN(anon_sym_DOT); - if (lookahead == '.') ADVANCE(20); + ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); case 37: - ACCEPT_TOKEN(anon_sym_LPAREN); + ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); case 38: - ACCEPT_TOKEN(anon_sym_RPAREN); + ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); case 39: - ACCEPT_TOKEN(anon_sym_LBRACK); + ACCEPT_TOKEN(anon_sym_COLON_COLON); END_STATE(); case 40: - ACCEPT_TOKEN(anon_sym_RBRACK); + ACCEPT_TOKEN(sym_identifier); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(40); END_STATE(); case 41: - ACCEPT_TOKEN(anon_sym_COMMA); + ACCEPT_TOKEN(sym_number); + if (('0' <= lookahead && lookahead <= '9') || + lookahead == '_') ADVANCE(41); END_STATE(); case 42: - ACCEPT_TOKEN(anon_sym_LF); + ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); case 43: - ACCEPT_TOKEN(anon_sym_COLON_COLON); + ACCEPT_TOKEN(anon_sym_LF); END_STATE(); case 44: - ACCEPT_TOKEN(sym_identifier); - if (sym_identifier_character_set_2(lookahead)) ADVANCE(44); - END_STATE(); - case 45: - ACCEPT_TOKEN(sym_number); - if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(45); - END_STATE(); - case 46: ACCEPT_TOKEN(sym_single_line_comment); if (lookahead != 0 && - lookahead != '\n') ADVANCE(46); + lookahead != '\n') ADVANCE(44); END_STATE(); - case 47: + case 45: ACCEPT_TOKEN(sym_multi_line_comment); END_STATE(); default: @@ -3484,18 +3458,18 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [28] = {.lex_state = 2}, [29] = {.lex_state = 2}, [30] = {.lex_state = 2}, - [31] = {.lex_state = 1}, + [31] = {.lex_state = 2}, [32] = {.lex_state = 2}, - [33] = {.lex_state = 1}, - [34] = {.lex_state = 1}, + [33] = {.lex_state = 2}, + [34] = {.lex_state = 2}, [35] = {.lex_state = 2}, - [36] = {.lex_state = 2}, - [37] = {.lex_state = 1}, - [38] = {.lex_state = 2}, - [39] = {.lex_state = 2}, + [36] = {.lex_state = 1}, + [37] = {.lex_state = 2}, + [38] = {.lex_state = 1}, + [39] = {.lex_state = 1}, [40] = {.lex_state = 2}, [41] = {.lex_state = 2}, - [42] = {.lex_state = 2}, + [42] = {.lex_state = 1}, [43] = {.lex_state = 2}, [44] = {.lex_state = 2}, [45] = {.lex_state = 2}, @@ -3503,11 +3477,11 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [47] = {.lex_state = 2}, [48] = {.lex_state = 2}, [49] = {.lex_state = 1}, - [50] = {.lex_state = 1}, - [51] = {.lex_state = 1}, - [52] = {.lex_state = 1}, - [53] = {.lex_state = 1}, - [54] = {.lex_state = 1}, + [50] = {.lex_state = 2}, + [51] = {.lex_state = 2}, + [52] = {.lex_state = 2}, + [53] = {.lex_state = 2}, + [54] = {.lex_state = 2}, [55] = {.lex_state = 1}, [56] = {.lex_state = 1}, [57] = {.lex_state = 1}, @@ -3522,42 +3496,42 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [66] = {.lex_state = 1}, [67] = {.lex_state = 1}, [68] = {.lex_state = 1}, - [69] = {.lex_state = 0}, + [69] = {.lex_state = 1}, [70] = {.lex_state = 1}, - [71] = {.lex_state = 0}, + [71] = {.lex_state = 1}, [72] = {.lex_state = 1}, - [73] = {.lex_state = 0}, - [74] = {.lex_state = 0}, - [75] = {.lex_state = 0}, - [76] = {.lex_state = 0}, - [77] = {.lex_state = 0}, - [78] = {.lex_state = 0}, - [79] = {.lex_state = 0}, - [80] = {.lex_state = 0}, - [81] = {.lex_state = 0}, - [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}, + [73] = {.lex_state = 2}, + [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 = 1}, + [83] = {.lex_state = 1}, + [84] = {.lex_state = 1}, + [85] = {.lex_state = 1}, + [86] = {.lex_state = 1}, + [87] = {.lex_state = 1}, + [88] = {.lex_state = 1}, + [89] = {.lex_state = 1}, + [90] = {.lex_state = 1}, [91] = {.lex_state = 1}, - [92] = {.lex_state = 3}, - [93] = {.lex_state = 0}, - [94] = {.lex_state = 0}, + [92] = {.lex_state = 1}, + [93] = {.lex_state = 1}, + [94] = {.lex_state = 1}, [95] = {.lex_state = 0}, [96] = {.lex_state = 0}, [97] = {.lex_state = 0}, [98] = {.lex_state = 0}, [99] = {.lex_state = 0}, - [100] = {.lex_state = 0}, + [100] = {.lex_state = 1}, [101] = {.lex_state = 0}, [102] = {.lex_state = 0}, [103] = {.lex_state = 0}, - [104] = {.lex_state = 0}, + [104] = {.lex_state = 1}, [105] = {.lex_state = 0}, [106] = {.lex_state = 0}, [107] = {.lex_state = 0}, @@ -3565,21 +3539,21 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [109] = {.lex_state = 0}, [110] = {.lex_state = 0}, [111] = {.lex_state = 0}, - [112] = {.lex_state = 0}, + [112] = {.lex_state = 1}, [113] = {.lex_state = 0}, [114] = {.lex_state = 0}, [115] = {.lex_state = 0}, [116] = {.lex_state = 0}, [117] = {.lex_state = 0}, [118] = {.lex_state = 0}, - [119] = {.lex_state = 0}, + [119] = {.lex_state = 1}, [120] = {.lex_state = 0}, [121] = {.lex_state = 0}, [122] = {.lex_state = 0}, - [123] = {.lex_state = 0}, + [123] = {.lex_state = 1}, [124] = {.lex_state = 0}, [125] = {.lex_state = 0}, - [126] = {.lex_state = 0}, + [126] = {.lex_state = 1}, [127] = {.lex_state = 0}, [128] = {.lex_state = 0}, [129] = {.lex_state = 0}, @@ -3591,27 +3565,27 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [135] = {.lex_state = 0}, [136] = {.lex_state = 0}, [137] = {.lex_state = 0}, - [138] = {.lex_state = 0}, + [138] = {.lex_state = 1}, [139] = {.lex_state = 0}, [140] = {.lex_state = 0}, [141] = {.lex_state = 0}, [142] = {.lex_state = 0}, [143] = {.lex_state = 0}, - [144] = {.lex_state = 3}, + [144] = {.lex_state = 0}, [145] = {.lex_state = 0}, [146] = {.lex_state = 0}, [147] = {.lex_state = 0}, [148] = {.lex_state = 0}, - [149] = {.lex_state = 0}, + [149] = {.lex_state = 1}, [150] = {.lex_state = 0}, [151] = {.lex_state = 0}, [152] = {.lex_state = 0}, [153] = {.lex_state = 0}, [154] = {.lex_state = 0}, [155] = {.lex_state = 0}, - [156] = {.lex_state = 3}, - [157] = {.lex_state = 0}, - [158] = {.lex_state = 0}, + [156] = {.lex_state = 1}, + [157] = {.lex_state = 1}, + [158] = {.lex_state = 1}, [159] = {.lex_state = 0}, [160] = {.lex_state = 0}, [161] = {.lex_state = 0}, @@ -3622,28 +3596,32 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [166] = {.lex_state = 0}, [167] = {.lex_state = 0}, [168] = {.lex_state = 0}, - [169] = {.lex_state = 3}, + [169] = {.lex_state = 1}, [170] = {.lex_state = 0}, [171] = {.lex_state = 0}, [172] = {.lex_state = 0}, [173] = {.lex_state = 0}, [174] = {.lex_state = 0}, - [175] = {.lex_state = 3}, + [175] = {.lex_state = 0}, [176] = {.lex_state = 0}, [177] = {.lex_state = 0}, - [178] = {.lex_state = 3}, + [178] = {.lex_state = 0}, [179] = {.lex_state = 0}, [180] = {.lex_state = 0}, [181] = {.lex_state = 0}, [182] = {.lex_state = 0}, [183] = {.lex_state = 0}, - [184] = {.lex_state = 0}, - [185] = {.lex_state = 0}, + [184] = {.lex_state = 1}, + [185] = {.lex_state = 1}, [186] = {.lex_state = 0}, [187] = {.lex_state = 0}, [188] = {.lex_state = 0}, [189] = {.lex_state = 0}, [190] = {.lex_state = 0}, + [191] = {.lex_state = 0}, + [192] = {.lex_state = 0}, + [193] = {.lex_state = 0}, + [194] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -3689,17 +3667,16 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_RPAREN] = ACTIONS(1), [anon_sym_LBRACK] = ACTIONS(1), [anon_sym_RBRACK] = ACTIONS(1), + [sym_number] = ACTIONS(1), [anon_sym_COMMA] = ACTIONS(1), [anon_sym_LF] = ACTIONS(1), - [anon_sym_COLON_COLON] = ACTIONS(1), - [sym_number] = ACTIONS(1), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [1] = { [sym_source_file] = STATE(190), - [sym_module] = STATE(110), - [aux_sym__linebreak] = STATE(105), + [sym_module] = STATE(120), + [aux_sym__linebreak] = STATE(111), [ts_builtin_sym_end] = ACTIONS(5), [anon_sym_module] = ACTIONS(7), [anon_sym_LF] = ACTIONS(9), @@ -3707,28 +3684,27 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [2] = { - [sym_block] = STATE(172), - [sym_interface_statement] = STATE(172), - [sym_decl_assign_statement] = STATE(172), - [sym_assign_left_side] = STATE(168), - [sym_assign_to] = STATE(95), - [sym_write_modifiers] = STATE(31), - [sym_if_statement] = STATE(172), - [sym_for_statement] = STATE(172), - [sym_declaration] = STATE(111), - [sym__type] = STATE(165), - [sym_array_type] = STATE(165), - [sym_named_type] = STATE(165), - [sym__expression] = STATE(36), - [sym_unary_op] = STATE(36), - [sym_binary_op] = STATE(36), - [sym_array_op] = STATE(36), - [sym_func_call] = STATE(36), - [sym_field_access] = STATE(36), - [sym_parenthesis_expression] = STATE(36), - [aux_sym__linebreak] = STATE(33), - [sym_global_identifier] = STATE(38), - [aux_sym_write_modifiers_repeat1] = STATE(68), + [sym_block] = STATE(176), + [sym_interface_statement] = STATE(176), + [sym_decl_assign_statement] = STATE(176), + [sym_assign_left_side] = STATE(171), + [sym_assign_to] = STATE(99), + [sym_write_modifiers] = STATE(36), + [sym_if_statement] = STATE(176), + [sym_for_statement] = STATE(176), + [sym_declaration] = STATE(118), + [sym__type] = STATE(160), + [sym_array_type] = STATE(160), + [sym__expression] = STATE(41), + [sym_unary_op] = STATE(41), + [sym_binary_op] = STATE(41), + [sym_array_op] = STATE(41), + [sym_func_call] = STATE(41), + [sym_field_access] = STATE(41), + [sym_parenthesis_expression] = STATE(41), + [sym_template_global] = STATE(44), + [aux_sym__linebreak] = STATE(38), + [aux_sym_write_modifiers_repeat1] = STATE(75), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), [anon_sym_RBRACE] = ACTIONS(15), @@ -3749,37 +3725,37 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_AMP] = ACTIONS(31), [anon_sym_CARET] = ACTIONS(31), [anon_sym_LPAREN] = ACTIONS(33), - [anon_sym_LF] = ACTIONS(35), + [anon_sym_COLON_COLON] = ACTIONS(35), [sym_number] = ACTIONS(37), + [anon_sym_LF] = ACTIONS(39), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [3] = { - [sym_block] = STATE(113), - [sym_interface_statement] = STATE(113), - [sym_decl_assign_statement] = STATE(113), - [sym_assign_left_side] = STATE(104), - [sym_assign_to] = STATE(95), - [sym_write_modifiers] = STATE(31), - [sym_if_statement] = STATE(113), - [sym_for_statement] = STATE(113), - [sym_declaration] = STATE(111), - [sym__type] = STATE(165), - [sym_array_type] = STATE(165), - [sym_named_type] = STATE(165), - [sym__expression] = STATE(36), - [sym_unary_op] = STATE(36), - [sym_binary_op] = STATE(36), - [sym_array_op] = STATE(36), - [sym_func_call] = STATE(36), - [sym_field_access] = STATE(36), - [sym_parenthesis_expression] = STATE(36), - [aux_sym__linebreak] = STATE(33), - [sym_global_identifier] = STATE(38), - [aux_sym_write_modifiers_repeat1] = STATE(68), + [sym_block] = STATE(132), + [sym_interface_statement] = STATE(132), + [sym_decl_assign_statement] = STATE(132), + [sym_assign_left_side] = STATE(103), + [sym_assign_to] = STATE(99), + [sym_write_modifiers] = STATE(36), + [sym_if_statement] = STATE(132), + [sym_for_statement] = STATE(132), + [sym_declaration] = STATE(118), + [sym__type] = STATE(160), + [sym_array_type] = STATE(160), + [sym__expression] = STATE(41), + [sym_unary_op] = STATE(41), + [sym_binary_op] = STATE(41), + [sym_array_op] = STATE(41), + [sym_func_call] = STATE(41), + [sym_field_access] = STATE(41), + [sym_parenthesis_expression] = STATE(41), + [sym_template_global] = STATE(44), + [aux_sym__linebreak] = STATE(38), + [aux_sym_write_modifiers_repeat1] = STATE(75), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(39), + [anon_sym_RBRACE] = ACTIONS(41), [anon_sym_interface] = ACTIONS(17), [anon_sym_reg] = ACTIONS(19), [anon_sym_initial] = ACTIONS(21), @@ -3797,37 +3773,37 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_AMP] = ACTIONS(31), [anon_sym_CARET] = ACTIONS(31), [anon_sym_LPAREN] = ACTIONS(33), - [anon_sym_LF] = ACTIONS(35), + [anon_sym_COLON_COLON] = ACTIONS(35), [sym_number] = ACTIONS(37), + [anon_sym_LF] = ACTIONS(39), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [4] = { - [sym_block] = STATE(172), - [sym_interface_statement] = STATE(172), - [sym_decl_assign_statement] = STATE(172), - [sym_assign_left_side] = STATE(168), - [sym_assign_to] = STATE(95), - [sym_write_modifiers] = STATE(31), - [sym_if_statement] = STATE(172), - [sym_for_statement] = STATE(172), - [sym_declaration] = STATE(111), - [sym__type] = STATE(165), - [sym_array_type] = STATE(165), - [sym_named_type] = STATE(165), - [sym__expression] = STATE(36), - [sym_unary_op] = STATE(36), - [sym_binary_op] = STATE(36), - [sym_array_op] = STATE(36), - [sym_func_call] = STATE(36), - [sym_field_access] = STATE(36), - [sym_parenthesis_expression] = STATE(36), - [aux_sym__linebreak] = STATE(33), - [sym_global_identifier] = STATE(38), - [aux_sym_write_modifiers_repeat1] = STATE(68), + [sym_block] = STATE(176), + [sym_interface_statement] = STATE(176), + [sym_decl_assign_statement] = STATE(176), + [sym_assign_left_side] = STATE(171), + [sym_assign_to] = STATE(99), + [sym_write_modifiers] = STATE(36), + [sym_if_statement] = STATE(176), + [sym_for_statement] = STATE(176), + [sym_declaration] = STATE(118), + [sym__type] = STATE(160), + [sym_array_type] = STATE(160), + [sym__expression] = STATE(41), + [sym_unary_op] = STATE(41), + [sym_binary_op] = STATE(41), + [sym_array_op] = STATE(41), + [sym_func_call] = STATE(41), + [sym_field_access] = STATE(41), + [sym_parenthesis_expression] = STATE(41), + [sym_template_global] = STATE(44), + [aux_sym__linebreak] = STATE(38), + [aux_sym_write_modifiers_repeat1] = STATE(75), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(41), + [anon_sym_RBRACE] = ACTIONS(43), [anon_sym_interface] = ACTIONS(17), [anon_sym_reg] = ACTIONS(19), [anon_sym_initial] = ACTIONS(21), @@ -3845,37 +3821,37 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_AMP] = ACTIONS(31), [anon_sym_CARET] = ACTIONS(31), [anon_sym_LPAREN] = ACTIONS(33), - [anon_sym_LF] = ACTIONS(35), + [anon_sym_COLON_COLON] = ACTIONS(35), [sym_number] = ACTIONS(37), + [anon_sym_LF] = ACTIONS(39), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [5] = { - [sym_block] = STATE(172), - [sym_interface_statement] = STATE(172), - [sym_decl_assign_statement] = STATE(172), - [sym_assign_left_side] = STATE(168), - [sym_assign_to] = STATE(95), - [sym_write_modifiers] = STATE(31), - [sym_if_statement] = STATE(172), - [sym_for_statement] = STATE(172), - [sym_declaration] = STATE(111), - [sym__type] = STATE(165), - [sym_array_type] = STATE(165), - [sym_named_type] = STATE(165), - [sym__expression] = STATE(36), - [sym_unary_op] = STATE(36), - [sym_binary_op] = STATE(36), - [sym_array_op] = STATE(36), - [sym_func_call] = STATE(36), - [sym_field_access] = STATE(36), - [sym_parenthesis_expression] = STATE(36), - [aux_sym__linebreak] = STATE(33), - [sym_global_identifier] = STATE(38), - [aux_sym_write_modifiers_repeat1] = STATE(68), + [sym_block] = STATE(176), + [sym_interface_statement] = STATE(176), + [sym_decl_assign_statement] = STATE(176), + [sym_assign_left_side] = STATE(171), + [sym_assign_to] = STATE(99), + [sym_write_modifiers] = STATE(36), + [sym_if_statement] = STATE(176), + [sym_for_statement] = STATE(176), + [sym_declaration] = STATE(118), + [sym__type] = STATE(160), + [sym_array_type] = STATE(160), + [sym__expression] = STATE(41), + [sym_unary_op] = STATE(41), + [sym_binary_op] = STATE(41), + [sym_array_op] = STATE(41), + [sym_func_call] = STATE(41), + [sym_field_access] = STATE(41), + [sym_parenthesis_expression] = STATE(41), + [sym_template_global] = STATE(44), + [aux_sym__linebreak] = STATE(38), + [aux_sym_write_modifiers_repeat1] = STATE(75), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(43), + [anon_sym_RBRACE] = ACTIONS(45), [anon_sym_interface] = ACTIONS(17), [anon_sym_reg] = ACTIONS(19), [anon_sym_initial] = ACTIONS(21), @@ -3893,37 +3869,37 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_AMP] = ACTIONS(31), [anon_sym_CARET] = ACTIONS(31), [anon_sym_LPAREN] = ACTIONS(33), - [anon_sym_LF] = ACTIONS(35), + [anon_sym_COLON_COLON] = ACTIONS(35), [sym_number] = ACTIONS(37), + [anon_sym_LF] = ACTIONS(39), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [6] = { - [sym_block] = STATE(172), - [sym_interface_statement] = STATE(172), - [sym_decl_assign_statement] = STATE(172), - [sym_assign_left_side] = STATE(168), - [sym_assign_to] = STATE(95), - [sym_write_modifiers] = STATE(31), - [sym_if_statement] = STATE(172), - [sym_for_statement] = STATE(172), - [sym_declaration] = STATE(111), - [sym__type] = STATE(165), - [sym_array_type] = STATE(165), - [sym_named_type] = STATE(165), - [sym__expression] = STATE(36), - [sym_unary_op] = STATE(36), - [sym_binary_op] = STATE(36), - [sym_array_op] = STATE(36), - [sym_func_call] = STATE(36), - [sym_field_access] = STATE(36), - [sym_parenthesis_expression] = STATE(36), - [aux_sym__linebreak] = STATE(33), - [sym_global_identifier] = STATE(38), - [aux_sym_write_modifiers_repeat1] = STATE(68), + [sym_block] = STATE(176), + [sym_interface_statement] = STATE(176), + [sym_decl_assign_statement] = STATE(176), + [sym_assign_left_side] = STATE(171), + [sym_assign_to] = STATE(99), + [sym_write_modifiers] = STATE(36), + [sym_if_statement] = STATE(176), + [sym_for_statement] = STATE(176), + [sym_declaration] = STATE(118), + [sym__type] = STATE(160), + [sym_array_type] = STATE(160), + [sym__expression] = STATE(41), + [sym_unary_op] = STATE(41), + [sym_binary_op] = STATE(41), + [sym_array_op] = STATE(41), + [sym_func_call] = STATE(41), + [sym_field_access] = STATE(41), + [sym_parenthesis_expression] = STATE(41), + [sym_template_global] = STATE(44), + [aux_sym__linebreak] = STATE(38), + [aux_sym_write_modifiers_repeat1] = STATE(75), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(45), + [anon_sym_RBRACE] = ACTIONS(47), [anon_sym_interface] = ACTIONS(17), [anon_sym_reg] = ACTIONS(19), [anon_sym_initial] = ACTIONS(21), @@ -3941,37 +3917,37 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_AMP] = ACTIONS(31), [anon_sym_CARET] = ACTIONS(31), [anon_sym_LPAREN] = ACTIONS(33), - [anon_sym_LF] = ACTIONS(35), + [anon_sym_COLON_COLON] = ACTIONS(35), [sym_number] = ACTIONS(37), + [anon_sym_LF] = ACTIONS(39), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [7] = { - [sym_block] = STATE(172), - [sym_interface_statement] = STATE(172), - [sym_decl_assign_statement] = STATE(172), - [sym_assign_left_side] = STATE(168), - [sym_assign_to] = STATE(95), - [sym_write_modifiers] = STATE(31), - [sym_if_statement] = STATE(172), - [sym_for_statement] = STATE(172), - [sym_declaration] = STATE(111), - [sym__type] = STATE(165), - [sym_array_type] = STATE(165), - [sym_named_type] = STATE(165), - [sym__expression] = STATE(36), - [sym_unary_op] = STATE(36), - [sym_binary_op] = STATE(36), - [sym_array_op] = STATE(36), - [sym_func_call] = STATE(36), - [sym_field_access] = STATE(36), - [sym_parenthesis_expression] = STATE(36), - [aux_sym__linebreak] = STATE(33), - [sym_global_identifier] = STATE(38), - [aux_sym_write_modifiers_repeat1] = STATE(68), + [sym_block] = STATE(117), + [sym_interface_statement] = STATE(117), + [sym_decl_assign_statement] = STATE(117), + [sym_assign_left_side] = STATE(114), + [sym_assign_to] = STATE(99), + [sym_write_modifiers] = STATE(36), + [sym_if_statement] = STATE(117), + [sym_for_statement] = STATE(117), + [sym_declaration] = STATE(118), + [sym__type] = STATE(160), + [sym_array_type] = STATE(160), + [sym__expression] = STATE(41), + [sym_unary_op] = STATE(41), + [sym_binary_op] = STATE(41), + [sym_array_op] = STATE(41), + [sym_func_call] = STATE(41), + [sym_field_access] = STATE(41), + [sym_parenthesis_expression] = STATE(41), + [sym_template_global] = STATE(44), + [aux_sym__linebreak] = STATE(3), + [aux_sym_write_modifiers_repeat1] = STATE(75), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(47), + [anon_sym_RBRACE] = ACTIONS(49), [anon_sym_interface] = ACTIONS(17), [anon_sym_reg] = ACTIONS(19), [anon_sym_initial] = ACTIONS(21), @@ -3989,37 +3965,37 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_AMP] = ACTIONS(31), [anon_sym_CARET] = ACTIONS(31), [anon_sym_LPAREN] = ACTIONS(33), - [anon_sym_LF] = ACTIONS(35), + [anon_sym_COLON_COLON] = ACTIONS(35), [sym_number] = ACTIONS(37), + [anon_sym_LF] = ACTIONS(51), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [8] = { - [sym_block] = STATE(172), - [sym_interface_statement] = STATE(172), - [sym_decl_assign_statement] = STATE(172), - [sym_assign_left_side] = STATE(168), - [sym_assign_to] = STATE(95), - [sym_write_modifiers] = STATE(31), - [sym_if_statement] = STATE(172), - [sym_for_statement] = STATE(172), - [sym_declaration] = STATE(111), - [sym__type] = STATE(165), - [sym_array_type] = STATE(165), - [sym_named_type] = STATE(165), - [sym__expression] = STATE(36), - [sym_unary_op] = STATE(36), - [sym_binary_op] = STATE(36), - [sym_array_op] = STATE(36), - [sym_func_call] = STATE(36), - [sym_field_access] = STATE(36), - [sym_parenthesis_expression] = STATE(36), - [aux_sym__linebreak] = STATE(33), - [sym_global_identifier] = STATE(38), - [aux_sym_write_modifiers_repeat1] = STATE(68), + [sym_block] = STATE(176), + [sym_interface_statement] = STATE(176), + [sym_decl_assign_statement] = STATE(176), + [sym_assign_left_side] = STATE(171), + [sym_assign_to] = STATE(99), + [sym_write_modifiers] = STATE(36), + [sym_if_statement] = STATE(176), + [sym_for_statement] = STATE(176), + [sym_declaration] = STATE(118), + [sym__type] = STATE(160), + [sym_array_type] = STATE(160), + [sym__expression] = STATE(41), + [sym_unary_op] = STATE(41), + [sym_binary_op] = STATE(41), + [sym_array_op] = STATE(41), + [sym_func_call] = STATE(41), + [sym_field_access] = STATE(41), + [sym_parenthesis_expression] = STATE(41), + [sym_template_global] = STATE(44), + [aux_sym__linebreak] = STATE(38), + [aux_sym_write_modifiers_repeat1] = STATE(75), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(49), + [anon_sym_RBRACE] = ACTIONS(53), [anon_sym_interface] = ACTIONS(17), [anon_sym_reg] = ACTIONS(19), [anon_sym_initial] = ACTIONS(21), @@ -4037,37 +4013,37 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_AMP] = ACTIONS(31), [anon_sym_CARET] = ACTIONS(31), [anon_sym_LPAREN] = ACTIONS(33), - [anon_sym_LF] = ACTIONS(35), + [anon_sym_COLON_COLON] = ACTIONS(35), [sym_number] = ACTIONS(37), + [anon_sym_LF] = ACTIONS(39), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, [9] = { - [sym_block] = STATE(129), - [sym_interface_statement] = STATE(129), - [sym_decl_assign_statement] = STATE(129), - [sym_assign_left_side] = STATE(103), - [sym_assign_to] = STATE(95), - [sym_write_modifiers] = STATE(31), - [sym_if_statement] = STATE(129), - [sym_for_statement] = STATE(129), - [sym_declaration] = STATE(111), - [sym__type] = STATE(165), - [sym_array_type] = STATE(165), - [sym_named_type] = STATE(165), - [sym__expression] = STATE(36), - [sym_unary_op] = STATE(36), - [sym_binary_op] = STATE(36), - [sym_array_op] = STATE(36), - [sym_func_call] = STATE(36), - [sym_field_access] = STATE(36), - [sym_parenthesis_expression] = STATE(36), - [aux_sym__linebreak] = STATE(3), - [sym_global_identifier] = STATE(38), - [aux_sym_write_modifiers_repeat1] = STATE(68), + [sym_block] = STATE(176), + [sym_interface_statement] = STATE(176), + [sym_decl_assign_statement] = STATE(176), + [sym_assign_left_side] = STATE(171), + [sym_assign_to] = STATE(99), + [sym_write_modifiers] = STATE(36), + [sym_if_statement] = STATE(176), + [sym_for_statement] = STATE(176), + [sym_declaration] = STATE(118), + [sym__type] = STATE(160), + [sym_array_type] = STATE(160), + [sym__expression] = STATE(41), + [sym_unary_op] = STATE(41), + [sym_binary_op] = STATE(41), + [sym_array_op] = STATE(41), + [sym_func_call] = STATE(41), + [sym_field_access] = STATE(41), + [sym_parenthesis_expression] = STATE(41), + [sym_template_global] = STATE(44), + [aux_sym__linebreak] = STATE(38), + [aux_sym_write_modifiers_repeat1] = STATE(75), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(51), + [anon_sym_RBRACE] = ACTIONS(55), [anon_sym_interface] = ACTIONS(17), [anon_sym_reg] = ACTIONS(19), [anon_sym_initial] = ACTIONS(21), @@ -4085,15 +4061,16 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_AMP] = ACTIONS(31), [anon_sym_CARET] = ACTIONS(31), [anon_sym_LPAREN] = ACTIONS(33), - [anon_sym_LF] = ACTIONS(53), + [anon_sym_COLON_COLON] = ACTIONS(35), [sym_number] = ACTIONS(37), + [anon_sym_LF] = ACTIONS(39), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, }; static const uint16_t ts_small_parse_table[] = { - [0] = 24, + [0] = 25, ACTIONS(11), 1, sym_identifier, ACTIONS(13), 1, @@ -4111,22 +4088,24 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, - anon_sym_LF, + anon_sym_COLON_COLON, ACTIONS(37), 1, sym_number, - STATE(31), 1, + ACTIONS(39), 1, + anon_sym_LF, + STATE(36), 1, sym_write_modifiers, - STATE(33), 1, - aux_sym__linebreak, STATE(38), 1, - sym_global_identifier, - STATE(68), 1, + aux_sym__linebreak, + STATE(44), 1, + sym_template_global, + STATE(75), 1, aux_sym_write_modifiers_repeat1, - STATE(95), 1, + STATE(99), 1, sym_assign_to, - STATE(111), 1, + STATE(118), 1, sym_declaration, - STATE(168), 1, + STATE(171), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4137,11 +4116,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(165), 3, + STATE(160), 2, sym__type, sym_array_type, - sym_named_type, - STATE(172), 5, + STATE(176), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -4155,7 +4133,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(36), 7, + STATE(41), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4163,7 +4141,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [94] = 16, + [96] = 17, ACTIONS(11), 1, sym_identifier, ACTIONS(19), 1, @@ -4172,17 +4150,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_initial, ACTIONS(33), 1, anon_sym_LPAREN, + ACTIONS(35), 1, + anon_sym_COLON_COLON, ACTIONS(37), 1, sym_number, - STATE(31), 1, + STATE(36), 1, sym_write_modifiers, - STATE(38), 1, - sym_global_identifier, - STATE(68), 1, + STATE(44), 1, + sym_template_global, + STATE(75), 1, aux_sym_write_modifiers_repeat1, - STATE(111), 1, + STATE(118), 1, sym_declaration, - STATE(140), 1, + STATE(137), 1, sym_assign_to, ACTIONS(3), 2, sym_single_line_comment, @@ -4193,10 +4173,9 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(165), 3, + STATE(160), 2, sym__type, sym_array_type, - sym_named_type, ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, @@ -4205,7 +4184,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(36), 7, + STATE(41), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4213,15 +4192,15 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [160] = 5, - ACTIONS(59), 1, + [164] = 5, + ACTIONS(61), 1, anon_sym_COLON_COLON, - STATE(12), 1, - aux_sym_global_identifier_repeat1, + STATE(13), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(55), 8, + ACTIONS(57), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4230,7 +4209,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(57), 20, + ACTIONS(59), 20, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4251,15 +4230,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [203] = 5, - ACTIONS(66), 1, + [207] = 5, + ACTIONS(67), 1, anon_sym_COLON_COLON, - STATE(12), 1, - aux_sym_global_identifier_repeat1, + STATE(13), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(62), 8, + ACTIONS(63), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4268,7 +4247,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(64), 20, + ACTIONS(65), 20, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4289,15 +4268,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [246] = 5, - ACTIONS(66), 1, + [250] = 5, + ACTIONS(61), 1, anon_sym_COLON_COLON, - STATE(13), 1, - aux_sym_global_identifier_repeat1, + STATE(12), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(68), 8, + ACTIONS(70), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4306,7 +4285,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(70), 20, + ACTIONS(72), 20, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4327,11 +4306,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [289] = 3, + [293] = 5, + ACTIONS(61), 1, + anon_sym_COLON_COLON, + STATE(16), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(72), 8, + ACTIONS(74), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4340,7 +4323,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(74), 21, + ACTIONS(76), 20, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4361,38 +4344,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, + [336] = 5, + ACTIONS(61), 1, anon_sym_COLON_COLON, - [327] = 10, - ACTIONS(82), 1, - anon_sym_SLASH, - ACTIONS(84), 1, - anon_sym_DOT, - ACTIONS(86), 1, - anon_sym_LPAREN, - ACTIONS(88), 1, - anon_sym_LBRACK, - STATE(24), 1, - sym_parenthesis_expression_list, - STATE(28), 1, - sym_array_bracket_expression, + STATE(13), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(78), 4, + ACTIONS(78), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, + anon_sym_in, anon_sym_DASH, - ACTIONS(76), 17, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(80), 20, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -4400,35 +4375,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [379] = 8, - ACTIONS(84), 1, - anon_sym_DOT, - ACTIONS(86), 1, - anon_sym_LPAREN, - ACTIONS(88), 1, - anon_sym_LBRACK, - STATE(24), 1, - sym_parenthesis_expression_list, - STATE(28), 1, - sym_array_bracket_expression, + [379] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(92), 5, + ACTIONS(82), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, + anon_sym_in, anon_sym_DASH, anon_sym_SLASH, - ACTIONS(90), 19, + anon_sym_DOT, + sym_identifier, + ACTIONS(84), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_PLUS, anon_sym_STAR, @@ -4440,49 +4410,84 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_COMMA, anon_sym_LF, - [427] = 15, - ACTIONS(82), 1, + [417] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(86), 8, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH, anon_sym_SLASH, - ACTIONS(84), 1, anon_sym_DOT, - ACTIONS(86), 1, + sym_identifier, + ACTIONS(88), 21, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_LPAREN, - ACTIONS(88), 1, + anon_sym_RPAREN, anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + anon_sym_LF, + [455] = 12, ACTIONS(94), 1, anon_sym_PLUS, ACTIONS(96), 1, anon_sym_DASH, - ACTIONS(98), 1, - anon_sym_PIPE, ACTIONS(100), 1, - anon_sym_AMP, + anon_sym_SLASH, ACTIONS(102), 1, - anon_sym_CARET, - STATE(24), 1, - sym_parenthesis_expression_list, - STATE(28), 1, + anon_sym_DOT, + ACTIONS(104), 1, + anon_sym_LPAREN, + ACTIONS(106), 1, + anon_sym_LBRACK, + STATE(29), 1, sym_array_bracket_expression, + STATE(32), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 2, + ACTIONS(98), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(78), 3, + ACTIONS(92), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(76), 13, + ACTIONS(90), 16, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -4491,34 +4496,82 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [489] = 12, - ACTIONS(82), 1, + [511] = 14, + ACTIONS(94), 1, + anon_sym_PLUS, + ACTIONS(96), 1, + anon_sym_DASH, + ACTIONS(100), 1, anon_sym_SLASH, - ACTIONS(84), 1, + ACTIONS(102), 1, anon_sym_DOT, - ACTIONS(86), 1, + ACTIONS(104), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(106), 1, anon_sym_LBRACK, + ACTIONS(108), 1, + anon_sym_PIPE, + ACTIONS(110), 1, + anon_sym_CARET, + STATE(29), 1, + sym_array_bracket_expression, + STATE(32), 1, + sym_parenthesis_expression_list, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(98), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(92), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + ACTIONS(90), 14, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DOT_DOT, + anon_sym_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_LF, + [571] = 13, ACTIONS(94), 1, anon_sym_PLUS, ACTIONS(96), 1, anon_sym_DASH, - STATE(24), 1, - sym_parenthesis_expression_list, - STATE(28), 1, + ACTIONS(100), 1, + anon_sym_SLASH, + ACTIONS(102), 1, + anon_sym_DOT, + ACTIONS(104), 1, + anon_sym_LPAREN, + ACTIONS(106), 1, + anon_sym_LBRACK, + ACTIONS(110), 1, + anon_sym_CARET, + STATE(29), 1, sym_array_bracket_expression, + STATE(32), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 2, + ACTIONS(98), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(78), 3, + ACTIONS(92), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(76), 16, + ACTIONS(90), 15, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4526,7 +4579,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DOT_DOT, anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -4535,44 +4587,80 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [545] = 14, - ACTIONS(82), 1, - anon_sym_SLASH, - ACTIONS(84), 1, + [629] = 8, + ACTIONS(102), 1, anon_sym_DOT, - ACTIONS(86), 1, + ACTIONS(104), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(106), 1, anon_sym_LBRACK, - ACTIONS(94), 1, - anon_sym_PLUS, - ACTIONS(96), 1, + STATE(29), 1, + sym_array_bracket_expression, + STATE(32), 1, + sym_parenthesis_expression_list, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(92), 5, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, anon_sym_DASH, - ACTIONS(98), 1, + anon_sym_SLASH, + ACTIONS(90), 19, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, - ACTIONS(102), 1, + anon_sym_AMP, anon_sym_CARET, - STATE(24), 1, - sym_parenthesis_expression_list, - STATE(28), 1, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_LF, + [677] = 10, + ACTIONS(100), 1, + anon_sym_SLASH, + ACTIONS(102), 1, + anon_sym_DOT, + ACTIONS(104), 1, + anon_sym_LPAREN, + ACTIONS(106), 1, + anon_sym_LBRACK, + STATE(29), 1, sym_array_bracket_expression, + STATE(32), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 2, + ACTIONS(98), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(78), 3, + ACTIONS(92), 4, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(76), 14, + anon_sym_DASH, + ACTIONS(90), 17, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -4581,72 +4669,144 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [605] = 13, - ACTIONS(82), 1, - anon_sym_SLASH, - ACTIONS(84), 1, - anon_sym_DOT, - ACTIONS(86), 1, - anon_sym_LPAREN, - ACTIONS(88), 1, - anon_sym_LBRACK, + [729] = 15, ACTIONS(94), 1, anon_sym_PLUS, ACTIONS(96), 1, anon_sym_DASH, + ACTIONS(100), 1, + anon_sym_SLASH, ACTIONS(102), 1, + anon_sym_DOT, + ACTIONS(104), 1, + anon_sym_LPAREN, + ACTIONS(106), 1, + anon_sym_LBRACK, + ACTIONS(108), 1, + anon_sym_PIPE, + ACTIONS(110), 1, anon_sym_CARET, - STATE(24), 1, - sym_parenthesis_expression_list, - STATE(28), 1, + ACTIONS(112), 1, + anon_sym_AMP, + STATE(29), 1, sym_array_bracket_expression, + STATE(32), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 2, + ACTIONS(98), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(78), 3, + ACTIONS(92), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + ACTIONS(90), 13, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DOT_DOT, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_LF, + [791] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(114), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(76), 15, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(116), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + anon_sym_LF, + [829] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(118), 8, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(120), 21, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_COMMA, anon_sym_LF, - [663] = 8, - ACTIONS(84), 1, + [867] = 8, + ACTIONS(102), 1, anon_sym_DOT, - ACTIONS(86), 1, + ACTIONS(104), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(106), 1, anon_sym_LBRACK, - STATE(24), 1, - sym_parenthesis_expression_list, - STATE(28), 1, + STATE(29), 1, sym_array_bracket_expression, + STATE(32), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 5, + ACTIONS(124), 5, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, - ACTIONS(76), 19, + ACTIONS(122), 19, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4666,11 +4826,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [711] = 3, + [915] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(104), 8, + ACTIONS(126), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4679,7 +4839,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(106), 20, + ACTIONS(128), 20, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4700,18 +4860,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [748] = 3, + [952] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(110), 6, + ACTIONS(132), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(108), 21, + ACTIONS(130), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4733,18 +4893,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [784] = 3, + [988] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(114), 6, + ACTIONS(136), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(112), 21, + ACTIONS(134), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4766,18 +4926,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [820] = 3, + [1024] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(118), 6, + ACTIONS(140), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(116), 21, + ACTIONS(138), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4799,18 +4959,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [856] = 3, + [1060] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(122), 6, + ACTIONS(144), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(120), 21, + ACTIONS(142), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4832,18 +4992,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [892] = 3, + [1096] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(126), 6, + ACTIONS(148), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(124), 21, + ACTIONS(146), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4865,18 +5025,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [928] = 3, + [1132] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 6, + ACTIONS(152), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(128), 21, + ACTIONS(150), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4898,18 +5058,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [964] = 3, + [1168] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(134), 6, + ACTIONS(156), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(132), 21, + ACTIONS(154), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4931,16 +5091,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1000] = 11, + [1204] = 12, ACTIONS(11), 1, sym_identifier, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(136), 1, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(158), 1, sym_number, - STATE(38), 1, - sym_global_identifier, - STATE(135), 1, + STATE(44), 1, + sym_template_global, + STATE(142), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -4951,10 +5113,9 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(165), 3, + STATE(160), 2, sym__type, sym_array_type, - sym_named_type, ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, @@ -4963,7 +5124,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(39), 7, + STATE(43), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4971,61 +5132,61 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [1051] = 17, - ACTIONS(82), 1, - anon_sym_SLASH, - ACTIONS(86), 1, - anon_sym_LPAREN, - ACTIONS(88), 1, - anon_sym_LBRACK, + [1257] = 17, ACTIONS(94), 1, anon_sym_PLUS, ACTIONS(96), 1, anon_sym_DASH, - ACTIONS(98), 1, - anon_sym_PIPE, ACTIONS(100), 1, - anon_sym_AMP, - ACTIONS(102), 1, + anon_sym_SLASH, + ACTIONS(104), 1, + anon_sym_LPAREN, + ACTIONS(106), 1, + anon_sym_LBRACK, + ACTIONS(108), 1, + anon_sym_PIPE, + ACTIONS(110), 1, anon_sym_CARET, - ACTIONS(142), 1, + ACTIONS(112), 1, + anon_sym_AMP, + ACTIONS(164), 1, anon_sym_EQ, - ACTIONS(146), 1, + ACTIONS(168), 1, anon_sym_DOT, - STATE(24), 1, - sym_parenthesis_expression_list, - STATE(28), 1, + STATE(29), 1, sym_array_bracket_expression, + STATE(32), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 2, + ACTIONS(98), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(140), 2, + ACTIONS(162), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(144), 4, + ACTIONS(166), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(138), 6, + ACTIONS(160), 6, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [1114] = 5, - ACTIONS(152), 1, + [1320] = 5, + ACTIONS(174), 1, anon_sym_LF, - STATE(33), 1, + STATE(38), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(148), 11, + ACTIONS(170), 11, anon_sym_interface, anon_sym_reg, anon_sym_initial, @@ -5037,7 +5198,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_gen, anon_sym_DASH, sym_identifier, - ACTIONS(150), 11, + ACTIONS(172), 12, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5048,28 +5209,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, + anon_sym_COLON_COLON, sym_number, - [1151] = 10, + [1358] = 11, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(155), 1, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(177), 1, sym_identifier, - ACTIONS(157), 1, + ACTIONS(179), 1, anon_sym_GT, - ACTIONS(159), 1, + ACTIONS(181), 1, sym_number, - STATE(48), 1, - sym_global_identifier, + STATE(73), 1, + sym_template_global, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(122), 2, - sym_template_type, - sym_template_generative_expression, - STATE(121), 3, + STATE(156), 2, sym__type, sym_array_type, - sym_named_type, + STATE(158), 2, + sym_template_type, + sym_template_generative_expression, ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, @@ -5078,7 +5241,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(44), 7, + STATE(50), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -5086,111 +5249,112 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [1198] = 18, - ACTIONS(82), 1, + [1407] = 18, + ACTIONS(100), 1, anon_sym_SLASH, - ACTIONS(86), 1, + ACTIONS(104), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(106), 1, anon_sym_LBRACK, - ACTIONS(98), 1, + ACTIONS(108), 1, anon_sym_PIPE, - ACTIONS(100), 1, - anon_sym_AMP, - ACTIONS(102), 1, + ACTIONS(110), 1, anon_sym_CARET, - ACTIONS(146), 1, + ACTIONS(112), 1, + anon_sym_AMP, + ACTIONS(168), 1, anon_sym_DOT, - ACTIONS(161), 1, + ACTIONS(183), 1, anon_sym_RPAREN, - ACTIONS(163), 1, + ACTIONS(185), 1, anon_sym_COMMA, - STATE(24), 1, - sym_parenthesis_expression_list, - STATE(28), 1, + STATE(29), 1, sym_array_bracket_expression, - STATE(62), 1, + STATE(32), 1, + sym_parenthesis_expression_list, + STATE(55), 1, sym__comma, - STATE(137), 1, + STATE(140), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 2, - anon_sym_STAR, - anon_sym_PERCENT, ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(140), 2, + ACTIONS(98), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(162), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(144), 4, + ACTIONS(166), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1260] = 16, - ACTIONS(82), 1, + [1469] = 16, + ACTIONS(100), 1, anon_sym_SLASH, - ACTIONS(86), 1, + ACTIONS(104), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(106), 1, anon_sym_LBRACK, - ACTIONS(98), 1, + ACTIONS(108), 1, anon_sym_PIPE, - ACTIONS(100), 1, - anon_sym_AMP, - ACTIONS(102), 1, + ACTIONS(110), 1, anon_sym_CARET, - ACTIONS(146), 1, + ACTIONS(112), 1, + anon_sym_AMP, + ACTIONS(168), 1, anon_sym_DOT, - ACTIONS(167), 1, + ACTIONS(189), 1, anon_sym_EQ, - STATE(24), 1, - sym_parenthesis_expression_list, - STATE(28), 1, + STATE(29), 1, sym_array_bracket_expression, + STATE(32), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 2, - anon_sym_STAR, - anon_sym_PERCENT, ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(140), 2, + ACTIONS(98), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(162), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(165), 3, + ACTIONS(187), 3, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, - ACTIONS(144), 4, + ACTIONS(166), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1318] = 9, + [1527] = 10, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(155), 1, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(177), 1, sym_identifier, - ACTIONS(159), 1, + ACTIONS(181), 1, sym_number, - STATE(48), 1, - sym_global_identifier, + STATE(73), 1, + sym_template_global, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(177), 2, - sym_template_type, - sym_template_generative_expression, - STATE(121), 3, + STATE(156), 2, sym__type, sym_array_type, - sym_named_type, + STATE(185), 2, + sym_template_type, + sym_template_generative_expression, ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, @@ -5199,7 +5363,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(44), 7, + STATE(50), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -5207,23 +5371,62 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [1362] = 7, - ACTIONS(169), 1, - sym_identifier, - ACTIONS(171), 1, + [1573] = 16, + ACTIONS(100), 1, + anon_sym_SLASH, + ACTIONS(104), 1, + anon_sym_LPAREN, + ACTIONS(106), 1, + anon_sym_LBRACK, + ACTIONS(108), 1, + anon_sym_PIPE, + ACTIONS(110), 1, + anon_sym_CARET, + ACTIONS(112), 1, + anon_sym_AMP, + ACTIONS(168), 1, + anon_sym_DOT, + ACTIONS(193), 1, + anon_sym_EQ, + STATE(29), 1, + sym_array_bracket_expression, + STATE(32), 1, + sym_parenthesis_expression_list, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(94), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(98), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(162), 2, anon_sym_LT, - ACTIONS(178), 1, + anon_sym_GT, + ACTIONS(191), 3, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LF, + ACTIONS(166), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [1631] = 5, + ACTIONS(195), 1, + sym_identifier, + ACTIONS(201), 1, anon_sym_LBRACK, - STATE(148), 1, - sym_template_params, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(174), 3, + ACTIONS(197), 4, + anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_SLASH, - ACTIONS(176), 16, + ACTIONS(199), 16, anon_sym_RBRACE, anon_sym_PLUS, anon_sym_DASH, @@ -5240,395 +5443,393 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COMMA, anon_sym_LF, - [1402] = 16, - ACTIONS(82), 1, + [1666] = 16, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(100), 1, anon_sym_SLASH, - ACTIONS(86), 1, + ACTIONS(104), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(106), 1, anon_sym_LBRACK, - ACTIONS(98), 1, + ACTIONS(108), 1, anon_sym_PIPE, - ACTIONS(100), 1, - anon_sym_AMP, - ACTIONS(102), 1, + ACTIONS(110), 1, anon_sym_CARET, - ACTIONS(146), 1, + ACTIONS(112), 1, + anon_sym_AMP, + ACTIONS(168), 1, anon_sym_DOT, - ACTIONS(183), 1, - anon_sym_EQ, - STATE(24), 1, - sym_parenthesis_expression_list, - STATE(28), 1, + STATE(29), 1, sym_array_bracket_expression, + STATE(32), 1, + sym_parenthesis_expression_list, + STATE(180), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 2, - anon_sym_STAR, - anon_sym_PERCENT, ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(140), 2, + ACTIONS(98), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(162), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(181), 3, - anon_sym_RBRACE, - anon_sym_COMMA, - anon_sym_LF, - ACTIONS(144), 4, + ACTIONS(166), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1460] = 15, - ACTIONS(82), 1, + [1722] = 15, + ACTIONS(100), 1, anon_sym_SLASH, - ACTIONS(86), 1, + ACTIONS(104), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(106), 1, anon_sym_LBRACK, - ACTIONS(98), 1, + ACTIONS(108), 1, anon_sym_PIPE, - ACTIONS(100), 1, - anon_sym_AMP, - ACTIONS(102), 1, + ACTIONS(110), 1, anon_sym_CARET, - ACTIONS(146), 1, + ACTIONS(112), 1, + anon_sym_AMP, + ACTIONS(168), 1, anon_sym_DOT, - STATE(24), 1, - sym_parenthesis_expression_list, - STATE(28), 1, + STATE(29), 1, sym_array_bracket_expression, + STATE(32), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 2, - anon_sym_STAR, - anon_sym_PERCENT, ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(140), 2, + ACTIONS(98), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(162), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(185), 2, + ACTIONS(204), 2, anon_sym_RBRACE, anon_sym_LF, - ACTIONS(144), 4, + ACTIONS(166), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1514] = 16, + [1776] = 16, ACTIONS(13), 1, anon_sym_LBRACE, - ACTIONS(82), 1, + ACTIONS(100), 1, anon_sym_SLASH, - ACTIONS(86), 1, + ACTIONS(104), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(106), 1, anon_sym_LBRACK, - ACTIONS(98), 1, + ACTIONS(108), 1, anon_sym_PIPE, - ACTIONS(100), 1, - anon_sym_AMP, - ACTIONS(102), 1, + ACTIONS(110), 1, anon_sym_CARET, - ACTIONS(146), 1, + ACTIONS(112), 1, + anon_sym_AMP, + ACTIONS(168), 1, anon_sym_DOT, - STATE(24), 1, - sym_parenthesis_expression_list, - STATE(28), 1, + STATE(29), 1, sym_array_bracket_expression, - STATE(171), 1, + STATE(32), 1, + sym_parenthesis_expression_list, + STATE(165), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 2, - anon_sym_STAR, - anon_sym_PERCENT, ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(140), 2, + ACTIONS(98), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(162), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(144), 4, + ACTIONS(166), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1570] = 16, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(82), 1, + [1832] = 15, + ACTIONS(100), 1, anon_sym_SLASH, - ACTIONS(86), 1, + ACTIONS(104), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(106), 1, anon_sym_LBRACK, - ACTIONS(98), 1, + ACTIONS(108), 1, anon_sym_PIPE, - ACTIONS(100), 1, - anon_sym_AMP, - ACTIONS(102), 1, + ACTIONS(110), 1, anon_sym_CARET, - ACTIONS(146), 1, + ACTIONS(112), 1, + anon_sym_AMP, + ACTIONS(168), 1, anon_sym_DOT, - STATE(24), 1, - sym_parenthesis_expression_list, - STATE(28), 1, + STATE(29), 1, sym_array_bracket_expression, - STATE(163), 1, - sym_block, + STATE(32), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 2, - anon_sym_STAR, - anon_sym_PERCENT, ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(140), 2, + ACTIONS(98), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(162), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(144), 4, + ACTIONS(206), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + ACTIONS(166), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1626] = 15, - ACTIONS(82), 1, + [1886] = 8, + ACTIONS(33), 1, + anon_sym_LPAREN, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(177), 1, + sym_identifier, + ACTIONS(208), 1, + anon_sym_RPAREN, + ACTIONS(210), 1, + sym_number, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(31), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(40), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_template_global, + [1925] = 15, + ACTIONS(100), 1, anon_sym_SLASH, - ACTIONS(86), 1, + ACTIONS(104), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(106), 1, anon_sym_LBRACK, - ACTIONS(98), 1, + ACTIONS(108), 1, anon_sym_PIPE, - ACTIONS(100), 1, - anon_sym_AMP, - ACTIONS(102), 1, + ACTIONS(110), 1, anon_sym_CARET, - ACTIONS(146), 1, + ACTIONS(112), 1, + anon_sym_AMP, + ACTIONS(168), 1, anon_sym_DOT, - STATE(24), 1, - sym_parenthesis_expression_list, - STATE(28), 1, + ACTIONS(212), 1, + anon_sym_COMMA, + STATE(29), 1, sym_array_bracket_expression, + STATE(32), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 2, - anon_sym_STAR, - anon_sym_PERCENT, ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(140), 2, + ACTIONS(98), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(162), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(187), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - ACTIONS(144), 4, + ACTIONS(166), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1680] = 15, - ACTIONS(82), 1, + [1978] = 15, + ACTIONS(100), 1, anon_sym_SLASH, - ACTIONS(86), 1, + ACTIONS(102), 1, + anon_sym_DOT, + ACTIONS(104), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(106), 1, anon_sym_LBRACK, - ACTIONS(98), 1, + ACTIONS(108), 1, anon_sym_PIPE, - ACTIONS(100), 1, - anon_sym_AMP, - ACTIONS(102), 1, + ACTIONS(110), 1, anon_sym_CARET, - ACTIONS(146), 1, - anon_sym_DOT, - ACTIONS(189), 1, - anon_sym_COMMA, - STATE(24), 1, - sym_parenthesis_expression_list, - STATE(28), 1, + ACTIONS(112), 1, + anon_sym_AMP, + ACTIONS(214), 1, + anon_sym_DOT_DOT, + STATE(29), 1, sym_array_bracket_expression, + STATE(32), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 2, - anon_sym_STAR, - anon_sym_PERCENT, ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(140), 2, + ACTIONS(98), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(162), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(144), 4, + ACTIONS(166), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1733] = 15, - ACTIONS(82), 1, + [2031] = 15, + ACTIONS(100), 1, anon_sym_SLASH, - ACTIONS(86), 1, + ACTIONS(104), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(106), 1, anon_sym_LBRACK, - ACTIONS(98), 1, + ACTIONS(108), 1, anon_sym_PIPE, - ACTIONS(100), 1, - anon_sym_AMP, - ACTIONS(102), 1, + ACTIONS(110), 1, anon_sym_CARET, - ACTIONS(146), 1, + ACTIONS(112), 1, + anon_sym_AMP, + ACTIONS(168), 1, anon_sym_DOT, - ACTIONS(191), 1, + ACTIONS(216), 1, anon_sym_RPAREN, - STATE(24), 1, - sym_parenthesis_expression_list, - STATE(28), 1, + STATE(29), 1, sym_array_bracket_expression, + STATE(32), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 2, - anon_sym_STAR, - anon_sym_PERCENT, ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(140), 2, + ACTIONS(98), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(162), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(144), 4, + ACTIONS(166), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1786] = 15, - ACTIONS(82), 1, + [2084] = 15, + ACTIONS(100), 1, anon_sym_SLASH, - ACTIONS(84), 1, - anon_sym_DOT, - ACTIONS(86), 1, + ACTIONS(104), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(106), 1, anon_sym_LBRACK, - ACTIONS(98), 1, + ACTIONS(108), 1, anon_sym_PIPE, - ACTIONS(100), 1, - anon_sym_AMP, - ACTIONS(102), 1, + ACTIONS(110), 1, anon_sym_CARET, - ACTIONS(193), 1, - anon_sym_DOT_DOT, - STATE(24), 1, - sym_parenthesis_expression_list, - STATE(28), 1, + ACTIONS(112), 1, + anon_sym_AMP, + ACTIONS(168), 1, + anon_sym_DOT, + ACTIONS(218), 1, + anon_sym_RBRACK, + STATE(29), 1, sym_array_bracket_expression, + STATE(32), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 2, - anon_sym_STAR, - anon_sym_PERCENT, ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(140), 2, + ACTIONS(98), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(162), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(144), 4, + ACTIONS(166), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1839] = 15, - ACTIONS(82), 1, + [2137] = 15, + ACTIONS(100), 1, anon_sym_SLASH, - ACTIONS(86), 1, + ACTIONS(104), 1, anon_sym_LPAREN, - ACTIONS(88), 1, + ACTIONS(106), 1, anon_sym_LBRACK, - ACTIONS(98), 1, + ACTIONS(108), 1, anon_sym_PIPE, - ACTIONS(100), 1, - anon_sym_AMP, - ACTIONS(102), 1, + ACTIONS(110), 1, anon_sym_CARET, - ACTIONS(146), 1, + ACTIONS(112), 1, + anon_sym_AMP, + ACTIONS(168), 1, anon_sym_DOT, - ACTIONS(195), 1, + ACTIONS(220), 1, anon_sym_RBRACK, - STATE(24), 1, - sym_parenthesis_expression_list, - STATE(28), 1, + STATE(29), 1, sym_array_bracket_expression, + STATE(32), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 2, - anon_sym_STAR, - anon_sym_PERCENT, ACTIONS(94), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(140), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(144), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [1892] = 7, - ACTIONS(171), 1, + ACTIONS(98), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(162), 2, anon_sym_LT, - ACTIONS(174), 1, - anon_sym_SLASH, - ACTIONS(197), 1, anon_sym_GT, - STATE(148), 1, - sym_template_params, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(178), 2, - anon_sym_LBRACK, - anon_sym_COMMA, - ACTIONS(176), 13, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, + ACTIONS(166), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_DOT, - anon_sym_LPAREN, - [1928] = 7, + [2190] = 7, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(155), 1, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(177), 1, sym_identifier, - ACTIONS(200), 1, - anon_sym_RPAREN, - ACTIONS(202), 1, + ACTIONS(222), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5641,7 +5842,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(35), 8, + STATE(48), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5649,13 +5850,15 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - sym_global_identifier, - [1964] = 6, + sym_template_global, + [2226] = 7, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(155), 1, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(177), 1, sym_identifier, - ACTIONS(204), 1, + ACTIONS(224), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5668,7 +5871,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(22), 8, + STATE(37), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5676,39 +5879,15 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - sym_global_identifier, - [1997] = 5, - ACTIONS(210), 1, - anon_sym_LF, - STATE(55), 1, - aux_sym__linebreak, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(206), 7, - anon_sym_reg, - anon_sym_initial, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(208), 9, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - sym_number, - [2028] = 6, + sym_template_global, + [2262] = 7, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(155), 1, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(177), 1, sym_identifier, - ACTIONS(212), 1, + ACTIONS(226), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5721,7 +5900,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(42), 8, + STATE(53), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5729,13 +5908,15 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - sym_global_identifier, - [2061] = 6, + sym_template_global, + [2298] = 7, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(155), 1, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(177), 1, sym_identifier, - ACTIONS(214), 1, + ACTIONS(228), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5748,7 +5929,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(17), 8, + STATE(27), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5756,13 +5937,15 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - sym_global_identifier, - [2094] = 6, + sym_template_global, + [2334] = 7, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(155), 1, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(177), 1, sym_identifier, - ACTIONS(216), 1, + ACTIONS(230), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5775,7 +5958,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(45), 8, + STATE(47), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5783,24 +5966,20 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - sym_global_identifier, - [2127] = 5, + sym_template_global, + [2370] = 7, + ACTIONS(33), 1, + anon_sym_LPAREN, ACTIONS(35), 1, - anon_sym_LF, - STATE(33), 1, - aux_sym__linebreak, + anon_sym_COLON_COLON, + ACTIONS(177), 1, + sym_identifier, + ACTIONS(232), 1, + sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(218), 7, - anon_sym_reg, - anon_sym_initial, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(220), 9, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5808,14 +5987,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_LPAREN, - sym_number, - [2158] = 6, + STATE(45), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_template_global, + [2406] = 7, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(155), 1, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(177), 1, sym_identifier, - ACTIONS(222), 1, + ACTIONS(234), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5828,7 +6016,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(32), 8, + STATE(51), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5836,13 +6024,15 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - sym_global_identifier, - [2191] = 6, + sym_template_global, + [2442] = 7, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(155), 1, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(177), 1, sym_identifier, - ACTIONS(224), 1, + ACTIONS(236), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5855,7 +6045,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(19), 8, + STATE(24), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5863,13 +6053,15 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - sym_global_identifier, - [2224] = 6, + sym_template_global, + [2478] = 7, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(155), 1, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(177), 1, sym_identifier, - ACTIONS(226), 1, + ACTIONS(238), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5882,7 +6074,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(20), 8, + STATE(23), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5890,13 +6082,15 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - sym_global_identifier, - [2257] = 6, + sym_template_global, + [2514] = 7, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(155), 1, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(177), 1, sym_identifier, - ACTIONS(228), 1, + ACTIONS(240), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5909,7 +6103,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(21), 8, + STATE(46), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5917,13 +6111,15 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - sym_global_identifier, - [2290] = 6, + sym_template_global, + [2550] = 7, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(155), 1, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(177), 1, sym_identifier, - ACTIONS(230), 1, + ACTIONS(242), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5936,7 +6132,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(41), 8, + STATE(52), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5944,13 +6140,15 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - sym_global_identifier, - [2323] = 6, + sym_template_global, + [2586] = 7, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(155), 1, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(177), 1, sym_identifier, - ACTIONS(232), 1, + ACTIONS(244), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5963,7 +6161,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(16), 8, + STATE(19), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5971,18 +6169,51 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - sym_global_identifier, - [2356] = 6, - ACTIONS(33), 1, - anon_sym_LPAREN, - ACTIONS(155), 1, + sym_template_global, + [2622] = 5, + ACTIONS(39), 1, + anon_sym_LF, + STATE(38), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(246), 7, + anon_sym_reg, + anon_sym_initial, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, sym_identifier, - ACTIONS(234), 1, + ACTIONS(248), 10, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_COLON_COLON, sym_number, + [2654] = 5, + ACTIONS(254), 1, + anon_sym_LF, + STATE(67), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(250), 7, + anon_sym_reg, + anon_sym_initial, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(252), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5990,21 +6221,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(43), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_global_identifier, - [2389] = 6, + anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, + [2686] = 7, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(155), 1, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(177), 1, sym_identifier, - ACTIONS(236), 1, + ACTIONS(256), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6017,7 +6244,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(18), 8, + STATE(20), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6025,13 +6252,15 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - sym_global_identifier, - [2422] = 6, + sym_template_global, + [2722] = 7, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(155), 1, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(177), 1, sym_identifier, - ACTIONS(238), 1, + ACTIONS(258), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6044,7 +6273,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(46), 8, + STATE(21), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6052,13 +6281,15 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - sym_global_identifier, - [2455] = 6, + sym_template_global, + [2758] = 7, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(155), 1, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(177), 1, sym_identifier, - ACTIONS(240), 1, + ACTIONS(260), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6071,7 +6302,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(40), 8, + STATE(54), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6079,13 +6310,15 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - sym_global_identifier, - [2488] = 6, + sym_template_global, + [2794] = 7, ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(155), 1, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(177), 1, sym_identifier, - ACTIONS(242), 1, + ACTIONS(262), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6098,7 +6331,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 8, + STATE(22), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6106,22 +6339,48 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - sym_global_identifier, - [2521] = 5, - ACTIONS(246), 1, + sym_template_global, + [2830] = 5, + ACTIONS(264), 1, + anon_sym_GT, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(197), 2, + anon_sym_LT, + anon_sym_SLASH, + ACTIONS(201), 2, + anon_sym_LBRACK, + anon_sym_COMMA, + ACTIONS(199), 13, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_DOT, + anon_sym_LPAREN, + [2861] = 5, + ACTIONS(269), 1, anon_sym_reg, - STATE(67), 1, + STATE(74), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(244), 5, + ACTIONS(267), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(249), 9, + ACTIONS(272), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6130,22 +6389,45 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, + anon_sym_COLON_COLON, sym_number, - [2550] = 5, + [2891] = 5, ACTIONS(19), 1, anon_sym_reg, - STATE(67), 1, + STATE(74), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(251), 5, + ACTIONS(274), 5, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(276), 10, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, + [2921] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(278), 6, + anon_sym_reg, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(253), 9, + ACTIONS(280), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6154,23 +6436,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, + anon_sym_COLON_COLON, sym_number, - [2579] = 12, + [2946] = 12, ACTIONS(11), 1, sym_identifier, - ACTIONS(255), 1, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(282), 1, anon_sym_DASH_GT, - ACTIONS(257), 1, + ACTIONS(284), 1, anon_sym_LF, - STATE(71), 1, + STATE(78), 1, aux_sym__linebreak, - STATE(90), 1, + STATE(97), 1, sym_declaration, - STATE(100), 1, + STATE(106), 1, sym_declaration_list, - STATE(130), 1, - sym_global_identifier, - STATE(167), 1, + STATE(170), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, @@ -6181,46 +6464,25 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(165), 3, + STATE(160), 3, sym__type, sym_array_type, - sym_named_type, - [2621] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(259), 6, - anon_sym_reg, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(261), 9, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - sym_number, - [2645] = 12, + sym_template_global, + [2988] = 12, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(39), 1, anon_sym_LF, - ACTIONS(255), 1, + ACTIONS(282), 1, anon_sym_DASH_GT, - STATE(33), 1, + STATE(38), 1, aux_sym__linebreak, - STATE(90), 1, + STATE(97), 1, sym_declaration, - STATE(102), 1, + STATE(113), 1, sym_declaration_list, - STATE(130), 1, - sym_global_identifier, STATE(162), 1, sym__interface_ports_output, ACTIONS(3), 2, @@ -6232,21 +6494,21 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(165), 3, + STATE(160), 3, sym__type, sym_array_type, - sym_named_type, - [2687] = 3, + sym_template_global, + [3030] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(263), 5, + ACTIONS(286), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(265), 9, + ACTIONS(288), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6255,19 +6517,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LPAREN, + anon_sym_COLON_COLON, sym_number, - [2710] = 10, + [3054] = 10, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(39), 1, anon_sym_LF, - STATE(33), 1, + STATE(38), 1, aux_sym__linebreak, - STATE(90), 1, + STATE(97), 1, sym_declaration, - STATE(130), 1, - sym_global_identifier, - STATE(158), 1, + STATE(161), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, @@ -6278,22 +6541,22 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(165), 3, + STATE(160), 3, sym__type, sym_array_type, - sym_named_type, - [2746] = 10, + sym_template_global, + [3090] = 10, ACTIONS(11), 1, sym_identifier, - ACTIONS(267), 1, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(290), 1, anon_sym_LF, - STATE(73), 1, + STATE(80), 1, aux_sym__linebreak, - STATE(90), 1, + STATE(97), 1, sym_declaration, - STATE(130), 1, - sym_global_identifier, - STATE(157), 1, + STATE(166), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, @@ -6304,17 +6567,17 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(165), 3, + STATE(160), 3, sym__type, sym_array_type, - sym_named_type, - [2782] = 8, - ACTIONS(269), 1, + sym_template_global, + [3126] = 8, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(292), 1, sym_identifier, - ACTIONS(271), 1, + ACTIONS(294), 1, anon_sym_GT, - STATE(130), 1, - sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6324,18 +6587,18 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(118), 2, + STATE(138), 2, sym_template_declaration_type, sym_declaration, - STATE(165), 3, + STATE(160), 3, sym__type, sym_array_type, - sym_named_type, - [2813] = 7, - ACTIONS(269), 1, + sym_template_global, + [3157] = 7, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(292), 1, sym_identifier, - STATE(130), 1, - sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6345,42 +6608,22 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(176), 2, + STATE(184), 2, sym_template_declaration_type, sym_declaration, - STATE(165), 3, - sym__type, - sym_array_type, - sym_named_type, - [2841] = 7, - ACTIONS(11), 1, - sym_identifier, - STATE(106), 1, - sym_declaration, - STATE(130), 1, - sym_global_identifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(27), 2, - anon_sym_input, - anon_sym_output, - ACTIONS(29), 2, - anon_sym_state, - anon_sym_gen, - STATE(165), 3, + STATE(160), 3, sym__type, sym_array_type, - sym_named_type, - [2868] = 4, - ACTIONS(275), 1, + sym_template_global, + [3185] = 4, + ACTIONS(298), 1, anon_sym_SQUOTE, - STATE(83), 1, + STATE(92), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(273), 8, + ACTIONS(296), 8, anon_sym_DASH_GT, anon_sym_GT, anon_sym_LBRACE, @@ -6389,15 +6632,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [2889] = 4, - ACTIONS(275), 1, + [3206] = 4, + ACTIONS(298), 1, anon_sym_SQUOTE, - STATE(84), 1, + STATE(91), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(277), 8, + ACTIONS(300), 8, anon_sym_DASH_GT, anon_sym_GT, anon_sym_LBRACE, @@ -6406,15 +6649,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [2910] = 4, - ACTIONS(275), 1, + [3227] = 4, + ACTIONS(298), 1, anon_sym_SQUOTE, - STATE(86), 1, + STATE(93), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(279), 8, + ACTIONS(302), 8, anon_sym_DASH_GT, anon_sym_GT, anon_sym_LBRACE, @@ -6423,15 +6666,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [2931] = 4, - ACTIONS(275), 1, + [3248] = 7, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + STATE(191), 1, + sym_declaration, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(27), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(29), 2, + anon_sym_state, + anon_sym_gen, + STATE(160), 3, + sym__type, + sym_array_type, + sym_template_global, + [3275] = 4, + ACTIONS(298), 1, anon_sym_SQUOTE, - STATE(85), 1, + STATE(90), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(281), 8, + ACTIONS(304), 8, anon_sym_DASH_GT, anon_sym_GT, anon_sym_LBRACE, @@ -6440,12 +6703,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [2952] = 7, + [3296] = 7, ACTIONS(11), 1, sym_identifier, - STATE(130), 1, - sym_global_identifier, - STATE(188), 1, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + STATE(105), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -6456,15 +6719,15 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(165), 3, + STATE(160), 3, sym__type, sym_array_type, - sym_named_type, - [2979] = 2, + sym_template_global, + [3323] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(283), 8, + ACTIONS(306), 8, anon_sym_DASH_GT, anon_sym_GT, anon_sym_LBRACE, @@ -6473,11 +6736,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [2994] = 2, + [3338] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(285), 8, + ACTIONS(308), 8, anon_sym_DASH_GT, anon_sym_GT, anon_sym_LBRACE, @@ -6486,11 +6749,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [3009] = 2, + [3353] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(287), 8, + ACTIONS(310), 8, anon_sym_DASH_GT, anon_sym_GT, anon_sym_LBRACE, @@ -6499,11 +6762,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [3024] = 2, + [3368] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(289), 8, + ACTIONS(312), 8, anon_sym_DASH_GT, anon_sym_GT, anon_sym_LBRACE, @@ -6512,1252 +6775,1226 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [3039] = 5, - ACTIONS(293), 1, - anon_sym_COMMA, - STATE(77), 1, - sym__comma, - STATE(87), 1, - aux_sym_declaration_list_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(291), 4, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_LF, - [3059] = 5, + [3383] = 5, ACTIONS(11), 1, sym_identifier, - STATE(130), 1, - sym_global_identifier, + ACTIONS(35), 1, + anon_sym_COLON_COLON, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(296), 2, + ACTIONS(314), 2, anon_sym_state, anon_sym_gen, - STATE(166), 3, + STATE(168), 3, sym__type, sym_array_type, - sym_named_type, - [3079] = 5, - ACTIONS(163), 1, + sym_template_global, + [3403] = 5, + ACTIONS(185), 1, anon_sym_COMMA, - STATE(77), 1, + STATE(89), 1, sym__comma, - STATE(87), 1, + STATE(96), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(298), 4, + ACTIONS(316), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [3099] = 5, - ACTIONS(163), 1, + [3423] = 5, + ACTIONS(320), 1, anon_sym_COMMA, - STATE(77), 1, - sym__comma, STATE(89), 1, + sym__comma, + STATE(96), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(300), 4, + ACTIONS(318), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [3119] = 5, - ACTIONS(66), 1, - anon_sym_COLON_COLON, - STATE(13), 1, - aux_sym_global_identifier_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(302), 2, - anon_sym_GT, + [3443] = 5, + ACTIONS(185), 1, anon_sym_COMMA, - ACTIONS(70), 3, - anon_sym_LT, - anon_sym_LBRACK, - sym_identifier, - [3139] = 7, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(304), 1, - anon_sym_COLON, - ACTIONS(306), 1, - anon_sym_LT, - STATE(156), 1, - sym_template_declaration_arguments, - STATE(173), 1, - sym_block, - STATE(184), 1, - sym_interface_ports, + STATE(89), 1, + sym__comma, + STATE(95), 1, + aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3162] = 5, - ACTIONS(163), 1, + ACTIONS(323), 4, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_LF, + [3463] = 5, + ACTIONS(185), 1, anon_sym_COMMA, STATE(11), 1, sym__comma, - STATE(94), 1, + STATE(101), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(308), 3, + ACTIONS(325), 3, anon_sym_RBRACE, anon_sym_EQ, anon_sym_LF, - [3181] = 5, - ACTIONS(312), 1, + [3482] = 5, + ACTIONS(185), 1, anon_sym_COMMA, STATE(11), 1, sym__comma, - STATE(94), 1, + STATE(98), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(310), 3, + ACTIONS(327), 3, anon_sym_RBRACE, anon_sym_EQ, anon_sym_LF, - [3200] = 5, - ACTIONS(163), 1, + [3501] = 5, + ACTIONS(61), 1, + anon_sym_COLON_COLON, + STATE(12), 1, + aux_sym_template_global_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(72), 2, + anon_sym_LBRACK, + sym_identifier, + ACTIONS(329), 2, + anon_sym_GT, + anon_sym_COMMA, + [3520] = 5, + ACTIONS(333), 1, anon_sym_COMMA, STATE(11), 1, sym__comma, - STATE(93), 1, + STATE(101), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(315), 3, + ACTIONS(331), 3, anon_sym_RBRACE, anon_sym_EQ, anon_sym_LF, - [3219] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(317), 1, - ts_builtin_sym_end, - ACTIONS(319), 1, - anon_sym_LF, - STATE(142), 1, - aux_sym__linebreak, - STATE(180), 1, - sym_module, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3239] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(319), 1, - anon_sym_LF, - ACTIONS(321), 1, - ts_builtin_sym_end, - STATE(142), 1, - aux_sym__linebreak, - STATE(180), 1, - sym_module, + [3539] = 7, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(336), 1, + anon_sym_COLON, + ACTIONS(338), 1, + anon_sym_LT, + STATE(116), 1, + sym_template_declaration_arguments, + STATE(179), 1, + sym_interface_ports, + STATE(187), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3259] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(319), 1, + [3562] = 6, + ACTIONS(340), 1, + anon_sym_RBRACE, + ACTIONS(342), 1, + anon_sym_EQ, + ACTIONS(344), 1, anon_sym_LF, - ACTIONS(323), 1, - ts_builtin_sym_end, - STATE(142), 1, + STATE(8), 1, aux_sym__linebreak, - STATE(180), 1, - sym_module, + STATE(151), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3279] = 4, - ACTIONS(155), 1, + [3582] = 4, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(177), 1, sym_identifier, - STATE(130), 1, - sym_global_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(160), 3, + STATE(163), 3, sym__type, sym_array_type, - sym_named_type, - [3295] = 4, - ACTIONS(255), 1, - anon_sym_DASH_GT, - STATE(159), 1, - sym__interface_ports_output, + sym_template_global, + [3598] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(325), 3, + ACTIONS(346), 5, + anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_COMMA, anon_sym_LF, - [3311] = 4, - ACTIONS(155), 1, - sym_identifier, - STATE(130), 1, - sym_global_identifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(164), 3, - sym__type, - sym_array_type, - sym_named_type, - [3327] = 4, - ACTIONS(255), 1, + [3610] = 4, + ACTIONS(282), 1, anon_sym_DASH_GT, - STATE(161), 1, + STATE(167), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(327), 3, + ACTIONS(348), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [3343] = 6, - ACTIONS(329), 1, - anon_sym_RBRACE, - ACTIONS(331), 1, - anon_sym_EQ, - ACTIONS(333), 1, + [3626] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(350), 1, + ts_builtin_sym_end, + ACTIONS(352), 1, anon_sym_LF, - STATE(8), 1, + STATE(141), 1, aux_sym__linebreak, - STATE(139), 1, - aux_sym_block_repeat1, + STATE(186), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3363] = 6, - ACTIONS(331), 1, - anon_sym_EQ, - ACTIONS(335), 1, - anon_sym_RBRACE, - ACTIONS(337), 1, + [3646] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(352), 1, anon_sym_LF, - STATE(5), 1, + ACTIONS(354), 1, + ts_builtin_sym_end, + STATE(141), 1, aux_sym__linebreak, - STATE(154), 1, - aux_sym_block_repeat1, + STATE(186), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3383] = 6, + [3666] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(319), 1, + ACTIONS(352), 1, anon_sym_LF, - ACTIONS(339), 1, + ACTIONS(356), 1, ts_builtin_sym_end, - STATE(128), 1, - sym_module, - STATE(142), 1, + STATE(141), 1, aux_sym__linebreak, + STATE(186), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3403] = 2, + [3686] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(352), 1, + anon_sym_LF, + ACTIONS(358), 1, + ts_builtin_sym_end, + STATE(141), 1, + aux_sym__linebreak, + STATE(186), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(341), 5, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COMMA, - anon_sym_LF, - [3415] = 6, + [3706] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(319), 1, + ACTIONS(352), 1, anon_sym_LF, - ACTIONS(343), 1, + ACTIONS(360), 1, ts_builtin_sym_end, - STATE(142), 1, - aux_sym__linebreak, - STATE(180), 1, + STATE(130), 1, sym_module, + STATE(141), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3435] = 2, + [3726] = 4, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(177), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(345), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [3446] = 5, - ACTIONS(347), 1, - ts_builtin_sym_end, - ACTIONS(349), 1, - anon_sym_LF, - STATE(109), 1, - aux_sym_source_file_repeat1, - STATE(124), 1, - aux_sym__linebreak, + STATE(172), 3, + sym__type, + sym_array_type, + sym_template_global, + [3742] = 4, + ACTIONS(282), 1, + anon_sym_DASH_GT, + STATE(164), 1, + sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3463] = 5, - ACTIONS(352), 1, - ts_builtin_sym_end, - ACTIONS(354), 1, + ACTIONS(362), 3, + anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_LF, - STATE(98), 1, + [3758] = 6, + ACTIONS(342), 1, + anon_sym_EQ, + ACTIONS(364), 1, + anon_sym_RBRACE, + ACTIONS(366), 1, + anon_sym_LF, + STATE(9), 1, aux_sym__linebreak, - STATE(125), 1, - aux_sym_source_file_repeat1, + STATE(144), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3480] = 2, + [3778] = 4, + ACTIONS(336), 1, + anon_sym_COLON, + STATE(182), 1, + sym_interface_ports, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(165), 4, + ACTIONS(368), 2, anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COMMA, anon_sym_LF, - [3491] = 2, + [3793] = 5, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(336), 1, + anon_sym_COLON, + STATE(181), 1, + sym_block, + STATE(188), 1, + sym_interface_ports, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(356), 4, - ts_builtin_sym_end, + [3810] = 5, + ACTIONS(364), 1, anon_sym_RBRACE, - anon_sym_else, + ACTIONS(366), 1, anon_sym_LF, - [3502] = 5, - ACTIONS(335), 1, - anon_sym_RBRACE, - ACTIONS(337), 1, - anon_sym_LF, - STATE(5), 1, + STATE(9), 1, aux_sym__linebreak, - STATE(153), 1, + STATE(146), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3519] = 2, + [3827] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(358), 4, - ts_builtin_sym_end, + ACTIONS(187), 4, anon_sym_RBRACE, - anon_sym_else, + anon_sym_EQ, + anon_sym_COMMA, anon_sym_LF, - [3530] = 2, + [3838] = 5, + ACTIONS(370), 1, + anon_sym_GT, + ACTIONS(372), 1, + anon_sym_COMMA, + STATE(42), 1, + sym__comma, + STATE(119), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(358), 4, + [3855] = 5, + ACTIONS(375), 1, ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, + ACTIONS(377), 1, anon_sym_LF, - [3541] = 5, - ACTIONS(360), 1, - anon_sym_RPAREN, - ACTIONS(362), 1, - anon_sym_COMMA, - STATE(62), 1, - sym__comma, - STATE(116), 1, - aux_sym_parenthesis_expression_list_repeat1, + STATE(108), 1, + aux_sym__linebreak, + STATE(127), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3558] = 2, + [3872] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(365), 4, + ACTIONS(379), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3569] = 5, - ACTIONS(163), 1, - anon_sym_COMMA, - ACTIONS(367), 1, - anon_sym_GT, - STATE(76), 1, - sym__comma, - STATE(145), 1, - aux_sym_template_declaration_arguments_repeat1, + [3883] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3586] = 5, - ACTIONS(369), 1, + ACTIONS(379), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [3894] = 5, + ACTIONS(381), 1, anon_sym_GT, - ACTIONS(371), 1, + ACTIONS(383), 1, anon_sym_COMMA, - STATE(37), 1, + STATE(83), 1, sym__comma, - STATE(119), 1, - aux_sym_template_params_repeat1, + STATE(123), 1, + aux_sym_template_declaration_arguments_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3603] = 2, + [3911] = 5, + ACTIONS(386), 1, + anon_sym_RPAREN, + ACTIONS(388), 1, + anon_sym_COMMA, + STATE(55), 1, + sym__comma, + STATE(124), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(374), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COMMA, - sym_identifier, - [3614] = 4, - ACTIONS(88), 1, - anon_sym_LBRACK, - STATE(155), 1, - sym_array_bracket_expression, + [3928] = 5, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(352), 1, + anon_sym_LF, + STATE(141), 1, + aux_sym__linebreak, + STATE(186), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(376), 2, - anon_sym_GT, - anon_sym_COMMA, - [3629] = 5, - ACTIONS(163), 1, + [3945] = 5, + ACTIONS(185), 1, anon_sym_COMMA, - ACTIONS(378), 1, + ACTIONS(391), 1, anon_sym_GT, - STATE(37), 1, + STATE(42), 1, sym__comma, - STATE(150), 1, + STATE(119), 1, aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3646] = 2, + [3962] = 5, + ACTIONS(393), 1, + ts_builtin_sym_end, + ACTIONS(395), 1, + anon_sym_LF, + STATE(110), 1, + aux_sym__linebreak, + STATE(145), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(380), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COMMA, - sym_identifier, - [3657] = 5, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(319), 1, - anon_sym_LF, - STATE(142), 1, - aux_sym__linebreak, - STATE(180), 1, - sym_module, + [3979] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3674] = 5, - ACTIONS(382), 1, + ACTIONS(397), 4, ts_builtin_sym_end, - ACTIONS(384), 1, + anon_sym_RBRACE, + anon_sym_else, anon_sym_LF, - STATE(96), 1, - aux_sym__linebreak, - STATE(109), 1, - aux_sym_source_file_repeat1, + [3990] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3691] = 5, - ACTIONS(386), 1, - anon_sym_GT, - ACTIONS(388), 1, - anon_sym_COMMA, - STATE(76), 1, - sym__comma, - STATE(126), 1, - aux_sym_template_declaration_arguments_repeat1, + ACTIONS(399), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [4001] = 5, + ACTIONS(401), 1, + ts_builtin_sym_end, + ACTIONS(403), 1, + anon_sym_LF, + STATE(109), 1, + aux_sym__linebreak, + STATE(143), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3708] = 2, + [4018] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(391), 4, + ACTIONS(405), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3719] = 5, - ACTIONS(393), 1, - ts_builtin_sym_end, - ACTIONS(395), 1, + [4029] = 5, + ACTIONS(340), 1, + anon_sym_RBRACE, + ACTIONS(344), 1, anon_sym_LF, - STATE(107), 1, + STATE(8), 1, aux_sym__linebreak, - STATE(147), 1, - aux_sym_source_file_repeat1, + STATE(150), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3736] = 5, - ACTIONS(329), 1, + [4046] = 5, + ACTIONS(407), 1, anon_sym_RBRACE, - ACTIONS(333), 1, + ACTIONS(409), 1, anon_sym_LF, - STATE(8), 1, + STATE(10), 1, aux_sym__linebreak, - STATE(141), 1, + STATE(133), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3753] = 4, - ACTIONS(397), 1, - anon_sym_LT, - STATE(148), 1, - sym_template_params, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(169), 2, - anon_sym_LBRACK, - sym_identifier, - [3768] = 2, + [4063] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(399), 4, + ACTIONS(412), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3779] = 2, + [4074] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(391), 4, + ACTIONS(405), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3790] = 2, + [4085] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(401), 4, + ACTIONS(399), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3801] = 2, + [4096] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(403), 4, - ts_builtin_sym_end, + ACTIONS(414), 4, anon_sym_RBRACE, - anon_sym_else, + anon_sym_EQ, + anon_sym_COMMA, anon_sym_LF, - [3812] = 2, + [4107] = 5, + ACTIONS(185), 1, + anon_sym_COMMA, + ACTIONS(416), 1, + anon_sym_GT, + STATE(83), 1, + sym__comma, + STATE(157), 1, + aux_sym_template_declaration_arguments_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(181), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COMMA, - anon_sym_LF, - [3823] = 5, - ACTIONS(405), 1, - anon_sym_RBRACE, - ACTIONS(407), 1, - anon_sym_LF, - STATE(10), 1, - aux_sym__linebreak, - STATE(136), 1, - aux_sym_block_repeat1, + [4124] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3840] = 5, - ACTIONS(163), 1, + ACTIONS(418), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [4135] = 5, + ACTIONS(185), 1, anon_sym_COMMA, - ACTIONS(410), 1, + ACTIONS(420), 1, anon_sym_RPAREN, - STATE(62), 1, + STATE(55), 1, sym__comma, - STATE(116), 1, + STATE(124), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3857] = 2, + [4152] = 4, + ACTIONS(422), 1, + anon_sym_LF, + STATE(141), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(403), 4, + ACTIONS(172), 2, ts_builtin_sym_end, + anon_sym_module, + [4167] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(191), 4, anon_sym_RBRACE, - anon_sym_else, + anon_sym_EQ, + anon_sym_COMMA, anon_sym_LF, - [3868] = 5, - ACTIONS(412), 1, + [4178] = 5, + ACTIONS(425), 1, + ts_builtin_sym_end, + ACTIONS(427), 1, + anon_sym_LF, + STATE(107), 1, + aux_sym__linebreak, + STATE(145), 1, + aux_sym_source_file_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [4195] = 5, + ACTIONS(429), 1, anon_sym_RBRACE, - ACTIONS(414), 1, + ACTIONS(431), 1, anon_sym_LF, - STATE(4), 1, + STATE(6), 1, aux_sym__linebreak, - STATE(136), 1, + STATE(133), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3885] = 2, + [4212] = 5, + ACTIONS(433), 1, + ts_builtin_sym_end, + ACTIONS(435), 1, + anon_sym_LF, + STATE(125), 1, + aux_sym__linebreak, + STATE(145), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(416), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COMMA, - anon_sym_LF, - [3896] = 5, - ACTIONS(418), 1, + [4229] = 5, + ACTIONS(438), 1, anon_sym_RBRACE, - ACTIONS(420), 1, + ACTIONS(440), 1, anon_sym_LF, STATE(2), 1, aux_sym__linebreak, - STATE(136), 1, + STATE(133), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3913] = 4, - ACTIONS(422), 1, - anon_sym_LF, - STATE(142), 1, - aux_sym__linebreak, + [4246] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(150), 2, + ACTIONS(442), 4, ts_builtin_sym_end, - anon_sym_module, - [3928] = 2, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [4257] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(425), 4, + ACTIONS(444), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3939] = 4, - ACTIONS(304), 1, - anon_sym_COLON, - STATE(174), 1, - sym_interface_ports, + [4268] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(427), 2, + ACTIONS(446), 4, + anon_sym_GT, + anon_sym_LBRACK, + sym_identifier, + anon_sym_COMMA, + [4279] = 5, + ACTIONS(448), 1, anon_sym_RBRACE, + ACTIONS(450), 1, anon_sym_LF, - [3954] = 5, - ACTIONS(163), 1, - anon_sym_COMMA, - ACTIONS(429), 1, - anon_sym_GT, - STATE(76), 1, - sym__comma, - STATE(126), 1, - aux_sym_template_declaration_arguments_repeat1, + STATE(5), 1, + aux_sym__linebreak, + STATE(133), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3971] = 2, + [4296] = 5, + ACTIONS(452), 1, + anon_sym_RBRACE, + ACTIONS(454), 1, + anon_sym_LF, + STATE(4), 1, + aux_sym__linebreak, + STATE(133), 1, + aux_sym_block_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [4313] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(425), 4, + ACTIONS(456), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3982] = 5, - ACTIONS(431), 1, - ts_builtin_sym_end, - ACTIONS(433), 1, - anon_sym_LF, - STATE(97), 1, - aux_sym__linebreak, - STATE(109), 1, - aux_sym_source_file_repeat1, + [4324] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3999] = 2, + ACTIONS(442), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [4335] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(435), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COMMA, - sym_identifier, - [4010] = 4, + ACTIONS(458), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [4346] = 4, ACTIONS(13), 1, anon_sym_LBRACE, - ACTIONS(437), 1, + ACTIONS(460), 1, anon_sym_if, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(170), 2, + STATE(178), 2, sym_block, sym_if_statement, - [4025] = 5, - ACTIONS(163), 1, + [4361] = 4, + ACTIONS(464), 1, + anon_sym_LBRACK, + STATE(149), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(462), 2, + anon_sym_GT, anon_sym_COMMA, - ACTIONS(439), 1, + [4376] = 5, + ACTIONS(185), 1, + anon_sym_COMMA, + ACTIONS(466), 1, anon_sym_GT, - STATE(37), 1, + STATE(83), 1, sym__comma, - STATE(119), 1, - aux_sym_template_params_repeat1, + STATE(123), 1, + aux_sym_template_declaration_arguments_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4042] = 2, + [4393] = 5, + ACTIONS(185), 1, + anon_sym_COMMA, + ACTIONS(468), 1, + anon_sym_GT, + STATE(42), 1, + sym__comma, + STATE(126), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(441), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [4053] = 2, + [4410] = 4, + ACTIONS(470), 1, + sym_identifier, + ACTIONS(472), 1, + anon_sym_LT, + STATE(25), 1, + sym_template_params, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(443), 4, - anon_sym_GT, + [4424] = 4, + ACTIONS(106), 1, anon_sym_LBRACK, - anon_sym_COMMA, + ACTIONS(474), 1, sym_identifier, - [4064] = 5, - ACTIONS(445), 1, - anon_sym_RBRACE, - ACTIONS(447), 1, - anon_sym_LF, - STATE(7), 1, - aux_sym__linebreak, - STATE(136), 1, - aux_sym_block_repeat1, + STATE(149), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4081] = 5, - ACTIONS(449), 1, - anon_sym_RBRACE, - ACTIONS(451), 1, - anon_sym_LF, - STATE(6), 1, - aux_sym__linebreak, - STATE(136), 1, - aux_sym_block_repeat1, + [4438] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4098] = 2, + ACTIONS(476), 3, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_LF, + [4448] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(453), 4, - anon_sym_GT, + ACTIONS(478), 3, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_LF, + [4458] = 4, + ACTIONS(106), 1, anon_sym_LBRACK, - anon_sym_COMMA, + ACTIONS(480), 1, sym_identifier, - [4109] = 5, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(304), 1, - anon_sym_COLON, - STATE(181), 1, - sym_block, - STATE(182), 1, - sym_interface_ports, + STATE(149), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4126] = 2, + [4472] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(455), 3, + ACTIONS(482), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4136] = 2, + [4482] = 3, + ACTIONS(486), 1, + anon_sym_else, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(484), 2, + anon_sym_RBRACE, + anon_sym_LF, + [4494] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(457), 3, + ACTIONS(488), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4146] = 2, + [4504] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(459), 3, + ACTIONS(490), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4156] = 4, - ACTIONS(88), 1, + [4514] = 4, + ACTIONS(106), 1, anon_sym_LBRACK, - ACTIONS(461), 1, + ACTIONS(492), 1, sym_identifier, - STATE(155), 1, + STATE(149), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4170] = 2, + [4528] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(463), 3, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_LF, - [4180] = 2, + ACTIONS(128), 3, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + [4538] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(465), 3, + ACTIONS(494), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4190] = 3, - ACTIONS(469), 1, - anon_sym_else, + [4548] = 3, + ACTIONS(342), 1, + anon_sym_EQ, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(467), 2, + ACTIONS(496), 2, anon_sym_RBRACE, anon_sym_LF, - [4202] = 4, - ACTIONS(88), 1, + [4560] = 4, + ACTIONS(106), 1, anon_sym_LBRACK, - ACTIONS(471), 1, + ACTIONS(498), 1, sym_identifier, - STATE(155), 1, + STATE(149), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4216] = 4, - ACTIONS(88), 1, - anon_sym_LBRACK, - ACTIONS(473), 1, - sym_identifier, - STATE(155), 1, - sym_array_bracket_expression, + [4574] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4230] = 4, - ACTIONS(88), 1, - anon_sym_LBRACK, - ACTIONS(475), 1, - sym_identifier, - STATE(155), 1, - sym_array_bracket_expression, + ACTIONS(500), 2, + anon_sym_COLON, + anon_sym_LBRACE, + [4583] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4244] = 2, + ACTIONS(502), 2, + anon_sym_COLON, + anon_sym_LBRACE, + [4592] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(477), 3, - anon_sym_LBRACE, - anon_sym_RBRACE, + ACTIONS(504), 2, + ts_builtin_sym_end, anon_sym_LF, - [4254] = 3, - ACTIONS(331), 1, - anon_sym_EQ, + [4601] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(479), 2, + ACTIONS(496), 2, anon_sym_RBRACE, anon_sym_LF, - [4266] = 2, + [4610] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(481), 2, - anon_sym_COLON, - anon_sym_LBRACE, - [4275] = 2, + ACTIONS(506), 2, + ts_builtin_sym_end, + anon_sym_LF, + [4619] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(483), 2, + ACTIONS(508), 2, anon_sym_RBRACE, anon_sym_LF, - [4284] = 2, + [4628] = 3, + ACTIONS(13), 1, + anon_sym_LBRACE, + STATE(177), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(485), 2, - anon_sym_RBRACE, - anon_sym_LF, - [4293] = 2, + [4639] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(479), 2, + ACTIONS(510), 2, anon_sym_RBRACE, anon_sym_LF, - [4302] = 2, + [4648] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(487), 2, + ACTIONS(512), 2, ts_builtin_sym_end, anon_sym_LF, - [4311] = 2, + [4657] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(489), 2, + ACTIONS(514), 2, anon_sym_RBRACE, anon_sym_LF, - [4320] = 2, + [4666] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(491), 2, + ACTIONS(516), 2, anon_sym_COLON, anon_sym_LBRACE, - [4329] = 2, + [4675] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(493), 2, + ACTIONS(518), 2, anon_sym_GT, anon_sym_COMMA, - [4338] = 2, + [4684] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(495), 2, + ACTIONS(520), 2, anon_sym_GT, anon_sym_COMMA, - [4347] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(497), 2, - anon_sym_COLON, - anon_sym_LBRACE, - [4356] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(499), 2, - ts_builtin_sym_end, - anon_sym_LF, - [4365] = 2, + [4693] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(501), 2, + ACTIONS(522), 2, ts_builtin_sym_end, anon_sym_LF, - [4374] = 2, + [4702] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(503), 2, + ACTIONS(524), 2, ts_builtin_sym_end, anon_sym_LF, - [4383] = 3, + [4711] = 3, ACTIONS(13), 1, anon_sym_LBRACE, - STATE(179), 1, + STATE(175), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4394] = 2, + [4722] = 2, + ACTIONS(526), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(505), 2, + [4730] = 2, + ACTIONS(528), 1, ts_builtin_sym_end, - anon_sym_LF, - [4403] = 3, - ACTIONS(13), 1, - anon_sym_LBRACE, - STATE(183), 1, - sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4414] = 2, - ACTIONS(507), 1, - sym_identifier, + [4738] = 2, + ACTIONS(530), 1, + anon_sym_in, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4422] = 2, - ACTIONS(509), 1, + [4746] = 2, + ACTIONS(532), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4430] = 2, - ACTIONS(511), 1, + [4754] = 2, + ACTIONS(534), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4438] = 2, - ACTIONS(513), 1, - anon_sym_in, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4446] = 2, - ACTIONS(515), 1, + [4762] = 2, + ACTIONS(536), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4454] = 2, - ACTIONS(517), 1, - ts_builtin_sym_end, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(10)] = 0, - [SMALL_STATE(11)] = 94, - [SMALL_STATE(12)] = 160, - [SMALL_STATE(13)] = 203, - [SMALL_STATE(14)] = 246, - [SMALL_STATE(15)] = 289, - [SMALL_STATE(16)] = 327, + [SMALL_STATE(11)] = 96, + [SMALL_STATE(12)] = 164, + [SMALL_STATE(13)] = 207, + [SMALL_STATE(14)] = 250, + [SMALL_STATE(15)] = 293, + [SMALL_STATE(16)] = 336, [SMALL_STATE(17)] = 379, - [SMALL_STATE(18)] = 427, - [SMALL_STATE(19)] = 489, - [SMALL_STATE(20)] = 545, - [SMALL_STATE(21)] = 605, - [SMALL_STATE(22)] = 663, - [SMALL_STATE(23)] = 711, - [SMALL_STATE(24)] = 748, - [SMALL_STATE(25)] = 784, - [SMALL_STATE(26)] = 820, - [SMALL_STATE(27)] = 856, - [SMALL_STATE(28)] = 892, - [SMALL_STATE(29)] = 928, - [SMALL_STATE(30)] = 964, - [SMALL_STATE(31)] = 1000, - [SMALL_STATE(32)] = 1051, - [SMALL_STATE(33)] = 1114, - [SMALL_STATE(34)] = 1151, - [SMALL_STATE(35)] = 1198, - [SMALL_STATE(36)] = 1260, - [SMALL_STATE(37)] = 1318, - [SMALL_STATE(38)] = 1362, - [SMALL_STATE(39)] = 1402, - [SMALL_STATE(40)] = 1460, - [SMALL_STATE(41)] = 1514, - [SMALL_STATE(42)] = 1570, - [SMALL_STATE(43)] = 1626, - [SMALL_STATE(44)] = 1680, - [SMALL_STATE(45)] = 1733, - [SMALL_STATE(46)] = 1786, - [SMALL_STATE(47)] = 1839, - [SMALL_STATE(48)] = 1892, - [SMALL_STATE(49)] = 1928, - [SMALL_STATE(50)] = 1964, - [SMALL_STATE(51)] = 1997, - [SMALL_STATE(52)] = 2028, - [SMALL_STATE(53)] = 2061, - [SMALL_STATE(54)] = 2094, - [SMALL_STATE(55)] = 2127, - [SMALL_STATE(56)] = 2158, - [SMALL_STATE(57)] = 2191, - [SMALL_STATE(58)] = 2224, - [SMALL_STATE(59)] = 2257, - [SMALL_STATE(60)] = 2290, - [SMALL_STATE(61)] = 2323, - [SMALL_STATE(62)] = 2356, - [SMALL_STATE(63)] = 2389, - [SMALL_STATE(64)] = 2422, - [SMALL_STATE(65)] = 2455, - [SMALL_STATE(66)] = 2488, - [SMALL_STATE(67)] = 2521, - [SMALL_STATE(68)] = 2550, - [SMALL_STATE(69)] = 2579, - [SMALL_STATE(70)] = 2621, - [SMALL_STATE(71)] = 2645, - [SMALL_STATE(72)] = 2687, - [SMALL_STATE(73)] = 2710, - [SMALL_STATE(74)] = 2746, - [SMALL_STATE(75)] = 2782, - [SMALL_STATE(76)] = 2813, - [SMALL_STATE(77)] = 2841, - [SMALL_STATE(78)] = 2868, - [SMALL_STATE(79)] = 2889, - [SMALL_STATE(80)] = 2910, - [SMALL_STATE(81)] = 2931, - [SMALL_STATE(82)] = 2952, - [SMALL_STATE(83)] = 2979, - [SMALL_STATE(84)] = 2994, - [SMALL_STATE(85)] = 3009, - [SMALL_STATE(86)] = 3024, - [SMALL_STATE(87)] = 3039, - [SMALL_STATE(88)] = 3059, - [SMALL_STATE(89)] = 3079, - [SMALL_STATE(90)] = 3099, - [SMALL_STATE(91)] = 3119, - [SMALL_STATE(92)] = 3139, - [SMALL_STATE(93)] = 3162, - [SMALL_STATE(94)] = 3181, - [SMALL_STATE(95)] = 3200, - [SMALL_STATE(96)] = 3219, - [SMALL_STATE(97)] = 3239, - [SMALL_STATE(98)] = 3259, - [SMALL_STATE(99)] = 3279, - [SMALL_STATE(100)] = 3295, - [SMALL_STATE(101)] = 3311, - [SMALL_STATE(102)] = 3327, - [SMALL_STATE(103)] = 3343, - [SMALL_STATE(104)] = 3363, - [SMALL_STATE(105)] = 3383, - [SMALL_STATE(106)] = 3403, - [SMALL_STATE(107)] = 3415, - [SMALL_STATE(108)] = 3435, - [SMALL_STATE(109)] = 3446, - [SMALL_STATE(110)] = 3463, - [SMALL_STATE(111)] = 3480, - [SMALL_STATE(112)] = 3491, - [SMALL_STATE(113)] = 3502, - [SMALL_STATE(114)] = 3519, - [SMALL_STATE(115)] = 3530, - [SMALL_STATE(116)] = 3541, - [SMALL_STATE(117)] = 3558, - [SMALL_STATE(118)] = 3569, - [SMALL_STATE(119)] = 3586, - [SMALL_STATE(120)] = 3603, - [SMALL_STATE(121)] = 3614, - [SMALL_STATE(122)] = 3629, - [SMALL_STATE(123)] = 3646, - [SMALL_STATE(124)] = 3657, - [SMALL_STATE(125)] = 3674, - [SMALL_STATE(126)] = 3691, - [SMALL_STATE(127)] = 3708, - [SMALL_STATE(128)] = 3719, - [SMALL_STATE(129)] = 3736, - [SMALL_STATE(130)] = 3753, - [SMALL_STATE(131)] = 3768, - [SMALL_STATE(132)] = 3779, - [SMALL_STATE(133)] = 3790, - [SMALL_STATE(134)] = 3801, - [SMALL_STATE(135)] = 3812, - [SMALL_STATE(136)] = 3823, - [SMALL_STATE(137)] = 3840, - [SMALL_STATE(138)] = 3857, - [SMALL_STATE(139)] = 3868, - [SMALL_STATE(140)] = 3885, - [SMALL_STATE(141)] = 3896, - [SMALL_STATE(142)] = 3913, - [SMALL_STATE(143)] = 3928, - [SMALL_STATE(144)] = 3939, - [SMALL_STATE(145)] = 3954, - [SMALL_STATE(146)] = 3971, - [SMALL_STATE(147)] = 3982, - [SMALL_STATE(148)] = 3999, - [SMALL_STATE(149)] = 4010, - [SMALL_STATE(150)] = 4025, - [SMALL_STATE(151)] = 4042, - [SMALL_STATE(152)] = 4053, - [SMALL_STATE(153)] = 4064, - [SMALL_STATE(154)] = 4081, - [SMALL_STATE(155)] = 4098, - [SMALL_STATE(156)] = 4109, - [SMALL_STATE(157)] = 4126, - [SMALL_STATE(158)] = 4136, - [SMALL_STATE(159)] = 4146, - [SMALL_STATE(160)] = 4156, - [SMALL_STATE(161)] = 4170, - [SMALL_STATE(162)] = 4180, - [SMALL_STATE(163)] = 4190, - [SMALL_STATE(164)] = 4202, - [SMALL_STATE(165)] = 4216, - [SMALL_STATE(166)] = 4230, - [SMALL_STATE(167)] = 4244, - [SMALL_STATE(168)] = 4254, - [SMALL_STATE(169)] = 4266, - [SMALL_STATE(170)] = 4275, - [SMALL_STATE(171)] = 4284, - [SMALL_STATE(172)] = 4293, - [SMALL_STATE(173)] = 4302, - [SMALL_STATE(174)] = 4311, - [SMALL_STATE(175)] = 4320, - [SMALL_STATE(176)] = 4329, - [SMALL_STATE(177)] = 4338, - [SMALL_STATE(178)] = 4347, - [SMALL_STATE(179)] = 4356, - [SMALL_STATE(180)] = 4365, - [SMALL_STATE(181)] = 4374, - [SMALL_STATE(182)] = 4383, - [SMALL_STATE(183)] = 4394, - [SMALL_STATE(184)] = 4403, - [SMALL_STATE(185)] = 4414, - [SMALL_STATE(186)] = 4422, - [SMALL_STATE(187)] = 4430, - [SMALL_STATE(188)] = 4438, - [SMALL_STATE(189)] = 4446, - [SMALL_STATE(190)] = 4454, + [SMALL_STATE(18)] = 417, + [SMALL_STATE(19)] = 455, + [SMALL_STATE(20)] = 511, + [SMALL_STATE(21)] = 571, + [SMALL_STATE(22)] = 629, + [SMALL_STATE(23)] = 677, + [SMALL_STATE(24)] = 729, + [SMALL_STATE(25)] = 791, + [SMALL_STATE(26)] = 829, + [SMALL_STATE(27)] = 867, + [SMALL_STATE(28)] = 915, + [SMALL_STATE(29)] = 952, + [SMALL_STATE(30)] = 988, + [SMALL_STATE(31)] = 1024, + [SMALL_STATE(32)] = 1060, + [SMALL_STATE(33)] = 1096, + [SMALL_STATE(34)] = 1132, + [SMALL_STATE(35)] = 1168, + [SMALL_STATE(36)] = 1204, + [SMALL_STATE(37)] = 1257, + [SMALL_STATE(38)] = 1320, + [SMALL_STATE(39)] = 1358, + [SMALL_STATE(40)] = 1407, + [SMALL_STATE(41)] = 1469, + [SMALL_STATE(42)] = 1527, + [SMALL_STATE(43)] = 1573, + [SMALL_STATE(44)] = 1631, + [SMALL_STATE(45)] = 1666, + [SMALL_STATE(46)] = 1722, + [SMALL_STATE(47)] = 1776, + [SMALL_STATE(48)] = 1832, + [SMALL_STATE(49)] = 1886, + [SMALL_STATE(50)] = 1925, + [SMALL_STATE(51)] = 1978, + [SMALL_STATE(52)] = 2031, + [SMALL_STATE(53)] = 2084, + [SMALL_STATE(54)] = 2137, + [SMALL_STATE(55)] = 2190, + [SMALL_STATE(56)] = 2226, + [SMALL_STATE(57)] = 2262, + [SMALL_STATE(58)] = 2298, + [SMALL_STATE(59)] = 2334, + [SMALL_STATE(60)] = 2370, + [SMALL_STATE(61)] = 2406, + [SMALL_STATE(62)] = 2442, + [SMALL_STATE(63)] = 2478, + [SMALL_STATE(64)] = 2514, + [SMALL_STATE(65)] = 2550, + [SMALL_STATE(66)] = 2586, + [SMALL_STATE(67)] = 2622, + [SMALL_STATE(68)] = 2654, + [SMALL_STATE(69)] = 2686, + [SMALL_STATE(70)] = 2722, + [SMALL_STATE(71)] = 2758, + [SMALL_STATE(72)] = 2794, + [SMALL_STATE(73)] = 2830, + [SMALL_STATE(74)] = 2861, + [SMALL_STATE(75)] = 2891, + [SMALL_STATE(76)] = 2921, + [SMALL_STATE(77)] = 2946, + [SMALL_STATE(78)] = 2988, + [SMALL_STATE(79)] = 3030, + [SMALL_STATE(80)] = 3054, + [SMALL_STATE(81)] = 3090, + [SMALL_STATE(82)] = 3126, + [SMALL_STATE(83)] = 3157, + [SMALL_STATE(84)] = 3185, + [SMALL_STATE(85)] = 3206, + [SMALL_STATE(86)] = 3227, + [SMALL_STATE(87)] = 3248, + [SMALL_STATE(88)] = 3275, + [SMALL_STATE(89)] = 3296, + [SMALL_STATE(90)] = 3323, + [SMALL_STATE(91)] = 3338, + [SMALL_STATE(92)] = 3353, + [SMALL_STATE(93)] = 3368, + [SMALL_STATE(94)] = 3383, + [SMALL_STATE(95)] = 3403, + [SMALL_STATE(96)] = 3423, + [SMALL_STATE(97)] = 3443, + [SMALL_STATE(98)] = 3463, + [SMALL_STATE(99)] = 3482, + [SMALL_STATE(100)] = 3501, + [SMALL_STATE(101)] = 3520, + [SMALL_STATE(102)] = 3539, + [SMALL_STATE(103)] = 3562, + [SMALL_STATE(104)] = 3582, + [SMALL_STATE(105)] = 3598, + [SMALL_STATE(106)] = 3610, + [SMALL_STATE(107)] = 3626, + [SMALL_STATE(108)] = 3646, + [SMALL_STATE(109)] = 3666, + [SMALL_STATE(110)] = 3686, + [SMALL_STATE(111)] = 3706, + [SMALL_STATE(112)] = 3726, + [SMALL_STATE(113)] = 3742, + [SMALL_STATE(114)] = 3758, + [SMALL_STATE(115)] = 3778, + [SMALL_STATE(116)] = 3793, + [SMALL_STATE(117)] = 3810, + [SMALL_STATE(118)] = 3827, + [SMALL_STATE(119)] = 3838, + [SMALL_STATE(120)] = 3855, + [SMALL_STATE(121)] = 3872, + [SMALL_STATE(122)] = 3883, + [SMALL_STATE(123)] = 3894, + [SMALL_STATE(124)] = 3911, + [SMALL_STATE(125)] = 3928, + [SMALL_STATE(126)] = 3945, + [SMALL_STATE(127)] = 3962, + [SMALL_STATE(128)] = 3979, + [SMALL_STATE(129)] = 3990, + [SMALL_STATE(130)] = 4001, + [SMALL_STATE(131)] = 4018, + [SMALL_STATE(132)] = 4029, + [SMALL_STATE(133)] = 4046, + [SMALL_STATE(134)] = 4063, + [SMALL_STATE(135)] = 4074, + [SMALL_STATE(136)] = 4085, + [SMALL_STATE(137)] = 4096, + [SMALL_STATE(138)] = 4107, + [SMALL_STATE(139)] = 4124, + [SMALL_STATE(140)] = 4135, + [SMALL_STATE(141)] = 4152, + [SMALL_STATE(142)] = 4167, + [SMALL_STATE(143)] = 4178, + [SMALL_STATE(144)] = 4195, + [SMALL_STATE(145)] = 4212, + [SMALL_STATE(146)] = 4229, + [SMALL_STATE(147)] = 4246, + [SMALL_STATE(148)] = 4257, + [SMALL_STATE(149)] = 4268, + [SMALL_STATE(150)] = 4279, + [SMALL_STATE(151)] = 4296, + [SMALL_STATE(152)] = 4313, + [SMALL_STATE(153)] = 4324, + [SMALL_STATE(154)] = 4335, + [SMALL_STATE(155)] = 4346, + [SMALL_STATE(156)] = 4361, + [SMALL_STATE(157)] = 4376, + [SMALL_STATE(158)] = 4393, + [SMALL_STATE(159)] = 4410, + [SMALL_STATE(160)] = 4424, + [SMALL_STATE(161)] = 4438, + [SMALL_STATE(162)] = 4448, + [SMALL_STATE(163)] = 4458, + [SMALL_STATE(164)] = 4472, + [SMALL_STATE(165)] = 4482, + [SMALL_STATE(166)] = 4494, + [SMALL_STATE(167)] = 4504, + [SMALL_STATE(168)] = 4514, + [SMALL_STATE(169)] = 4528, + [SMALL_STATE(170)] = 4538, + [SMALL_STATE(171)] = 4548, + [SMALL_STATE(172)] = 4560, + [SMALL_STATE(173)] = 4574, + [SMALL_STATE(174)] = 4583, + [SMALL_STATE(175)] = 4592, + [SMALL_STATE(176)] = 4601, + [SMALL_STATE(177)] = 4610, + [SMALL_STATE(178)] = 4619, + [SMALL_STATE(179)] = 4628, + [SMALL_STATE(180)] = 4639, + [SMALL_STATE(181)] = 4648, + [SMALL_STATE(182)] = 4657, + [SMALL_STATE(183)] = 4666, + [SMALL_STATE(184)] = 4675, + [SMALL_STATE(185)] = 4684, + [SMALL_STATE(186)] = 4693, + [SMALL_STATE(187)] = 4702, + [SMALL_STATE(188)] = 4711, + [SMALL_STATE(189)] = 4722, + [SMALL_STATE(190)] = 4730, + [SMALL_STATE(191)] = 4738, + [SMALL_STATE(192)] = 4746, + [SMALL_STATE(193)] = 4754, + [SMALL_STATE(194)] = 4762, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -7766,254 +8003,264 @@ static const TSParseActionEntry ts_parse_actions[] = { [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0), [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), - [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(187), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(82), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(88), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(101), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), - [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), - [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [55] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), - [57] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), - [59] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 5), SHIFT_REPEAT(185), - [62] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 2, .production_id = 2), - [64] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 2, .production_id = 2), - [66] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), - [68] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_global_identifier, 1, .production_id = 1), - [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_identifier, 1, .production_id = 1), - [72] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), - [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_identifier_repeat1, 2, .production_id = 3), - [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 35), - [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 35), - [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [82] = {.entry = {.count = 1, .reusable = false}}, SHIFT(50), - [84] = {.entry = {.count = 1, .reusable = false}}, SHIFT(186), - [86] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [88] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 22), - [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 22), - [94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [96] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61), - [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 33), - [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 33), - [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 24), - [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 24), - [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), - [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 33), - [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 33), - [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 36), - [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 36), - [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 17), - [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 17), - [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 33), - [140] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), - [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 33), - [144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), - [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), - [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), - [152] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(33), - [155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), - [159] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [165] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 10), - [167] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 10), - [169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_type, 1, .production_id = 9), - [171] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__expression, 1), SHIFT(34), - [174] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [178] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_named_type, 1, .production_id = 9), REDUCE(sym__expression, 1), - [181] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 23), - [183] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 23), - [185] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 34), - [187] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), - [189] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_generative_expression, 1), - [191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [197] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_named_type, 1, .production_id = 9), REDUCE(sym__expression, 1), - [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [206] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), - [208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), - [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [218] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), - [220] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), - [222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [244] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [246] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(70), - [249] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [251] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 11), - [253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 11), - [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [259] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [263] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [265] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [269] = {.entry = {.count = 1, .reusable = false}}, SHIFT(91), - [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), - [273] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 16), - [275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [277] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 28), - [279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 27), - [281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 38), - [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 29), - [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 40), - [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 42), - [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 39), - [291] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), - [293] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(51), - [296] = {.entry = {.count = 1, .reusable = false}}, SHIFT(99), - [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), - [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), - [302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1), - [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), - [310] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), - [312] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(51), - [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), - [317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), - [319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), - [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), - [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), - [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 8), - [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 19), - [329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), - [337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), - [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), - [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), - [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), - [349] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(124), - [352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), - [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 41), - [360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), - [362] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(51), - [365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169), - [369] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), - [371] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), SHIFT_REPEAT(51), - [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 2), - [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type, 1), - [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), - [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 6), - [382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), - [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), - [388] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), SHIFT_REPEAT(51), - [391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 41), - [393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), - [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), - [401] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 37), - [403] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), - [405] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), - [407] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), - [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), - [414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), - [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), - [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [422] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(142), - [425] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), - [427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 21), - [429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), - [431] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), - [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), - [435] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_type, 2, .production_id = 20), - [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), - [441] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 37), - [443] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3, .production_id = 3), - [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), - [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), - [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [453] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 17), - [455] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 14), - [457] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 26), - [459] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 15), - [461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 30), - [465] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 18), - [467] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 32), - [469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), - [471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [477] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), - [479] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), - [481] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 3), - [483] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 43), - [485] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 44), - [487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), - [489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 31), - [491] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 6), - [493] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 3), - [495] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 3), - [497] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), - [499] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5, .production_id = 25), - [501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), - [503] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 13), - [505] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 12), - [507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), - [513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [517] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(192), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(94), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(112), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), + [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 2), + [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 2), + [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), + [65] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), + [67] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(159), + [70] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1, .production_id = 1), + [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1, .production_id = 1), + [74] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 3), + [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 3), + [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 6), + [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 6), + [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 2), + [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 2), + [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 6), + [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 6), + [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 33), + [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 33), + [94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [96] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), + [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [100] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72), + [102] = {.entry = {.count = 1, .reusable = false}}, SHIFT(194), + [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), + [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), + [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 3, .production_id = 3), + [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3, .production_id = 3), + [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 20), + [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 20), + [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 31), + [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 31), + [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 16), + [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 16), + [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 31), + [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 31), + [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 34), + [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 34), + [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 22), + [144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 22), + [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), + [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [152] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 31), + [162] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), + [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 31), + [166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), + [170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), + [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), + [174] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(38), + [177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [187] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 9), + [189] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 9), + [191] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 21), + [193] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 21), + [195] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), + [197] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [199] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [201] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), + [204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 32), + [206] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), + [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_generative_expression, 1), + [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169), + [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [246] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), + [248] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), + [250] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), + [252] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), + [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [264] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), + [267] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [269] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(76), + [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [274] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), + [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), + [278] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [286] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [292] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), + [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), + [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 15), + [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 26), + [302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 25), + [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 36), + [306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 40), + [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 38), + [310] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 27), + [312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 37), + [314] = {.entry = {.count = 1, .reusable = false}}, SHIFT(104), + [316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), + [318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), + [320] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(68), + [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), + [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), + [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), + [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1), + [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), + [333] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(68), + [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), + [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), + [348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 8), + [350] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), + [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), + [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), + [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), + [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), + [360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 18), + [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), + [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 19), + [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), + [372] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), SHIFT_REPEAT(68), + [375] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), + [377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 39), + [381] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), + [383] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), SHIFT_REPEAT(68), + [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), + [388] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(68), + [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), + [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [397] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), + [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 39), + [401] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), + [403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [405] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), + [407] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), + [409] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), + [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), + [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), + [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 35), + [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [422] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(141), + [425] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), + [427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), + [431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [433] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), + [435] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(125), + [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), + [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [442] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), + [444] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 35), + [446] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 16), + [448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), + [450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), + [454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [456] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), + [458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type, 1), + [464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), + [468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [470] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [476] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 24), + [478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 17), + [480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 28), + [484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 30), + [486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), + [488] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 13), + [490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 14), + [492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [494] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), + [496] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), + [498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [500] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), + [502] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 3), + [504] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5, .production_id = 23), + [506] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 11), + [508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 41), + [510] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 42), + [512] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 12), + [514] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 29), + [516] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 6), + [518] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 3), + [520] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 3), + [522] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), + [524] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), + [526] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [528] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [534] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), }; #ifdef __cplusplus From 7eb5720d9f508869ba916a24a190362799819766 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Wed, 19 Jun 2024 15:11:33 +0200 Subject: [PATCH 31/49] Run tree.sh --- grammar.js | 2 +- src/grammar.json | 8 +- src/node-types.json | 10 ++ src/parser.c | 235 +++++++++++++++++++++++--------------------- 4 files changed, 140 insertions(+), 115 deletions(-) diff --git a/grammar.js b/grammar.js index 44cbe9c..af4fb44 100644 --- a/grammar.js +++ b/grammar.js @@ -254,7 +254,7 @@ module.exports = grammar({ // myFunc:: template_global: $ => prec(PREC.namespace_path, seq( - optional(field('global_path', '::')), + optional(field('is_global_path', '::')), field('item', $.identifier), repeat(seq( '::', diff --git a/src/grammar.json b/src/grammar.json index c3d45bc..408ff9e 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -1385,8 +1385,12 @@ "type": "CHOICE", "members": [ { - "type": "STRING", - "value": "::" + "type": "FIELD", + "name": "is_global_path", + "content": { + "type": "STRING", + "value": "::" + } }, { "type": "BLANK" diff --git a/src/node-types.json b/src/node-types.json index fa8bde5..d3bcc5d 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -1125,6 +1125,16 @@ "type": "template_global", "named": true, "fields": { + "is_global_path": { + "multiple": false, + "required": false, + "types": [ + { + "type": "::", + "named": false + } + ] + }, "item": { "multiple": true, "required": true, diff --git a/src/parser.c b/src/parser.c index f878efc..24116d4 100644 --- a/src/parser.c +++ b/src/parser.c @@ -11,9 +11,9 @@ #define ALIAS_COUNT 0 #define TOKEN_COUNT 47 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 28 +#define FIELD_COUNT 29 #define MAX_ALIAS_SEQUENCE_LENGTH 7 -#define PRODUCTION_ID_COUNT 43 +#define PRODUCTION_ID_COUNT 45 enum ts_symbol_identifiers { sym_identifier = 1, @@ -673,18 +673,19 @@ enum ts_field_identifiers { field_inputs = 14, field_interface_ports = 15, field_io_port_modifiers = 16, - field_item = 17, - field_latency_specifier = 18, - field_left = 19, - field_name = 20, - field_operator = 21, - field_outputs = 22, - field_right = 23, - field_template_declaration_arguments = 24, - field_then_block = 25, - field_to = 26, - field_type = 27, - field_write_modifiers = 28, + field_is_global_path = 17, + field_item = 18, + field_latency_specifier = 19, + field_left = 20, + field_name = 21, + field_operator = 22, + field_outputs = 23, + field_right = 24, + field_template_declaration_arguments = 25, + field_then_block = 26, + field_to = 27, + field_type = 28, + field_write_modifiers = 29, }; static const char * const ts_field_names[] = { @@ -705,6 +706,7 @@ static const char * const ts_field_names[] = { [field_inputs] = "inputs", [field_interface_ports] = "interface_ports", [field_io_port_modifiers] = "io_port_modifiers", + [field_is_global_path] = "is_global_path", [field_item] = "item", [field_latency_specifier] = "latency_specifier", [field_left] = "left", @@ -736,32 +738,34 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [14] = {.index = 21, .length = 2}, [15] = {.index = 23, .length = 2}, [16] = {.index = 25, .length = 2}, - [17] = {.index = 27, .length = 1}, - [18] = {.index = 28, .length = 1}, - [19] = {.index = 29, .length = 1}, - [20] = {.index = 30, .length = 2}, + [17] = {.index = 27, .length = 2}, + [18] = {.index = 29, .length = 1}, + [19] = {.index = 30, .length = 1}, + [20] = {.index = 31, .length = 1}, [21] = {.index = 32, .length = 2}, [22] = {.index = 34, .length = 2}, - [23] = {.index = 36, .length = 4}, - [24] = {.index = 40, .length = 1}, - [25] = {.index = 41, .length = 3}, - [26] = {.index = 44, .length = 3}, - [27] = {.index = 47, .length = 3}, - [28] = {.index = 50, .length = 2}, - [29] = {.index = 52, .length = 2}, - [30] = {.index = 54, .length = 2}, - [31] = {.index = 56, .length = 1}, - [32] = {.index = 57, .length = 2}, - [33] = {.index = 59, .length = 3}, + [23] = {.index = 36, .length = 2}, + [24] = {.index = 38, .length = 4}, + [25] = {.index = 42, .length = 1}, + [26] = {.index = 43, .length = 3}, + [27] = {.index = 46, .length = 3}, + [28] = {.index = 49, .length = 3}, + [29] = {.index = 52, .length = 3}, + [30] = {.index = 55, .length = 2}, + [31] = {.index = 57, .length = 2}, + [32] = {.index = 59, .length = 2}, + [33] = {.index = 61, .length = 1}, [34] = {.index = 62, .length = 2}, - [35] = {.index = 64, .length = 1}, - [36] = {.index = 65, .length = 4}, - [37] = {.index = 69, .length = 4}, - [38] = {.index = 73, .length = 4}, - [39] = {.index = 77, .length = 2}, - [40] = {.index = 79, .length = 5}, - [41] = {.index = 84, .length = 3}, - [42] = {.index = 87, .length = 4}, + [35] = {.index = 64, .length = 3}, + [36] = {.index = 67, .length = 2}, + [37] = {.index = 69, .length = 1}, + [38] = {.index = 70, .length = 4}, + [39] = {.index = 74, .length = 4}, + [40] = {.index = 78, .length = 4}, + [41] = {.index = 82, .length = 2}, + [42] = {.index = 84, .length = 5}, + [43] = {.index = 89, .length = 3}, + [44] = {.index = 92, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -800,100 +804,107 @@ static const TSFieldMapEntry ts_field_map_entries[] = { [20] = {field_outputs, 1}, [21] = + {field_is_global_path, 0}, + {field_item, 1}, + [23] = {field_inputs, 1}, {field_outputs, 2, .inherited = true}, - [23] = + [25] = {field_name, 1}, {field_type, 0}, - [25] = + [27] = {field_arr, 0}, {field_arr_idx, 1}, - [27] = + [29] = {field_outputs, 2, .inherited = true}, - [28] = + [30] = {field_inputs, 2}, - [29] = + [31] = {field_name, 1}, - [30] = + [32] = {field_operator, 0}, {field_right, 1}, - [32] = + [34] = {field_expr_or_decl, 1}, {field_write_modifiers, 0}, - [34] = + [36] = {field_arguments, 1}, {field_name, 0}, - [36] = + [38] = {field_block, 4}, {field_interface_ports, 3}, {field_name, 1}, {field_template_declaration_arguments, 2}, - [40] = + [42] = {field_outputs, 2}, - [41] = + [43] = {field_io_port_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [44] = + [46] = {field_declaration_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [47] = + [49] = + {field_is_global_path, 0}, + {field_item, 1}, + {field_item, 2, .inherited = true}, + [52] = {field_latency_specifier, 2}, {field_name, 1}, {field_type, 0}, - [50] = + [55] = {field_inputs, 2}, {field_outputs, 3, .inherited = true}, - [52] = + [57] = {field_interface_ports, 2}, {field_name, 1}, - [54] = + [59] = {field_condition, 1}, {field_then_block, 2}, - [56] = + [61] = {field_content, 1}, - [57] = + [62] = {field_assign_left, 0}, {field_assign_value, 2}, - [59] = + [64] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [62] = + [67] = {field_left, 0}, {field_name, 2}, - [64] = + [69] = {field_item, 2}, - [65] = + [70] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_name, 3}, {field_type, 2}, - [69] = + [74] = {field_io_port_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [73] = + [78] = {field_declaration_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [77] = + [82] = {field_item, 2}, {field_item, 3, .inherited = true}, - [79] = + [84] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_latency_specifier, 4}, {field_name, 3}, {field_type, 2}, - [84] = + [89] = {field_condition, 1}, {field_else_block, 4}, {field_then_block, 2}, - [87] = + [92] = {field_block, 6}, {field_for_decl, 1}, {field_from, 3}, @@ -8035,16 +8046,16 @@ static const TSParseActionEntry ts_parse_actions[] = { [67] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(159), [70] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1, .production_id = 1), [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1, .production_id = 1), - [74] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 3), - [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 3), - [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 6), - [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 6), + [74] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 14), + [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 14), + [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 28), + [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 28), [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 2), [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 2), [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 6), [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 6), - [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 33), - [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 33), + [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 35), + [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 35), [94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), [96] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), @@ -8059,18 +8070,18 @@ static const TSParseActionEntry ts_parse_actions[] = { [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 3, .production_id = 3), [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3, .production_id = 3), - [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 20), - [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 20), - [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 31), - [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 31), - [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 16), - [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 16), - [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 31), - [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 31), - [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 34), - [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 34), - [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 22), - [144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 22), + [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 21), + [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 21), + [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 33), + [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 33), + [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 17), + [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 17), + [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 33), + [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 33), + [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 36), + [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 36), + [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 23), + [144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 23), [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), @@ -8078,9 +8089,9 @@ static const TSParseActionEntry ts_parse_actions[] = { [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), [158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 31), + [160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 33), [162] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), - [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 31), + [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 33), [166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), [168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), [170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), @@ -8093,13 +8104,13 @@ static const TSParseActionEntry ts_parse_actions[] = { [185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), [187] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 9), [189] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 9), - [191] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 21), - [193] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 21), + [191] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 22), + [193] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 22), [195] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), [197] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), [199] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), [201] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 32), + [204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 34), [206] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), @@ -8144,15 +8155,15 @@ static const TSParseActionEntry ts_parse_actions[] = { [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), [292] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), - [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 15), + [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 16), [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 26), - [302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 25), - [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 36), - [306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 40), - [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 38), - [310] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 27), - [312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 37), + [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 27), + [302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 26), + [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 38), + [306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 42), + [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 40), + [310] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 29), + [312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 39), [314] = {.entry = {.count = 1, .reusable = false}}, SHIFT(104), [316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), [318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), @@ -8176,15 +8187,15 @@ static const TSParseActionEntry ts_parse_actions[] = { [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), [360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 18), + [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 19), [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 19), + [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 20), [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), [372] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), SHIFT_REPEAT(68), [375] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), [377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 39), + [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 41), [381] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), [383] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), SHIFT_REPEAT(68), [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), @@ -8193,7 +8204,7 @@ static const TSParseActionEntry ts_parse_actions[] = { [393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), [397] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), - [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 39), + [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 41), [401] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), [403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), [405] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), @@ -8202,7 +8213,7 @@ static const TSParseActionEntry ts_parse_actions[] = { [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), - [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 35), + [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 37), [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), [422] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(141), [425] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), @@ -8214,8 +8225,8 @@ static const TSParseActionEntry ts_parse_actions[] = { [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), [442] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), - [444] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 35), - [446] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 16), + [444] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 37), + [446] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 17), [448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), [450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), [452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), @@ -8230,26 +8241,26 @@ static const TSParseActionEntry ts_parse_actions[] = { [470] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), [472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), [474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), - [476] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 24), - [478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 17), + [476] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 25), + [478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 18), [480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 28), - [484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 30), + [482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 30), + [484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 32), [486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), [488] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 13), - [490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 14), + [490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 15), [492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), [494] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), [496] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), [498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), [500] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), [502] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 3), - [504] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5, .production_id = 23), + [504] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5, .production_id = 24), [506] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 11), - [508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 41), - [510] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 42), + [508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 43), + [510] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 44), [512] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 12), - [514] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 29), + [514] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 31), [516] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 6), [518] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 3), [520] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 3), From abfeef92e9b78d2e07c603dc645b22fdc441ba61 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Thu, 20 Jun 2024 17:28:17 +0200 Subject: [PATCH 32/49] Add named template args --- grammar.js | 12 +- src/grammar.json | 81 +- src/node-types.json | 120 +- src/parser.c | 3844 ++++++++++++++++++++++--------------------- 4 files changed, 2088 insertions(+), 1969 deletions(-) diff --git a/grammar.js b/grammar.js index af4fb44..1c19cf1 100644 --- a/grammar.js +++ b/grammar.js @@ -262,14 +262,18 @@ module.exports = grammar({ )) )), + template_param : $ => seq( + optional(seq( + field('name', $.identifier), + '=' + )), + field('arg', choice($._type, $._expression)) + ), template_params: $ => seq( '<', - sepSeq(choice($.template_type, $.template_generative_expression), $._comma), + sepSeq($.template_param, $._comma), '>' ), - template_type: $ => $._type, - template_generative_expression: $ => $._expression, - identifier: $ => /[\p{Alphabetic}_][\p{Alphabetic}_\p{Decimal_Number}]*/, number: $ => /\d[\d_]*/, diff --git a/src/grammar.json b/src/grammar.json index 408ff9e..7656018 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -1437,6 +1437,53 @@ ] } }, + "template_param": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "STRING", + "value": "=" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "arg", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_type" + }, + { + "type": "SYMBOL", + "name": "_expression" + } + ] + } + } + ] + }, "template_params": { "type": "SEQ", "members": [ @@ -1454,17 +1501,8 @@ "type": "FIELD", "name": "item", "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "template_type" - }, - { - "type": "SYMBOL", - "name": "template_generative_expression" - } - ] + "type": "SYMBOL", + "name": "template_param" } }, { @@ -1480,17 +1518,8 @@ "type": "FIELD", "name": "item", "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "template_type" - }, - { - "type": "SYMBOL", - "name": "template_generative_expression" - } - ] + "type": "SYMBOL", + "name": "template_param" } } ] @@ -1509,14 +1538,6 @@ } ] }, - "template_type": { - "type": "SYMBOL", - "name": "_type" - }, - "template_generative_expression": { - "type": "SYMBOL", - "name": "_expression" - }, "identifier": { "type": "PATTERN", "value": "[\\p{Alphabetic}_][\\p{Alphabetic}_\\p{Decimal_Number}]*" diff --git a/src/node-types.json b/src/node-types.json index d3bcc5d..d23fe22 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -1078,49 +1078,6 @@ ] } }, - { - "type": "template_generative_expression", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "array_op", - "named": true - }, - { - "type": "binary_op", - "named": true - }, - { - "type": "field_access", - "named": true - }, - { - "type": "func_call", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "parenthesis_expression", - "named": true - }, - { - "type": "template_global", - "named": true - }, - { - "type": "unary_op", - "named": true - } - ] - } - }, { "type": "template_global", "named": true, @@ -1152,19 +1109,57 @@ } }, { - "type": "template_params", + "type": "template_param", "named": true, "fields": { - "item": { - "multiple": true, - "required": false, + "arg": { + "multiple": false, + "required": true, "types": [ { - "type": "template_generative_expression", + "type": "array_op", + "named": true + }, + { + "type": "array_type", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "field_access", "named": true }, { - "type": "template_type", + "type": "func_call", + "named": true + }, + { + "type": "number", + "named": true + }, + { + "type": "parenthesis_expression", + "named": true + }, + { + "type": "template_global", + "named": true + }, + { + "type": "unary_op", + "named": true + } + ] + }, + "name": { + "multiple": false, + "required": false, + "types": [ + { + "type": "identifier", "named": true } ] @@ -1172,22 +1167,19 @@ } }, { - "type": "template_type", + "type": "template_params", "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "array_type", - "named": true - }, - { - "type": "template_global", - "named": true - } - ] + "fields": { + "item": { + "multiple": true, + "required": false, + "types": [ + { + "type": "template_param", + "named": true + } + ] + } } }, { diff --git a/src/parser.c b/src/parser.c index 24116d4..08f2d28 100644 --- a/src/parser.c +++ b/src/parser.c @@ -5,15 +5,15 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 195 -#define LARGE_STATE_COUNT 10 -#define SYMBOL_COUNT 90 +#define STATE_COUNT 199 +#define LARGE_STATE_COUNT 11 +#define SYMBOL_COUNT 89 #define ALIAS_COUNT 0 #define TOKEN_COUNT 47 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 29 +#define FIELD_COUNT 30 #define MAX_ALIAS_SEQUENCE_LENGTH 7 -#define PRODUCTION_ID_COUNT 45 +#define PRODUCTION_ID_COUNT 47 enum ts_symbol_identifiers { sym_identifier = 1, @@ -91,20 +91,19 @@ enum ts_symbol_identifiers { sym_parenthesis_expression = 73, sym_array_bracket_expression = 74, sym_template_global = 75, - sym_template_params = 76, - sym_template_type = 77, - sym_template_generative_expression = 78, - sym__comma = 79, - aux_sym__linebreak = 80, - aux_sym_source_file_repeat1 = 81, - aux_sym_template_declaration_arguments_repeat1 = 82, - aux_sym_block_repeat1 = 83, - aux_sym_assign_left_side_repeat1 = 84, - aux_sym_write_modifiers_repeat1 = 85, - aux_sym_declaration_list_repeat1 = 86, - aux_sym_parenthesis_expression_list_repeat1 = 87, - aux_sym_template_global_repeat1 = 88, - aux_sym_template_params_repeat1 = 89, + sym_template_param = 76, + sym_template_params = 77, + sym__comma = 78, + aux_sym__linebreak = 79, + aux_sym_source_file_repeat1 = 80, + aux_sym_template_declaration_arguments_repeat1 = 81, + aux_sym_block_repeat1 = 82, + aux_sym_assign_left_side_repeat1 = 83, + aux_sym_write_modifiers_repeat1 = 84, + aux_sym_declaration_list_repeat1 = 85, + aux_sym_parenthesis_expression_list_repeat1 = 86, + aux_sym_template_global_repeat1 = 87, + aux_sym_template_params_repeat1 = 88, }; static const char * const ts_symbol_names[] = { @@ -184,9 +183,8 @@ static const char * const ts_symbol_names[] = { [sym_parenthesis_expression] = "parenthesis_expression", [sym_array_bracket_expression] = "array_bracket_expression", [sym_template_global] = "template_global", + [sym_template_param] = "template_param", [sym_template_params] = "template_params", - [sym_template_type] = "template_type", - [sym_template_generative_expression] = "template_generative_expression", [sym__comma] = "_comma", [aux_sym__linebreak] = "_linebreak", [aux_sym_source_file_repeat1] = "source_file_repeat1", @@ -277,9 +275,8 @@ static const TSSymbol ts_symbol_map[] = { [sym_parenthesis_expression] = sym_parenthesis_expression, [sym_array_bracket_expression] = sym_array_bracket_expression, [sym_template_global] = sym_template_global, + [sym_template_param] = sym_template_param, [sym_template_params] = sym_template_params, - [sym_template_type] = sym_template_type, - [sym_template_generative_expression] = sym_template_generative_expression, [sym__comma] = sym__comma, [aux_sym__linebreak] = aux_sym__linebreak, [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1, @@ -598,15 +595,11 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_template_params] = { - .visible = true, - .named = true, - }, - [sym_template_type] = { + [sym_template_param] = { .visible = true, .named = true, }, - [sym_template_generative_expression] = { + [sym_template_params] = { .visible = true, .named = true, }, @@ -657,39 +650,41 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { }; enum ts_field_identifiers { - field_arguments = 1, - field_arr = 2, - field_arr_idx = 3, - field_assign_left = 4, - field_assign_value = 5, - field_block = 6, - field_condition = 7, - field_content = 8, - field_declaration_modifiers = 9, - field_else_block = 10, - field_expr_or_decl = 11, - field_for_decl = 12, - field_from = 13, - field_inputs = 14, - field_interface_ports = 15, - field_io_port_modifiers = 16, - field_is_global_path = 17, - field_item = 18, - field_latency_specifier = 19, - field_left = 20, - field_name = 21, - field_operator = 22, - field_outputs = 23, - field_right = 24, - field_template_declaration_arguments = 25, - field_then_block = 26, - field_to = 27, - field_type = 28, - field_write_modifiers = 29, + field_arg = 1, + field_arguments = 2, + field_arr = 3, + field_arr_idx = 4, + field_assign_left = 5, + field_assign_value = 6, + field_block = 7, + field_condition = 8, + field_content = 9, + field_declaration_modifiers = 10, + field_else_block = 11, + field_expr_or_decl = 12, + field_for_decl = 13, + field_from = 14, + field_inputs = 15, + field_interface_ports = 16, + field_io_port_modifiers = 17, + field_is_global_path = 18, + field_item = 19, + field_latency_specifier = 20, + field_left = 21, + field_name = 22, + field_operator = 23, + field_outputs = 24, + field_right = 25, + field_template_declaration_arguments = 26, + field_then_block = 27, + field_to = 28, + field_type = 29, + field_write_modifiers = 30, }; static const char * const ts_field_names[] = { [0] = NULL, + [field_arg] = "arg", [field_arguments] = "arguments", [field_arr] = "arr", [field_arr_idx] = "arr_idx", @@ -762,10 +757,12 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [38] = {.index = 70, .length = 4}, [39] = {.index = 74, .length = 4}, [40] = {.index = 78, .length = 4}, - [41] = {.index = 82, .length = 2}, - [42] = {.index = 84, .length = 5}, - [43] = {.index = 89, .length = 3}, - [44] = {.index = 92, .length = 4}, + [41] = {.index = 82, .length = 1}, + [42] = {.index = 83, .length = 2}, + [43] = {.index = 85, .length = 5}, + [44] = {.index = 90, .length = 3}, + [45] = {.index = 93, .length = 2}, + [46] = {.index = 95, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -892,19 +889,24 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_name, 2}, {field_type, 1}, [82] = + {field_arg, 0}, + [83] = {field_item, 2}, {field_item, 3, .inherited = true}, - [84] = + [85] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_latency_specifier, 4}, {field_name, 3}, {field_type, 2}, - [89] = + [90] = {field_condition, 1}, {field_else_block, 4}, {field_then_block, 2}, - [92] = + [93] = + {field_arg, 2}, + {field_name, 0}, + [95] = {field_block, 6}, {field_for_decl, 1}, {field_from, 3}, @@ -972,9 +974,9 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [49] = 49, [50] = 50, [51] = 51, - [52] = 52, + [52] = 51, [53] = 53, - [54] = 53, + [54] = 54, [55] = 55, [56] = 56, [57] = 57, @@ -990,13 +992,13 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [67] = 67, [68] = 68, [69] = 69, - [70] = 70, - [71] = 57, + [70] = 61, + [71] = 71, [72] = 72, - [73] = 44, + [73] = 73, [74] = 74, [75] = 75, - [76] = 76, + [76] = 44, [77] = 77, [78] = 78, [79] = 79, @@ -1061,7 +1063,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [138] = 138, [139] = 139, [140] = 140, - [141] = 38, + [141] = 141, [142] = 142, [143] = 143, [144] = 144, @@ -1078,7 +1080,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [155] = 155, [156] = 156, [157] = 157, - [158] = 158, + [158] = 38, [159] = 159, [160] = 160, [161] = 161, @@ -1086,10 +1088,10 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [163] = 163, [164] = 164, [165] = 165, - [166] = 166, + [166] = 28, [167] = 167, [168] = 168, - [169] = 28, + [169] = 169, [170] = 170, [171] = 171, [172] = 172, @@ -1115,6 +1117,10 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [192] = 192, [193] = 193, [194] = 194, + [195] = 195, + [196] = 196, + [197] = 197, + [198] = 198, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -3477,24 +3483,24 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [36] = {.lex_state = 1}, [37] = {.lex_state = 2}, [38] = {.lex_state = 1}, - [39] = {.lex_state = 1}, - [40] = {.lex_state = 2}, + [39] = {.lex_state = 2}, + [40] = {.lex_state = 1}, [41] = {.lex_state = 2}, - [42] = {.lex_state = 1}, - [43] = {.lex_state = 2}, + [42] = {.lex_state = 2}, + [43] = {.lex_state = 1}, [44] = {.lex_state = 2}, [45] = {.lex_state = 2}, [46] = {.lex_state = 2}, - [47] = {.lex_state = 2}, + [47] = {.lex_state = 1}, [48] = {.lex_state = 2}, - [49] = {.lex_state = 1}, + [49] = {.lex_state = 2}, [50] = {.lex_state = 2}, [51] = {.lex_state = 2}, [52] = {.lex_state = 2}, [53] = {.lex_state = 2}, [54] = {.lex_state = 2}, - [55] = {.lex_state = 1}, - [56] = {.lex_state = 1}, + [55] = {.lex_state = 2}, + [56] = {.lex_state = 2}, [57] = {.lex_state = 1}, [58] = {.lex_state = 1}, [59] = {.lex_state = 1}, @@ -3511,10 +3517,10 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [70] = {.lex_state = 1}, [71] = {.lex_state = 1}, [72] = {.lex_state = 1}, - [73] = {.lex_state = 2}, + [73] = {.lex_state = 1}, [74] = {.lex_state = 1}, [75] = {.lex_state = 1}, - [76] = {.lex_state = 1}, + [76] = {.lex_state = 2}, [77] = {.lex_state = 1}, [78] = {.lex_state = 1}, [79] = {.lex_state = 1}, @@ -3533,33 +3539,33 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [92] = {.lex_state = 1}, [93] = {.lex_state = 1}, [94] = {.lex_state = 1}, - [95] = {.lex_state = 0}, - [96] = {.lex_state = 0}, + [95] = {.lex_state = 1}, + [96] = {.lex_state = 1}, [97] = {.lex_state = 0}, [98] = {.lex_state = 0}, [99] = {.lex_state = 0}, [100] = {.lex_state = 1}, [101] = {.lex_state = 0}, - [102] = {.lex_state = 0}, + [102] = {.lex_state = 1}, [103] = {.lex_state = 0}, - [104] = {.lex_state = 1}, + [104] = {.lex_state = 0}, [105] = {.lex_state = 0}, [106] = {.lex_state = 0}, [107] = {.lex_state = 0}, [108] = {.lex_state = 0}, [109] = {.lex_state = 0}, [110] = {.lex_state = 0}, - [111] = {.lex_state = 0}, - [112] = {.lex_state = 1}, + [111] = {.lex_state = 1}, + [112] = {.lex_state = 0}, [113] = {.lex_state = 0}, - [114] = {.lex_state = 0}, + [114] = {.lex_state = 1}, [115] = {.lex_state = 0}, [116] = {.lex_state = 0}, [117] = {.lex_state = 0}, [118] = {.lex_state = 0}, - [119] = {.lex_state = 1}, + [119] = {.lex_state = 0}, [120] = {.lex_state = 0}, - [121] = {.lex_state = 0}, + [121] = {.lex_state = 1}, [122] = {.lex_state = 0}, [123] = {.lex_state = 1}, [124] = {.lex_state = 0}, @@ -3570,13 +3576,13 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [129] = {.lex_state = 0}, [130] = {.lex_state = 0}, [131] = {.lex_state = 0}, - [132] = {.lex_state = 0}, + [132] = {.lex_state = 1}, [133] = {.lex_state = 0}, - [134] = {.lex_state = 0}, + [134] = {.lex_state = 1}, [135] = {.lex_state = 0}, - [136] = {.lex_state = 0}, + [136] = {.lex_state = 1}, [137] = {.lex_state = 0}, - [138] = {.lex_state = 1}, + [138] = {.lex_state = 0}, [139] = {.lex_state = 0}, [140] = {.lex_state = 0}, [141] = {.lex_state = 0}, @@ -3587,27 +3593,27 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [146] = {.lex_state = 0}, [147] = {.lex_state = 0}, [148] = {.lex_state = 0}, - [149] = {.lex_state = 1}, + [149] = {.lex_state = 0}, [150] = {.lex_state = 0}, [151] = {.lex_state = 0}, [152] = {.lex_state = 0}, [153] = {.lex_state = 0}, [154] = {.lex_state = 0}, [155] = {.lex_state = 0}, - [156] = {.lex_state = 1}, + [156] = {.lex_state = 0}, [157] = {.lex_state = 1}, - [158] = {.lex_state = 1}, - [159] = {.lex_state = 0}, + [158] = {.lex_state = 0}, + [159] = {.lex_state = 1}, [160] = {.lex_state = 0}, - [161] = {.lex_state = 0}, + [161] = {.lex_state = 1}, [162] = {.lex_state = 0}, [163] = {.lex_state = 0}, [164] = {.lex_state = 0}, [165] = {.lex_state = 0}, - [166] = {.lex_state = 0}, + [166] = {.lex_state = 1}, [167] = {.lex_state = 0}, [168] = {.lex_state = 0}, - [169] = {.lex_state = 1}, + [169] = {.lex_state = 0}, [170] = {.lex_state = 0}, [171] = {.lex_state = 0}, [172] = {.lex_state = 0}, @@ -3622,17 +3628,21 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [181] = {.lex_state = 0}, [182] = {.lex_state = 0}, [183] = {.lex_state = 0}, - [184] = {.lex_state = 1}, - [185] = {.lex_state = 1}, - [186] = {.lex_state = 0}, + [184] = {.lex_state = 0}, + [185] = {.lex_state = 0}, + [186] = {.lex_state = 1}, [187] = {.lex_state = 0}, [188] = {.lex_state = 0}, - [189] = {.lex_state = 0}, + [189] = {.lex_state = 1}, [190] = {.lex_state = 0}, [191] = {.lex_state = 0}, [192] = {.lex_state = 0}, [193] = {.lex_state = 0}, [194] = {.lex_state = 0}, + [195] = {.lex_state = 0}, + [196] = {.lex_state = 0}, + [197] = {.lex_state = 0}, + [198] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -3685,9 +3695,9 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(190), - [sym_module] = STATE(120), - [aux_sym__linebreak] = STATE(111), + [sym_source_file] = STATE(194), + [sym_module] = STATE(122), + [aux_sym__linebreak] = STATE(115), [ts_builtin_sym_end] = ACTIONS(5), [anon_sym_module] = ACTIONS(7), [anon_sym_LF] = ACTIONS(9), @@ -3695,17 +3705,17 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [2] = { - [sym_block] = STATE(176), - [sym_interface_statement] = STATE(176), - [sym_decl_assign_statement] = STATE(176), - [sym_assign_left_side] = STATE(171), - [sym_assign_to] = STATE(99), + [sym_block] = STATE(182), + [sym_interface_statement] = STATE(182), + [sym_decl_assign_statement] = STATE(182), + [sym_assign_left_side] = STATE(167), + [sym_assign_to] = STATE(103), [sym_write_modifiers] = STATE(36), - [sym_if_statement] = STATE(176), - [sym_for_statement] = STATE(176), - [sym_declaration] = STATE(118), - [sym__type] = STATE(160), - [sym_array_type] = STATE(160), + [sym_if_statement] = STATE(182), + [sym_for_statement] = STATE(182), + [sym_declaration] = STATE(120), + [sym__type] = STATE(163), + [sym_array_type] = STATE(163), [sym__expression] = STATE(41), [sym_unary_op] = STATE(41), [sym_binary_op] = STATE(41), @@ -3715,7 +3725,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_parenthesis_expression] = STATE(41), [sym_template_global] = STATE(44), [aux_sym__linebreak] = STATE(38), - [aux_sym_write_modifiers_repeat1] = STATE(75), + [aux_sym_write_modifiers_repeat1] = STATE(78), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), [anon_sym_RBRACE] = ACTIONS(15), @@ -3743,17 +3753,17 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [3] = { - [sym_block] = STATE(132), - [sym_interface_statement] = STATE(132), - [sym_decl_assign_statement] = STATE(132), - [sym_assign_left_side] = STATE(103), - [sym_assign_to] = STATE(99), + [sym_block] = STATE(182), + [sym_interface_statement] = STATE(182), + [sym_decl_assign_statement] = STATE(182), + [sym_assign_left_side] = STATE(167), + [sym_assign_to] = STATE(103), [sym_write_modifiers] = STATE(36), - [sym_if_statement] = STATE(132), - [sym_for_statement] = STATE(132), - [sym_declaration] = STATE(118), - [sym__type] = STATE(160), - [sym_array_type] = STATE(160), + [sym_if_statement] = STATE(182), + [sym_for_statement] = STATE(182), + [sym_declaration] = STATE(120), + [sym__type] = STATE(163), + [sym_array_type] = STATE(163), [sym__expression] = STATE(41), [sym_unary_op] = STATE(41), [sym_binary_op] = STATE(41), @@ -3763,7 +3773,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_parenthesis_expression] = STATE(41), [sym_template_global] = STATE(44), [aux_sym__linebreak] = STATE(38), - [aux_sym_write_modifiers_repeat1] = STATE(75), + [aux_sym_write_modifiers_repeat1] = STATE(78), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), [anon_sym_RBRACE] = ACTIONS(41), @@ -3791,17 +3801,17 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [4] = { - [sym_block] = STATE(176), - [sym_interface_statement] = STATE(176), - [sym_decl_assign_statement] = STATE(176), - [sym_assign_left_side] = STATE(171), - [sym_assign_to] = STATE(99), + [sym_block] = STATE(138), + [sym_interface_statement] = STATE(138), + [sym_decl_assign_statement] = STATE(138), + [sym_assign_left_side] = STATE(110), + [sym_assign_to] = STATE(103), [sym_write_modifiers] = STATE(36), - [sym_if_statement] = STATE(176), - [sym_for_statement] = STATE(176), - [sym_declaration] = STATE(118), - [sym__type] = STATE(160), - [sym_array_type] = STATE(160), + [sym_if_statement] = STATE(138), + [sym_for_statement] = STATE(138), + [sym_declaration] = STATE(120), + [sym__type] = STATE(163), + [sym_array_type] = STATE(163), [sym__expression] = STATE(41), [sym_unary_op] = STATE(41), [sym_binary_op] = STATE(41), @@ -3811,7 +3821,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_parenthesis_expression] = STATE(41), [sym_template_global] = STATE(44), [aux_sym__linebreak] = STATE(38), - [aux_sym_write_modifiers_repeat1] = STATE(75), + [aux_sym_write_modifiers_repeat1] = STATE(78), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), [anon_sym_RBRACE] = ACTIONS(43), @@ -3839,17 +3849,17 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [5] = { - [sym_block] = STATE(176), - [sym_interface_statement] = STATE(176), - [sym_decl_assign_statement] = STATE(176), - [sym_assign_left_side] = STATE(171), - [sym_assign_to] = STATE(99), + [sym_block] = STATE(182), + [sym_interface_statement] = STATE(182), + [sym_decl_assign_statement] = STATE(182), + [sym_assign_left_side] = STATE(167), + [sym_assign_to] = STATE(103), [sym_write_modifiers] = STATE(36), - [sym_if_statement] = STATE(176), - [sym_for_statement] = STATE(176), - [sym_declaration] = STATE(118), - [sym__type] = STATE(160), - [sym_array_type] = STATE(160), + [sym_if_statement] = STATE(182), + [sym_for_statement] = STATE(182), + [sym_declaration] = STATE(120), + [sym__type] = STATE(163), + [sym_array_type] = STATE(163), [sym__expression] = STATE(41), [sym_unary_op] = STATE(41), [sym_binary_op] = STATE(41), @@ -3859,7 +3869,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_parenthesis_expression] = STATE(41), [sym_template_global] = STATE(44), [aux_sym__linebreak] = STATE(38), - [aux_sym_write_modifiers_repeat1] = STATE(75), + [aux_sym_write_modifiers_repeat1] = STATE(78), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), [anon_sym_RBRACE] = ACTIONS(45), @@ -3887,17 +3897,17 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [6] = { - [sym_block] = STATE(176), - [sym_interface_statement] = STATE(176), - [sym_decl_assign_statement] = STATE(176), - [sym_assign_left_side] = STATE(171), - [sym_assign_to] = STATE(99), + [sym_block] = STATE(182), + [sym_interface_statement] = STATE(182), + [sym_decl_assign_statement] = STATE(182), + [sym_assign_left_side] = STATE(167), + [sym_assign_to] = STATE(103), [sym_write_modifiers] = STATE(36), - [sym_if_statement] = STATE(176), - [sym_for_statement] = STATE(176), - [sym_declaration] = STATE(118), - [sym__type] = STATE(160), - [sym_array_type] = STATE(160), + [sym_if_statement] = STATE(182), + [sym_for_statement] = STATE(182), + [sym_declaration] = STATE(120), + [sym__type] = STATE(163), + [sym_array_type] = STATE(163), [sym__expression] = STATE(41), [sym_unary_op] = STATE(41), [sym_binary_op] = STATE(41), @@ -3907,7 +3917,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_parenthesis_expression] = STATE(41), [sym_template_global] = STATE(44), [aux_sym__linebreak] = STATE(38), - [aux_sym_write_modifiers_repeat1] = STATE(75), + [aux_sym_write_modifiers_repeat1] = STATE(78), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), [anon_sym_RBRACE] = ACTIONS(47), @@ -3935,17 +3945,17 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [7] = { - [sym_block] = STATE(117), - [sym_interface_statement] = STATE(117), - [sym_decl_assign_statement] = STATE(117), - [sym_assign_left_side] = STATE(114), - [sym_assign_to] = STATE(99), + [sym_block] = STATE(156), + [sym_interface_statement] = STATE(156), + [sym_decl_assign_statement] = STATE(156), + [sym_assign_left_side] = STATE(113), + [sym_assign_to] = STATE(103), [sym_write_modifiers] = STATE(36), - [sym_if_statement] = STATE(117), - [sym_for_statement] = STATE(117), - [sym_declaration] = STATE(118), - [sym__type] = STATE(160), - [sym_array_type] = STATE(160), + [sym_if_statement] = STATE(156), + [sym_for_statement] = STATE(156), + [sym_declaration] = STATE(120), + [sym__type] = STATE(163), + [sym_array_type] = STATE(163), [sym__expression] = STATE(41), [sym_unary_op] = STATE(41), [sym_binary_op] = STATE(41), @@ -3954,8 +3964,8 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_field_access] = STATE(41), [sym_parenthesis_expression] = STATE(41), [sym_template_global] = STATE(44), - [aux_sym__linebreak] = STATE(3), - [aux_sym_write_modifiers_repeat1] = STATE(75), + [aux_sym__linebreak] = STATE(4), + [aux_sym_write_modifiers_repeat1] = STATE(78), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), [anon_sym_RBRACE] = ACTIONS(49), @@ -3983,17 +3993,17 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [8] = { - [sym_block] = STATE(176), - [sym_interface_statement] = STATE(176), - [sym_decl_assign_statement] = STATE(176), - [sym_assign_left_side] = STATE(171), - [sym_assign_to] = STATE(99), + [sym_block] = STATE(182), + [sym_interface_statement] = STATE(182), + [sym_decl_assign_statement] = STATE(182), + [sym_assign_left_side] = STATE(167), + [sym_assign_to] = STATE(103), [sym_write_modifiers] = STATE(36), - [sym_if_statement] = STATE(176), - [sym_for_statement] = STATE(176), - [sym_declaration] = STATE(118), - [sym__type] = STATE(160), - [sym_array_type] = STATE(160), + [sym_if_statement] = STATE(182), + [sym_for_statement] = STATE(182), + [sym_declaration] = STATE(120), + [sym__type] = STATE(163), + [sym_array_type] = STATE(163), [sym__expression] = STATE(41), [sym_unary_op] = STATE(41), [sym_binary_op] = STATE(41), @@ -4003,7 +4013,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_parenthesis_expression] = STATE(41), [sym_template_global] = STATE(44), [aux_sym__linebreak] = STATE(38), - [aux_sym_write_modifiers_repeat1] = STATE(75), + [aux_sym_write_modifiers_repeat1] = STATE(78), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), [anon_sym_RBRACE] = ACTIONS(53), @@ -4031,17 +4041,17 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [9] = { - [sym_block] = STATE(176), - [sym_interface_statement] = STATE(176), - [sym_decl_assign_statement] = STATE(176), - [sym_assign_left_side] = STATE(171), - [sym_assign_to] = STATE(99), + [sym_block] = STATE(182), + [sym_interface_statement] = STATE(182), + [sym_decl_assign_statement] = STATE(182), + [sym_assign_left_side] = STATE(167), + [sym_assign_to] = STATE(103), [sym_write_modifiers] = STATE(36), - [sym_if_statement] = STATE(176), - [sym_for_statement] = STATE(176), - [sym_declaration] = STATE(118), - [sym__type] = STATE(160), - [sym_array_type] = STATE(160), + [sym_if_statement] = STATE(182), + [sym_for_statement] = STATE(182), + [sym_declaration] = STATE(120), + [sym__type] = STATE(163), + [sym_array_type] = STATE(163), [sym__expression] = STATE(41), [sym_unary_op] = STATE(41), [sym_binary_op] = STATE(41), @@ -4051,7 +4061,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_parenthesis_expression] = STATE(41), [sym_template_global] = STATE(44), [aux_sym__linebreak] = STATE(38), - [aux_sym_write_modifiers_repeat1] = STATE(75), + [aux_sym_write_modifiers_repeat1] = STATE(78), [sym_identifier] = ACTIONS(11), [anon_sym_LBRACE] = ACTIONS(13), [anon_sym_RBRACE] = ACTIONS(55), @@ -4078,81 +4088,57 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, + [10] = { + [sym_block] = STATE(182), + [sym_interface_statement] = STATE(182), + [sym_decl_assign_statement] = STATE(182), + [sym_assign_left_side] = STATE(167), + [sym_assign_to] = STATE(103), + [sym_write_modifiers] = STATE(36), + [sym_if_statement] = STATE(182), + [sym_for_statement] = STATE(182), + [sym_declaration] = STATE(120), + [sym__type] = STATE(163), + [sym_array_type] = STATE(163), + [sym__expression] = STATE(41), + [sym_unary_op] = STATE(41), + [sym_binary_op] = STATE(41), + [sym_array_op] = STATE(41), + [sym_func_call] = STATE(41), + [sym_field_access] = STATE(41), + [sym_parenthesis_expression] = STATE(41), + [sym_template_global] = STATE(44), + [aux_sym__linebreak] = STATE(38), + [aux_sym_write_modifiers_repeat1] = STATE(78), + [sym_identifier] = ACTIONS(11), + [anon_sym_LBRACE] = ACTIONS(13), + [anon_sym_interface] = ACTIONS(17), + [anon_sym_reg] = ACTIONS(19), + [anon_sym_initial] = ACTIONS(21), + [anon_sym_if] = ACTIONS(23), + [anon_sym_for] = ACTIONS(25), + [anon_sym_input] = ACTIONS(27), + [anon_sym_output] = ACTIONS(27), + [anon_sym_state] = ACTIONS(29), + [anon_sym_gen] = ACTIONS(29), + [anon_sym_PLUS] = ACTIONS(31), + [anon_sym_DASH] = ACTIONS(31), + [anon_sym_STAR] = ACTIONS(31), + [anon_sym_BANG] = ACTIONS(31), + [anon_sym_PIPE] = ACTIONS(31), + [anon_sym_AMP] = ACTIONS(31), + [anon_sym_CARET] = ACTIONS(31), + [anon_sym_LPAREN] = ACTIONS(33), + [anon_sym_COLON_COLON] = ACTIONS(35), + [sym_number] = ACTIONS(37), + [anon_sym_LF] = ACTIONS(39), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), + }, }; static const uint16_t ts_small_parse_table[] = { - [0] = 25, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(17), 1, - anon_sym_interface, - ACTIONS(19), 1, - anon_sym_reg, - ACTIONS(21), 1, - anon_sym_initial, - ACTIONS(23), 1, - anon_sym_if, - ACTIONS(25), 1, - anon_sym_for, - ACTIONS(33), 1, - anon_sym_LPAREN, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(37), 1, - sym_number, - ACTIONS(39), 1, - anon_sym_LF, - STATE(36), 1, - sym_write_modifiers, - STATE(38), 1, - aux_sym__linebreak, - STATE(44), 1, - sym_template_global, - STATE(75), 1, - aux_sym_write_modifiers_repeat1, - STATE(99), 1, - sym_assign_to, - STATE(118), 1, - sym_declaration, - STATE(171), 1, - sym_assign_left_side, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(27), 2, - anon_sym_input, - anon_sym_output, - ACTIONS(29), 2, - anon_sym_state, - anon_sym_gen, - STATE(160), 2, - sym__type, - sym_array_type, - STATE(176), 5, - sym_block, - sym_interface_statement, - sym_decl_assign_statement, - sym_if_statement, - sym_for_statement, - ACTIONS(31), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(41), 7, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - [96] = 17, + [0] = 17, ACTIONS(11), 1, sym_identifier, ACTIONS(19), 1, @@ -4169,9 +4155,9 @@ static const uint16_t ts_small_parse_table[] = { sym_write_modifiers, STATE(44), 1, sym_template_global, - STATE(75), 1, + STATE(78), 1, aux_sym_write_modifiers_repeat1, - STATE(118), 1, + STATE(120), 1, sym_declaration, STATE(137), 1, sym_assign_to, @@ -4184,7 +4170,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(160), 2, + STATE(163), 2, sym__type, sym_array_type, ACTIONS(31), 7, @@ -4203,10 +4189,10 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [164] = 5, + [68] = 5, ACTIONS(61), 1, anon_sym_COLON_COLON, - STATE(13), 1, + STATE(14), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, @@ -4241,10 +4227,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [207] = 5, - ACTIONS(67), 1, + [111] = 5, + ACTIONS(61), 1, anon_sym_COLON_COLON, - STATE(13), 1, + STATE(15), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, @@ -4279,15 +4265,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [250] = 5, + [154] = 5, ACTIONS(61), 1, anon_sym_COLON_COLON, - STATE(12), 1, + STATE(15), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(70), 8, + ACTIONS(67), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4296,7 +4282,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(72), 20, + ACTIONS(69), 20, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4317,15 +4303,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [293] = 5, - ACTIONS(61), 1, + [197] = 5, + ACTIONS(75), 1, anon_sym_COLON_COLON, - STATE(16), 1, + STATE(15), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 8, + ACTIONS(71), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4334,7 +4320,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(76), 20, + ACTIONS(73), 20, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4355,7 +4341,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [336] = 5, + [240] = 5, ACTIONS(61), 1, anon_sym_COLON_COLON, STATE(13), 1, @@ -4393,26 +4379,39 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [379] = 3, + [283] = 12, + ACTIONS(86), 1, + anon_sym_PLUS, + ACTIONS(88), 1, + anon_sym_DASH, + ACTIONS(92), 1, + anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_DOT, + ACTIONS(96), 1, + anon_sym_LPAREN, + ACTIONS(98), 1, + anon_sym_LBRACK, + STATE(30), 1, + sym_array_bracket_expression, + STATE(31), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(82), 8, + ACTIONS(90), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(84), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(84), 21, + ACTIONS(82), 16, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, - anon_sym_PLUS, - anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -4420,19 +4419,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_COMMA, anon_sym_LF, - [417] = 3, + [339] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 8, + ACTIONS(100), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4441,7 +4436,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(88), 21, + ACTIONS(102), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4463,82 +4458,38 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, anon_sym_COMMA, anon_sym_LF, - [455] = 12, - ACTIONS(94), 1, + [377] = 14, + ACTIONS(86), 1, anon_sym_PLUS, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_DASH, - ACTIONS(100), 1, + ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(102), 1, - anon_sym_DOT, - ACTIONS(104), 1, - anon_sym_LPAREN, - ACTIONS(106), 1, - anon_sym_LBRACK, - STATE(29), 1, - sym_array_bracket_expression, - STATE(32), 1, - sym_parenthesis_expression_list, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(98), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(92), 3, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - ACTIONS(90), 16, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DOT_DOT, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_LF, - [511] = 14, ACTIONS(94), 1, - anon_sym_PLUS, - ACTIONS(96), 1, - anon_sym_DASH, - ACTIONS(100), 1, - anon_sym_SLASH, - ACTIONS(102), 1, anon_sym_DOT, - ACTIONS(104), 1, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(106), 1, + ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(108), 1, + ACTIONS(104), 1, anon_sym_PIPE, - ACTIONS(110), 1, + ACTIONS(106), 1, anon_sym_CARET, - STATE(29), 1, + STATE(30), 1, sym_array_bracket_expression, - STATE(32), 1, + STATE(31), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(98), 2, + ACTIONS(90), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(92), 3, + ACTIONS(84), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(90), 14, + ACTIONS(82), 14, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4553,36 +4504,36 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [571] = 13, - ACTIONS(94), 1, + [437] = 13, + ACTIONS(86), 1, anon_sym_PLUS, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_DASH, - ACTIONS(100), 1, + ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(102), 1, + ACTIONS(94), 1, anon_sym_DOT, - ACTIONS(104), 1, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(106), 1, + ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(110), 1, + ACTIONS(106), 1, anon_sym_CARET, - STATE(29), 1, + STATE(30), 1, sym_array_bracket_expression, - STATE(32), 1, + STATE(31), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(98), 2, + ACTIONS(90), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(92), 3, + ACTIONS(84), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(90), 15, + ACTIONS(82), 15, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4598,27 +4549,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [629] = 8, - ACTIONS(102), 1, + [495] = 8, + ACTIONS(94), 1, anon_sym_DOT, - ACTIONS(104), 1, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(106), 1, + ACTIONS(98), 1, anon_sym_LBRACK, - STATE(29), 1, + STATE(30), 1, sym_array_bracket_expression, - STATE(32), 1, + STATE(31), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(92), 5, + ACTIONS(84), 5, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, - ACTIONS(90), 19, + ACTIONS(82), 19, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4638,31 +4589,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [677] = 10, - ACTIONS(100), 1, + [543] = 10, + ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(102), 1, + ACTIONS(94), 1, anon_sym_DOT, - ACTIONS(104), 1, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(106), 1, + ACTIONS(98), 1, anon_sym_LBRACK, - STATE(29), 1, + STATE(30), 1, sym_array_bracket_expression, - STATE(32), 1, + STATE(31), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(98), 2, + ACTIONS(90), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(92), 4, + ACTIONS(84), 4, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, - ACTIONS(90), 17, + ACTIONS(82), 17, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4680,40 +4631,40 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [729] = 15, - ACTIONS(94), 1, + [595] = 15, + ACTIONS(86), 1, anon_sym_PLUS, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_DASH, - ACTIONS(100), 1, + ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(102), 1, + ACTIONS(94), 1, anon_sym_DOT, - ACTIONS(104), 1, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(106), 1, + ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(108), 1, + ACTIONS(104), 1, anon_sym_PIPE, - ACTIONS(110), 1, + ACTIONS(106), 1, anon_sym_CARET, - ACTIONS(112), 1, + ACTIONS(108), 1, anon_sym_AMP, - STATE(29), 1, + STATE(30), 1, sym_array_bracket_expression, - STATE(32), 1, + STATE(31), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(98), 2, + ACTIONS(90), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(92), 3, + ACTIONS(84), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(90), 13, + ACTIONS(82), 13, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4727,11 +4678,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [791] = 3, + [657] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(114), 8, + ACTIONS(110), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4740,7 +4691,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(116), 21, + ACTIONS(112), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4762,11 +4713,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, anon_sym_COMMA, anon_sym_LF, - [829] = 3, + [695] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(118), 8, + ACTIONS(114), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4775,7 +4726,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(120), 21, + ACTIONS(116), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4797,27 +4748,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, anon_sym_COMMA, anon_sym_LF, - [867] = 8, - ACTIONS(102), 1, + [733] = 8, + ACTIONS(94), 1, anon_sym_DOT, - ACTIONS(104), 1, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(106), 1, + ACTIONS(98), 1, anon_sym_LBRACK, - STATE(29), 1, + STATE(30), 1, sym_array_bracket_expression, - STATE(32), 1, + STATE(31), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(124), 5, + ACTIONS(120), 5, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, - ACTIONS(122), 19, + ACTIONS(118), 19, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4837,7 +4788,42 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [915] = 3, + [781] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(122), 8, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(124), 21, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + anon_sym_LF, + [819] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4871,7 +4857,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [952] = 3, + [856] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4904,7 +4890,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [988] = 3, + [892] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4937,7 +4923,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1024] = 3, + [928] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4970,7 +4956,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1060] = 3, + [964] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -5003,7 +4989,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1096] = 3, + [1000] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -5036,7 +5022,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1132] = 3, + [1036] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -5069,7 +5055,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1168] = 3, + [1072] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -5102,7 +5088,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1204] = 12, + [1108] = 12, ACTIONS(11), 1, sym_identifier, ACTIONS(33), 1, @@ -5113,7 +5099,7 @@ static const uint16_t ts_small_parse_table[] = { sym_number, STATE(44), 1, sym_template_global, - STATE(142), 1, + STATE(145), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -5124,7 +5110,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(160), 2, + STATE(163), 2, sym__type, sym_array_type, ACTIONS(31), 7, @@ -5135,7 +5121,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(43), 7, + STATE(42), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -5143,35 +5129,35 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [1257] = 17, - ACTIONS(94), 1, + [1161] = 17, + ACTIONS(86), 1, anon_sym_PLUS, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_DASH, - ACTIONS(100), 1, + ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(104), 1, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(106), 1, + ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(108), 1, + ACTIONS(104), 1, anon_sym_PIPE, - ACTIONS(110), 1, + ACTIONS(106), 1, anon_sym_CARET, - ACTIONS(112), 1, + ACTIONS(108), 1, anon_sym_AMP, ACTIONS(164), 1, anon_sym_EQ, ACTIONS(168), 1, anon_sym_DOT, - STATE(29), 1, + STATE(30), 1, sym_array_bracket_expression, - STATE(32), 1, + STATE(31), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(98), 2, + ACTIONS(90), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(162), 2, @@ -5189,7 +5175,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [1320] = 5, + [1224] = 5, ACTIONS(174), 1, anon_sym_LF, STATE(38), 1, @@ -5222,28 +5208,71 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [1358] = 11, - ACTIONS(33), 1, + [1262] = 18, + ACTIONS(92), 1, + anon_sym_SLASH, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(177), 1, - sym_identifier, - ACTIONS(179), 1, + ACTIONS(98), 1, + anon_sym_LBRACK, + ACTIONS(104), 1, + anon_sym_PIPE, + ACTIONS(106), 1, + anon_sym_CARET, + ACTIONS(108), 1, + anon_sym_AMP, + ACTIONS(168), 1, + anon_sym_DOT, + ACTIONS(177), 1, + anon_sym_RPAREN, + ACTIONS(179), 1, + anon_sym_COMMA, + STATE(30), 1, + sym_array_bracket_expression, + STATE(31), 1, + sym_parenthesis_expression_list, + STATE(60), 1, + sym__comma, + STATE(147), 1, + aux_sym_parenthesis_expression_list_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(86), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(90), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(162), 2, + anon_sym_LT, anon_sym_GT, + ACTIONS(166), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [1324] = 11, + ACTIONS(33), 1, + anon_sym_LPAREN, + ACTIONS(35), 1, + anon_sym_COLON_COLON, ACTIONS(181), 1, + sym_identifier, + ACTIONS(183), 1, + anon_sym_GT, + ACTIONS(185), 1, sym_number, - STATE(73), 1, + STATE(76), 1, sym_template_global, + STATE(159), 1, + sym_template_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(156), 2, + STATE(157), 2, sym__type, sym_array_type, - STATE(158), 2, - sym_template_type, - sym_template_generative_expression, ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, @@ -5252,7 +5281,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(50), 7, + STATE(55), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -5260,84 +5289,82 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [1407] = 18, - ACTIONS(100), 1, + [1372] = 16, + ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(104), 1, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(106), 1, + ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(108), 1, + ACTIONS(104), 1, anon_sym_PIPE, - ACTIONS(110), 1, + ACTIONS(106), 1, anon_sym_CARET, - ACTIONS(112), 1, + ACTIONS(108), 1, anon_sym_AMP, ACTIONS(168), 1, anon_sym_DOT, - ACTIONS(183), 1, - anon_sym_RPAREN, - ACTIONS(185), 1, - anon_sym_COMMA, - STATE(29), 1, + ACTIONS(189), 1, + anon_sym_EQ, + STATE(30), 1, sym_array_bracket_expression, - STATE(32), 1, + STATE(31), 1, sym_parenthesis_expression_list, - STATE(55), 1, - sym__comma, - STATE(140), 1, - aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(94), 2, + ACTIONS(86), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(98), 2, + ACTIONS(90), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(162), 2, anon_sym_LT, anon_sym_GT, + ACTIONS(187), 3, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LF, ACTIONS(166), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1469] = 16, - ACTIONS(100), 1, + [1430] = 16, + ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(104), 1, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(106), 1, + ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(108), 1, + ACTIONS(104), 1, anon_sym_PIPE, - ACTIONS(110), 1, + ACTIONS(106), 1, anon_sym_CARET, - ACTIONS(112), 1, + ACTIONS(108), 1, anon_sym_AMP, ACTIONS(168), 1, anon_sym_DOT, - ACTIONS(189), 1, + ACTIONS(193), 1, anon_sym_EQ, - STATE(29), 1, + STATE(30), 1, sym_array_bracket_expression, - STATE(32), 1, + STATE(31), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(94), 2, + ACTIONS(86), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(98), 2, + ACTIONS(90), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(162), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(187), 3, + ACTIONS(191), 3, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, @@ -5346,26 +5373,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1527] = 10, + [1488] = 10, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(177), 1, - sym_identifier, ACTIONS(181), 1, + sym_identifier, + ACTIONS(185), 1, sym_number, - STATE(73), 1, + STATE(76), 1, sym_template_global, + STATE(189), 1, + sym_template_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(156), 2, + STATE(157), 2, sym__type, sym_array_type, - STATE(185), 2, - sym_template_type, - sym_template_generative_expression, ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, @@ -5374,7 +5400,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(50), 7, + STATE(55), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -5382,49 +5408,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [1573] = 16, - ACTIONS(100), 1, - anon_sym_SLASH, - ACTIONS(104), 1, - anon_sym_LPAREN, - ACTIONS(106), 1, - anon_sym_LBRACK, - ACTIONS(108), 1, - anon_sym_PIPE, - ACTIONS(110), 1, - anon_sym_CARET, - ACTIONS(112), 1, - anon_sym_AMP, - ACTIONS(168), 1, - anon_sym_DOT, - ACTIONS(193), 1, - anon_sym_EQ, - STATE(29), 1, - sym_array_bracket_expression, - STATE(32), 1, - sym_parenthesis_expression_list, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(94), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(98), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(162), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(191), 3, - anon_sym_RBRACE, - anon_sym_COMMA, - anon_sym_LF, - ACTIONS(166), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [1631] = 5, + [1533] = 5, ACTIONS(195), 1, sym_identifier, ACTIONS(201), 1, @@ -5454,115 +5438,36 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COMMA, anon_sym_LF, - [1666] = 16, + [1568] = 16, ACTIONS(13), 1, anon_sym_LBRACE, - ACTIONS(100), 1, + ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(104), 1, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(106), 1, + ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(108), 1, - anon_sym_PIPE, - ACTIONS(110), 1, - anon_sym_CARET, - ACTIONS(112), 1, - anon_sym_AMP, - ACTIONS(168), 1, - anon_sym_DOT, - STATE(29), 1, - sym_array_bracket_expression, - STATE(32), 1, - sym_parenthesis_expression_list, - STATE(180), 1, - sym_block, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(94), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(98), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(162), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(166), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [1722] = 15, - ACTIONS(100), 1, - anon_sym_SLASH, ACTIONS(104), 1, - anon_sym_LPAREN, - ACTIONS(106), 1, - anon_sym_LBRACK, - ACTIONS(108), 1, anon_sym_PIPE, - ACTIONS(110), 1, - anon_sym_CARET, - ACTIONS(112), 1, - anon_sym_AMP, - ACTIONS(168), 1, - anon_sym_DOT, - STATE(29), 1, - sym_array_bracket_expression, - STATE(32), 1, - sym_parenthesis_expression_list, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(94), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(98), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(162), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(204), 2, - anon_sym_RBRACE, - anon_sym_LF, - ACTIONS(166), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [1776] = 16, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(100), 1, - anon_sym_SLASH, - ACTIONS(104), 1, - anon_sym_LPAREN, ACTIONS(106), 1, - anon_sym_LBRACK, - ACTIONS(108), 1, - anon_sym_PIPE, - ACTIONS(110), 1, anon_sym_CARET, - ACTIONS(112), 1, + ACTIONS(108), 1, anon_sym_AMP, ACTIONS(168), 1, anon_sym_DOT, - STATE(29), 1, + STATE(30), 1, sym_array_bracket_expression, - STATE(32), 1, + STATE(31), 1, sym_parenthesis_expression_list, - STATE(165), 1, + STATE(178), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(94), 2, + ACTIONS(86), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(98), 2, + ACTIONS(90), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(162), 2, @@ -5573,38 +5478,38 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1832] = 15, - ACTIONS(100), 1, + [1624] = 15, + ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(104), 1, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(106), 1, + ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(108), 1, + ACTIONS(104), 1, anon_sym_PIPE, - ACTIONS(110), 1, + ACTIONS(106), 1, anon_sym_CARET, - ACTIONS(112), 1, + ACTIONS(108), 1, anon_sym_AMP, ACTIONS(168), 1, anon_sym_DOT, - STATE(29), 1, + STATE(30), 1, sym_array_bracket_expression, - STATE(32), 1, + STATE(31), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(94), 2, + ACTIONS(86), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(98), 2, + ACTIONS(90), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(162), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(206), 2, + ACTIONS(204), 2, anon_sym_RPAREN, anon_sym_COMMA, ACTIONS(166), 4, @@ -5612,20 +5517,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1886] = 8, + [1678] = 9, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(177), 1, + ACTIONS(206), 1, sym_identifier, ACTIONS(208), 1, - anon_sym_RPAREN, - ACTIONS(210), 1, sym_number, + STATE(76), 1, + sym_template_global, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, + STATE(123), 2, + sym__type, + sym_array_type, ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, @@ -5634,7 +5542,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(40), 8, + STATE(53), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -5642,73 +5550,105 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - sym_template_global, - [1925] = 15, - ACTIONS(100), 1, + [1720] = 6, + ACTIONS(61), 1, + anon_sym_COLON_COLON, + ACTIONS(210), 1, + anon_sym_EQ, + STATE(13), 1, + aux_sym_template_global_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(78), 3, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, - ACTIONS(104), 1, + ACTIONS(80), 15, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_DOT, anon_sym_LPAREN, - ACTIONS(106), 1, anon_sym_LBRACK, - ACTIONS(108), 1, + anon_sym_COMMA, + [1756] = 15, + ACTIONS(92), 1, + anon_sym_SLASH, + ACTIONS(96), 1, + anon_sym_LPAREN, + ACTIONS(98), 1, + anon_sym_LBRACK, + ACTIONS(104), 1, anon_sym_PIPE, - ACTIONS(110), 1, + ACTIONS(106), 1, anon_sym_CARET, - ACTIONS(112), 1, + ACTIONS(108), 1, anon_sym_AMP, ACTIONS(168), 1, anon_sym_DOT, - ACTIONS(212), 1, - anon_sym_COMMA, - STATE(29), 1, + STATE(30), 1, sym_array_bracket_expression, - STATE(32), 1, + STATE(31), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(94), 2, + ACTIONS(86), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(98), 2, + ACTIONS(90), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(162), 2, anon_sym_LT, anon_sym_GT, + ACTIONS(212), 2, + anon_sym_RBRACE, + anon_sym_LF, ACTIONS(166), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1978] = 15, - ACTIONS(100), 1, + [1810] = 16, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(102), 1, - anon_sym_DOT, - ACTIONS(104), 1, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(106), 1, + ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(108), 1, + ACTIONS(104), 1, anon_sym_PIPE, - ACTIONS(110), 1, + ACTIONS(106), 1, anon_sym_CARET, - ACTIONS(112), 1, + ACTIONS(108), 1, anon_sym_AMP, - ACTIONS(214), 1, - anon_sym_DOT_DOT, - STATE(29), 1, + ACTIONS(168), 1, + anon_sym_DOT, + STATE(30), 1, sym_array_bracket_expression, - STATE(32), 1, + STATE(31), 1, sym_parenthesis_expression_list, + STATE(172), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(94), 2, + ACTIONS(86), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(98), 2, + ACTIONS(90), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(162), 2, @@ -5719,34 +5659,34 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2031] = 15, - ACTIONS(100), 1, + [1866] = 15, + ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(104), 1, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(106), 1, + ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(108), 1, + ACTIONS(104), 1, anon_sym_PIPE, - ACTIONS(110), 1, + ACTIONS(106), 1, anon_sym_CARET, - ACTIONS(112), 1, + ACTIONS(108), 1, anon_sym_AMP, ACTIONS(168), 1, anon_sym_DOT, - ACTIONS(216), 1, - anon_sym_RPAREN, - STATE(29), 1, + ACTIONS(214), 1, + anon_sym_RBRACK, + STATE(30), 1, sym_array_bracket_expression, - STATE(32), 1, + STATE(31), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(94), 2, + ACTIONS(86), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(98), 2, + ACTIONS(90), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(162), 2, @@ -5757,34 +5697,34 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2084] = 15, - ACTIONS(100), 1, + [1919] = 15, + ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(104), 1, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(106), 1, + ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(108), 1, + ACTIONS(104), 1, anon_sym_PIPE, - ACTIONS(110), 1, + ACTIONS(106), 1, anon_sym_CARET, - ACTIONS(112), 1, + ACTIONS(108), 1, anon_sym_AMP, ACTIONS(168), 1, anon_sym_DOT, - ACTIONS(218), 1, + ACTIONS(216), 1, anon_sym_RBRACK, - STATE(29), 1, + STATE(30), 1, sym_array_bracket_expression, - STATE(32), 1, + STATE(31), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(94), 2, + ACTIONS(86), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(98), 2, + ACTIONS(90), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(162), 2, @@ -5795,34 +5735,148 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2137] = 15, - ACTIONS(100), 1, + [1972] = 15, + ACTIONS(92), 1, anon_sym_SLASH, + ACTIONS(96), 1, + anon_sym_LPAREN, + ACTIONS(98), 1, + anon_sym_LBRACK, ACTIONS(104), 1, + anon_sym_PIPE, + ACTIONS(106), 1, + anon_sym_CARET, + ACTIONS(108), 1, + anon_sym_AMP, + ACTIONS(168), 1, + anon_sym_DOT, + ACTIONS(218), 1, + anon_sym_COMMA, + STATE(30), 1, + sym_array_bracket_expression, + STATE(31), 1, + sym_parenthesis_expression_list, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(86), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(90), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(162), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(166), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [2025] = 15, + ACTIONS(92), 1, + anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_DOT, + ACTIONS(96), 1, anon_sym_LPAREN, + ACTIONS(98), 1, + anon_sym_LBRACK, + ACTIONS(104), 1, + anon_sym_PIPE, ACTIONS(106), 1, + anon_sym_CARET, + ACTIONS(108), 1, + anon_sym_AMP, + ACTIONS(220), 1, + anon_sym_DOT_DOT, + STATE(30), 1, + sym_array_bracket_expression, + STATE(31), 1, + sym_parenthesis_expression_list, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(86), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(90), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(162), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(166), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [2078] = 15, + ACTIONS(92), 1, + anon_sym_SLASH, + ACTIONS(96), 1, + anon_sym_LPAREN, + ACTIONS(98), 1, anon_sym_LBRACK, + ACTIONS(104), 1, + anon_sym_PIPE, + ACTIONS(106), 1, + anon_sym_CARET, ACTIONS(108), 1, + anon_sym_AMP, + ACTIONS(168), 1, + anon_sym_DOT, + ACTIONS(222), 1, + anon_sym_COMMA, + STATE(30), 1, + sym_array_bracket_expression, + STATE(31), 1, + sym_parenthesis_expression_list, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(86), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(90), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(162), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(166), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [2131] = 15, + ACTIONS(92), 1, + anon_sym_SLASH, + ACTIONS(96), 1, + anon_sym_LPAREN, + ACTIONS(98), 1, + anon_sym_LBRACK, + ACTIONS(104), 1, anon_sym_PIPE, - ACTIONS(110), 1, + ACTIONS(106), 1, anon_sym_CARET, - ACTIONS(112), 1, + ACTIONS(108), 1, anon_sym_AMP, ACTIONS(168), 1, anon_sym_DOT, - ACTIONS(220), 1, - anon_sym_RBRACK, - STATE(29), 1, + ACTIONS(224), 1, + anon_sym_RPAREN, + STATE(30), 1, sym_array_bracket_expression, - STATE(32), 1, + STATE(31), 1, sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(94), 2, + ACTIONS(86), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(98), 2, + ACTIONS(90), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(162), 2, @@ -5833,14 +5887,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2190] = 7, + [2184] = 8, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(177), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(222), 1, + ACTIONS(226), 1, + anon_sym_RPAREN, + ACTIONS(228), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5853,7 +5909,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(48), 8, + STATE(39), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5862,14 +5918,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2226] = 7, + [2223] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(177), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(224), 1, + ACTIONS(230), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5891,14 +5947,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2262] = 7, + [2259] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(177), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(226), 1, + ACTIONS(232), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5911,7 +5967,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(53), 8, + STATE(20), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5920,14 +5976,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2298] = 7, + [2295] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(177), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(228), 1, + ACTIONS(234), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5940,7 +5996,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(27), 8, + STATE(46), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5949,14 +6005,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2334] = 7, + [2331] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(177), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(230), 1, + ACTIONS(236), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5969,7 +6025,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 8, + STATE(51), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5978,14 +6034,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2370] = 7, + [2367] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(177), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(232), 1, + ACTIONS(238), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5998,7 +6054,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(45), 8, + STATE(17), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6007,14 +6063,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2406] = 7, + [2403] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(177), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(234), 1, + ACTIONS(240), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6027,7 +6083,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(51), 8, + STATE(22), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6036,14 +6092,41 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2442] = 7, + [2439] = 5, + ACTIONS(39), 1, + anon_sym_LF, + STATE(38), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(242), 7, + anon_sym_reg, + anon_sym_initial, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(244), 10, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, + [2471] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(177), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(236), 1, + ACTIONS(246), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6056,7 +6139,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(24), 8, + STATE(23), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6065,14 +6148,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2478] = 7, + [2507] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(177), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(238), 1, + ACTIONS(248), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6085,7 +6168,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(23), 8, + STATE(45), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6094,14 +6177,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2514] = 7, + [2543] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(177), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(240), 1, + ACTIONS(250), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6114,7 +6197,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(46), 8, + STATE(49), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6123,14 +6206,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2550] = 7, + [2579] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(177), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(242), 1, + ACTIONS(252), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6143,7 +6226,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(52), 8, + STATE(50), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6152,14 +6235,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2586] = 7, + [2615] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(177), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(244), 1, + ACTIONS(254), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6172,7 +6255,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(19), 8, + STATE(26), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6181,50 +6264,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2622] = 5, - ACTIONS(39), 1, - anon_sym_LF, - STATE(38), 1, - aux_sym__linebreak, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(246), 7, - anon_sym_reg, - anon_sym_initial, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(248), 10, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, + [2651] = 7, + ACTIONS(33), 1, anon_sym_LPAREN, + ACTIONS(35), 1, anon_sym_COLON_COLON, + ACTIONS(206), 1, + sym_identifier, + ACTIONS(256), 1, sym_number, - [2654] = 5, - ACTIONS(254), 1, - anon_sym_LF, - STATE(67), 1, - aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(250), 7, - anon_sym_reg, - anon_sym_initial, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(252), 10, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6232,17 +6284,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_COLON_COLON, - sym_number, - [2686] = 7, + STATE(52), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_template_global, + [2687] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(177), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(256), 1, + ACTIONS(258), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6255,7 +6313,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(20), 8, + STATE(54), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6264,14 +6322,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2722] = 7, + [2723] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(177), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(258), 1, + ACTIONS(260), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6284,7 +6342,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(21), 8, + STATE(56), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6293,14 +6351,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2758] = 7, + [2759] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(177), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(260), 1, + ACTIONS(262), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6313,7 +6371,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(54), 8, + STATE(19), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6322,14 +6380,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2794] = 7, + [2795] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(177), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(262), 1, + ACTIONS(264), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6342,7 +6400,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(22), 8, + STATE(21), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6351,19 +6409,46 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2830] = 5, - ACTIONS(264), 1, - anon_sym_GT, + [2831] = 5, + ACTIONS(270), 1, + anon_sym_LF, + STATE(64), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(197), 2, - anon_sym_LT, - anon_sym_SLASH, - ACTIONS(201), 2, - anon_sym_LBRACK, - anon_sym_COMMA, - ACTIONS(199), 13, + ACTIONS(266), 7, + anon_sym_reg, + anon_sym_initial, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(268), 10, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, + [2863] = 5, + ACTIONS(272), 1, + anon_sym_GT, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(197), 2, + anon_sym_LT, + anon_sym_SLASH, + ACTIONS(201), 2, + anon_sym_LBRACK, + anon_sym_COMMA, + ACTIONS(199), 13, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6377,21 +6462,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_DOT, anon_sym_LPAREN, - [2861] = 5, - ACTIONS(269), 1, + [2894] = 5, + ACTIONS(277), 1, anon_sym_reg, - STATE(74), 1, + STATE(77), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(267), 5, + ACTIONS(275), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(272), 10, + ACTIONS(280), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6402,21 +6487,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [2891] = 5, + [2924] = 5, ACTIONS(19), 1, anon_sym_reg, - STATE(74), 1, + STATE(77), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(274), 5, + ACTIONS(282), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(276), 10, + ACTIONS(284), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6427,18 +6512,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [2921] = 3, + [2954] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(278), 6, + ACTIONS(286), 6, anon_sym_reg, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(280), 10, + ACTIONS(288), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6449,20 +6534,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [2946] = 12, + [2979] = 12, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(282), 1, + ACTIONS(290), 1, anon_sym_DASH_GT, - ACTIONS(284), 1, + ACTIONS(292), 1, anon_sym_LF, - STATE(78), 1, + STATE(82), 1, aux_sym__linebreak, - STATE(97), 1, + STATE(98), 1, sym_declaration, - STATE(106), 1, + STATE(109), 1, sym_declaration_list, STATE(170), 1, sym__interface_ports_output, @@ -6475,26 +6560,47 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(160), 3, + STATE(163), 3, sym__type, sym_array_type, sym_template_global, - [2988] = 12, + [3021] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(294), 5, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(296), 10, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, + [3045] = 12, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, ACTIONS(39), 1, anon_sym_LF, - ACTIONS(282), 1, + ACTIONS(290), 1, anon_sym_DASH_GT, STATE(38), 1, aux_sym__linebreak, - STATE(97), 1, + STATE(98), 1, sym_declaration, - STATE(113), 1, + STATE(117), 1, sym_declaration_list, - STATE(162), 1, + STATE(168), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, @@ -6505,43 +6611,22 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(160), 3, + STATE(163), 3, sym__type, sym_array_type, sym_template_global, - [3030] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(286), 5, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(288), 10, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_COLON_COLON, - sym_number, - [3054] = 10, + [3087] = 10, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(39), 1, + ACTIONS(298), 1, anon_sym_LF, - STATE(38), 1, + STATE(84), 1, aux_sym__linebreak, - STATE(97), 1, + STATE(98), 1, sym_declaration, - STATE(161), 1, + STATE(169), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, @@ -6552,22 +6637,22 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(160), 3, + STATE(163), 3, sym__type, sym_array_type, sym_template_global, - [3090] = 10, + [3123] = 10, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(290), 1, + ACTIONS(39), 1, anon_sym_LF, - STATE(80), 1, + STATE(38), 1, aux_sym__linebreak, - STATE(97), 1, + STATE(98), 1, sym_declaration, - STATE(166), 1, + STATE(165), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, @@ -6578,16 +6663,16 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(160), 3, + STATE(163), 3, sym__type, sym_array_type, sym_template_global, - [3126] = 8, + [3159] = 8, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(292), 1, + ACTIONS(300), 1, sym_identifier, - ACTIONS(294), 1, + ACTIONS(302), 1, anon_sym_GT, ACTIONS(3), 2, sym_single_line_comment, @@ -6598,17 +6683,17 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(138), 2, + STATE(134), 2, sym_template_declaration_type, sym_declaration, - STATE(160), 3, + STATE(163), 3, sym__type, sym_array_type, sym_template_global, - [3157] = 7, + [3190] = 7, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(292), 1, + ACTIONS(300), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, @@ -6619,56 +6704,22 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(184), 2, + STATE(186), 2, sym_template_declaration_type, sym_declaration, - STATE(160), 3, + STATE(163), 3, sym__type, sym_array_type, sym_template_global, - [3185] = 4, - ACTIONS(298), 1, - anon_sym_SQUOTE, - STATE(92), 1, - sym_latency_specifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(296), 8, - anon_sym_DASH_GT, - anon_sym_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_COMMA, - anon_sym_LF, - [3206] = 4, - ACTIONS(298), 1, - anon_sym_SQUOTE, - STATE(91), 1, - sym_latency_specifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(300), 8, - anon_sym_DASH_GT, - anon_sym_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_COMMA, - anon_sym_LF, - [3227] = 4, - ACTIONS(298), 1, + [3218] = 4, + ACTIONS(306), 1, anon_sym_SQUOTE, - STATE(93), 1, + STATE(94), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(302), 8, + ACTIONS(304), 8, anon_sym_DASH_GT, anon_sym_GT, anon_sym_LBRACE, @@ -6677,12 +6728,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [3248] = 7, + [3239] = 7, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, - STATE(191), 1, + STATE(116), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -6693,33 +6744,16 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(160), 3, + STATE(163), 3, sym__type, sym_array_type, sym_template_global, - [3275] = 4, - ACTIONS(298), 1, - anon_sym_SQUOTE, - STATE(90), 1, - sym_latency_specifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(304), 8, - anon_sym_DASH_GT, - anon_sym_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_COMMA, - anon_sym_LF, - [3296] = 7, + [3266] = 7, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, - STATE(105), 1, + STATE(197), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -6730,15 +6764,19 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(160), 3, + STATE(163), 3, sym__type, sym_array_type, sym_template_global, - [3323] = 2, + [3293] = 4, + ACTIONS(306), 1, + anon_sym_SQUOTE, + STATE(95), 1, + sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(306), 8, + ACTIONS(308), 8, anon_sym_DASH_GT, anon_sym_GT, anon_sym_LBRACE, @@ -6747,11 +6785,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [3338] = 2, + [3314] = 4, + ACTIONS(306), 1, + anon_sym_SQUOTE, + STATE(96), 1, + sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(308), 8, + ACTIONS(310), 8, anon_sym_DASH_GT, anon_sym_GT, anon_sym_LBRACE, @@ -6760,11 +6802,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [3353] = 2, + [3335] = 4, + ACTIONS(306), 1, + anon_sym_SQUOTE, + STATE(93), 1, + sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(310), 8, + ACTIONS(312), 8, anon_sym_DASH_GT, anon_sym_GT, anon_sym_LBRACE, @@ -6773,11 +6819,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [3368] = 2, + [3356] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(312), 8, + ACTIONS(314), 8, anon_sym_DASH_GT, anon_sym_GT, anon_sym_LBRACE, @@ -6786,110 +6832,135 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [3383] = 5, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(35), 1, - anon_sym_COLON_COLON, + [3371] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(314), 2, - anon_sym_state, - anon_sym_gen, - STATE(168), 3, - sym__type, - sym_array_type, - sym_template_global, - [3403] = 5, - ACTIONS(185), 1, + ACTIONS(316), 8, + anon_sym_DASH_GT, + anon_sym_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, anon_sym_COMMA, - STATE(89), 1, - sym__comma, - STATE(96), 1, - aux_sym_declaration_list_repeat1, + anon_sym_LF, + [3386] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(318), 8, + anon_sym_DASH_GT, + anon_sym_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_COMMA, + anon_sym_LF, + [3401] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(316), 4, + ACTIONS(320), 8, anon_sym_DASH_GT, + anon_sym_GT, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_COMMA, anon_sym_LF, - [3423] = 5, - ACTIONS(320), 1, + [3416] = 5, + ACTIONS(324), 1, anon_sym_COMMA, - STATE(89), 1, + STATE(88), 1, sym__comma, - STATE(96), 1, + STATE(97), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(318), 4, + ACTIONS(322), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [3443] = 5, - ACTIONS(185), 1, + [3436] = 5, + ACTIONS(179), 1, anon_sym_COMMA, - STATE(89), 1, + STATE(88), 1, sym__comma, - STATE(95), 1, + STATE(99), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(323), 4, + ACTIONS(327), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [3463] = 5, - ACTIONS(185), 1, + [3456] = 5, + ACTIONS(179), 1, anon_sym_COMMA, - STATE(11), 1, + STATE(88), 1, sym__comma, - STATE(101), 1, - aux_sym_assign_left_side_repeat1, + STATE(97), 1, + aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(325), 3, + ACTIONS(329), 4, + anon_sym_DASH_GT, + anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_EQ, anon_sym_LF, - [3482] = 5, - ACTIONS(185), 1, + [3476] = 5, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(331), 2, + anon_sym_state, + anon_sym_gen, + STATE(173), 3, + sym__type, + sym_array_type, + sym_template_global, + [3496] = 5, + ACTIONS(179), 1, anon_sym_COMMA, STATE(11), 1, sym__comma, - STATE(98), 1, + STATE(104), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(327), 3, + ACTIONS(333), 3, anon_sym_RBRACE, anon_sym_EQ, anon_sym_LF, - [3501] = 5, + [3515] = 5, ACTIONS(61), 1, anon_sym_COLON_COLON, - STATE(12), 1, + STATE(13), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(72), 2, + ACTIONS(80), 2, anon_sym_LBRACK, sym_identifier, - ACTIONS(329), 2, + ACTIONS(335), 2, anon_sym_GT, anon_sym_COMMA, - [3520] = 5, - ACTIONS(333), 1, + [3534] = 5, + ACTIONS(179), 1, anon_sym_COMMA, STATE(11), 1, sym__comma, @@ -6898,18 +6969,32 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(331), 3, + ACTIONS(337), 3, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_LF, + [3553] = 5, + ACTIONS(341), 1, + anon_sym_COMMA, + STATE(11), 1, + sym__comma, + STATE(104), 1, + aux_sym_assign_left_side_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(339), 3, anon_sym_RBRACE, anon_sym_EQ, anon_sym_LF, - [3539] = 7, + [3572] = 7, ACTIONS(13), 1, anon_sym_LBRACE, - ACTIONS(336), 1, + ACTIONS(344), 1, anon_sym_COLON, - ACTIONS(338), 1, + ACTIONS(346), 1, anon_sym_LT, - STATE(116), 1, + STATE(149), 1, sym_template_declaration_arguments, STATE(179), 1, sym_interface_ports, @@ -6918,198 +7003,183 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3562] = 6, - ACTIONS(340), 1, - anon_sym_RBRACE, - ACTIONS(342), 1, - anon_sym_EQ, - ACTIONS(344), 1, + [3595] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(348), 1, + ts_builtin_sym_end, + ACTIONS(350), 1, anon_sym_LF, - STATE(8), 1, + STATE(158), 1, aux_sym__linebreak, - STATE(151), 1, - aux_sym_block_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3582] = 4, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(177), 1, - sym_identifier, + STATE(191), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(163), 3, - sym__type, - sym_array_type, - sym_template_global, - [3598] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(346), 5, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COMMA, - anon_sym_LF, - [3610] = 4, - ACTIONS(282), 1, - anon_sym_DASH_GT, - STATE(167), 1, - sym__interface_ports_output, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(348), 3, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_LF, - [3626] = 6, + [3615] = 6, ACTIONS(7), 1, anon_sym_module, ACTIONS(350), 1, - ts_builtin_sym_end, - ACTIONS(352), 1, anon_sym_LF, - STATE(141), 1, + ACTIONS(352), 1, + ts_builtin_sym_end, + STATE(158), 1, aux_sym__linebreak, - STATE(186), 1, + STATE(191), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3646] = 6, + [3635] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(352), 1, + ACTIONS(350), 1, anon_sym_LF, ACTIONS(354), 1, ts_builtin_sym_end, - STATE(141), 1, + STATE(158), 1, aux_sym__linebreak, - STATE(186), 1, + STATE(191), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3666] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(352), 1, + [3655] = 4, + ACTIONS(290), 1, + anon_sym_DASH_GT, + STATE(175), 1, + sym__interface_ports_output, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(356), 3, + anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_LF, - ACTIONS(356), 1, - ts_builtin_sym_end, - STATE(141), 1, + [3671] = 6, + ACTIONS(358), 1, + anon_sym_RBRACE, + ACTIONS(360), 1, + anon_sym_EQ, + ACTIONS(362), 1, + anon_sym_LF, + STATE(8), 1, aux_sym__linebreak, - STATE(186), 1, - sym_module, + STATE(151), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3686] = 6, + [3691] = 4, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(206), 1, + sym_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(174), 3, + sym__type, + sym_array_type, + sym_template_global, + [3707] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(352), 1, + ACTIONS(350), 1, anon_sym_LF, - ACTIONS(358), 1, + ACTIONS(364), 1, ts_builtin_sym_end, - STATE(141), 1, + STATE(158), 1, aux_sym__linebreak, - STATE(186), 1, + STATE(191), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3706] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(352), 1, - anon_sym_LF, + [3727] = 6, ACTIONS(360), 1, - ts_builtin_sym_end, - STATE(130), 1, - sym_module, - STATE(141), 1, + anon_sym_EQ, + ACTIONS(366), 1, + anon_sym_RBRACE, + ACTIONS(368), 1, + anon_sym_LF, + STATE(3), 1, aux_sym__linebreak, + STATE(152), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3726] = 4, + [3747] = 4, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(177), 1, + ACTIONS(206), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(172), 3, + STATE(164), 3, sym__type, sym_array_type, sym_template_global, - [3742] = 4, - ACTIONS(282), 1, - anon_sym_DASH_GT, - STATE(164), 1, - sym__interface_ports_output, + [3763] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(350), 1, + anon_sym_LF, + ACTIONS(370), 1, + ts_builtin_sym_end, + STATE(148), 1, + sym_module, + STATE(158), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(362), 3, + [3783] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(372), 5, + anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_COMMA, anon_sym_LF, - [3758] = 6, - ACTIONS(342), 1, - anon_sym_EQ, - ACTIONS(364), 1, - anon_sym_RBRACE, - ACTIONS(366), 1, - anon_sym_LF, - STATE(9), 1, - aux_sym__linebreak, - STATE(144), 1, - aux_sym_block_repeat1, + [3795] = 4, + ACTIONS(290), 1, + anon_sym_DASH_GT, + STATE(171), 1, + sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3778] = 4, - ACTIONS(336), 1, - anon_sym_COLON, - STATE(182), 1, - sym_interface_ports, + ACTIONS(374), 3, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_LF, + [3811] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(368), 2, + ACTIONS(376), 4, + ts_builtin_sym_end, anon_sym_RBRACE, + anon_sym_else, anon_sym_LF, - [3793] = 5, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(336), 1, + [3822] = 4, + ACTIONS(344), 1, anon_sym_COLON, - STATE(181), 1, - sym_block, - STATE(188), 1, + STATE(184), 1, sym_interface_ports, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3810] = 5, - ACTIONS(364), 1, + ACTIONS(378), 2, anon_sym_RBRACE, - ACTIONS(366), 1, anon_sym_LF, - STATE(9), 1, - aux_sym__linebreak, - STATE(146), 1, - aux_sym_block_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3827] = 2, + [3837] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -7118,163 +7188,138 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_COMMA, anon_sym_LF, - [3838] = 5, - ACTIONS(370), 1, + [3848] = 5, + ACTIONS(380), 1, anon_sym_GT, - ACTIONS(372), 1, + ACTIONS(382), 1, anon_sym_COMMA, - STATE(42), 1, + STATE(43), 1, sym__comma, - STATE(119), 1, + STATE(121), 1, aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3855] = 5, - ACTIONS(375), 1, + [3865] = 5, + ACTIONS(385), 1, ts_builtin_sym_end, - ACTIONS(377), 1, + ACTIONS(387), 1, anon_sym_LF, - STATE(108), 1, + STATE(106), 1, aux_sym__linebreak, - STATE(127), 1, + STATE(141), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3872] = 2, + [3882] = 4, + ACTIONS(389), 1, + anon_sym_LBRACK, + STATE(136), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(218), 2, + anon_sym_GT, + anon_sym_COMMA, + [3897] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(379), 4, + ACTIONS(391), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3883] = 2, + [3908] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(379), 4, + ACTIONS(391), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3894] = 5, - ACTIONS(381), 1, + [3919] = 5, + ACTIONS(393), 1, anon_sym_GT, - ACTIONS(383), 1, + ACTIONS(395), 1, anon_sym_COMMA, - STATE(83), 1, + STATE(86), 1, sym__comma, - STATE(123), 1, + STATE(126), 1, aux_sym_template_declaration_arguments_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3911] = 5, - ACTIONS(386), 1, + [3936] = 5, + ACTIONS(398), 1, anon_sym_RPAREN, - ACTIONS(388), 1, + ACTIONS(400), 1, anon_sym_COMMA, - STATE(55), 1, + STATE(60), 1, sym__comma, - STATE(124), 1, + STATE(127), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3928] = 5, + [3953] = 5, ACTIONS(7), 1, anon_sym_module, - ACTIONS(352), 1, + ACTIONS(350), 1, anon_sym_LF, - STATE(141), 1, + STATE(158), 1, aux_sym__linebreak, - STATE(186), 1, + STATE(191), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3945] = 5, - ACTIONS(185), 1, - anon_sym_COMMA, - ACTIONS(391), 1, - anon_sym_GT, - STATE(42), 1, - sym__comma, - STATE(119), 1, - aux_sym_template_params_repeat1, + [3970] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3962] = 5, - ACTIONS(393), 1, - ts_builtin_sym_end, - ACTIONS(395), 1, - anon_sym_LF, - STATE(110), 1, - aux_sym__linebreak, - STATE(145), 1, - aux_sym_source_file_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3979] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(397), 4, + ACTIONS(403), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3990] = 2, + [3981] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(399), 4, + ACTIONS(405), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [4001] = 5, - ACTIONS(401), 1, - ts_builtin_sym_end, - ACTIONS(403), 1, - anon_sym_LF, - STATE(109), 1, - aux_sym__linebreak, - STATE(143), 1, - aux_sym_source_file_repeat1, + [3992] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4018] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(405), 4, + ACTIONS(407), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [4029] = 5, - ACTIONS(340), 1, - anon_sym_RBRACE, - ACTIONS(344), 1, - anon_sym_LF, - STATE(8), 1, - aux_sym__linebreak, - STATE(150), 1, - aux_sym_block_repeat1, + [4003] = 5, + ACTIONS(179), 1, + anon_sym_COMMA, + ACTIONS(409), 1, + anon_sym_GT, + STATE(43), 1, + sym__comma, + STATE(121), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4046] = 5, - ACTIONS(407), 1, + [4020] = 5, + ACTIONS(411), 1, anon_sym_RBRACE, - ACTIONS(409), 1, + ACTIONS(413), 1, anon_sym_LF, STATE(10), 1, aux_sym__linebreak, @@ -7283,331 +7328,380 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4063] = 2, + [4037] = 5, + ACTIONS(179), 1, + anon_sym_COMMA, + ACTIONS(416), 1, + anon_sym_GT, + STATE(86), 1, + sym__comma, + STATE(161), 1, + aux_sym_template_declaration_arguments_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(412), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [4074] = 2, + [4054] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(405), 4, + ACTIONS(407), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [4085] = 2, + [4065] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(399), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [4096] = 2, + ACTIONS(418), 4, + anon_sym_GT, + anon_sym_LBRACK, + sym_identifier, + anon_sym_COMMA, + [4076] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(414), 4, + ACTIONS(420), 4, anon_sym_RBRACE, anon_sym_EQ, anon_sym_COMMA, anon_sym_LF, - [4107] = 5, - ACTIONS(185), 1, - anon_sym_COMMA, - ACTIONS(416), 1, - anon_sym_GT, - STATE(83), 1, - sym__comma, - STATE(157), 1, - aux_sym_template_declaration_arguments_repeat1, + [4087] = 5, + ACTIONS(358), 1, + anon_sym_RBRACE, + ACTIONS(362), 1, + anon_sym_LF, + STATE(8), 1, + aux_sym__linebreak, + STATE(150), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4124] = 2, + [4104] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(418), 4, + ACTIONS(422), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [4135] = 5, - ACTIONS(185), 1, - anon_sym_COMMA, - ACTIONS(420), 1, - anon_sym_RPAREN, - STATE(55), 1, - sym__comma, - STATE(124), 1, - aux_sym_parenthesis_expression_list_repeat1, + [4115] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4152] = 4, - ACTIONS(422), 1, + ACTIONS(424), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, anon_sym_LF, - STATE(141), 1, + [4126] = 5, + ACTIONS(426), 1, + ts_builtin_sym_end, + ACTIONS(428), 1, + anon_sym_LF, + STATE(108), 1, aux_sym__linebreak, + STATE(144), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(172), 2, + [4143] = 5, + ACTIONS(430), 1, ts_builtin_sym_end, - anon_sym_module, - [4167] = 2, + ACTIONS(432), 1, + anon_sym_LF, + STATE(112), 1, + aux_sym__linebreak, + STATE(144), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(191), 4, + [4160] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(424), 4, + ts_builtin_sym_end, anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COMMA, + anon_sym_else, anon_sym_LF, - [4178] = 5, - ACTIONS(425), 1, + [4171] = 5, + ACTIONS(434), 1, ts_builtin_sym_end, - ACTIONS(427), 1, + ACTIONS(436), 1, anon_sym_LF, - STATE(107), 1, + STATE(128), 1, aux_sym__linebreak, - STATE(145), 1, + STATE(144), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4195] = 5, - ACTIONS(429), 1, + [4188] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(191), 4, anon_sym_RBRACE, - ACTIONS(431), 1, + anon_sym_EQ, + anon_sym_COMMA, anon_sym_LF, - STATE(6), 1, - aux_sym__linebreak, - STATE(133), 1, - aux_sym_block_repeat1, + [4199] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4212] = 5, - ACTIONS(433), 1, + ACTIONS(439), 4, ts_builtin_sym_end, - ACTIONS(435), 1, + anon_sym_RBRACE, + anon_sym_else, anon_sym_LF, - STATE(125), 1, - aux_sym__linebreak, - STATE(145), 1, - aux_sym_source_file_repeat1, + [4210] = 5, + ACTIONS(179), 1, + anon_sym_COMMA, + ACTIONS(441), 1, + anon_sym_RPAREN, + STATE(60), 1, + sym__comma, + STATE(127), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4229] = 5, - ACTIONS(438), 1, - anon_sym_RBRACE, - ACTIONS(440), 1, + [4227] = 5, + ACTIONS(443), 1, + ts_builtin_sym_end, + ACTIONS(445), 1, anon_sym_LF, - STATE(2), 1, + STATE(107), 1, aux_sym__linebreak, - STATE(133), 1, - aux_sym_block_repeat1, + STATE(142), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4246] = 2, + [4244] = 5, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(344), 1, + anon_sym_COLON, + STATE(177), 1, + sym_interface_ports, + STATE(183), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(442), 4, - ts_builtin_sym_end, + [4261] = 5, + ACTIONS(447), 1, anon_sym_RBRACE, - anon_sym_else, + ACTIONS(449), 1, anon_sym_LF, - [4257] = 2, + STATE(6), 1, + aux_sym__linebreak, + STATE(133), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(444), 4, - ts_builtin_sym_end, + [4278] = 5, + ACTIONS(451), 1, anon_sym_RBRACE, - anon_sym_else, + ACTIONS(453), 1, anon_sym_LF, - [4268] = 2, + STATE(5), 1, + aux_sym__linebreak, + STATE(133), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(446), 4, - anon_sym_GT, - anon_sym_LBRACK, - sym_identifier, - anon_sym_COMMA, - [4279] = 5, - ACTIONS(448), 1, + [4295] = 5, + ACTIONS(455), 1, anon_sym_RBRACE, - ACTIONS(450), 1, + ACTIONS(457), 1, anon_sym_LF, - STATE(5), 1, + STATE(2), 1, aux_sym__linebreak, STATE(133), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4296] = 5, - ACTIONS(452), 1, + [4312] = 5, + ACTIONS(459), 1, anon_sym_RBRACE, - ACTIONS(454), 1, + ACTIONS(461), 1, anon_sym_LF, - STATE(4), 1, + STATE(9), 1, aux_sym__linebreak, STATE(133), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4313] = 2, + [4329] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(456), 4, + ACTIONS(463), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [4324] = 2, + [4340] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(442), 4, + ACTIONS(465), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [4335] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(458), 4, - ts_builtin_sym_end, + [4351] = 5, + ACTIONS(366), 1, anon_sym_RBRACE, - anon_sym_else, + ACTIONS(368), 1, anon_sym_LF, - [4346] = 4, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(460), 1, - anon_sym_if, + STATE(3), 1, + aux_sym__linebreak, + STATE(153), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(178), 2, - sym_block, - sym_if_statement, - [4361] = 4, - ACTIONS(464), 1, + [4368] = 4, + ACTIONS(389), 1, anon_sym_LBRACK, - STATE(149), 1, + STATE(136), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(462), 2, + ACTIONS(222), 2, anon_sym_GT, anon_sym_COMMA, - [4376] = 5, - ACTIONS(185), 1, + [4383] = 4, + ACTIONS(467), 1, + anon_sym_LF, + STATE(158), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(172), 2, + ts_builtin_sym_end, + anon_sym_module, + [4398] = 5, + ACTIONS(179), 1, anon_sym_COMMA, - ACTIONS(466), 1, + ACTIONS(470), 1, anon_sym_GT, - STATE(83), 1, + STATE(43), 1, sym__comma, - STATE(123), 1, - aux_sym_template_declaration_arguments_repeat1, + STATE(132), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4393] = 5, - ACTIONS(185), 1, + [4415] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(465), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [4426] = 5, + ACTIONS(179), 1, anon_sym_COMMA, - ACTIONS(468), 1, + ACTIONS(472), 1, anon_sym_GT, - STATE(42), 1, + STATE(86), 1, sym__comma, STATE(126), 1, - aux_sym_template_params_repeat1, + aux_sym_template_declaration_arguments_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4410] = 4, - ACTIONS(470), 1, + [4443] = 4, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(474), 1, + anon_sym_if, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(180), 2, + sym_block, + sym_if_statement, + [4458] = 4, + ACTIONS(98), 1, + anon_sym_LBRACK, + ACTIONS(476), 1, sym_identifier, - ACTIONS(472), 1, - anon_sym_LT, - STATE(25), 1, - sym_template_params, + STATE(136), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4424] = 4, - ACTIONS(106), 1, + [4472] = 4, + ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(474), 1, + ACTIONS(478), 1, sym_identifier, - STATE(149), 1, + STATE(136), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4438] = 2, + [4486] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(476), 3, + ACTIONS(480), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4448] = 2, + [4496] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(478), 3, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_LF, - [4458] = 4, - ACTIONS(106), 1, + ACTIONS(128), 3, + anon_sym_GT, anon_sym_LBRACK, - ACTIONS(480), 1, - sym_identifier, - STATE(149), 1, - sym_array_bracket_expression, + anon_sym_COMMA, + [4506] = 3, + ACTIONS(360), 1, + anon_sym_EQ, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4472] = 2, + ACTIONS(482), 2, + anon_sym_RBRACE, + anon_sym_LF, + [4518] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(482), 3, + ACTIONS(484), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4482] = 3, - ACTIONS(486), 1, - anon_sym_else, + [4528] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(484), 2, + ACTIONS(486), 3, + anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4494] = 2, + [4538] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -7615,7 +7709,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4504] = 2, + [4548] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -7623,197 +7717,199 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4514] = 4, - ACTIONS(106), 1, - anon_sym_LBRACK, - ACTIONS(492), 1, - sym_identifier, - STATE(149), 1, - sym_array_bracket_expression, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4528] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(128), 3, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COMMA, - [4538] = 2, + [4558] = 3, + ACTIONS(494), 1, + anon_sym_else, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(494), 3, - anon_sym_LBRACE, + ACTIONS(492), 2, anon_sym_RBRACE, anon_sym_LF, - [4548] = 3, - ACTIONS(342), 1, - anon_sym_EQ, + [4570] = 4, + ACTIONS(98), 1, + anon_sym_LBRACK, + ACTIONS(496), 1, + sym_identifier, + STATE(136), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(496), 2, - anon_sym_RBRACE, - anon_sym_LF, - [4560] = 4, - ACTIONS(106), 1, + [4584] = 4, + ACTIONS(98), 1, anon_sym_LBRACK, ACTIONS(498), 1, sym_identifier, - STATE(149), 1, + STATE(136), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4574] = 2, + [4598] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(500), 2, - anon_sym_COLON, + ACTIONS(500), 3, anon_sym_LBRACE, - [4583] = 2, + anon_sym_RBRACE, + anon_sym_LF, + [4608] = 4, + ACTIONS(502), 1, + sym_identifier, + ACTIONS(504), 1, + anon_sym_LT, + STATE(27), 1, + sym_template_params, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(502), 2, - anon_sym_COLON, + [4622] = 3, + ACTIONS(13), 1, anon_sym_LBRACE, - [4592] = 2, + STATE(181), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(504), 2, - ts_builtin_sym_end, - anon_sym_LF, - [4601] = 2, + [4633] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(496), 2, + ACTIONS(506), 2, anon_sym_RBRACE, anon_sym_LF, - [4610] = 2, + [4642] = 3, + ACTIONS(13), 1, + anon_sym_LBRACE, + STATE(188), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(506), 2, - ts_builtin_sym_end, - anon_sym_LF, - [4619] = 2, + [4653] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(508), 2, anon_sym_RBRACE, anon_sym_LF, - [4628] = 3, - ACTIONS(13), 1, - anon_sym_LBRACE, - STATE(177), 1, - sym_block, + [4662] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4639] = 2, + ACTIONS(510), 2, + ts_builtin_sym_end, + anon_sym_LF, + [4671] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(510), 2, + ACTIONS(482), 2, anon_sym_RBRACE, anon_sym_LF, - [4648] = 2, + [4680] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(512), 2, ts_builtin_sym_end, anon_sym_LF, - [4657] = 2, + [4689] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(514), 2, anon_sym_RBRACE, anon_sym_LF, - [4666] = 2, + [4698] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(516), 2, anon_sym_COLON, anon_sym_LBRACE, - [4675] = 2, + [4707] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(518), 2, anon_sym_GT, anon_sym_COMMA, - [4684] = 2, + [4716] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(520), 2, - anon_sym_GT, - anon_sym_COMMA, - [4693] = 2, + ts_builtin_sym_end, + anon_sym_LF, + [4725] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(522), 2, ts_builtin_sym_end, anon_sym_LF, - [4702] = 2, + [4734] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(524), 2, + anon_sym_GT, + anon_sym_COMMA, + [4743] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(526), 2, + anon_sym_COLON, + anon_sym_LBRACE, + [4752] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(528), 2, ts_builtin_sym_end, anon_sym_LF, - [4711] = 3, - ACTIONS(13), 1, - anon_sym_LBRACE, - STATE(175), 1, - sym_block, + [4761] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4722] = 2, - ACTIONS(526), 1, + ACTIONS(530), 2, + anon_sym_COLON, + anon_sym_LBRACE, + [4770] = 2, + ACTIONS(532), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4730] = 2, - ACTIONS(528), 1, + [4778] = 2, + ACTIONS(534), 1, ts_builtin_sym_end, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4738] = 2, - ACTIONS(530), 1, - anon_sym_in, + [4786] = 2, + ACTIONS(536), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4746] = 2, - ACTIONS(532), 1, + [4794] = 2, + ACTIONS(538), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4754] = 2, - ACTIONS(534), 1, - sym_identifier, + [4802] = 2, + ACTIONS(540), 1, + anon_sym_in, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4762] = 2, - ACTIONS(536), 1, + [4810] = 2, + ACTIONS(542), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, @@ -7821,191 +7917,194 @@ static const uint16_t ts_small_parse_table[] = { }; static const uint32_t ts_small_parse_table_map[] = { - [SMALL_STATE(10)] = 0, - [SMALL_STATE(11)] = 96, - [SMALL_STATE(12)] = 164, - [SMALL_STATE(13)] = 207, - [SMALL_STATE(14)] = 250, - [SMALL_STATE(15)] = 293, - [SMALL_STATE(16)] = 336, - [SMALL_STATE(17)] = 379, - [SMALL_STATE(18)] = 417, - [SMALL_STATE(19)] = 455, - [SMALL_STATE(20)] = 511, - [SMALL_STATE(21)] = 571, - [SMALL_STATE(22)] = 629, - [SMALL_STATE(23)] = 677, - [SMALL_STATE(24)] = 729, - [SMALL_STATE(25)] = 791, - [SMALL_STATE(26)] = 829, - [SMALL_STATE(27)] = 867, - [SMALL_STATE(28)] = 915, - [SMALL_STATE(29)] = 952, - [SMALL_STATE(30)] = 988, - [SMALL_STATE(31)] = 1024, - [SMALL_STATE(32)] = 1060, - [SMALL_STATE(33)] = 1096, - [SMALL_STATE(34)] = 1132, - [SMALL_STATE(35)] = 1168, - [SMALL_STATE(36)] = 1204, - [SMALL_STATE(37)] = 1257, - [SMALL_STATE(38)] = 1320, - [SMALL_STATE(39)] = 1358, - [SMALL_STATE(40)] = 1407, - [SMALL_STATE(41)] = 1469, - [SMALL_STATE(42)] = 1527, - [SMALL_STATE(43)] = 1573, - [SMALL_STATE(44)] = 1631, - [SMALL_STATE(45)] = 1666, - [SMALL_STATE(46)] = 1722, - [SMALL_STATE(47)] = 1776, - [SMALL_STATE(48)] = 1832, - [SMALL_STATE(49)] = 1886, - [SMALL_STATE(50)] = 1925, - [SMALL_STATE(51)] = 1978, - [SMALL_STATE(52)] = 2031, - [SMALL_STATE(53)] = 2084, - [SMALL_STATE(54)] = 2137, - [SMALL_STATE(55)] = 2190, - [SMALL_STATE(56)] = 2226, - [SMALL_STATE(57)] = 2262, - [SMALL_STATE(58)] = 2298, - [SMALL_STATE(59)] = 2334, - [SMALL_STATE(60)] = 2370, - [SMALL_STATE(61)] = 2406, - [SMALL_STATE(62)] = 2442, - [SMALL_STATE(63)] = 2478, - [SMALL_STATE(64)] = 2514, - [SMALL_STATE(65)] = 2550, - [SMALL_STATE(66)] = 2586, - [SMALL_STATE(67)] = 2622, - [SMALL_STATE(68)] = 2654, - [SMALL_STATE(69)] = 2686, - [SMALL_STATE(70)] = 2722, - [SMALL_STATE(71)] = 2758, - [SMALL_STATE(72)] = 2794, - [SMALL_STATE(73)] = 2830, - [SMALL_STATE(74)] = 2861, - [SMALL_STATE(75)] = 2891, - [SMALL_STATE(76)] = 2921, - [SMALL_STATE(77)] = 2946, - [SMALL_STATE(78)] = 2988, - [SMALL_STATE(79)] = 3030, - [SMALL_STATE(80)] = 3054, - [SMALL_STATE(81)] = 3090, - [SMALL_STATE(82)] = 3126, - [SMALL_STATE(83)] = 3157, - [SMALL_STATE(84)] = 3185, - [SMALL_STATE(85)] = 3206, - [SMALL_STATE(86)] = 3227, - [SMALL_STATE(87)] = 3248, - [SMALL_STATE(88)] = 3275, - [SMALL_STATE(89)] = 3296, - [SMALL_STATE(90)] = 3323, - [SMALL_STATE(91)] = 3338, - [SMALL_STATE(92)] = 3353, - [SMALL_STATE(93)] = 3368, - [SMALL_STATE(94)] = 3383, - [SMALL_STATE(95)] = 3403, - [SMALL_STATE(96)] = 3423, - [SMALL_STATE(97)] = 3443, - [SMALL_STATE(98)] = 3463, - [SMALL_STATE(99)] = 3482, - [SMALL_STATE(100)] = 3501, - [SMALL_STATE(101)] = 3520, - [SMALL_STATE(102)] = 3539, - [SMALL_STATE(103)] = 3562, - [SMALL_STATE(104)] = 3582, - [SMALL_STATE(105)] = 3598, - [SMALL_STATE(106)] = 3610, - [SMALL_STATE(107)] = 3626, - [SMALL_STATE(108)] = 3646, - [SMALL_STATE(109)] = 3666, - [SMALL_STATE(110)] = 3686, - [SMALL_STATE(111)] = 3706, - [SMALL_STATE(112)] = 3726, - [SMALL_STATE(113)] = 3742, - [SMALL_STATE(114)] = 3758, - [SMALL_STATE(115)] = 3778, - [SMALL_STATE(116)] = 3793, - [SMALL_STATE(117)] = 3810, - [SMALL_STATE(118)] = 3827, - [SMALL_STATE(119)] = 3838, - [SMALL_STATE(120)] = 3855, - [SMALL_STATE(121)] = 3872, - [SMALL_STATE(122)] = 3883, - [SMALL_STATE(123)] = 3894, - [SMALL_STATE(124)] = 3911, - [SMALL_STATE(125)] = 3928, - [SMALL_STATE(126)] = 3945, - [SMALL_STATE(127)] = 3962, - [SMALL_STATE(128)] = 3979, - [SMALL_STATE(129)] = 3990, - [SMALL_STATE(130)] = 4001, - [SMALL_STATE(131)] = 4018, - [SMALL_STATE(132)] = 4029, - [SMALL_STATE(133)] = 4046, - [SMALL_STATE(134)] = 4063, - [SMALL_STATE(135)] = 4074, - [SMALL_STATE(136)] = 4085, - [SMALL_STATE(137)] = 4096, - [SMALL_STATE(138)] = 4107, - [SMALL_STATE(139)] = 4124, - [SMALL_STATE(140)] = 4135, - [SMALL_STATE(141)] = 4152, - [SMALL_STATE(142)] = 4167, - [SMALL_STATE(143)] = 4178, - [SMALL_STATE(144)] = 4195, - [SMALL_STATE(145)] = 4212, - [SMALL_STATE(146)] = 4229, - [SMALL_STATE(147)] = 4246, - [SMALL_STATE(148)] = 4257, - [SMALL_STATE(149)] = 4268, - [SMALL_STATE(150)] = 4279, - [SMALL_STATE(151)] = 4296, - [SMALL_STATE(152)] = 4313, - [SMALL_STATE(153)] = 4324, - [SMALL_STATE(154)] = 4335, - [SMALL_STATE(155)] = 4346, - [SMALL_STATE(156)] = 4361, - [SMALL_STATE(157)] = 4376, - [SMALL_STATE(158)] = 4393, - [SMALL_STATE(159)] = 4410, - [SMALL_STATE(160)] = 4424, - [SMALL_STATE(161)] = 4438, - [SMALL_STATE(162)] = 4448, + [SMALL_STATE(11)] = 0, + [SMALL_STATE(12)] = 68, + [SMALL_STATE(13)] = 111, + [SMALL_STATE(14)] = 154, + [SMALL_STATE(15)] = 197, + [SMALL_STATE(16)] = 240, + [SMALL_STATE(17)] = 283, + [SMALL_STATE(18)] = 339, + [SMALL_STATE(19)] = 377, + [SMALL_STATE(20)] = 437, + [SMALL_STATE(21)] = 495, + [SMALL_STATE(22)] = 543, + [SMALL_STATE(23)] = 595, + [SMALL_STATE(24)] = 657, + [SMALL_STATE(25)] = 695, + [SMALL_STATE(26)] = 733, + [SMALL_STATE(27)] = 781, + [SMALL_STATE(28)] = 819, + [SMALL_STATE(29)] = 856, + [SMALL_STATE(30)] = 892, + [SMALL_STATE(31)] = 928, + [SMALL_STATE(32)] = 964, + [SMALL_STATE(33)] = 1000, + [SMALL_STATE(34)] = 1036, + [SMALL_STATE(35)] = 1072, + [SMALL_STATE(36)] = 1108, + [SMALL_STATE(37)] = 1161, + [SMALL_STATE(38)] = 1224, + [SMALL_STATE(39)] = 1262, + [SMALL_STATE(40)] = 1324, + [SMALL_STATE(41)] = 1372, + [SMALL_STATE(42)] = 1430, + [SMALL_STATE(43)] = 1488, + [SMALL_STATE(44)] = 1533, + [SMALL_STATE(45)] = 1568, + [SMALL_STATE(46)] = 1624, + [SMALL_STATE(47)] = 1678, + [SMALL_STATE(48)] = 1720, + [SMALL_STATE(49)] = 1756, + [SMALL_STATE(50)] = 1810, + [SMALL_STATE(51)] = 1866, + [SMALL_STATE(52)] = 1919, + [SMALL_STATE(53)] = 1972, + [SMALL_STATE(54)] = 2025, + [SMALL_STATE(55)] = 2078, + [SMALL_STATE(56)] = 2131, + [SMALL_STATE(57)] = 2184, + [SMALL_STATE(58)] = 2223, + [SMALL_STATE(59)] = 2259, + [SMALL_STATE(60)] = 2295, + [SMALL_STATE(61)] = 2331, + [SMALL_STATE(62)] = 2367, + [SMALL_STATE(63)] = 2403, + [SMALL_STATE(64)] = 2439, + [SMALL_STATE(65)] = 2471, + [SMALL_STATE(66)] = 2507, + [SMALL_STATE(67)] = 2543, + [SMALL_STATE(68)] = 2579, + [SMALL_STATE(69)] = 2615, + [SMALL_STATE(70)] = 2651, + [SMALL_STATE(71)] = 2687, + [SMALL_STATE(72)] = 2723, + [SMALL_STATE(73)] = 2759, + [SMALL_STATE(74)] = 2795, + [SMALL_STATE(75)] = 2831, + [SMALL_STATE(76)] = 2863, + [SMALL_STATE(77)] = 2894, + [SMALL_STATE(78)] = 2924, + [SMALL_STATE(79)] = 2954, + [SMALL_STATE(80)] = 2979, + [SMALL_STATE(81)] = 3021, + [SMALL_STATE(82)] = 3045, + [SMALL_STATE(83)] = 3087, + [SMALL_STATE(84)] = 3123, + [SMALL_STATE(85)] = 3159, + [SMALL_STATE(86)] = 3190, + [SMALL_STATE(87)] = 3218, + [SMALL_STATE(88)] = 3239, + [SMALL_STATE(89)] = 3266, + [SMALL_STATE(90)] = 3293, + [SMALL_STATE(91)] = 3314, + [SMALL_STATE(92)] = 3335, + [SMALL_STATE(93)] = 3356, + [SMALL_STATE(94)] = 3371, + [SMALL_STATE(95)] = 3386, + [SMALL_STATE(96)] = 3401, + [SMALL_STATE(97)] = 3416, + [SMALL_STATE(98)] = 3436, + [SMALL_STATE(99)] = 3456, + [SMALL_STATE(100)] = 3476, + [SMALL_STATE(101)] = 3496, + [SMALL_STATE(102)] = 3515, + [SMALL_STATE(103)] = 3534, + [SMALL_STATE(104)] = 3553, + [SMALL_STATE(105)] = 3572, + [SMALL_STATE(106)] = 3595, + [SMALL_STATE(107)] = 3615, + [SMALL_STATE(108)] = 3635, + [SMALL_STATE(109)] = 3655, + [SMALL_STATE(110)] = 3671, + [SMALL_STATE(111)] = 3691, + [SMALL_STATE(112)] = 3707, + [SMALL_STATE(113)] = 3727, + [SMALL_STATE(114)] = 3747, + [SMALL_STATE(115)] = 3763, + [SMALL_STATE(116)] = 3783, + [SMALL_STATE(117)] = 3795, + [SMALL_STATE(118)] = 3811, + [SMALL_STATE(119)] = 3822, + [SMALL_STATE(120)] = 3837, + [SMALL_STATE(121)] = 3848, + [SMALL_STATE(122)] = 3865, + [SMALL_STATE(123)] = 3882, + [SMALL_STATE(124)] = 3897, + [SMALL_STATE(125)] = 3908, + [SMALL_STATE(126)] = 3919, + [SMALL_STATE(127)] = 3936, + [SMALL_STATE(128)] = 3953, + [SMALL_STATE(129)] = 3970, + [SMALL_STATE(130)] = 3981, + [SMALL_STATE(131)] = 3992, + [SMALL_STATE(132)] = 4003, + [SMALL_STATE(133)] = 4020, + [SMALL_STATE(134)] = 4037, + [SMALL_STATE(135)] = 4054, + [SMALL_STATE(136)] = 4065, + [SMALL_STATE(137)] = 4076, + [SMALL_STATE(138)] = 4087, + [SMALL_STATE(139)] = 4104, + [SMALL_STATE(140)] = 4115, + [SMALL_STATE(141)] = 4126, + [SMALL_STATE(142)] = 4143, + [SMALL_STATE(143)] = 4160, + [SMALL_STATE(144)] = 4171, + [SMALL_STATE(145)] = 4188, + [SMALL_STATE(146)] = 4199, + [SMALL_STATE(147)] = 4210, + [SMALL_STATE(148)] = 4227, + [SMALL_STATE(149)] = 4244, + [SMALL_STATE(150)] = 4261, + [SMALL_STATE(151)] = 4278, + [SMALL_STATE(152)] = 4295, + [SMALL_STATE(153)] = 4312, + [SMALL_STATE(154)] = 4329, + [SMALL_STATE(155)] = 4340, + [SMALL_STATE(156)] = 4351, + [SMALL_STATE(157)] = 4368, + [SMALL_STATE(158)] = 4383, + [SMALL_STATE(159)] = 4398, + [SMALL_STATE(160)] = 4415, + [SMALL_STATE(161)] = 4426, + [SMALL_STATE(162)] = 4443, [SMALL_STATE(163)] = 4458, [SMALL_STATE(164)] = 4472, - [SMALL_STATE(165)] = 4482, - [SMALL_STATE(166)] = 4494, - [SMALL_STATE(167)] = 4504, - [SMALL_STATE(168)] = 4514, + [SMALL_STATE(165)] = 4486, + [SMALL_STATE(166)] = 4496, + [SMALL_STATE(167)] = 4506, + [SMALL_STATE(168)] = 4518, [SMALL_STATE(169)] = 4528, [SMALL_STATE(170)] = 4538, [SMALL_STATE(171)] = 4548, - [SMALL_STATE(172)] = 4560, - [SMALL_STATE(173)] = 4574, - [SMALL_STATE(174)] = 4583, - [SMALL_STATE(175)] = 4592, - [SMALL_STATE(176)] = 4601, - [SMALL_STATE(177)] = 4610, - [SMALL_STATE(178)] = 4619, - [SMALL_STATE(179)] = 4628, - [SMALL_STATE(180)] = 4639, - [SMALL_STATE(181)] = 4648, - [SMALL_STATE(182)] = 4657, - [SMALL_STATE(183)] = 4666, - [SMALL_STATE(184)] = 4675, - [SMALL_STATE(185)] = 4684, - [SMALL_STATE(186)] = 4693, - [SMALL_STATE(187)] = 4702, - [SMALL_STATE(188)] = 4711, - [SMALL_STATE(189)] = 4722, - [SMALL_STATE(190)] = 4730, - [SMALL_STATE(191)] = 4738, - [SMALL_STATE(192)] = 4746, - [SMALL_STATE(193)] = 4754, - [SMALL_STATE(194)] = 4762, + [SMALL_STATE(172)] = 4558, + [SMALL_STATE(173)] = 4570, + [SMALL_STATE(174)] = 4584, + [SMALL_STATE(175)] = 4598, + [SMALL_STATE(176)] = 4608, + [SMALL_STATE(177)] = 4622, + [SMALL_STATE(178)] = 4633, + [SMALL_STATE(179)] = 4642, + [SMALL_STATE(180)] = 4653, + [SMALL_STATE(181)] = 4662, + [SMALL_STATE(182)] = 4671, + [SMALL_STATE(183)] = 4680, + [SMALL_STATE(184)] = 4689, + [SMALL_STATE(185)] = 4698, + [SMALL_STATE(186)] = 4707, + [SMALL_STATE(187)] = 4716, + [SMALL_STATE(188)] = 4725, + [SMALL_STATE(189)] = 4734, + [SMALL_STATE(190)] = 4743, + [SMALL_STATE(191)] = 4752, + [SMALL_STATE(192)] = 4761, + [SMALL_STATE(193)] = 4770, + [SMALL_STATE(194)] = 4778, + [SMALL_STATE(195)] = 4786, + [SMALL_STATE(196)] = 4794, + [SMALL_STATE(197)] = 4802, + [SMALL_STATE(198)] = 4810, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -8013,95 +8112,95 @@ static const TSParseActionEntry ts_parse_actions[] = { [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 = true}}, SHIFT(189), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16), [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), - [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(192), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(94), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(112), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(193), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(89), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(114), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), - [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), - [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), - [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), - [57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 2), - [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 2), - [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), - [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), - [65] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), - [67] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(159), - [70] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1, .production_id = 1), - [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1, .production_id = 1), - [74] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 14), - [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 14), - [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 28), - [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 28), - [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 2), - [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 2), - [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 6), - [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 6), - [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 35), - [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 35), - [94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [96] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), - [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [100] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72), - [102] = {.entry = {.count = 1, .reusable = false}}, SHIFT(194), - [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), - [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), - [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 3, .production_id = 3), - [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3, .production_id = 3), - [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 21), - [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 21), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), + [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), + [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), + [57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 14), + [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 14), + [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), + [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 2), + [65] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 2), + [67] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 28), + [69] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 28), + [71] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), + [73] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), + [75] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(176), + [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1, .production_id = 1), + [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1, .production_id = 1), + [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 35), + [84] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 35), + [86] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [88] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), + [90] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [92] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74), + [94] = {.entry = {.count = 1, .reusable = false}}, SHIFT(195), + [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 2), + [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 2), + [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 6), + [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 6), + [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 3, .production_id = 3), + [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3, .production_id = 3), + [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 21), + [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 21), + [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), + [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 33), [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 33), - [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 17), - [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 17), - [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 33), - [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 33), - [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 36), - [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 36), - [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 23), - [144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 23), + [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 33), + [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 33), + [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 17), + [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 17), + [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 23), + [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 23), + [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [152] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 36), + [152] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 36), [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), [160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 33), - [162] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), + [162] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 33), - [166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), + [166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), [170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), [174] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(38), - [177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), [187] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 9), [189] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 9), [191] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 22), @@ -8110,168 +8209,171 @@ static const TSParseActionEntry ts_parse_actions[] = { [197] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), [199] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), [201] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 34), - [206] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), - [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_generative_expression, 1), - [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169), - [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [246] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), - [248] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), - [250] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), - [252] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), - [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [264] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [267] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [269] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(76), - [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [274] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), - [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), - [278] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [286] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [292] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), - [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), - [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 16), - [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 27), - [302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 26), - [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 38), - [306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 42), - [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 40), - [310] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 29), - [312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 39), - [314] = {.entry = {.count = 1, .reusable = false}}, SHIFT(104), - [316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), - [318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), - [320] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(68), - [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), - [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), - [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), - [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1), - [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), - [333] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(68), - [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), - [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), - [348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 8), - [350] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), - [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), - [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), - [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), - [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), - [360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 19), - [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), - [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 20), - [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), - [372] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), SHIFT_REPEAT(68), - [375] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), - [377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 41), - [381] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), - [383] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), SHIFT_REPEAT(68), - [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), - [388] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(68), - [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), - [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), - [397] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), - [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 41), - [401] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), - [403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [405] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), - [407] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), - [409] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), - [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), - [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), - [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 37), - [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [422] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(141), - [425] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), - [427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), - [431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [433] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), - [435] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(125), - [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), - [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [442] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), - [444] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 37), - [446] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 17), - [448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), - [450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), - [454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [456] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), - [458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type, 1), - [464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), - [468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), + [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [210] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), + [212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 34), + [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), + [218] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_param, 3, .production_id = 45), + [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_param, 1, .production_id = 41), + [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [242] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), + [244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), + [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [266] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), + [268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), + [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [272] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), + [275] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [277] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(79), + [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [282] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), + [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), + [286] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [294] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [300] = {.entry = {.count = 1, .reusable = false}}, SHIFT(102), + [302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), + [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 16), + [306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 26), + [310] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 38), + [312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 27), + [314] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 40), + [316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 29), + [318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 39), + [320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 43), + [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), + [324] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(75), + [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), + [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), + [331] = {.entry = {.count = 1, .reusable = false}}, SHIFT(111), + [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), + [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1), + [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), + [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), + [341] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(75), + [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), + [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), + [352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), + [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), + [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 8), + [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), + [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), + [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 19), + [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 20), + [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), + [382] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), SHIFT_REPEAT(75), + [385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), + [387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), + [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 42), + [393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), + [395] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), SHIFT_REPEAT(75), + [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), + [400] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(75), + [403] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), + [405] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 37), + [407] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), + [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [411] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), + [413] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), + [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), + [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 17), + [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), + [422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 42), + [426] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), + [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), + [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), + [436] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(128), + [439] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 37), + [441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [443] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), + [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), + [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), + [453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), + [457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), + [461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), + [465] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), + [467] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(158), [470] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), - [476] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 25), - [478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 18), - [480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 30), - [484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 32), - [486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), - [488] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 13), - [490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 15), - [492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [494] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), - [496] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), - [498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [500] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), - [502] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 3), - [504] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5, .production_id = 24), - [506] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 11), - [508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 43), - [510] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 44), + [472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), + [474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [480] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 25), + [482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), + [484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 18), + [486] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 13), + [488] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), + [490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 30), + [492] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 32), + [494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [500] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 15), + [502] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [504] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [506] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 46), + [508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 44), + [510] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5, .production_id = 24), [512] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 12), [514] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 31), [516] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 6), [518] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 3), - [520] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 3), - [522] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), - [524] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), - [526] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), - [528] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [534] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [520] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), + [522] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 11), + [524] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 3), + [526] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 3), + [528] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), + [530] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), + [532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), + [534] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [538] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [540] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), }; #ifdef __cplusplus From 592915315eb99316dcd378a327ee9026007f7a30 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Thu, 20 Jun 2024 23:27:42 +0200 Subject: [PATCH 33/49] Template arguments were ambiguous, now: FIFO> --- grammar.js | 19 +- src/grammar.json | 141 +- src/node-types.json | 76 +- src/parser.c | 6589 ++++++++++++++++++++++++++----------------- 4 files changed, 4162 insertions(+), 2663 deletions(-) diff --git a/grammar.js b/grammar.js index 1c19cf1..09bbefd 100644 --- a/grammar.js +++ b/grammar.js @@ -74,7 +74,7 @@ module.exports = grammar({ template_declaration_arguments: $ => seq( '<', - sepSeq(choice($.template_declaration_type, $.declaration), $._comma), + sepSeq($.template_declaration_type, $._comma), '>' ), @@ -262,16 +262,27 @@ module.exports = grammar({ )) )), - template_param : $ => seq( + template_type_param : $ => seq( optional(seq( field('name', $.identifier), '=' )), - field('arg', choice($._type, $._expression)) + field('arg', $._type) + ), + template_value_param : $ => seq( + optional(seq( + field('name', $.identifier), + '=' + )), + field('arg', $._expression) ), template_params: $ => seq( '<', - sepSeq($.template_param, $._comma), + sepSeq($.template_type_param, $._comma), + optional(seq( + ';', + sepSeq($.template_value_param, $._comma), + )), '>' ), identifier: $ => /[\p{Alphabetic}_][\p{Alphabetic}_\p{Decimal_Number}]*/, diff --git a/src/grammar.json b/src/grammar.json index 7656018..64feaf3 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -230,17 +230,8 @@ "type": "FIELD", "name": "item", "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "template_declaration_type" - }, - { - "type": "SYMBOL", - "name": "declaration" - } - ] + "type": "SYMBOL", + "name": "template_declaration_type" } }, { @@ -256,17 +247,8 @@ "type": "FIELD", "name": "item", "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "template_declaration_type" - }, - { - "type": "SYMBOL", - "name": "declaration" - } - ] + "type": "SYMBOL", + "name": "template_declaration_type" } } ] @@ -1437,7 +1419,7 @@ ] } }, - "template_param": { + "template_type_param": { "type": "SEQ", "members": [ { @@ -1469,17 +1451,46 @@ "type": "FIELD", "name": "arg", "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_type" - }, - { - "type": "SYMBOL", - "name": "_expression" - } - ] + "type": "SYMBOL", + "name": "_type" + } + } + ] + }, + "template_value_param": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "STRING", + "value": "=" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "arg", + "content": { + "type": "SYMBOL", + "name": "_expression" } } ] @@ -1502,7 +1513,7 @@ "name": "item", "content": { "type": "SYMBOL", - "name": "template_param" + "name": "template_type_param" } }, { @@ -1519,7 +1530,7 @@ "name": "item", "content": { "type": "SYMBOL", - "name": "template_param" + "name": "template_type_param" } } ] @@ -1532,6 +1543,64 @@ } ] }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": ";" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "item", + "content": { + "type": "SYMBOL", + "name": "template_value_param" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_comma" + }, + { + "type": "FIELD", + "name": "item", + "content": { + "type": "SYMBOL", + "name": "template_value_param" + } + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + }, { "type": "STRING", "value": ">" diff --git a/src/node-types.json b/src/node-types.json index d23fe22..4cd73ca 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -1051,10 +1051,6 @@ "multiple": true, "required": false, "types": [ - { - "type": "declaration", - "named": true - }, { "type": "template_declaration_type", "named": true @@ -1109,7 +1105,27 @@ } }, { - "type": "template_param", + "type": "template_params", + "named": true, + "fields": { + "item": { + "multiple": true, + "required": false, + "types": [ + { + "type": "template_type_param", + "named": true + }, + { + "type": "template_value_param", + "named": true + } + ] + } + } + }, + { + "type": "template_type_param", "named": true, "fields": { "arg": { @@ -1117,11 +1133,37 @@ "required": true, "types": [ { - "type": "array_op", + "type": "array_type", "named": true }, { - "type": "array_type", + "type": "template_global", + "named": true + } + ] + }, + "name": { + "multiple": false, + "required": false, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + } + }, + { + "type": "template_value_param", + "named": true, + "fields": { + "arg": { + "multiple": false, + "required": true, + "types": [ + { + "type": "array_op", "named": true }, { @@ -1166,22 +1208,6 @@ } } }, - { - "type": "template_params", - "named": true, - "fields": { - "item": { - "multiple": true, - "required": false, - "types": [ - { - "type": "template_param", - "named": true - } - ] - } - } - }, { "type": "unary_op", "named": true, @@ -1352,6 +1378,10 @@ "type": "::", "named": false }, + { + "type": ";", + "named": false + }, { "type": "<", "named": false diff --git a/src/parser.c b/src/parser.c index 08f2d28..1cc80c0 100644 --- a/src/parser.c +++ b/src/parser.c @@ -5,15 +5,15 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 199 -#define LARGE_STATE_COUNT 11 -#define SYMBOL_COUNT 89 +#define STATE_COUNT 253 +#define LARGE_STATE_COUNT 2 +#define SYMBOL_COUNT 92 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 47 +#define TOKEN_COUNT 48 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 30 #define MAX_ALIAS_SEQUENCE_LENGTH 7 -#define PRODUCTION_ID_COUNT 47 +#define PRODUCTION_ID_COUNT 51 enum ts_symbol_identifiers { sym_identifier = 1, @@ -57,53 +57,56 @@ enum ts_symbol_identifiers { anon_sym_LBRACK = 39, anon_sym_RBRACK = 40, anon_sym_COLON_COLON = 41, - sym_number = 42, - anon_sym_COMMA = 43, - anon_sym_LF = 44, - sym_single_line_comment = 45, - sym_multi_line_comment = 46, - sym_source_file = 47, - sym_module = 48, - sym_interface_ports = 49, - sym__interface_ports_output = 50, - sym_template_declaration_arguments = 51, - sym_template_declaration_type = 52, - sym_block = 53, - sym_interface_statement = 54, - sym_decl_assign_statement = 55, - sym_assign_left_side = 56, - sym_assign_to = 57, - sym_write_modifiers = 58, - sym_if_statement = 59, - sym_for_statement = 60, - sym_declaration_list = 61, - sym_declaration = 62, - sym_latency_specifier = 63, - sym__type = 64, - sym_array_type = 65, - sym__expression = 66, - sym_unary_op = 67, - sym_binary_op = 68, - sym_array_op = 69, - sym_func_call = 70, - sym_field_access = 71, - sym_parenthesis_expression_list = 72, - sym_parenthesis_expression = 73, - sym_array_bracket_expression = 74, - sym_template_global = 75, - sym_template_param = 76, - sym_template_params = 77, - sym__comma = 78, - aux_sym__linebreak = 79, - aux_sym_source_file_repeat1 = 80, - aux_sym_template_declaration_arguments_repeat1 = 81, - aux_sym_block_repeat1 = 82, - aux_sym_assign_left_side_repeat1 = 83, - aux_sym_write_modifiers_repeat1 = 84, - aux_sym_declaration_list_repeat1 = 85, - aux_sym_parenthesis_expression_list_repeat1 = 86, - aux_sym_template_global_repeat1 = 87, - aux_sym_template_params_repeat1 = 88, + anon_sym_SEMI = 42, + sym_number = 43, + anon_sym_COMMA = 44, + anon_sym_LF = 45, + sym_single_line_comment = 46, + sym_multi_line_comment = 47, + sym_source_file = 48, + sym_module = 49, + sym_interface_ports = 50, + sym__interface_ports_output = 51, + sym_template_declaration_arguments = 52, + sym_template_declaration_type = 53, + sym_block = 54, + sym_interface_statement = 55, + sym_decl_assign_statement = 56, + sym_assign_left_side = 57, + sym_assign_to = 58, + sym_write_modifiers = 59, + sym_if_statement = 60, + sym_for_statement = 61, + sym_declaration_list = 62, + sym_declaration = 63, + sym_latency_specifier = 64, + sym__type = 65, + sym_array_type = 66, + sym__expression = 67, + sym_unary_op = 68, + sym_binary_op = 69, + sym_array_op = 70, + sym_func_call = 71, + sym_field_access = 72, + sym_parenthesis_expression_list = 73, + sym_parenthesis_expression = 74, + sym_array_bracket_expression = 75, + sym_template_global = 76, + sym_template_type_param = 77, + sym_template_value_param = 78, + sym_template_params = 79, + sym__comma = 80, + aux_sym__linebreak = 81, + aux_sym_source_file_repeat1 = 82, + aux_sym_template_declaration_arguments_repeat1 = 83, + aux_sym_block_repeat1 = 84, + aux_sym_assign_left_side_repeat1 = 85, + aux_sym_write_modifiers_repeat1 = 86, + aux_sym_declaration_list_repeat1 = 87, + aux_sym_parenthesis_expression_list_repeat1 = 88, + aux_sym_template_global_repeat1 = 89, + aux_sym_template_params_repeat1 = 90, + aux_sym_template_params_repeat2 = 91, }; static const char * const ts_symbol_names[] = { @@ -149,6 +152,7 @@ static const char * const ts_symbol_names[] = { [anon_sym_LBRACK] = "[", [anon_sym_RBRACK] = "]", [anon_sym_COLON_COLON] = "::", + [anon_sym_SEMI] = ";", [sym_number] = "number", [anon_sym_COMMA] = ",", [anon_sym_LF] = "\n", @@ -183,7 +187,8 @@ static const char * const ts_symbol_names[] = { [sym_parenthesis_expression] = "parenthesis_expression", [sym_array_bracket_expression] = "array_bracket_expression", [sym_template_global] = "template_global", - [sym_template_param] = "template_param", + [sym_template_type_param] = "template_type_param", + [sym_template_value_param] = "template_value_param", [sym_template_params] = "template_params", [sym__comma] = "_comma", [aux_sym__linebreak] = "_linebreak", @@ -196,6 +201,7 @@ static const char * const ts_symbol_names[] = { [aux_sym_parenthesis_expression_list_repeat1] = "parenthesis_expression_list_repeat1", [aux_sym_template_global_repeat1] = "template_global_repeat1", [aux_sym_template_params_repeat1] = "template_params_repeat1", + [aux_sym_template_params_repeat2] = "template_params_repeat2", }; static const TSSymbol ts_symbol_map[] = { @@ -241,6 +247,7 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_LBRACK] = anon_sym_LBRACK, [anon_sym_RBRACK] = anon_sym_RBRACK, [anon_sym_COLON_COLON] = anon_sym_COLON_COLON, + [anon_sym_SEMI] = anon_sym_SEMI, [sym_number] = sym_number, [anon_sym_COMMA] = anon_sym_COMMA, [anon_sym_LF] = anon_sym_LF, @@ -275,7 +282,8 @@ static const TSSymbol ts_symbol_map[] = { [sym_parenthesis_expression] = sym_parenthesis_expression, [sym_array_bracket_expression] = sym_array_bracket_expression, [sym_template_global] = sym_template_global, - [sym_template_param] = sym_template_param, + [sym_template_type_param] = sym_template_type_param, + [sym_template_value_param] = sym_template_value_param, [sym_template_params] = sym_template_params, [sym__comma] = sym__comma, [aux_sym__linebreak] = aux_sym__linebreak, @@ -288,6 +296,7 @@ static const TSSymbol ts_symbol_map[] = { [aux_sym_parenthesis_expression_list_repeat1] = aux_sym_parenthesis_expression_list_repeat1, [aux_sym_template_global_repeat1] = aux_sym_template_global_repeat1, [aux_sym_template_params_repeat1] = aux_sym_template_params_repeat1, + [aux_sym_template_params_repeat2] = aux_sym_template_params_repeat2, }; static const TSSymbolMetadata ts_symbol_metadata[] = { @@ -459,6 +468,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_SEMI] = { + .visible = true, + .named = false, + }, [sym_number] = { .visible = true, .named = true, @@ -595,7 +608,11 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_template_param] = { + [sym_template_type_param] = { + .visible = true, + .named = true, + }, + [sym_template_value_param] = { .visible = true, .named = true, }, @@ -647,6 +664,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, + [aux_sym_template_params_repeat2] = { + .visible = false, + .named = false, + }, }; enum ts_field_identifiers { @@ -762,7 +783,11 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [43] = {.index = 85, .length = 5}, [44] = {.index = 90, .length = 3}, [45] = {.index = 93, .length = 2}, - [46] = {.index = 95, .length = 4}, + [46] = {.index = 95, .length = 2}, + [47] = {.index = 97, .length = 4}, + [48] = {.index = 101, .length = 3}, + [49] = {.index = 104, .length = 3}, + [50] = {.index = 107, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -907,10 +932,26 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_arg, 2}, {field_name, 0}, [95] = + {field_item, 1}, + {field_item, 3}, + [97] = {field_block, 6}, {field_for_decl, 1}, {field_from, 3}, {field_to, 5}, + [101] = + {field_item, 1}, + {field_item, 3}, + {field_item, 4, .inherited = true}, + [104] = + {field_item, 1}, + {field_item, 2, .inherited = true}, + {field_item, 4}, + [107] = + {field_item, 1}, + {field_item, 2, .inherited = true}, + {field_item, 4}, + {field_item, 5, .inherited = true}, }; static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { @@ -974,37 +1015,37 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [49] = 49, [50] = 50, [51] = 51, - [52] = 51, + [52] = 52, [53] = 53, [54] = 54, [55] = 55, [56] = 56, - [57] = 57, + [57] = 54, [58] = 58, - [59] = 59, + [59] = 53, [60] = 60, [61] = 61, - [62] = 62, + [62] = 56, [63] = 63, [64] = 64, [65] = 65, [66] = 66, - [67] = 67, + [67] = 66, [68] = 68, [69] = 69, - [70] = 61, + [70] = 70, [71] = 71, [72] = 72, [73] = 73, [74] = 74, [75] = 75, - [76] = 44, + [76] = 76, [77] = 77, [78] = 78, [79] = 79, [80] = 80, [81] = 81, - [82] = 82, + [82] = 75, [83] = 83, [84] = 84, [85] = 85, @@ -1027,7 +1068,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [102] = 102, [103] = 103, [104] = 104, - [105] = 105, + [105] = 104, [106] = 106, [107] = 107, [108] = 108, @@ -1041,46 +1082,46 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [116] = 116, [117] = 117, [118] = 118, - [119] = 119, - [120] = 120, - [121] = 121, - [122] = 122, - [123] = 123, + [119] = 15, + [120] = 14, + [121] = 12, + [122] = 13, + [123] = 16, [124] = 124, [125] = 125, - [126] = 126, + [126] = 36, [127] = 127, [128] = 128, [129] = 129, [130] = 130, [131] = 131, - [132] = 132, - [133] = 133, - [134] = 134, + [132] = 31, + [133] = 28, + [134] = 24, [135] = 135, [136] = 136, [137] = 137, [138] = 138, [139] = 139, - [140] = 140, + [140] = 17, [141] = 141, [142] = 142, [143] = 143, [144] = 144, - [145] = 145, - [146] = 146, - [147] = 147, - [148] = 148, - [149] = 149, - [150] = 150, - [151] = 151, + [145] = 21, + [146] = 29, + [147] = 26, + [148] = 25, + [149] = 23, + [150] = 18, + [151] = 22, [152] = 152, - [153] = 153, + [153] = 20, [154] = 154, [155] = 155, - [156] = 156, - [157] = 157, - [158] = 38, + [156] = 125, + [157] = 135, + [158] = 158, [159] = 159, [160] = 160, [161] = 161, @@ -1088,7 +1129,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [163] = 163, [164] = 164, [165] = 165, - [166] = 28, + [166] = 166, [167] = 167, [168] = 168, [169] = 169, @@ -1117,10 +1158,64 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [192] = 192, [193] = 193, [194] = 194, - [195] = 195, + [195] = 185, [196] = 196, [197] = 197, - [198] = 198, + [198] = 184, + [199] = 37, + [200] = 200, + [201] = 179, + [202] = 202, + [203] = 203, + [204] = 204, + [205] = 205, + [206] = 167, + [207] = 207, + [208] = 208, + [209] = 182, + [210] = 181, + [211] = 47, + [212] = 212, + [213] = 213, + [214] = 214, + [215] = 215, + [216] = 216, + [217] = 217, + [218] = 218, + [219] = 219, + [220] = 220, + [221] = 221, + [222] = 213, + [223] = 223, + [224] = 224, + [225] = 225, + [226] = 226, + [227] = 227, + [228] = 228, + [229] = 229, + [230] = 230, + [231] = 231, + [232] = 232, + [233] = 233, + [234] = 234, + [235] = 235, + [236] = 236, + [237] = 237, + [238] = 238, + [239] = 239, + [240] = 240, + [241] = 241, + [242] = 242, + [243] = 243, + [244] = 244, + [245] = 245, + [246] = 246, + [247] = 247, + [248] = 248, + [249] = 249, + [250] = 250, + [251] = 247, + [252] = 252, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -3039,7 +3134,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { switch (state) { case 0: if (eof) ADVANCE(8); - if (lookahead == '\n') ADVANCE(43); + if (lookahead == '\n') ADVANCE(44); if (lookahead == '!') ADVANCE(24); if (lookahead == '%') ADVANCE(33); if (lookahead == '&') ADVANCE(26); @@ -3048,11 +3143,12 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == ')') ADVANCE(36); if (lookahead == '*') ADVANCE(22); if (lookahead == '+') ADVANCE(20); - if (lookahead == ',') ADVANCE(42); + if (lookahead == ',') ADVANCE(43); if (lookahead == '-') ADVANCE(21); if (lookahead == '.') ADVANCE(34); if (lookahead == '/') ADVANCE(32); if (lookahead == ':') ADVANCE(9); + if (lookahead == ';') ADVANCE(40); if (lookahead == '<') ADVANCE(11); if (lookahead == '=') ADVANCE(17); if (lookahead == '>') ADVANCE(13); @@ -3065,22 +3161,22 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(0) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(41); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(40); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(41); END_STATE(); case 1: - if (lookahead == '\n') ADVANCE(43); + if (lookahead == '\n') ADVANCE(44); if (lookahead == '!') ADVANCE(23); if (lookahead == '&') ADVANCE(26); - if (lookahead == '\'') ADVANCE(19); if (lookahead == '(') ADVANCE(35); if (lookahead == ')') ADVANCE(36); if (lookahead == '*') ADVANCE(22); if (lookahead == '+') ADVANCE(20); - if (lookahead == ',') ADVANCE(42); + if (lookahead == ',') ADVANCE(43); if (lookahead == '-') ADVANCE(21); if (lookahead == '/') ADVANCE(3); if (lookahead == ':') ADVANCE(6); + if (lookahead == ';') ADVANCE(40); if (lookahead == '=') ADVANCE(16); if (lookahead == '>') ADVANCE(12); if (lookahead == '[') ADVANCE(37); @@ -3091,11 +3187,11 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(1) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(41); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(40); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(41); END_STATE(); case 2: - if (lookahead == '\n') ADVANCE(43); + if (lookahead == '\n') ADVANCE(44); if (lookahead == '!') ADVANCE(7); if (lookahead == '%') ADVANCE(33); if (lookahead == '&') ADVANCE(26); @@ -3103,7 +3199,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == ')') ADVANCE(36); if (lookahead == '*') ADVANCE(22); if (lookahead == '+') ADVANCE(20); - if (lookahead == ',') ADVANCE(42); + if (lookahead == ',') ADVANCE(43); if (lookahead == '-') ADVANCE(21); if (lookahead == '.') ADVANCE(34); if (lookahead == '/') ADVANCE(32); @@ -3120,15 +3216,15 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(2) - if (sym_identifier_character_set_1(lookahead)) ADVANCE(40); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(41); END_STATE(); case 3: if (lookahead == '*') ADVANCE(5); - if (lookahead == '/') ADVANCE(44); + if (lookahead == '/') ADVANCE(45); END_STATE(); case 4: if (lookahead == '*') ADVANCE(4); - if (lookahead == '/') ADVANCE(45); + if (lookahead == '/') ADVANCE(46); if (lookahead != 0) ADVANCE(5); END_STATE(); case 5: @@ -3221,7 +3317,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { case 32: ACCEPT_TOKEN(anon_sym_SLASH); if (lookahead == '*') ADVANCE(5); - if (lookahead == '/') ADVANCE(44); + if (lookahead == '/') ADVANCE(45); END_STATE(); case 33: ACCEPT_TOKEN(anon_sym_PERCENT); @@ -3246,26 +3342,29 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { ACCEPT_TOKEN(anon_sym_COLON_COLON); END_STATE(); case 40: - ACCEPT_TOKEN(sym_identifier); - if (sym_identifier_character_set_2(lookahead)) ADVANCE(40); + ACCEPT_TOKEN(anon_sym_SEMI); END_STATE(); case 41: + ACCEPT_TOKEN(sym_identifier); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(41); + END_STATE(); + case 42: ACCEPT_TOKEN(sym_number); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(41); + lookahead == '_') ADVANCE(42); END_STATE(); - case 42: + case 43: ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); - case 43: + case 44: ACCEPT_TOKEN(anon_sym_LF); END_STATE(); - case 44: + case 45: ACCEPT_TOKEN(sym_single_line_comment); if (lookahead != 0 && - lookahead != '\n') ADVANCE(44); + lookahead != '\n') ADVANCE(45); END_STATE(); - case 45: + case 46: ACCEPT_TOKEN(sym_multi_line_comment); END_STATE(); default: @@ -3480,47 +3579,47 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [33] = {.lex_state = 2}, [34] = {.lex_state = 2}, [35] = {.lex_state = 2}, - [36] = {.lex_state = 1}, + [36] = {.lex_state = 2}, [37] = {.lex_state = 2}, - [38] = {.lex_state = 1}, + [38] = {.lex_state = 2}, [39] = {.lex_state = 2}, - [40] = {.lex_state = 1}, + [40] = {.lex_state = 2}, [41] = {.lex_state = 2}, [42] = {.lex_state = 2}, - [43] = {.lex_state = 1}, + [43] = {.lex_state = 2}, [44] = {.lex_state = 2}, [45] = {.lex_state = 2}, - [46] = {.lex_state = 2}, + [46] = {.lex_state = 1}, [47] = {.lex_state = 1}, [48] = {.lex_state = 2}, [49] = {.lex_state = 2}, [50] = {.lex_state = 2}, [51] = {.lex_state = 2}, [52] = {.lex_state = 2}, - [53] = {.lex_state = 2}, - [54] = {.lex_state = 2}, + [53] = {.lex_state = 1}, + [54] = {.lex_state = 1}, [55] = {.lex_state = 2}, - [56] = {.lex_state = 2}, + [56] = {.lex_state = 1}, [57] = {.lex_state = 1}, - [58] = {.lex_state = 1}, + [58] = {.lex_state = 2}, [59] = {.lex_state = 1}, - [60] = {.lex_state = 1}, - [61] = {.lex_state = 1}, + [60] = {.lex_state = 2}, + [61] = {.lex_state = 2}, [62] = {.lex_state = 1}, [63] = {.lex_state = 1}, - [64] = {.lex_state = 1}, - [65] = {.lex_state = 1}, - [66] = {.lex_state = 1}, - [67] = {.lex_state = 1}, + [64] = {.lex_state = 2}, + [65] = {.lex_state = 2}, + [66] = {.lex_state = 2}, + [67] = {.lex_state = 2}, [68] = {.lex_state = 1}, - [69] = {.lex_state = 1}, - [70] = {.lex_state = 1}, + [69] = {.lex_state = 2}, + [70] = {.lex_state = 2}, [71] = {.lex_state = 1}, [72] = {.lex_state = 1}, [73] = {.lex_state = 1}, [74] = {.lex_state = 1}, [75] = {.lex_state = 1}, - [76] = {.lex_state = 2}, + [76] = {.lex_state = 1}, [77] = {.lex_state = 1}, [78] = {.lex_state = 1}, [79] = {.lex_state = 1}, @@ -3541,77 +3640,77 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [94] = {.lex_state = 1}, [95] = {.lex_state = 1}, [96] = {.lex_state = 1}, - [97] = {.lex_state = 0}, - [98] = {.lex_state = 0}, - [99] = {.lex_state = 0}, - [100] = {.lex_state = 1}, + [97] = {.lex_state = 1}, + [98] = {.lex_state = 1}, + [99] = {.lex_state = 1}, + [100] = {.lex_state = 0}, [101] = {.lex_state = 0}, - [102] = {.lex_state = 1}, + [102] = {.lex_state = 0}, [103] = {.lex_state = 0}, - [104] = {.lex_state = 0}, - [105] = {.lex_state = 0}, + [104] = {.lex_state = 1}, + [105] = {.lex_state = 1}, [106] = {.lex_state = 0}, - [107] = {.lex_state = 0}, + [107] = {.lex_state = 1}, [108] = {.lex_state = 0}, [109] = {.lex_state = 0}, [110] = {.lex_state = 0}, [111] = {.lex_state = 1}, [112] = {.lex_state = 0}, [113] = {.lex_state = 0}, - [114] = {.lex_state = 1}, - [115] = {.lex_state = 0}, + [114] = {.lex_state = 0}, + [115] = {.lex_state = 1}, [116] = {.lex_state = 0}, [117] = {.lex_state = 0}, [118] = {.lex_state = 0}, - [119] = {.lex_state = 0}, - [120] = {.lex_state = 0}, + [119] = {.lex_state = 1}, + [120] = {.lex_state = 1}, [121] = {.lex_state = 1}, - [122] = {.lex_state = 0}, + [122] = {.lex_state = 1}, [123] = {.lex_state = 1}, [124] = {.lex_state = 0}, - [125] = {.lex_state = 0}, + [125] = {.lex_state = 1}, [126] = {.lex_state = 1}, [127] = {.lex_state = 0}, [128] = {.lex_state = 0}, - [129] = {.lex_state = 0}, + [129] = {.lex_state = 1}, [130] = {.lex_state = 0}, [131] = {.lex_state = 0}, [132] = {.lex_state = 1}, - [133] = {.lex_state = 0}, + [133] = {.lex_state = 1}, [134] = {.lex_state = 1}, - [135] = {.lex_state = 0}, - [136] = {.lex_state = 1}, - [137] = {.lex_state = 0}, - [138] = {.lex_state = 0}, - [139] = {.lex_state = 0}, - [140] = {.lex_state = 0}, + [135] = {.lex_state = 1}, + [136] = {.lex_state = 0}, + [137] = {.lex_state = 1}, + [138] = {.lex_state = 1}, + [139] = {.lex_state = 1}, + [140] = {.lex_state = 1}, [141] = {.lex_state = 0}, - [142] = {.lex_state = 0}, + [142] = {.lex_state = 1}, [143] = {.lex_state = 0}, [144] = {.lex_state = 0}, - [145] = {.lex_state = 0}, - [146] = {.lex_state = 0}, - [147] = {.lex_state = 0}, - [148] = {.lex_state = 0}, - [149] = {.lex_state = 0}, - [150] = {.lex_state = 0}, - [151] = {.lex_state = 0}, + [145] = {.lex_state = 1}, + [146] = {.lex_state = 1}, + [147] = {.lex_state = 1}, + [148] = {.lex_state = 1}, + [149] = {.lex_state = 1}, + [150] = {.lex_state = 1}, + [151] = {.lex_state = 1}, [152] = {.lex_state = 0}, - [153] = {.lex_state = 0}, - [154] = {.lex_state = 0}, + [153] = {.lex_state = 1}, + [154] = {.lex_state = 1}, [155] = {.lex_state = 0}, - [156] = {.lex_state = 0}, + [156] = {.lex_state = 1}, [157] = {.lex_state = 1}, - [158] = {.lex_state = 0}, - [159] = {.lex_state = 1}, + [158] = {.lex_state = 1}, + [159] = {.lex_state = 0}, [160] = {.lex_state = 0}, - [161] = {.lex_state = 1}, + [161] = {.lex_state = 0}, [162] = {.lex_state = 0}, - [163] = {.lex_state = 0}, + [163] = {.lex_state = 1}, [164] = {.lex_state = 0}, [165] = {.lex_state = 0}, - [166] = {.lex_state = 1}, - [167] = {.lex_state = 0}, + [166] = {.lex_state = 0}, + [167] = {.lex_state = 1}, [168] = {.lex_state = 0}, [169] = {.lex_state = 0}, [170] = {.lex_state = 0}, @@ -3623,26 +3722,80 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [176] = {.lex_state = 0}, [177] = {.lex_state = 0}, [178] = {.lex_state = 0}, - [179] = {.lex_state = 0}, + [179] = {.lex_state = 1}, [180] = {.lex_state = 0}, - [181] = {.lex_state = 0}, - [182] = {.lex_state = 0}, + [181] = {.lex_state = 1}, + [182] = {.lex_state = 1}, [183] = {.lex_state = 0}, - [184] = {.lex_state = 0}, - [185] = {.lex_state = 0}, - [186] = {.lex_state = 1}, + [184] = {.lex_state = 1}, + [185] = {.lex_state = 1}, + [186] = {.lex_state = 0}, [187] = {.lex_state = 0}, [188] = {.lex_state = 0}, - [189] = {.lex_state = 1}, + [189] = {.lex_state = 0}, [190] = {.lex_state = 0}, [191] = {.lex_state = 0}, [192] = {.lex_state = 0}, [193] = {.lex_state = 0}, - [194] = {.lex_state = 0}, - [195] = {.lex_state = 0}, + [194] = {.lex_state = 1}, + [195] = {.lex_state = 1}, [196] = {.lex_state = 0}, [197] = {.lex_state = 0}, - [198] = {.lex_state = 0}, + [198] = {.lex_state = 1}, + [199] = {.lex_state = 1}, + [200] = {.lex_state = 0}, + [201] = {.lex_state = 1}, + [202] = {.lex_state = 0}, + [203] = {.lex_state = 1}, + [204] = {.lex_state = 0}, + [205] = {.lex_state = 0}, + [206] = {.lex_state = 1}, + [207] = {.lex_state = 1}, + [208] = {.lex_state = 0}, + [209] = {.lex_state = 1}, + [210] = {.lex_state = 1}, + [211] = {.lex_state = 0}, + [212] = {.lex_state = 1}, + [213] = {.lex_state = 0}, + [214] = {.lex_state = 0}, + [215] = {.lex_state = 0}, + [216] = {.lex_state = 0}, + [217] = {.lex_state = 0}, + [218] = {.lex_state = 0}, + [219] = {.lex_state = 0}, + [220] = {.lex_state = 1}, + [221] = {.lex_state = 0}, + [222] = {.lex_state = 0}, + [223] = {.lex_state = 0}, + [224] = {.lex_state = 0}, + [225] = {.lex_state = 0}, + [226] = {.lex_state = 0}, + [227] = {.lex_state = 0}, + [228] = {.lex_state = 0}, + [229] = {.lex_state = 0}, + [230] = {.lex_state = 0}, + [231] = {.lex_state = 0}, + [232] = {.lex_state = 0}, + [233] = {.lex_state = 0}, + [234] = {.lex_state = 0}, + [235] = {.lex_state = 1}, + [236] = {.lex_state = 0}, + [237] = {.lex_state = 0}, + [238] = {.lex_state = 1}, + [239] = {.lex_state = 0}, + [240] = {.lex_state = 0}, + [241] = {.lex_state = 0}, + [242] = {.lex_state = 1}, + [243] = {.lex_state = 0}, + [244] = {.lex_state = 0}, + [245] = {.lex_state = 0}, + [246] = {.lex_state = 0}, + [247] = {.lex_state = 0}, + [248] = {.lex_state = 0}, + [249] = {.lex_state = 0}, + [250] = {.lex_state = 0}, + [251] = {.lex_state = 0}, + [252] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -3688,6 +3841,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_RPAREN] = ACTIONS(1), [anon_sym_LBRACK] = ACTIONS(1), [anon_sym_RBRACK] = ACTIONS(1), + [anon_sym_SEMI] = ACTIONS(1), [sym_number] = ACTIONS(1), [anon_sym_COMMA] = ACTIONS(1), [anon_sym_LF] = ACTIONS(1), @@ -3695,472 +3849,57 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(194), - [sym_module] = STATE(122), - [aux_sym__linebreak] = STATE(115), + [sym_source_file] = STATE(248), + [sym_module] = STATE(200), + [aux_sym__linebreak] = STATE(155), [ts_builtin_sym_end] = ACTIONS(5), [anon_sym_module] = ACTIONS(7), [anon_sym_LF] = ACTIONS(9), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, - [2] = { - [sym_block] = STATE(182), - [sym_interface_statement] = STATE(182), - [sym_decl_assign_statement] = STATE(182), - [sym_assign_left_side] = STATE(167), - [sym_assign_to] = STATE(103), - [sym_write_modifiers] = STATE(36), - [sym_if_statement] = STATE(182), - [sym_for_statement] = STATE(182), - [sym_declaration] = STATE(120), - [sym__type] = STATE(163), - [sym_array_type] = STATE(163), - [sym__expression] = STATE(41), - [sym_unary_op] = STATE(41), - [sym_binary_op] = STATE(41), - [sym_array_op] = STATE(41), - [sym_func_call] = STATE(41), - [sym_field_access] = STATE(41), - [sym_parenthesis_expression] = STATE(41), - [sym_template_global] = STATE(44), - [aux_sym__linebreak] = STATE(38), - [aux_sym_write_modifiers_repeat1] = STATE(78), - [sym_identifier] = ACTIONS(11), - [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(15), - [anon_sym_interface] = ACTIONS(17), - [anon_sym_reg] = ACTIONS(19), - [anon_sym_initial] = ACTIONS(21), - [anon_sym_if] = ACTIONS(23), - [anon_sym_for] = ACTIONS(25), - [anon_sym_input] = ACTIONS(27), - [anon_sym_output] = ACTIONS(27), - [anon_sym_state] = ACTIONS(29), - [anon_sym_gen] = ACTIONS(29), - [anon_sym_PLUS] = ACTIONS(31), - [anon_sym_DASH] = ACTIONS(31), - [anon_sym_STAR] = ACTIONS(31), - [anon_sym_BANG] = ACTIONS(31), - [anon_sym_PIPE] = ACTIONS(31), - [anon_sym_AMP] = ACTIONS(31), - [anon_sym_CARET] = ACTIONS(31), - [anon_sym_LPAREN] = ACTIONS(33), - [anon_sym_COLON_COLON] = ACTIONS(35), - [sym_number] = ACTIONS(37), - [anon_sym_LF] = ACTIONS(39), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), - }, - [3] = { - [sym_block] = STATE(182), - [sym_interface_statement] = STATE(182), - [sym_decl_assign_statement] = STATE(182), - [sym_assign_left_side] = STATE(167), - [sym_assign_to] = STATE(103), - [sym_write_modifiers] = STATE(36), - [sym_if_statement] = STATE(182), - [sym_for_statement] = STATE(182), - [sym_declaration] = STATE(120), - [sym__type] = STATE(163), - [sym_array_type] = STATE(163), - [sym__expression] = STATE(41), - [sym_unary_op] = STATE(41), - [sym_binary_op] = STATE(41), - [sym_array_op] = STATE(41), - [sym_func_call] = STATE(41), - [sym_field_access] = STATE(41), - [sym_parenthesis_expression] = STATE(41), - [sym_template_global] = STATE(44), - [aux_sym__linebreak] = STATE(38), - [aux_sym_write_modifiers_repeat1] = STATE(78), - [sym_identifier] = ACTIONS(11), - [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(41), - [anon_sym_interface] = ACTIONS(17), - [anon_sym_reg] = ACTIONS(19), - [anon_sym_initial] = ACTIONS(21), - [anon_sym_if] = ACTIONS(23), - [anon_sym_for] = ACTIONS(25), - [anon_sym_input] = ACTIONS(27), - [anon_sym_output] = ACTIONS(27), - [anon_sym_state] = ACTIONS(29), - [anon_sym_gen] = ACTIONS(29), - [anon_sym_PLUS] = ACTIONS(31), - [anon_sym_DASH] = ACTIONS(31), - [anon_sym_STAR] = ACTIONS(31), - [anon_sym_BANG] = ACTIONS(31), - [anon_sym_PIPE] = ACTIONS(31), - [anon_sym_AMP] = ACTIONS(31), - [anon_sym_CARET] = ACTIONS(31), - [anon_sym_LPAREN] = ACTIONS(33), - [anon_sym_COLON_COLON] = ACTIONS(35), - [sym_number] = ACTIONS(37), - [anon_sym_LF] = ACTIONS(39), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), - }, - [4] = { - [sym_block] = STATE(138), - [sym_interface_statement] = STATE(138), - [sym_decl_assign_statement] = STATE(138), - [sym_assign_left_side] = STATE(110), - [sym_assign_to] = STATE(103), - [sym_write_modifiers] = STATE(36), - [sym_if_statement] = STATE(138), - [sym_for_statement] = STATE(138), - [sym_declaration] = STATE(120), - [sym__type] = STATE(163), - [sym_array_type] = STATE(163), - [sym__expression] = STATE(41), - [sym_unary_op] = STATE(41), - [sym_binary_op] = STATE(41), - [sym_array_op] = STATE(41), - [sym_func_call] = STATE(41), - [sym_field_access] = STATE(41), - [sym_parenthesis_expression] = STATE(41), - [sym_template_global] = STATE(44), - [aux_sym__linebreak] = STATE(38), - [aux_sym_write_modifiers_repeat1] = STATE(78), - [sym_identifier] = ACTIONS(11), - [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(43), - [anon_sym_interface] = ACTIONS(17), - [anon_sym_reg] = ACTIONS(19), - [anon_sym_initial] = ACTIONS(21), - [anon_sym_if] = ACTIONS(23), - [anon_sym_for] = ACTIONS(25), - [anon_sym_input] = ACTIONS(27), - [anon_sym_output] = ACTIONS(27), - [anon_sym_state] = ACTIONS(29), - [anon_sym_gen] = ACTIONS(29), - [anon_sym_PLUS] = ACTIONS(31), - [anon_sym_DASH] = ACTIONS(31), - [anon_sym_STAR] = ACTIONS(31), - [anon_sym_BANG] = ACTIONS(31), - [anon_sym_PIPE] = ACTIONS(31), - [anon_sym_AMP] = ACTIONS(31), - [anon_sym_CARET] = ACTIONS(31), - [anon_sym_LPAREN] = ACTIONS(33), - [anon_sym_COLON_COLON] = ACTIONS(35), - [sym_number] = ACTIONS(37), - [anon_sym_LF] = ACTIONS(39), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), - }, - [5] = { - [sym_block] = STATE(182), - [sym_interface_statement] = STATE(182), - [sym_decl_assign_statement] = STATE(182), - [sym_assign_left_side] = STATE(167), - [sym_assign_to] = STATE(103), - [sym_write_modifiers] = STATE(36), - [sym_if_statement] = STATE(182), - [sym_for_statement] = STATE(182), - [sym_declaration] = STATE(120), - [sym__type] = STATE(163), - [sym_array_type] = STATE(163), - [sym__expression] = STATE(41), - [sym_unary_op] = STATE(41), - [sym_binary_op] = STATE(41), - [sym_array_op] = STATE(41), - [sym_func_call] = STATE(41), - [sym_field_access] = STATE(41), - [sym_parenthesis_expression] = STATE(41), - [sym_template_global] = STATE(44), - [aux_sym__linebreak] = STATE(38), - [aux_sym_write_modifiers_repeat1] = STATE(78), - [sym_identifier] = ACTIONS(11), - [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(45), - [anon_sym_interface] = ACTIONS(17), - [anon_sym_reg] = ACTIONS(19), - [anon_sym_initial] = ACTIONS(21), - [anon_sym_if] = ACTIONS(23), - [anon_sym_for] = ACTIONS(25), - [anon_sym_input] = ACTIONS(27), - [anon_sym_output] = ACTIONS(27), - [anon_sym_state] = ACTIONS(29), - [anon_sym_gen] = ACTIONS(29), - [anon_sym_PLUS] = ACTIONS(31), - [anon_sym_DASH] = ACTIONS(31), - [anon_sym_STAR] = ACTIONS(31), - [anon_sym_BANG] = ACTIONS(31), - [anon_sym_PIPE] = ACTIONS(31), - [anon_sym_AMP] = ACTIONS(31), - [anon_sym_CARET] = ACTIONS(31), - [anon_sym_LPAREN] = ACTIONS(33), - [anon_sym_COLON_COLON] = ACTIONS(35), - [sym_number] = ACTIONS(37), - [anon_sym_LF] = ACTIONS(39), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), - }, - [6] = { - [sym_block] = STATE(182), - [sym_interface_statement] = STATE(182), - [sym_decl_assign_statement] = STATE(182), - [sym_assign_left_side] = STATE(167), - [sym_assign_to] = STATE(103), - [sym_write_modifiers] = STATE(36), - [sym_if_statement] = STATE(182), - [sym_for_statement] = STATE(182), - [sym_declaration] = STATE(120), - [sym__type] = STATE(163), - [sym_array_type] = STATE(163), - [sym__expression] = STATE(41), - [sym_unary_op] = STATE(41), - [sym_binary_op] = STATE(41), - [sym_array_op] = STATE(41), - [sym_func_call] = STATE(41), - [sym_field_access] = STATE(41), - [sym_parenthesis_expression] = STATE(41), - [sym_template_global] = STATE(44), - [aux_sym__linebreak] = STATE(38), - [aux_sym_write_modifiers_repeat1] = STATE(78), - [sym_identifier] = ACTIONS(11), - [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(47), - [anon_sym_interface] = ACTIONS(17), - [anon_sym_reg] = ACTIONS(19), - [anon_sym_initial] = ACTIONS(21), - [anon_sym_if] = ACTIONS(23), - [anon_sym_for] = ACTIONS(25), - [anon_sym_input] = ACTIONS(27), - [anon_sym_output] = ACTIONS(27), - [anon_sym_state] = ACTIONS(29), - [anon_sym_gen] = ACTIONS(29), - [anon_sym_PLUS] = ACTIONS(31), - [anon_sym_DASH] = ACTIONS(31), - [anon_sym_STAR] = ACTIONS(31), - [anon_sym_BANG] = ACTIONS(31), - [anon_sym_PIPE] = ACTIONS(31), - [anon_sym_AMP] = ACTIONS(31), - [anon_sym_CARET] = ACTIONS(31), - [anon_sym_LPAREN] = ACTIONS(33), - [anon_sym_COLON_COLON] = ACTIONS(35), - [sym_number] = ACTIONS(37), - [anon_sym_LF] = ACTIONS(39), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), - }, - [7] = { - [sym_block] = STATE(156), - [sym_interface_statement] = STATE(156), - [sym_decl_assign_statement] = STATE(156), - [sym_assign_left_side] = STATE(113), - [sym_assign_to] = STATE(103), - [sym_write_modifiers] = STATE(36), - [sym_if_statement] = STATE(156), - [sym_for_statement] = STATE(156), - [sym_declaration] = STATE(120), - [sym__type] = STATE(163), - [sym_array_type] = STATE(163), - [sym__expression] = STATE(41), - [sym_unary_op] = STATE(41), - [sym_binary_op] = STATE(41), - [sym_array_op] = STATE(41), - [sym_func_call] = STATE(41), - [sym_field_access] = STATE(41), - [sym_parenthesis_expression] = STATE(41), - [sym_template_global] = STATE(44), - [aux_sym__linebreak] = STATE(4), - [aux_sym_write_modifiers_repeat1] = STATE(78), - [sym_identifier] = ACTIONS(11), - [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(49), - [anon_sym_interface] = ACTIONS(17), - [anon_sym_reg] = ACTIONS(19), - [anon_sym_initial] = ACTIONS(21), - [anon_sym_if] = ACTIONS(23), - [anon_sym_for] = ACTIONS(25), - [anon_sym_input] = ACTIONS(27), - [anon_sym_output] = ACTIONS(27), - [anon_sym_state] = ACTIONS(29), - [anon_sym_gen] = ACTIONS(29), - [anon_sym_PLUS] = ACTIONS(31), - [anon_sym_DASH] = ACTIONS(31), - [anon_sym_STAR] = ACTIONS(31), - [anon_sym_BANG] = ACTIONS(31), - [anon_sym_PIPE] = ACTIONS(31), - [anon_sym_AMP] = ACTIONS(31), - [anon_sym_CARET] = ACTIONS(31), - [anon_sym_LPAREN] = ACTIONS(33), - [anon_sym_COLON_COLON] = ACTIONS(35), - [sym_number] = ACTIONS(37), - [anon_sym_LF] = ACTIONS(51), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), - }, - [8] = { - [sym_block] = STATE(182), - [sym_interface_statement] = STATE(182), - [sym_decl_assign_statement] = STATE(182), - [sym_assign_left_side] = STATE(167), - [sym_assign_to] = STATE(103), - [sym_write_modifiers] = STATE(36), - [sym_if_statement] = STATE(182), - [sym_for_statement] = STATE(182), - [sym_declaration] = STATE(120), - [sym__type] = STATE(163), - [sym_array_type] = STATE(163), - [sym__expression] = STATE(41), - [sym_unary_op] = STATE(41), - [sym_binary_op] = STATE(41), - [sym_array_op] = STATE(41), - [sym_func_call] = STATE(41), - [sym_field_access] = STATE(41), - [sym_parenthesis_expression] = STATE(41), - [sym_template_global] = STATE(44), - [aux_sym__linebreak] = STATE(38), - [aux_sym_write_modifiers_repeat1] = STATE(78), - [sym_identifier] = ACTIONS(11), - [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(53), - [anon_sym_interface] = ACTIONS(17), - [anon_sym_reg] = ACTIONS(19), - [anon_sym_initial] = ACTIONS(21), - [anon_sym_if] = ACTIONS(23), - [anon_sym_for] = ACTIONS(25), - [anon_sym_input] = ACTIONS(27), - [anon_sym_output] = ACTIONS(27), - [anon_sym_state] = ACTIONS(29), - [anon_sym_gen] = ACTIONS(29), - [anon_sym_PLUS] = ACTIONS(31), - [anon_sym_DASH] = ACTIONS(31), - [anon_sym_STAR] = ACTIONS(31), - [anon_sym_BANG] = ACTIONS(31), - [anon_sym_PIPE] = ACTIONS(31), - [anon_sym_AMP] = ACTIONS(31), - [anon_sym_CARET] = ACTIONS(31), - [anon_sym_LPAREN] = ACTIONS(33), - [anon_sym_COLON_COLON] = ACTIONS(35), - [sym_number] = ACTIONS(37), - [anon_sym_LF] = ACTIONS(39), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), - }, - [9] = { - [sym_block] = STATE(182), - [sym_interface_statement] = STATE(182), - [sym_decl_assign_statement] = STATE(182), - [sym_assign_left_side] = STATE(167), - [sym_assign_to] = STATE(103), - [sym_write_modifiers] = STATE(36), - [sym_if_statement] = STATE(182), - [sym_for_statement] = STATE(182), - [sym_declaration] = STATE(120), - [sym__type] = STATE(163), - [sym_array_type] = STATE(163), - [sym__expression] = STATE(41), - [sym_unary_op] = STATE(41), - [sym_binary_op] = STATE(41), - [sym_array_op] = STATE(41), - [sym_func_call] = STATE(41), - [sym_field_access] = STATE(41), - [sym_parenthesis_expression] = STATE(41), - [sym_template_global] = STATE(44), - [aux_sym__linebreak] = STATE(38), - [aux_sym_write_modifiers_repeat1] = STATE(78), - [sym_identifier] = ACTIONS(11), - [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(55), - [anon_sym_interface] = ACTIONS(17), - [anon_sym_reg] = ACTIONS(19), - [anon_sym_initial] = ACTIONS(21), - [anon_sym_if] = ACTIONS(23), - [anon_sym_for] = ACTIONS(25), - [anon_sym_input] = ACTIONS(27), - [anon_sym_output] = ACTIONS(27), - [anon_sym_state] = ACTIONS(29), - [anon_sym_gen] = ACTIONS(29), - [anon_sym_PLUS] = ACTIONS(31), - [anon_sym_DASH] = ACTIONS(31), - [anon_sym_STAR] = ACTIONS(31), - [anon_sym_BANG] = ACTIONS(31), - [anon_sym_PIPE] = ACTIONS(31), - [anon_sym_AMP] = ACTIONS(31), - [anon_sym_CARET] = ACTIONS(31), - [anon_sym_LPAREN] = ACTIONS(33), - [anon_sym_COLON_COLON] = ACTIONS(35), - [sym_number] = ACTIONS(37), - [anon_sym_LF] = ACTIONS(39), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), - }, - [10] = { - [sym_block] = STATE(182), - [sym_interface_statement] = STATE(182), - [sym_decl_assign_statement] = STATE(182), - [sym_assign_left_side] = STATE(167), - [sym_assign_to] = STATE(103), - [sym_write_modifiers] = STATE(36), - [sym_if_statement] = STATE(182), - [sym_for_statement] = STATE(182), - [sym_declaration] = STATE(120), - [sym__type] = STATE(163), - [sym_array_type] = STATE(163), - [sym__expression] = STATE(41), - [sym_unary_op] = STATE(41), - [sym_binary_op] = STATE(41), - [sym_array_op] = STATE(41), - [sym_func_call] = STATE(41), - [sym_field_access] = STATE(41), - [sym_parenthesis_expression] = STATE(41), - [sym_template_global] = STATE(44), - [aux_sym__linebreak] = STATE(38), - [aux_sym_write_modifiers_repeat1] = STATE(78), - [sym_identifier] = ACTIONS(11), - [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_interface] = ACTIONS(17), - [anon_sym_reg] = ACTIONS(19), - [anon_sym_initial] = ACTIONS(21), - [anon_sym_if] = ACTIONS(23), - [anon_sym_for] = ACTIONS(25), - [anon_sym_input] = ACTIONS(27), - [anon_sym_output] = ACTIONS(27), - [anon_sym_state] = ACTIONS(29), - [anon_sym_gen] = ACTIONS(29), - [anon_sym_PLUS] = ACTIONS(31), - [anon_sym_DASH] = ACTIONS(31), - [anon_sym_STAR] = ACTIONS(31), - [anon_sym_BANG] = ACTIONS(31), - [anon_sym_PIPE] = ACTIONS(31), - [anon_sym_AMP] = ACTIONS(31), - [anon_sym_CARET] = ACTIONS(31), - [anon_sym_LPAREN] = ACTIONS(33), - [anon_sym_COLON_COLON] = ACTIONS(35), - [sym_number] = ACTIONS(37), - [anon_sym_LF] = ACTIONS(39), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), - }, }; static const uint16_t ts_small_parse_table[] = { - [0] = 17, + [0] = 26, ACTIONS(11), 1, sym_identifier, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_RBRACE, + ACTIONS(17), 1, + anon_sym_interface, ACTIONS(19), 1, anon_sym_reg, ACTIONS(21), 1, anon_sym_initial, + ACTIONS(23), 1, + anon_sym_if, + ACTIONS(25), 1, + anon_sym_for, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, ACTIONS(37), 1, sym_number, - STATE(36), 1, + ACTIONS(39), 1, + anon_sym_LF, + STATE(46), 1, sym_write_modifiers, - STATE(44), 1, + STATE(47), 1, + aux_sym__linebreak, + STATE(51), 1, sym_template_global, - STATE(78), 1, + STATE(91), 1, aux_sym_write_modifiers_repeat1, - STATE(120), 1, - sym_declaration, - STATE(137), 1, + STATE(124), 1, sym_assign_to, + STATE(180), 1, + sym_declaration, + STATE(221), 1, + sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4170,9 +3909,15 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(163), 2, + STATE(224), 2, sym__type, sym_array_type, + STATE(245), 5, + sym_block, + sym_interface_statement, + sym_decl_assign_statement, + sym_if_statement, + sym_for_statement, ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, @@ -4181,7 +3926,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(41), 7, + STATE(50), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4189,104 +3934,882 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [68] = 5, - ACTIONS(61), 1, + [99] = 26, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(17), 1, + anon_sym_interface, + ACTIONS(19), 1, + anon_sym_reg, + ACTIONS(21), 1, + anon_sym_initial, + ACTIONS(23), 1, + anon_sym_if, + ACTIONS(25), 1, + anon_sym_for, + ACTIONS(33), 1, + anon_sym_LPAREN, + ACTIONS(35), 1, anon_sym_COLON_COLON, - STATE(14), 1, - aux_sym_template_global_repeat1, + ACTIONS(37), 1, + sym_number, + ACTIONS(39), 1, + anon_sym_LF, + ACTIONS(41), 1, + anon_sym_RBRACE, + STATE(46), 1, + sym_write_modifiers, + STATE(47), 1, + aux_sym__linebreak, + STATE(51), 1, + sym_template_global, + STATE(91), 1, + aux_sym_write_modifiers_repeat1, + STATE(124), 1, + sym_assign_to, + STATE(180), 1, + sym_declaration, + STATE(221), 1, + sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(57), 8, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(59), 20, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DOT_DOT, + ACTIONS(27), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(29), 2, + anon_sym_state, + anon_sym_gen, + STATE(224), 2, + sym__type, + sym_array_type, + STATE(245), 5, + sym_block, + sym_interface_statement, + sym_decl_assign_statement, + sym_if_statement, + sym_for_statement, + ACTIONS(31), 7, anon_sym_PLUS, + anon_sym_DASH, anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_PERCENT, + STATE(50), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + [198] = 26, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(17), 1, + anon_sym_interface, + ACTIONS(19), 1, + anon_sym_reg, + ACTIONS(21), 1, + anon_sym_initial, + ACTIONS(23), 1, + anon_sym_if, + ACTIONS(25), 1, + anon_sym_for, + ACTIONS(33), 1, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_LF, - [111] = 5, - ACTIONS(61), 1, + ACTIONS(35), 1, anon_sym_COLON_COLON, - STATE(15), 1, - aux_sym_template_global_repeat1, + ACTIONS(37), 1, + sym_number, + ACTIONS(39), 1, + anon_sym_LF, + ACTIONS(43), 1, + anon_sym_RBRACE, + STATE(46), 1, + sym_write_modifiers, + STATE(47), 1, + aux_sym__linebreak, + STATE(51), 1, + sym_template_global, + STATE(91), 1, + aux_sym_write_modifiers_repeat1, + STATE(124), 1, + sym_assign_to, + STATE(180), 1, + sym_declaration, + STATE(221), 1, + sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(63), 8, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(65), 20, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DOT_DOT, + ACTIONS(27), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(29), 2, + anon_sym_state, + anon_sym_gen, + STATE(224), 2, + sym__type, + sym_array_type, + STATE(245), 5, + sym_block, + sym_interface_statement, + sym_decl_assign_statement, + sym_if_statement, + sym_for_statement, + ACTIONS(31), 7, anon_sym_PLUS, + anon_sym_DASH, anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_PERCENT, + STATE(50), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + [297] = 26, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(17), 1, + anon_sym_interface, + ACTIONS(19), 1, + anon_sym_reg, + ACTIONS(21), 1, + anon_sym_initial, + ACTIONS(23), 1, + anon_sym_if, + ACTIONS(25), 1, + anon_sym_for, + ACTIONS(33), 1, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_LF, - [154] = 5, - ACTIONS(61), 1, + ACTIONS(35), 1, anon_sym_COLON_COLON, - STATE(15), 1, - aux_sym_template_global_repeat1, + ACTIONS(37), 1, + sym_number, + ACTIONS(39), 1, + anon_sym_LF, + ACTIONS(45), 1, + anon_sym_RBRACE, + STATE(46), 1, + sym_write_modifiers, + STATE(47), 1, + aux_sym__linebreak, + STATE(51), 1, + sym_template_global, + STATE(91), 1, + aux_sym_write_modifiers_repeat1, + STATE(124), 1, + sym_assign_to, + STATE(180), 1, + sym_declaration, + STATE(221), 1, + sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(67), 8, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(69), 20, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DOT_DOT, + ACTIONS(27), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(29), 2, + anon_sym_state, + anon_sym_gen, + STATE(224), 2, + sym__type, + sym_array_type, + STATE(245), 5, + sym_block, + sym_interface_statement, + sym_decl_assign_statement, + sym_if_statement, + sym_for_statement, + ACTIONS(31), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(50), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + [396] = 26, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(17), 1, + anon_sym_interface, + ACTIONS(19), 1, + anon_sym_reg, + ACTIONS(21), 1, + anon_sym_initial, + ACTIONS(23), 1, + anon_sym_if, + ACTIONS(25), 1, + anon_sym_for, + ACTIONS(33), 1, + anon_sym_LPAREN, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(37), 1, + sym_number, + ACTIONS(39), 1, + anon_sym_LF, + ACTIONS(47), 1, + anon_sym_RBRACE, + STATE(46), 1, + sym_write_modifiers, + STATE(47), 1, + aux_sym__linebreak, + STATE(51), 1, + sym_template_global, + STATE(91), 1, + aux_sym_write_modifiers_repeat1, + STATE(124), 1, + sym_assign_to, + STATE(131), 1, + sym_assign_left_side, + STATE(180), 1, + sym_declaration, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(27), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(29), 2, + anon_sym_state, + anon_sym_gen, + STATE(224), 2, + sym__type, + sym_array_type, + STATE(196), 5, + sym_block, + sym_interface_statement, + sym_decl_assign_statement, + sym_if_statement, + sym_for_statement, + ACTIONS(31), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(50), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + [495] = 26, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(17), 1, + anon_sym_interface, + ACTIONS(19), 1, + anon_sym_reg, + ACTIONS(21), 1, + anon_sym_initial, + ACTIONS(23), 1, + anon_sym_if, + ACTIONS(25), 1, + anon_sym_for, + ACTIONS(33), 1, + anon_sym_LPAREN, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(37), 1, + sym_number, + ACTIONS(39), 1, + anon_sym_LF, + ACTIONS(49), 1, + anon_sym_RBRACE, + STATE(46), 1, + sym_write_modifiers, + STATE(47), 1, + aux_sym__linebreak, + STATE(51), 1, + sym_template_global, + STATE(91), 1, + aux_sym_write_modifiers_repeat1, + STATE(124), 1, + sym_assign_to, + STATE(180), 1, + sym_declaration, + STATE(221), 1, + sym_assign_left_side, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(27), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(29), 2, + anon_sym_state, + anon_sym_gen, + STATE(224), 2, + sym__type, + sym_array_type, + STATE(245), 5, + sym_block, + sym_interface_statement, + sym_decl_assign_statement, + sym_if_statement, + sym_for_statement, + ACTIONS(31), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(50), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + [594] = 26, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(17), 1, + anon_sym_interface, + ACTIONS(19), 1, + anon_sym_reg, + ACTIONS(21), 1, + anon_sym_initial, + ACTIONS(23), 1, + anon_sym_if, + ACTIONS(25), 1, + anon_sym_for, + ACTIONS(33), 1, + anon_sym_LPAREN, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(37), 1, + sym_number, + ACTIONS(51), 1, + anon_sym_RBRACE, + ACTIONS(53), 1, + anon_sym_LF, + STATE(6), 1, + aux_sym__linebreak, + STATE(46), 1, + sym_write_modifiers, + STATE(51), 1, + sym_template_global, + STATE(91), 1, + aux_sym_write_modifiers_repeat1, + STATE(124), 1, + sym_assign_to, + STATE(143), 1, + sym_assign_left_side, + STATE(180), 1, + sym_declaration, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(27), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(29), 2, + anon_sym_state, + anon_sym_gen, + STATE(224), 2, + sym__type, + sym_array_type, + STATE(177), 5, + sym_block, + sym_interface_statement, + sym_decl_assign_statement, + sym_if_statement, + sym_for_statement, + ACTIONS(31), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(50), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + [693] = 26, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(17), 1, + anon_sym_interface, + ACTIONS(19), 1, + anon_sym_reg, + ACTIONS(21), 1, + anon_sym_initial, + ACTIONS(23), 1, + anon_sym_if, + ACTIONS(25), 1, + anon_sym_for, + ACTIONS(33), 1, + anon_sym_LPAREN, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(37), 1, + sym_number, + ACTIONS(39), 1, + anon_sym_LF, + ACTIONS(55), 1, + anon_sym_RBRACE, + STATE(46), 1, + sym_write_modifiers, + STATE(47), 1, + aux_sym__linebreak, + STATE(51), 1, + sym_template_global, + STATE(91), 1, + aux_sym_write_modifiers_repeat1, + STATE(124), 1, + sym_assign_to, + STATE(180), 1, + sym_declaration, + STATE(221), 1, + sym_assign_left_side, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(27), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(29), 2, + anon_sym_state, + anon_sym_gen, + STATE(224), 2, + sym__type, + sym_array_type, + STATE(245), 5, + sym_block, + sym_interface_statement, + sym_decl_assign_statement, + sym_if_statement, + sym_for_statement, + ACTIONS(31), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(50), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + [792] = 25, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(17), 1, + anon_sym_interface, + ACTIONS(19), 1, + anon_sym_reg, + ACTIONS(21), 1, + anon_sym_initial, + ACTIONS(23), 1, + anon_sym_if, + ACTIONS(25), 1, + anon_sym_for, + ACTIONS(33), 1, + anon_sym_LPAREN, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(37), 1, + sym_number, + ACTIONS(39), 1, + anon_sym_LF, + STATE(46), 1, + sym_write_modifiers, + STATE(47), 1, + aux_sym__linebreak, + STATE(51), 1, + sym_template_global, + STATE(91), 1, + aux_sym_write_modifiers_repeat1, + STATE(124), 1, + sym_assign_to, + STATE(180), 1, + sym_declaration, + STATE(221), 1, + sym_assign_left_side, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(27), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(29), 2, + anon_sym_state, + anon_sym_gen, + STATE(224), 2, + sym__type, + sym_array_type, + STATE(245), 5, + sym_block, + sym_interface_statement, + sym_decl_assign_statement, + sym_if_statement, + sym_for_statement, + ACTIONS(31), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(50), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + [888] = 17, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(19), 1, + anon_sym_reg, + ACTIONS(21), 1, + anon_sym_initial, + ACTIONS(33), 1, + anon_sym_LPAREN, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(37), 1, + sym_number, + STATE(46), 1, + sym_write_modifiers, + STATE(51), 1, + sym_template_global, + STATE(91), 1, + aux_sym_write_modifiers_repeat1, + STATE(180), 1, + sym_declaration, + STATE(183), 1, + sym_assign_to, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(27), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(29), 2, + anon_sym_state, + anon_sym_gen, + STATE(224), 2, + sym__type, + sym_array_type, + ACTIONS(31), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(50), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + [956] = 5, + ACTIONS(61), 1, + anon_sym_COLON_COLON, + STATE(15), 1, + aux_sym_template_global_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(57), 8, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(59), 20, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_LF, + [999] = 5, + ACTIONS(61), 1, + anon_sym_COLON_COLON, + STATE(14), 1, + aux_sym_template_global_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(63), 8, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(65), 20, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_LF, + [1042] = 5, + ACTIONS(61), 1, + anon_sym_COLON_COLON, + STATE(15), 1, + aux_sym_template_global_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(67), 8, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(69), 20, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_LF, + [1085] = 5, + ACTIONS(75), 1, + anon_sym_COLON_COLON, + STATE(15), 1, + aux_sym_template_global_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(71), 8, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(73), 20, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_LF, + [1128] = 5, + ACTIONS(61), 1, + anon_sym_COLON_COLON, + STATE(12), 1, + aux_sym_template_global_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(78), 8, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(80), 20, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_LF, + [1171] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(82), 8, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(84), 21, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + anon_sym_LF, + [1209] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(86), 8, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(88), 21, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4301,17 +4824,54 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_COMMA, anon_sym_LF, - [197] = 5, - ACTIONS(75), 1, - anon_sym_COLON_COLON, - STATE(15), 1, - aux_sym_template_global_repeat1, + [1247] = 8, + ACTIONS(94), 1, + anon_sym_DOT, + ACTIONS(96), 1, + anon_sym_LPAREN, + ACTIONS(98), 1, + anon_sym_LBRACK, + STATE(39), 1, + sym_parenthesis_expression_list, + STATE(43), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(71), 8, + ACTIONS(92), 5, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + anon_sym_DASH, + anon_sym_SLASH, + ACTIONS(90), 19, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_LF, + [1295] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(100), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4320,7 +4880,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(73), 20, + ACTIONS(102), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4339,17 +4899,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_COMMA, anon_sym_LF, - [240] = 5, - ACTIONS(61), 1, - anon_sym_COLON_COLON, - STATE(13), 1, - aux_sym_template_global_repeat1, + [1333] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 8, + ACTIONS(104), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4358,7 +4915,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(80), 20, + ACTIONS(106), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4377,41 +4934,99 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_COMMA, anon_sym_LF, - [283] = 12, - ACTIONS(86), 1, - anon_sym_PLUS, - ACTIONS(88), 1, + [1371] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(108), 8, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + anon_sym_in, anon_sym_DASH, - ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(94), 1, anon_sym_DOT, - ACTIONS(96), 1, + sym_identifier, + ACTIONS(110), 21, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_LPAREN, - ACTIONS(98), 1, + anon_sym_RPAREN, anon_sym_LBRACK, - STATE(30), 1, - sym_array_bracket_expression, - STATE(31), 1, - sym_parenthesis_expression_list, + anon_sym_RBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + anon_sym_LF, + [1409] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(90), 2, + ACTIONS(112), 8, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(114), 21, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, + anon_sym_PLUS, anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, anon_sym_PERCENT, - ACTIONS(84), 3, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + anon_sym_LF, + [1447] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(116), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(82), 16, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(118), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -4419,15 +5034,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_COMMA, anon_sym_LF, - [339] = 3, + [1485] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(100), 8, + ACTIONS(120), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4436,7 +5055,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(102), 21, + ACTIONS(122), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4458,44 +5077,80 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, anon_sym_COMMA, anon_sym_LF, - [377] = 14, - ACTIONS(86), 1, - anon_sym_PLUS, - ACTIONS(88), 1, + [1523] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(124), 8, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + anon_sym_in, anon_sym_DASH, - ACTIONS(92), 1, anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(126), 21, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + anon_sym_LF, + [1561] = 15, ACTIONS(94), 1, anon_sym_DOT, ACTIONS(96), 1, anon_sym_LPAREN, ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(104), 1, + ACTIONS(132), 1, + anon_sym_PLUS, + ACTIONS(134), 1, + anon_sym_DASH, + ACTIONS(138), 1, anon_sym_PIPE, - ACTIONS(106), 1, + ACTIONS(140), 1, + anon_sym_AMP, + ACTIONS(142), 1, anon_sym_CARET, - STATE(30), 1, - sym_array_bracket_expression, - STATE(31), 1, + ACTIONS(144), 1, + anon_sym_SLASH, + STATE(39), 1, sym_parenthesis_expression_list, + STATE(43), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(90), 2, + ACTIONS(136), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(84), 3, + ACTIONS(130), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(82), 14, + ACTIONS(128), 13, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -4504,43 +5159,110 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [437] = 13, - ACTIONS(86), 1, + [1623] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(146), 8, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(148), 21, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, anon_sym_PLUS, - ACTIONS(88), 1, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + anon_sym_LF, + [1661] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(150), 8, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + anon_sym_in, anon_sym_DASH, - ACTIONS(92), 1, anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(152), 21, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + anon_sym_LF, + [1699] = 10, ACTIONS(94), 1, anon_sym_DOT, ACTIONS(96), 1, anon_sym_LPAREN, ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(106), 1, - anon_sym_CARET, - STATE(30), 1, - sym_array_bracket_expression, - STATE(31), 1, + ACTIONS(144), 1, + anon_sym_SLASH, + STATE(39), 1, sym_parenthesis_expression_list, + STATE(43), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(90), 2, + ACTIONS(136), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(84), 3, + ACTIONS(130), 4, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(82), 15, + anon_sym_DASH, + ACTIONS(128), 17, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, + anon_sym_PLUS, anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -4549,31 +5271,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [495] = 8, - ACTIONS(94), 1, - anon_sym_DOT, - ACTIONS(96), 1, - anon_sym_LPAREN, - ACTIONS(98), 1, - anon_sym_LBRACK, - STATE(30), 1, - sym_array_bracket_expression, - STATE(31), 1, - sym_parenthesis_expression_list, + [1751] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(84), 5, + ACTIONS(154), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, + anon_sym_in, anon_sym_DASH, anon_sym_SLASH, - ACTIONS(82), 19, + anon_sym_DOT, + sym_identifier, + ACTIONS(156), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_PLUS, anon_sym_STAR, @@ -4585,41 +5299,41 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_COMMA, anon_sym_LF, - [543] = 10, - ACTIONS(92), 1, - anon_sym_SLASH, + [1789] = 8, ACTIONS(94), 1, anon_sym_DOT, ACTIONS(96), 1, anon_sym_LPAREN, ACTIONS(98), 1, anon_sym_LBRACK, - STATE(30), 1, - sym_array_bracket_expression, - STATE(31), 1, + STATE(39), 1, sym_parenthesis_expression_list, + STATE(43), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(90), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(84), 4, + ACTIONS(130), 5, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, - ACTIONS(82), 17, + anon_sym_SLASH, + ACTIONS(128), 19, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -4627,49 +5341,48 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [595] = 15, - ACTIONS(86), 1, - anon_sym_PLUS, - ACTIONS(88), 1, - anon_sym_DASH, - ACTIONS(92), 1, - anon_sym_SLASH, + [1837] = 13, ACTIONS(94), 1, anon_sym_DOT, ACTIONS(96), 1, anon_sym_LPAREN, ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(104), 1, - anon_sym_PIPE, - ACTIONS(106), 1, + ACTIONS(132), 1, + anon_sym_PLUS, + ACTIONS(134), 1, + anon_sym_DASH, + ACTIONS(142), 1, anon_sym_CARET, - ACTIONS(108), 1, - anon_sym_AMP, - STATE(30), 1, - sym_array_bracket_expression, - STATE(31), 1, + ACTIONS(144), 1, + anon_sym_SLASH, + STATE(39), 1, sym_parenthesis_expression_list, + STATE(43), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(90), 2, + ACTIONS(136), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(84), 3, + ACTIONS(130), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(82), 13, + ACTIONS(128), 15, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, + anon_sym_PIPE, + anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -4678,104 +5391,85 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [657] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(110), 8, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, + [1895] = 14, + ACTIONS(94), 1, anon_sym_DOT, - sym_identifier, - ACTIONS(112), 21, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DOT_DOT, + ACTIONS(96), 1, + anon_sym_LPAREN, + ACTIONS(98), 1, + anon_sym_LBRACK, + ACTIONS(132), 1, anon_sym_PLUS, - anon_sym_STAR, + ACTIONS(134), 1, + anon_sym_DASH, + ACTIONS(138), 1, anon_sym_PIPE, - anon_sym_AMP, + ACTIONS(142), 1, anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - anon_sym_LF, - [695] = 3, + ACTIONS(144), 1, + anon_sym_SLASH, + STATE(39), 1, + sym_parenthesis_expression_list, + STATE(43), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(114), 8, + ACTIONS(136), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(130), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(116), 21, + ACTIONS(128), 14, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_COMMA, anon_sym_LF, - [733] = 8, + [1955] = 12, ACTIONS(94), 1, anon_sym_DOT, ACTIONS(96), 1, anon_sym_LPAREN, ACTIONS(98), 1, anon_sym_LBRACK, - STATE(30), 1, - sym_array_bracket_expression, - STATE(31), 1, + ACTIONS(132), 1, + anon_sym_PLUS, + ACTIONS(134), 1, + anon_sym_DASH, + ACTIONS(144), 1, + anon_sym_SLASH, + STATE(39), 1, sym_parenthesis_expression_list, + STATE(43), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(120), 5, + ACTIONS(136), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(130), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_DASH, - anon_sym_SLASH, - ACTIONS(118), 19, + ACTIONS(128), 16, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - anon_sym_PLUS, - anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -4783,16 +5477,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [781] = 3, + [2011] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(122), 8, + ACTIONS(158), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4801,7 +5494,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(124), 21, + ACTIONS(160), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4823,11 +5516,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, anon_sym_COMMA, anon_sym_LF, - [819] = 3, + [2049] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(126), 8, + ACTIONS(162), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4836,7 +5529,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(128), 20, + ACTIONS(164), 20, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4857,18 +5550,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [856] = 3, + [2086] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(132), 6, + ACTIONS(168), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(130), 21, + ACTIONS(166), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4890,18 +5583,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [892] = 3, + [2122] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(136), 6, + ACTIONS(172), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(134), 21, + ACTIONS(170), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4923,18 +5616,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [928] = 3, + [2158] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(140), 6, + ACTIONS(176), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(138), 21, + ACTIONS(174), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4956,18 +5649,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [964] = 3, + [2194] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(144), 6, + ACTIONS(180), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(142), 21, + ACTIONS(178), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4989,18 +5682,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1000] = 3, + [2230] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(148), 6, + ACTIONS(184), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(146), 21, + ACTIONS(182), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5022,18 +5715,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1036] = 3, + [2266] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(152), 6, + ACTIONS(188), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(150), 21, + ACTIONS(186), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5055,18 +5748,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1072] = 3, + [2302] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(156), 6, + ACTIONS(192), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(154), 21, + ACTIONS(190), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5088,18 +5781,64 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1108] = 12, + [2338] = 17, + ACTIONS(96), 1, + anon_sym_LPAREN, + ACTIONS(98), 1, + anon_sym_LBRACK, + ACTIONS(132), 1, + anon_sym_PLUS, + ACTIONS(134), 1, + anon_sym_DASH, + ACTIONS(138), 1, + anon_sym_PIPE, + ACTIONS(140), 1, + anon_sym_AMP, + ACTIONS(142), 1, + anon_sym_CARET, + ACTIONS(144), 1, + anon_sym_SLASH, + ACTIONS(198), 1, + anon_sym_EQ, + ACTIONS(202), 1, + anon_sym_DOT, + STATE(39), 1, + sym_parenthesis_expression_list, + STATE(43), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(136), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(196), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(200), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(194), 6, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_COMMA, + anon_sym_LF, + [2401] = 12, ACTIONS(11), 1, sym_identifier, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(158), 1, + ACTIONS(204), 1, sym_number, - STATE(44), 1, + STATE(51), 1, sym_template_global, - STATE(145), 1, + STATE(178), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -5110,7 +5849,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(163), 2, + STATE(224), 2, sym__type, sym_array_type, ACTIONS(31), 7, @@ -5121,7 +5860,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(42), 7, + STATE(49), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -5129,150 +5868,252 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [1161] = 17, - ACTIONS(86), 1, - anon_sym_PLUS, - ACTIONS(88), 1, + [2454] = 5, + ACTIONS(210), 1, + anon_sym_LF, + STATE(47), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(206), 11, + anon_sym_interface, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, anon_sym_DASH, - ACTIONS(92), 1, - anon_sym_SLASH, + sym_identifier, + ACTIONS(208), 12, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, + [2492] = 18, ACTIONS(96), 1, anon_sym_LPAREN, ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(104), 1, + ACTIONS(138), 1, anon_sym_PIPE, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(108), 1, + ACTIONS(140), 1, anon_sym_AMP, - ACTIONS(164), 1, - anon_sym_EQ, - ACTIONS(168), 1, + ACTIONS(142), 1, + anon_sym_CARET, + ACTIONS(144), 1, + anon_sym_SLASH, + ACTIONS(202), 1, anon_sym_DOT, - STATE(30), 1, - sym_array_bracket_expression, - STATE(31), 1, + ACTIONS(213), 1, + anon_sym_RPAREN, + ACTIONS(215), 1, + anon_sym_COMMA, + STATE(39), 1, sym_parenthesis_expression_list, + STATE(43), 1, + sym_array_bracket_expression, + STATE(86), 1, + sym__comma, + STATE(169), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(90), 2, + ACTIONS(132), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(136), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(162), 2, + ACTIONS(196), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(166), 4, + ACTIONS(200), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(160), 6, - anon_sym_DASH_GT, - anon_sym_LBRACE, + [2554] = 16, + ACTIONS(96), 1, + anon_sym_LPAREN, + ACTIONS(98), 1, + anon_sym_LBRACK, + ACTIONS(138), 1, + anon_sym_PIPE, + ACTIONS(140), 1, + anon_sym_AMP, + ACTIONS(142), 1, + anon_sym_CARET, + ACTIONS(144), 1, + anon_sym_SLASH, + ACTIONS(202), 1, + anon_sym_DOT, + ACTIONS(219), 1, + anon_sym_EQ, + STATE(39), 1, + sym_parenthesis_expression_list, + STATE(43), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(132), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(136), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(196), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(217), 3, anon_sym_RBRACE, - anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [1224] = 5, - ACTIONS(174), 1, - anon_sym_LF, - STATE(38), 1, - aux_sym__linebreak, + ACTIONS(200), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [2612] = 16, + ACTIONS(96), 1, + anon_sym_LPAREN, + ACTIONS(98), 1, + anon_sym_LBRACK, + ACTIONS(138), 1, + anon_sym_PIPE, + ACTIONS(140), 1, + anon_sym_AMP, + ACTIONS(142), 1, + anon_sym_CARET, + ACTIONS(144), 1, + anon_sym_SLASH, + ACTIONS(202), 1, + anon_sym_DOT, + ACTIONS(223), 1, + anon_sym_EQ, + STATE(39), 1, + sym_parenthesis_expression_list, + STATE(43), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(170), 11, - anon_sym_interface, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, + ACTIONS(132), 2, + anon_sym_PLUS, anon_sym_DASH, + ACTIONS(136), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(196), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(221), 3, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LF, + ACTIONS(200), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [2670] = 5, + ACTIONS(225), 1, sym_identifier, - ACTIONS(172), 12, - anon_sym_DASH_GT, - anon_sym_LBRACE, + ACTIONS(231), 1, + anon_sym_LBRACK, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(227), 4, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + anon_sym_SLASH, + ACTIONS(229), 16, anon_sym_RBRACE, anon_sym_PLUS, + anon_sym_DASH, anon_sym_STAR, - anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_DOT, anon_sym_LPAREN, - anon_sym_COLON_COLON, - sym_number, - [1262] = 18, - ACTIONS(92), 1, - anon_sym_SLASH, + anon_sym_COMMA, + anon_sym_LF, + [2705] = 15, ACTIONS(96), 1, anon_sym_LPAREN, ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(104), 1, + ACTIONS(138), 1, anon_sym_PIPE, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(108), 1, + ACTIONS(140), 1, anon_sym_AMP, - ACTIONS(168), 1, + ACTIONS(142), 1, + anon_sym_CARET, + ACTIONS(144), 1, + anon_sym_SLASH, + ACTIONS(202), 1, anon_sym_DOT, - ACTIONS(177), 1, - anon_sym_RPAREN, - ACTIONS(179), 1, - anon_sym_COMMA, - STATE(30), 1, - sym_array_bracket_expression, - STATE(31), 1, + STATE(39), 1, sym_parenthesis_expression_list, - STATE(60), 1, - sym__comma, - STATE(147), 1, - aux_sym_parenthesis_expression_list_repeat1, + STATE(43), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 2, + ACTIONS(132), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(90), 2, + ACTIONS(136), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(162), 2, + ACTIONS(196), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(166), 4, + ACTIONS(234), 2, + anon_sym_RBRACE, + anon_sym_LF, + ACTIONS(200), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1324] = 11, + [2759] = 9, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(181), 1, + ACTIONS(236), 1, sym_identifier, - ACTIONS(183), 1, + ACTIONS(238), 1, anon_sym_GT, - ACTIONS(185), 1, + ACTIONS(240), 1, sym_number, - STATE(76), 1, - sym_template_global, - STATE(159), 1, - sym_template_param, + STATE(179), 1, + sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(157), 2, - sym__type, - sym_array_type, ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, @@ -5281,7 +6122,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(55), 7, + STATE(65), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5289,109 +6130,95 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [1372] = 16, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(96), 1, + sym_template_global, + [2801] = 9, + ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(98), 1, - anon_sym_LBRACK, - ACTIONS(104), 1, - anon_sym_PIPE, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(108), 1, - anon_sym_AMP, - ACTIONS(168), 1, - anon_sym_DOT, - ACTIONS(189), 1, - anon_sym_EQ, - STATE(30), 1, - sym_array_bracket_expression, - STATE(31), 1, - sym_parenthesis_expression_list, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(236), 1, + sym_identifier, + ACTIONS(240), 1, + sym_number, + ACTIONS(242), 1, + anon_sym_GT, + STATE(181), 1, + sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 2, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(90), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(162), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(187), 3, - anon_sym_RBRACE, - anon_sym_COMMA, - anon_sym_LF, - ACTIONS(166), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [1430] = 16, - ACTIONS(92), 1, - anon_sym_SLASH, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(65), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_template_global, + [2843] = 15, ACTIONS(96), 1, anon_sym_LPAREN, ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(104), 1, + ACTIONS(138), 1, anon_sym_PIPE, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(108), 1, + ACTIONS(140), 1, anon_sym_AMP, - ACTIONS(168), 1, + ACTIONS(142), 1, + anon_sym_CARET, + ACTIONS(144), 1, + anon_sym_SLASH, + ACTIONS(202), 1, anon_sym_DOT, - ACTIONS(193), 1, - anon_sym_EQ, - STATE(30), 1, - sym_array_bracket_expression, - STATE(31), 1, + STATE(39), 1, sym_parenthesis_expression_list, + STATE(43), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 2, + ACTIONS(132), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(90), 2, + ACTIONS(136), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(162), 2, + ACTIONS(196), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(191), 3, - anon_sym_RBRACE, + ACTIONS(244), 2, + anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_LF, - ACTIONS(166), 4, + ACTIONS(200), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1488] = 10, + [2897] = 9, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(181), 1, + ACTIONS(236), 1, sym_identifier, - ACTIONS(185), 1, + ACTIONS(240), 1, sym_number, - STATE(76), 1, - sym_template_global, - STATE(189), 1, - sym_template_param, + ACTIONS(246), 1, + anon_sym_GT, + STATE(198), 1, + sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(157), 2, - sym__type, - sym_array_type, ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, @@ -5400,7 +6227,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(55), 7, + STATE(65), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5408,21 +6235,55 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [1533] = 5, - ACTIONS(195), 1, + sym_template_global, + [2939] = 9, + ACTIONS(33), 1, + anon_sym_LPAREN, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(236), 1, sym_identifier, - ACTIONS(201), 1, - anon_sym_LBRACK, + ACTIONS(240), 1, + sym_number, + ACTIONS(248), 1, + anon_sym_GT, + STATE(210), 1, + sym_template_value_param, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(31), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(65), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_template_global, + [2981] = 6, + ACTIONS(61), 1, + anon_sym_COLON_COLON, + ACTIONS(250), 1, + anon_sym_EQ, + STATE(12), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(197), 4, + ACTIONS(78), 3, anon_sym_LT, anon_sym_GT, - anon_sym_EQ, anon_sym_SLASH, - ACTIONS(199), 16, - anon_sym_RBRACE, + ACTIONS(80), 15, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5436,104 +6297,137 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_DOT, anon_sym_LPAREN, + anon_sym_LBRACK, anon_sym_COMMA, - anon_sym_LF, - [1568] = 16, + [3017] = 9, + ACTIONS(33), 1, + anon_sym_LPAREN, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(236), 1, + sym_identifier, + ACTIONS(240), 1, + sym_number, + ACTIONS(252), 1, + anon_sym_GT, + STATE(201), 1, + sym_template_value_param, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(31), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(65), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_template_global, + [3059] = 16, ACTIONS(13), 1, anon_sym_LBRACE, - ACTIONS(92), 1, - anon_sym_SLASH, ACTIONS(96), 1, anon_sym_LPAREN, ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(104), 1, + ACTIONS(138), 1, anon_sym_PIPE, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(108), 1, + ACTIONS(140), 1, anon_sym_AMP, - ACTIONS(168), 1, + ACTIONS(142), 1, + anon_sym_CARET, + ACTIONS(144), 1, + anon_sym_SLASH, + ACTIONS(202), 1, anon_sym_DOT, - STATE(30), 1, - sym_array_bracket_expression, - STATE(31), 1, + STATE(39), 1, sym_parenthesis_expression_list, - STATE(178), 1, + STATE(43), 1, + sym_array_bracket_expression, + STATE(215), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 2, + ACTIONS(132), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(90), 2, + ACTIONS(136), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(162), 2, + ACTIONS(196), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(166), 4, + ACTIONS(200), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1624] = 15, - ACTIONS(92), 1, - anon_sym_SLASH, + [3115] = 16, + ACTIONS(13), 1, + anon_sym_LBRACE, ACTIONS(96), 1, anon_sym_LPAREN, ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(104), 1, + ACTIONS(138), 1, anon_sym_PIPE, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(108), 1, + ACTIONS(140), 1, anon_sym_AMP, - ACTIONS(168), 1, + ACTIONS(142), 1, + anon_sym_CARET, + ACTIONS(144), 1, + anon_sym_SLASH, + ACTIONS(202), 1, anon_sym_DOT, - STATE(30), 1, - sym_array_bracket_expression, - STATE(31), 1, + STATE(39), 1, sym_parenthesis_expression_list, + STATE(43), 1, + sym_array_bracket_expression, + STATE(231), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 2, + ACTIONS(132), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(90), 2, + ACTIONS(136), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(162), 2, + ACTIONS(196), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(204), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - ACTIONS(166), 4, + ACTIONS(200), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1678] = 9, + [3171] = 9, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(206), 1, + ACTIONS(236), 1, sym_identifier, - ACTIONS(208), 1, + ACTIONS(240), 1, sym_number, - STATE(76), 1, - sym_template_global, + ACTIONS(254), 1, + anon_sym_GT, + STATE(184), 1, + sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(123), 2, - sym__type, - sym_array_type, ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, @@ -5542,7 +6436,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(53), 7, + STATE(65), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5550,353 +6444,305 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [1720] = 6, - ACTIONS(61), 1, - anon_sym_COLON_COLON, - ACTIONS(210), 1, - anon_sym_EQ, - STATE(13), 1, - aux_sym_template_global_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(78), 3, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, - ACTIONS(80), 15, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_LBRACK, - anon_sym_COMMA, - [1756] = 15, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(96), 1, + sym_template_global, + [3213] = 8, + ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(98), 1, - anon_sym_LBRACK, - ACTIONS(104), 1, - anon_sym_PIPE, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(108), 1, - anon_sym_AMP, - ACTIONS(168), 1, - anon_sym_DOT, - STATE(30), 1, - sym_array_bracket_expression, - STATE(31), 1, - sym_parenthesis_expression_list, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(236), 1, + sym_identifier, + ACTIONS(240), 1, + sym_number, + STATE(242), 1, + sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 2, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(90), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(162), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(212), 2, - anon_sym_RBRACE, - anon_sym_LF, - ACTIONS(166), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [1810] = 16, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(92), 1, - anon_sym_SLASH, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(65), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_template_global, + [3252] = 15, ACTIONS(96), 1, anon_sym_LPAREN, ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(104), 1, + ACTIONS(138), 1, anon_sym_PIPE, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(108), 1, + ACTIONS(140), 1, anon_sym_AMP, - ACTIONS(168), 1, + ACTIONS(142), 1, + anon_sym_CARET, + ACTIONS(144), 1, + anon_sym_SLASH, + ACTIONS(202), 1, anon_sym_DOT, - STATE(30), 1, - sym_array_bracket_expression, - STATE(31), 1, + ACTIONS(256), 1, + anon_sym_COMMA, + STATE(39), 1, sym_parenthesis_expression_list, - STATE(172), 1, - sym_block, + STATE(43), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 2, + ACTIONS(132), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(90), 2, + ACTIONS(136), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(162), 2, + ACTIONS(196), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(166), 4, + ACTIONS(200), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1866] = 15, - ACTIONS(92), 1, - anon_sym_SLASH, + [3305] = 15, ACTIONS(96), 1, anon_sym_LPAREN, ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(104), 1, + ACTIONS(138), 1, anon_sym_PIPE, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(108), 1, + ACTIONS(140), 1, anon_sym_AMP, - ACTIONS(168), 1, + ACTIONS(142), 1, + anon_sym_CARET, + ACTIONS(144), 1, + anon_sym_SLASH, + ACTIONS(202), 1, anon_sym_DOT, - ACTIONS(214), 1, - anon_sym_RBRACK, - STATE(30), 1, - sym_array_bracket_expression, - STATE(31), 1, + ACTIONS(258), 1, + anon_sym_COMMA, + STATE(39), 1, sym_parenthesis_expression_list, + STATE(43), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 2, + ACTIONS(132), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(90), 2, + ACTIONS(136), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(162), 2, + ACTIONS(196), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(166), 4, + ACTIONS(200), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1919] = 15, - ACTIONS(92), 1, - anon_sym_SLASH, + [3358] = 15, ACTIONS(96), 1, anon_sym_LPAREN, ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(104), 1, + ACTIONS(138), 1, anon_sym_PIPE, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(108), 1, + ACTIONS(140), 1, anon_sym_AMP, - ACTIONS(168), 1, + ACTIONS(142), 1, + anon_sym_CARET, + ACTIONS(144), 1, + anon_sym_SLASH, + ACTIONS(202), 1, anon_sym_DOT, - ACTIONS(216), 1, + ACTIONS(260), 1, anon_sym_RBRACK, - STATE(30), 1, - sym_array_bracket_expression, - STATE(31), 1, + STATE(39), 1, sym_parenthesis_expression_list, + STATE(43), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 2, + ACTIONS(132), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(90), 2, + ACTIONS(136), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(162), 2, + ACTIONS(196), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(166), 4, + ACTIONS(200), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1972] = 15, - ACTIONS(92), 1, - anon_sym_SLASH, + [3411] = 15, ACTIONS(96), 1, anon_sym_LPAREN, ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(104), 1, + ACTIONS(138), 1, anon_sym_PIPE, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(108), 1, + ACTIONS(140), 1, anon_sym_AMP, - ACTIONS(168), 1, + ACTIONS(142), 1, + anon_sym_CARET, + ACTIONS(144), 1, + anon_sym_SLASH, + ACTIONS(202), 1, anon_sym_DOT, - ACTIONS(218), 1, - anon_sym_COMMA, - STATE(30), 1, - sym_array_bracket_expression, - STATE(31), 1, + ACTIONS(262), 1, + anon_sym_RBRACK, + STATE(39), 1, sym_parenthesis_expression_list, + STATE(43), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 2, + ACTIONS(132), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(90), 2, + ACTIONS(136), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(162), 2, + ACTIONS(196), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(166), 4, + ACTIONS(200), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2025] = 15, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(94), 1, - anon_sym_DOT, - ACTIONS(96), 1, + [3464] = 8, + ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(98), 1, - anon_sym_LBRACK, - ACTIONS(104), 1, - anon_sym_PIPE, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(108), 1, - anon_sym_AMP, - ACTIONS(220), 1, - anon_sym_DOT_DOT, - STATE(30), 1, - sym_array_bracket_expression, - STATE(31), 1, - sym_parenthesis_expression_list, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(264), 1, + sym_identifier, + ACTIONS(266), 1, + anon_sym_RPAREN, + ACTIONS(268), 1, + sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 2, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(90), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(162), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(166), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [2078] = 15, - ACTIONS(92), 1, - anon_sym_SLASH, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(48), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_template_global, + [3503] = 15, ACTIONS(96), 1, anon_sym_LPAREN, ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(104), 1, + ACTIONS(138), 1, anon_sym_PIPE, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(108), 1, + ACTIONS(140), 1, anon_sym_AMP, - ACTIONS(168), 1, + ACTIONS(142), 1, + anon_sym_CARET, + ACTIONS(144), 1, + anon_sym_SLASH, + ACTIONS(202), 1, anon_sym_DOT, - ACTIONS(222), 1, - anon_sym_COMMA, - STATE(30), 1, - sym_array_bracket_expression, - STATE(31), 1, + ACTIONS(270), 1, + anon_sym_RPAREN, + STATE(39), 1, sym_parenthesis_expression_list, + STATE(43), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 2, + ACTIONS(132), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(90), 2, + ACTIONS(136), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(162), 2, + ACTIONS(196), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(166), 4, + ACTIONS(200), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2131] = 15, - ACTIONS(92), 1, - anon_sym_SLASH, + [3556] = 15, + ACTIONS(94), 1, + anon_sym_DOT, ACTIONS(96), 1, anon_sym_LPAREN, ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(104), 1, + ACTIONS(138), 1, anon_sym_PIPE, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(108), 1, + ACTIONS(140), 1, anon_sym_AMP, - ACTIONS(168), 1, - anon_sym_DOT, - ACTIONS(224), 1, - anon_sym_RPAREN, - STATE(30), 1, - sym_array_bracket_expression, - STATE(31), 1, + ACTIONS(142), 1, + anon_sym_CARET, + ACTIONS(144), 1, + anon_sym_SLASH, + ACTIONS(272), 1, + anon_sym_DOT_DOT, + STATE(39), 1, sym_parenthesis_expression_list, + STATE(43), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 2, + ACTIONS(132), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(90), 2, + ACTIONS(136), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(162), 2, + ACTIONS(196), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(166), 4, + ACTIONS(200), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2184] = 8, + [3609] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(206), 1, + ACTIONS(264), 1, sym_identifier, - ACTIONS(226), 1, - anon_sym_RPAREN, - ACTIONS(228), 1, + ACTIONS(274), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5909,7 +6755,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(39), 8, + STATE(70), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5918,14 +6764,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2223] = 7, + [3645] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(206), 1, + ACTIONS(264), 1, sym_identifier, - ACTIONS(230), 1, + ACTIONS(276), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5938,7 +6784,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(37), 8, + STATE(19), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5947,14 +6793,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2259] = 7, + [3681] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(206), 1, + ACTIONS(264), 1, sym_identifier, - ACTIONS(232), 1, + ACTIONS(278), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5967,7 +6813,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(20), 8, + STATE(45), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -5976,14 +6822,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2295] = 7, + [3717] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(206), 1, + ACTIONS(264), 1, sym_identifier, - ACTIONS(234), 1, + ACTIONS(280), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -5996,7 +6842,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(46), 8, + STATE(64), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6005,14 +6851,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2331] = 7, + [3753] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(206), 1, + ACTIONS(264), 1, sym_identifier, - ACTIONS(236), 1, + ACTIONS(282), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6025,7 +6871,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(51), 8, + STATE(67), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6034,14 +6880,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2367] = 7, + [3789] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(206), 1, + ACTIONS(264), 1, sym_identifier, - ACTIONS(238), 1, + ACTIONS(284), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6054,7 +6900,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(17), 8, + STATE(35), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6063,14 +6909,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2403] = 7, + [3825] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(206), 1, + ACTIONS(264), 1, sym_identifier, - ACTIONS(240), 1, + ACTIONS(286), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6083,7 +6929,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(22), 8, + STATE(34), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6092,41 +6938,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2439] = 5, - ACTIONS(39), 1, - anon_sym_LF, - STATE(38), 1, - aux_sym__linebreak, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(242), 7, - anon_sym_reg, - anon_sym_initial, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(244), 10, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_COLON_COLON, - sym_number, - [2471] = 7, + [3861] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(206), 1, + ACTIONS(264), 1, sym_identifier, - ACTIONS(246), 1, + ACTIONS(288), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6139,7 +6958,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(23), 8, + STATE(33), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6148,19 +6967,23 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2507] = 7, - ACTIONS(33), 1, - anon_sym_LPAREN, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(206), 1, - sym_identifier, - ACTIONS(248), 1, - sym_number, + [3897] = 5, + ACTIONS(294), 1, + anon_sym_LF, + STATE(88), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(290), 7, + anon_sym_reg, + anon_sym_initial, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(292), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6168,23 +6991,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(45), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_template_global, - [2543] = 7, + anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, + [3929] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(206), 1, + ACTIONS(264), 1, sym_identifier, - ACTIONS(250), 1, + ACTIONS(296), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6197,7 +7014,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(49), 8, + STATE(32), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6206,14 +7023,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2579] = 7, + [3965] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(206), 1, + ACTIONS(264), 1, sym_identifier, - ACTIONS(252), 1, + ACTIONS(298), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6226,7 +7043,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(50), 8, + STATE(30), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6235,14 +7052,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2615] = 7, + [4001] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(206), 1, + ACTIONS(264), 1, sym_identifier, - ACTIONS(254), 1, + ACTIONS(300), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6255,7 +7072,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(26), 8, + STATE(66), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6264,14 +7081,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2651] = 7, + [4037] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(206), 1, + ACTIONS(264), 1, sym_identifier, - ACTIONS(256), 1, + ACTIONS(302), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6284,7 +7101,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(52), 8, + STATE(27), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6293,14 +7110,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2687] = 7, + [4073] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(206), 1, + ACTIONS(264), 1, sym_identifier, - ACTIONS(258), 1, + ACTIONS(304), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6313,7 +7130,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(54), 8, + STATE(61), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6322,14 +7139,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2723] = 7, + [4109] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(206), 1, + ACTIONS(264), 1, sym_identifier, - ACTIONS(260), 1, + ACTIONS(306), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6342,7 +7159,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(56), 8, + STATE(52), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6351,14 +7168,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2759] = 7, + [4145] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(206), 1, + ACTIONS(264), 1, sym_identifier, - ACTIONS(262), 1, + ACTIONS(308), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6371,7 +7188,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(19), 8, + STATE(55), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6380,14 +7197,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2795] = 7, + [4181] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(206), 1, - sym_identifier, ACTIONS(264), 1, + sym_identifier, + ACTIONS(310), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6400,7 +7217,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(21), 8, + STATE(69), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6409,15 +7226,15 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2831] = 5, - ACTIONS(270), 1, + [4217] = 5, + ACTIONS(39), 1, anon_sym_LF, - STATE(64), 1, + STATE(47), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(266), 7, + ACTIONS(312), 7, anon_sym_reg, anon_sym_initial, anon_sym_input, @@ -6425,7 +7242,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(268), 10, + ACTIONS(314), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6436,47 +7253,50 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [2863] = 5, - ACTIONS(272), 1, - anon_sym_GT, + [4249] = 7, + ACTIONS(33), 1, + anon_sym_LPAREN, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(264), 1, + sym_identifier, + ACTIONS(316), 1, + sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(197), 2, - anon_sym_LT, - anon_sym_SLASH, - ACTIONS(201), 2, - anon_sym_LBRACK, - anon_sym_COMMA, - ACTIONS(199), 13, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_DOT, - anon_sym_LPAREN, - [2894] = 5, - ACTIONS(277), 1, + STATE(60), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_template_global, + [4285] = 5, + ACTIONS(320), 1, anon_sym_reg, - STATE(77), 1, + STATE(90), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(275), 5, + ACTIONS(318), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(280), 10, + ACTIONS(323), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6487,21 +7307,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [2924] = 5, + [4315] = 5, ACTIONS(19), 1, anon_sym_reg, - STATE(77), 1, + STATE(90), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(282), 5, + ACTIONS(325), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(284), 10, + ACTIONS(327), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6512,18 +7332,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [2954] = 3, + [4345] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(286), 6, + ACTIONS(329), 6, anon_sym_reg, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(288), 10, + ACTIONS(331), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6534,22 +7354,52 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [2979] = 12, + [4370] = 12, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(333), 1, + anon_sym_DASH_GT, + ACTIONS(335), 1, + anon_sym_LF, + STATE(94), 1, + aux_sym__linebreak, + STATE(110), 1, + sym_declaration, + STATE(141), 1, + sym_declaration_list, + STATE(223), 1, + sym__interface_ports_output, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(27), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(29), 2, + anon_sym_state, + anon_sym_gen, + STATE(224), 3, + sym__type, + sym_array_type, + sym_template_global, + [4412] = 12, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(290), 1, - anon_sym_DASH_GT, - ACTIONS(292), 1, + ACTIONS(39), 1, anon_sym_LF, - STATE(82), 1, + ACTIONS(333), 1, + anon_sym_DASH_GT, + STATE(47), 1, aux_sym__linebreak, - STATE(98), 1, + STATE(110), 1, sym_declaration, - STATE(109), 1, + STATE(152), 1, sym_declaration_list, - STATE(170), 1, + STATE(214), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, @@ -6560,21 +7410,21 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(163), 3, + STATE(224), 3, sym__type, sym_array_type, sym_template_global, - [3021] = 3, + [4454] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(294), 5, + ACTIONS(337), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(296), 10, + ACTIONS(339), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6585,23 +7435,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [3045] = 12, + [4478] = 10, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, ACTIONS(39), 1, anon_sym_LF, - ACTIONS(290), 1, - anon_sym_DASH_GT, - STATE(38), 1, + STATE(47), 1, aux_sym__linebreak, - STATE(98), 1, + STATE(110), 1, sym_declaration, - STATE(117), 1, + STATE(219), 1, sym_declaration_list, - STATE(168), 1, - sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6611,22 +7457,22 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(163), 3, + STATE(224), 3, sym__type, sym_array_type, sym_template_global, - [3087] = 10, + [4514] = 10, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(298), 1, + ACTIONS(341), 1, anon_sym_LF, - STATE(84), 1, + STATE(96), 1, aux_sym__linebreak, - STATE(98), 1, + STATE(110), 1, sym_declaration, - STATE(169), 1, + STATE(227), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, @@ -6637,23 +7483,17 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(163), 3, + STATE(224), 3, sym__type, sym_array_type, sym_template_global, - [3123] = 10, + [4550] = 7, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(39), 1, - anon_sym_LF, - STATE(38), 1, - aux_sym__linebreak, - STATE(98), 1, + STATE(136), 1, sym_declaration, - STATE(165), 1, - sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6663,17 +7503,17 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(163), 3, + STATE(224), 3, sym__type, sym_array_type, sym_template_global, - [3159] = 8, + [4577] = 7, + ACTIONS(11), 1, + sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(300), 1, - sym_identifier, - ACTIONS(302), 1, - anon_sym_GT, + STATE(252), 1, + sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6683,1428 +7523,1919 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(134), 2, - sym_template_declaration_type, - sym_declaration, - STATE(163), 3, + STATE(224), 3, sym__type, sym_array_type, sym_template_global, - [3190] = 7, - ACTIONS(35), 1, + [4604] = 4, + ACTIONS(345), 1, + anon_sym_SQUOTE, + STATE(108), 1, + sym_latency_specifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(343), 7, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_COMMA, + anon_sym_LF, + [4624] = 4, + ACTIONS(345), 1, + anon_sym_SQUOTE, + STATE(112), 1, + sym_latency_specifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(347), 7, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_COMMA, + anon_sym_LF, + [4644] = 4, + ACTIONS(345), 1, + anon_sym_SQUOTE, + STATE(109), 1, + sym_latency_specifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(349), 7, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_COMMA, + anon_sym_LF, + [4664] = 4, + ACTIONS(345), 1, + anon_sym_SQUOTE, + STATE(114), 1, + sym_latency_specifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(351), 7, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_COMMA, + anon_sym_LF, + [4684] = 7, + ACTIONS(353), 1, + sym_identifier, + ACTIONS(355), 1, + anon_sym_GT, + ACTIONS(357), 1, anon_sym_COLON_COLON, - ACTIONS(300), 1, + ACTIONS(359), 1, + anon_sym_SEMI, + STATE(156), 1, + sym_template_type_param, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(158), 3, + sym__type, + sym_array_type, + sym_template_global, + [4709] = 7, + ACTIONS(353), 1, sym_identifier, + ACTIONS(357), 1, + anon_sym_COLON_COLON, + ACTIONS(361), 1, + anon_sym_GT, + ACTIONS(363), 1, + anon_sym_SEMI, + STATE(125), 1, + sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(27), 2, - anon_sym_input, - anon_sym_output, - ACTIONS(29), 2, - anon_sym_state, - anon_sym_gen, - STATE(186), 2, - sym_template_declaration_type, - sym_declaration, - STATE(163), 3, + STATE(158), 3, sym__type, sym_array_type, sym_template_global, - [3218] = 4, - ACTIONS(306), 1, - anon_sym_SQUOTE, - STATE(94), 1, - sym_latency_specifier, + [4734] = 5, + ACTIONS(367), 1, + anon_sym_COMMA, + STATE(98), 1, + sym__comma, + STATE(106), 1, + aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(304), 8, + ACTIONS(365), 4, anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_LF, + [4754] = 5, + ACTIONS(370), 1, + anon_sym_EQ, + ACTIONS(372), 1, + anon_sym_COLON_COLON, + STATE(121), 1, + aux_sym_template_global_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(80), 4, anon_sym_GT, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_COMMA, + [4774] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(374), 7, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_COMMA, + anon_sym_LF, + [4788] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(376), 7, + anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [3239] = 7, + [4802] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + STATE(98), 1, + sym__comma, + STATE(113), 1, + aux_sym_declaration_list_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(378), 4, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_LF, + [4822] = 5, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(380), 2, + anon_sym_state, + anon_sym_gen, + STATE(225), 3, + sym__type, + sym_array_type, + sym_template_global, + [4842] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(382), 7, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_COMMA, + anon_sym_LF, + [4856] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + STATE(98), 1, + sym__comma, + STATE(106), 1, + aux_sym_declaration_list_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(384), 4, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_LF, + [4876] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(386), 7, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_COMMA, + anon_sym_LF, + [4890] = 5, + ACTIONS(353), 1, + sym_identifier, + ACTIONS(357), 1, + anon_sym_COLON_COLON, + STATE(220), 1, + sym_template_type_param, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(158), 3, + sym__type, + sym_array_type, + sym_template_global, + [4909] = 5, + ACTIONS(390), 1, + anon_sym_COMMA, + STATE(11), 1, + sym__comma, STATE(116), 1, - sym_declaration, + aux_sym_assign_left_side_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(388), 3, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_LF, + [4928] = 7, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(393), 1, + anon_sym_COLON, + ACTIONS(395), 1, + anon_sym_LT, + STATE(204), 1, + sym_template_declaration_arguments, + STATE(229), 1, + sym_interface_ports, + STATE(243), 1, + sym_block, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [4951] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + STATE(11), 1, + sym__comma, + STATE(116), 1, + aux_sym_assign_left_side_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(397), 3, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_LF, + [4970] = 4, + ACTIONS(399), 1, + anon_sym_COLON_COLON, + STATE(119), 1, + aux_sym_template_global_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(73), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_COMMA, + [4987] = 4, + ACTIONS(372), 1, + anon_sym_COLON_COLON, + STATE(119), 1, + aux_sym_template_global_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(69), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_COMMA, + [5004] = 4, + ACTIONS(372), 1, + anon_sym_COLON_COLON, + STATE(119), 1, + aux_sym_template_global_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(59), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_COMMA, + [5021] = 4, + ACTIONS(372), 1, + anon_sym_COLON_COLON, + STATE(120), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(27), 2, - anon_sym_input, - anon_sym_output, - ACTIONS(29), 2, - anon_sym_state, - anon_sym_gen, - STATE(163), 3, - sym__type, - sym_array_type, - sym_template_global, - [3266] = 7, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(35), 1, + ACTIONS(65), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_COMMA, + [5038] = 4, + ACTIONS(372), 1, anon_sym_COLON_COLON, - STATE(197), 1, - sym_declaration, + STATE(121), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(27), 2, - anon_sym_input, - anon_sym_output, - ACTIONS(29), 2, - anon_sym_state, - anon_sym_gen, - STATE(163), 3, - sym__type, - sym_array_type, - sym_template_global, - [3293] = 4, - ACTIONS(306), 1, - anon_sym_SQUOTE, - STATE(95), 1, - sym_latency_specifier, + ACTIONS(80), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_COMMA, + [5055] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + STATE(11), 1, + sym__comma, + STATE(118), 1, + aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(308), 8, - anon_sym_DASH_GT, - anon_sym_GT, - anon_sym_LBRACE, + ACTIONS(402), 3, anon_sym_RBRACE, anon_sym_EQ, - anon_sym_in, - anon_sym_COMMA, anon_sym_LF, - [3314] = 4, - ACTIONS(306), 1, - anon_sym_SQUOTE, - STATE(96), 1, - sym_latency_specifier, + [5074] = 6, + ACTIONS(215), 1, + anon_sym_COMMA, + ACTIONS(404), 1, + anon_sym_GT, + ACTIONS(406), 1, + anon_sym_SEMI, + STATE(115), 1, + sym__comma, + STATE(135), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(310), 8, - anon_sym_DASH_GT, + [5094] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(160), 5, anon_sym_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_SEMI, anon_sym_COMMA, + [5106] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(408), 1, + ts_builtin_sym_end, + ACTIONS(410), 1, anon_sym_LF, - [3335] = 4, - ACTIONS(306), 1, - anon_sym_SQUOTE, - STATE(93), 1, - sym_latency_specifier, + STATE(211), 1, + aux_sym__linebreak, + STATE(244), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(312), 8, - anon_sym_DASH_GT, - anon_sym_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_COMMA, + [5126] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(410), 1, anon_sym_LF, - [3356] = 2, + ACTIONS(412), 1, + ts_builtin_sym_end, + STATE(211), 1, + aux_sym__linebreak, + STATE(244), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(314), 8, - anon_sym_DASH_GT, + [5146] = 4, + ACTIONS(416), 1, + anon_sym_LBRACK, + STATE(154), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(414), 3, anon_sym_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, + anon_sym_SEMI, anon_sym_COMMA, + [5162] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(410), 1, anon_sym_LF, - [3371] = 2, + ACTIONS(418), 1, + ts_builtin_sym_end, + STATE(211), 1, + aux_sym__linebreak, + STATE(244), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(316), 8, - anon_sym_DASH_GT, - anon_sym_GT, - anon_sym_LBRACE, + [5182] = 6, + ACTIONS(420), 1, anon_sym_RBRACE, + ACTIONS(422), 1, anon_sym_EQ, - anon_sym_in, - anon_sym_COMMA, + ACTIONS(424), 1, anon_sym_LF, - [3386] = 2, + STATE(7), 1, + aux_sym__linebreak, + STATE(172), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(318), 8, - anon_sym_DASH_GT, + [5202] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(156), 5, anon_sym_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_SEMI, anon_sym_COMMA, - anon_sym_LF, - [3401] = 2, + [5214] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(320), 8, - anon_sym_DASH_GT, + ACTIONS(148), 5, anon_sym_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_COMMA, - anon_sym_LF, - [3416] = 5, - ACTIONS(324), 1, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_SEMI, anon_sym_COMMA, - STATE(88), 1, - sym__comma, - STATE(97), 1, - aux_sym_declaration_list_repeat1, + [5226] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(322), 4, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_LF, - [3436] = 5, - ACTIONS(179), 1, + ACTIONS(118), 5, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_SEMI, anon_sym_COMMA, - STATE(88), 1, + [5238] = 6, + ACTIONS(215), 1, + anon_sym_COMMA, + ACTIONS(426), 1, + anon_sym_GT, + ACTIONS(428), 1, + anon_sym_SEMI, + STATE(115), 1, sym__comma, - STATE(99), 1, - aux_sym_declaration_list_repeat1, + STATE(142), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(327), 4, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_LF, - [3456] = 5, - ACTIONS(179), 1, - anon_sym_COMMA, - STATE(88), 1, - sym__comma, - STATE(97), 1, - aux_sym_declaration_list_repeat1, + [5258] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(329), 4, + ACTIONS(430), 5, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_COMMA, anon_sym_LF, - [3476] = 5, - ACTIONS(11), 1, - sym_identifier, + [5270] = 4, ACTIONS(35), 1, anon_sym_COLON_COLON, + ACTIONS(264), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(331), 2, - anon_sym_state, - anon_sym_gen, - STATE(173), 3, + STATE(226), 3, sym__type, sym_array_type, sym_template_global, - [3496] = 5, - ACTIONS(179), 1, - anon_sym_COMMA, - STATE(11), 1, - sym__comma, - STATE(104), 1, - aux_sym_assign_left_side_repeat1, + [5286] = 4, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(264), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(333), 3, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_LF, - [3515] = 5, - ACTIONS(61), 1, + STATE(218), 3, + sym__type, + sym_array_type, + sym_template_global, + [5302] = 4, + ACTIONS(357), 1, anon_sym_COLON_COLON, - STATE(13), 1, - aux_sym_template_global_repeat1, + ACTIONS(432), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 2, - anon_sym_LBRACK, - sym_identifier, - ACTIONS(335), 2, + STATE(129), 3, + sym__type, + sym_array_type, + sym_template_global, + [5318] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(84), 5, anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_SEMI, anon_sym_COMMA, - [3534] = 5, - ACTIONS(179), 1, - anon_sym_COMMA, - STATE(11), 1, - sym__comma, - STATE(101), 1, - aux_sym_assign_left_side_repeat1, + [5330] = 4, + ACTIONS(333), 1, + anon_sym_DASH_GT, + STATE(216), 1, + sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(337), 3, + ACTIONS(434), 3, + anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_EQ, anon_sym_LF, - [3553] = 5, - ACTIONS(341), 1, + [5346] = 5, + ACTIONS(438), 1, anon_sym_COMMA, - STATE(11), 1, + STATE(115), 1, sym__comma, - STATE(104), 1, - aux_sym_assign_left_side_repeat1, + STATE(142), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(339), 3, - anon_sym_RBRACE, + ACTIONS(436), 2, + anon_sym_GT, + anon_sym_SEMI, + [5364] = 6, + ACTIONS(422), 1, anon_sym_EQ, + ACTIONS(441), 1, + anon_sym_RBRACE, + ACTIONS(443), 1, anon_sym_LF, - [3572] = 7, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(344), 1, - anon_sym_COLON, - ACTIONS(346), 1, - anon_sym_LT, - STATE(149), 1, - sym_template_declaration_arguments, - STATE(179), 1, - sym_interface_ports, - STATE(187), 1, - sym_block, + STATE(3), 1, + aux_sym__linebreak, + STATE(174), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3595] = 6, + [5384] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(348), 1, - ts_builtin_sym_end, - ACTIONS(350), 1, + ACTIONS(410), 1, anon_sym_LF, - STATE(158), 1, + ACTIONS(445), 1, + ts_builtin_sym_end, + STATE(211), 1, aux_sym__linebreak, - STATE(191), 1, + STATE(244), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3615] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(350), 1, - anon_sym_LF, - ACTIONS(352), 1, - ts_builtin_sym_end, - STATE(158), 1, - aux_sym__linebreak, - STATE(191), 1, - sym_module, + [5404] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(106), 5, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_SEMI, + anon_sym_COMMA, + [5416] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(152), 5, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_SEMI, + anon_sym_COMMA, + [5428] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(126), 5, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_SEMI, + anon_sym_COMMA, + [5440] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(122), 5, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_SEMI, + anon_sym_COMMA, + [5452] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3635] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(350), 1, - anon_sym_LF, - ACTIONS(354), 1, - ts_builtin_sym_end, - STATE(158), 1, - aux_sym__linebreak, - STATE(191), 1, - sym_module, + ACTIONS(114), 5, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_SEMI, + anon_sym_COMMA, + [5464] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(88), 5, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_SEMI, + anon_sym_COMMA, + [5476] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3655] = 4, - ACTIONS(290), 1, + ACTIONS(110), 5, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_SEMI, + anon_sym_COMMA, + [5488] = 4, + ACTIONS(333), 1, anon_sym_DASH_GT, - STATE(175), 1, + STATE(217), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(356), 3, + ACTIONS(447), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [3671] = 6, - ACTIONS(358), 1, - anon_sym_RBRACE, - ACTIONS(360), 1, - anon_sym_EQ, - ACTIONS(362), 1, - anon_sym_LF, - STATE(8), 1, - aux_sym__linebreak, - STATE(151), 1, - aux_sym_block_repeat1, + [5504] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3691] = 4, - ACTIONS(35), 1, + ACTIONS(102), 5, + anon_sym_GT, + anon_sym_LBRACK, anon_sym_COLON_COLON, - ACTIONS(206), 1, - sym_identifier, + anon_sym_SEMI, + anon_sym_COMMA, + [5516] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(174), 3, - sym__type, - sym_array_type, - sym_template_global, - [3707] = 6, + ACTIONS(449), 5, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_SEMI, + sym_identifier, + anon_sym_COMMA, + [5528] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(350), 1, + ACTIONS(410), 1, anon_sym_LF, - ACTIONS(364), 1, + ACTIONS(451), 1, ts_builtin_sym_end, - STATE(158), 1, - aux_sym__linebreak, - STATE(191), 1, + STATE(208), 1, sym_module, + STATE(211), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3727] = 6, - ACTIONS(360), 1, - anon_sym_EQ, - ACTIONS(366), 1, - anon_sym_RBRACE, - ACTIONS(368), 1, - anon_sym_LF, - STATE(3), 1, - aux_sym__linebreak, - STATE(152), 1, - aux_sym_block_repeat1, + [5548] = 6, + ACTIONS(215), 1, + anon_sym_COMMA, + ACTIONS(453), 1, + anon_sym_GT, + ACTIONS(455), 1, + anon_sym_SEMI, + STATE(115), 1, + sym__comma, + STATE(157), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3747] = 4, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(206), 1, - sym_identifier, + [5568] = 6, + ACTIONS(215), 1, + anon_sym_COMMA, + ACTIONS(457), 1, + anon_sym_GT, + ACTIONS(459), 1, + anon_sym_SEMI, + STATE(115), 1, + sym__comma, + STATE(142), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(164), 3, - sym__type, - sym_array_type, - sym_template_global, - [3763] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(350), 1, - anon_sym_LF, - ACTIONS(370), 1, - ts_builtin_sym_end, - STATE(148), 1, - sym_module, - STATE(158), 1, - aux_sym__linebreak, + [5588] = 4, + ACTIONS(416), 1, + anon_sym_LBRACK, + STATE(154), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3783] = 2, + ACTIONS(461), 3, + anon_sym_GT, + anon_sym_SEMI, + anon_sym_COMMA, + [5604] = 4, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(463), 1, + anon_sym_if, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(372), 5, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COMMA, - anon_sym_LF, - [3795] = 4, - ACTIONS(290), 1, - anon_sym_DASH_GT, - STATE(171), 1, - sym__interface_ports_output, + STATE(237), 2, + sym_block, + sym_if_statement, + [5619] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(374), 3, - anon_sym_LBRACE, + ACTIONS(465), 4, + ts_builtin_sym_end, anon_sym_RBRACE, + anon_sym_else, anon_sym_LF, - [3811] = 2, + [5630] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(376), 4, + ACTIONS(467), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3822] = 4, - ACTIONS(344), 1, + [5641] = 4, + ACTIONS(393), 1, anon_sym_COLON, - STATE(184), 1, + STATE(230), 1, sym_interface_ports, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(378), 2, + ACTIONS(469), 2, anon_sym_RBRACE, anon_sym_LF, - [3837] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(187), 4, - anon_sym_RBRACE, - anon_sym_EQ, + [5656] = 5, + ACTIONS(215), 1, anon_sym_COMMA, - anon_sym_LF, - [3848] = 5, - ACTIONS(380), 1, + ACTIONS(471), 1, anon_sym_GT, - ACTIONS(382), 1, - anon_sym_COMMA, - STATE(43), 1, + STATE(194), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(239), 1, sym__comma, - STATE(121), 1, - aux_sym_template_params_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [3865] = 5, - ACTIONS(385), 1, - ts_builtin_sym_end, - ACTIONS(387), 1, - anon_sym_LF, - STATE(106), 1, - aux_sym__linebreak, - STATE(141), 1, - aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3882] = 4, - ACTIONS(389), 1, - anon_sym_LBRACK, - STATE(136), 1, - sym_array_bracket_expression, + [5673] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(218), 2, - anon_sym_GT, - anon_sym_COMMA, - [3897] = 2, + ACTIONS(473), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [5684] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(391), 4, + ACTIONS(475), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3908] = 2, + [5695] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(391), 4, + ACTIONS(473), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3919] = 5, - ACTIONS(393), 1, - anon_sym_GT, - ACTIONS(395), 1, + [5706] = 5, + ACTIONS(215), 1, anon_sym_COMMA, - STATE(86), 1, + ACTIONS(477), 1, + anon_sym_GT, + STATE(63), 1, sym__comma, - STATE(126), 1, - aux_sym_template_declaration_arguments_repeat1, + STATE(207), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3936] = 5, - ACTIONS(398), 1, - anon_sym_RPAREN, - ACTIONS(400), 1, + [5723] = 5, + ACTIONS(479), 1, + anon_sym_RBRACE, + ACTIONS(481), 1, + anon_sym_LF, + STATE(4), 1, + aux_sym__linebreak, + STATE(188), 1, + aux_sym_block_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5740] = 5, + ACTIONS(215), 1, anon_sym_COMMA, - STATE(60), 1, + ACTIONS(483), 1, + anon_sym_RPAREN, + STATE(86), 1, sym__comma, - STATE(127), 1, + STATE(189), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3953] = 5, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(350), 1, - anon_sym_LF, - STATE(158), 1, - aux_sym__linebreak, - STATE(191), 1, - sym_module, + [5757] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [3970] = 2, + ACTIONS(485), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [5768] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(403), 4, + ACTIONS(487), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3981] = 2, + [5779] = 5, + ACTIONS(489), 1, + anon_sym_RBRACE, + ACTIONS(491), 1, + anon_sym_LF, + STATE(2), 1, + aux_sym__linebreak, + STATE(188), 1, + aux_sym_block_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5796] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(405), 4, + ACTIONS(487), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [3992] = 2, + [5807] = 5, + ACTIONS(493), 1, + anon_sym_RBRACE, + ACTIONS(495), 1, + anon_sym_LF, + STATE(5), 1, + aux_sym__linebreak, + STATE(188), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(407), 4, - ts_builtin_sym_end, + [5824] = 5, + ACTIONS(497), 1, anon_sym_RBRACE, - anon_sym_else, + ACTIONS(499), 1, anon_sym_LF, - [4003] = 5, - ACTIONS(179), 1, - anon_sym_COMMA, - ACTIONS(409), 1, - anon_sym_GT, - STATE(43), 1, - sym__comma, - STATE(121), 1, - aux_sym_template_params_repeat1, + STATE(9), 1, + aux_sym__linebreak, + STATE(188), 1, + aux_sym_block_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5841] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4020] = 5, - ACTIONS(411), 1, + ACTIONS(501), 4, + ts_builtin_sym_end, anon_sym_RBRACE, - ACTIONS(413), 1, + anon_sym_else, anon_sym_LF, - STATE(10), 1, + [5852] = 5, + ACTIONS(441), 1, + anon_sym_RBRACE, + ACTIONS(443), 1, + anon_sym_LF, + STATE(3), 1, aux_sym__linebreak, - STATE(133), 1, + STATE(168), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4037] = 5, - ACTIONS(179), 1, + [5869] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(217), 4, + anon_sym_RBRACE, + anon_sym_EQ, anon_sym_COMMA, - ACTIONS(416), 1, + anon_sym_LF, + [5880] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + ACTIONS(503), 1, anon_sym_GT, - STATE(86), 1, + STATE(63), 1, sym__comma, - STATE(161), 1, - aux_sym_template_declaration_arguments_repeat1, + STATE(195), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4054] = 2, + [5897] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(407), 4, - ts_builtin_sym_end, + ACTIONS(221), 4, anon_sym_RBRACE, - anon_sym_else, + anon_sym_EQ, + anon_sym_COMMA, anon_sym_LF, - [4065] = 2, + [5908] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + ACTIONS(505), 1, + anon_sym_GT, + STATE(63), 1, + sym__comma, + STATE(167), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(418), 4, - anon_sym_GT, - anon_sym_LBRACK, - sym_identifier, + [5925] = 5, + ACTIONS(215), 1, anon_sym_COMMA, - [4076] = 2, + ACTIONS(507), 1, + anon_sym_GT, + STATE(63), 1, + sym__comma, + STATE(207), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(420), 4, + [5942] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(509), 4, anon_sym_RBRACE, anon_sym_EQ, anon_sym_COMMA, anon_sym_LF, - [4087] = 5, - ACTIONS(358), 1, - anon_sym_RBRACE, - ACTIONS(362), 1, - anon_sym_LF, - STATE(8), 1, - aux_sym__linebreak, - STATE(150), 1, - aux_sym_block_repeat1, + [5953] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + ACTIONS(511), 1, + anon_sym_GT, + STATE(63), 1, + sym__comma, + STATE(182), 1, + aux_sym_template_params_repeat2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5970] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + ACTIONS(513), 1, + anon_sym_GT, + STATE(63), 1, + sym__comma, + STATE(207), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4104] = 2, + [5987] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(422), 4, + ACTIONS(465), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [4115] = 2, + [5998] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(424), 4, + ACTIONS(515), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [4126] = 5, - ACTIONS(426), 1, - ts_builtin_sym_end, - ACTIONS(428), 1, + [6009] = 5, + ACTIONS(517), 1, + anon_sym_RBRACE, + ACTIONS(519), 1, anon_sym_LF, - STATE(108), 1, + STATE(10), 1, aux_sym__linebreak, - STATE(144), 1, - aux_sym_source_file_repeat1, + STATE(188), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4143] = 5, - ACTIONS(430), 1, - ts_builtin_sym_end, - ACTIONS(432), 1, - anon_sym_LF, - STATE(112), 1, - aux_sym__linebreak, - STATE(144), 1, - aux_sym_source_file_repeat1, + [6026] = 5, + ACTIONS(522), 1, + anon_sym_RPAREN, + ACTIONS(524), 1, + anon_sym_COMMA, + STATE(86), 1, + sym__comma, + STATE(189), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4160] = 2, + [6043] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(424), 4, + ACTIONS(527), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [4171] = 5, - ACTIONS(434), 1, - ts_builtin_sym_end, - ACTIONS(436), 1, - anon_sym_LF, - STATE(128), 1, - aux_sym__linebreak, - STATE(144), 1, - aux_sym_source_file_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4188] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(191), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COMMA, - anon_sym_LF, - [4199] = 2, + [6054] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(439), 4, + ACTIONS(527), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [4210] = 5, - ACTIONS(179), 1, - anon_sym_COMMA, - ACTIONS(441), 1, - anon_sym_RPAREN, - STATE(60), 1, - sym__comma, - STATE(127), 1, - aux_sym_parenthesis_expression_list_repeat1, + [6065] = 5, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(410), 1, + anon_sym_LF, + STATE(211), 1, + aux_sym__linebreak, + STATE(244), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4227] = 5, - ACTIONS(443), 1, + [6082] = 5, + ACTIONS(529), 1, ts_builtin_sym_end, - ACTIONS(445), 1, + ACTIONS(531), 1, anon_sym_LF, - STATE(107), 1, + STATE(127), 1, aux_sym__linebreak, - STATE(142), 1, + STATE(197), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4244] = 5, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(344), 1, - anon_sym_COLON, - STATE(177), 1, - sym_interface_ports, - STATE(183), 1, - sym_block, + [6099] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + ACTIONS(533), 1, + anon_sym_GT, + STATE(203), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(239), 1, + sym__comma, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4261] = 5, - ACTIONS(447), 1, - anon_sym_RBRACE, - ACTIONS(449), 1, - anon_sym_LF, - STATE(6), 1, - aux_sym__linebreak, - STATE(133), 1, - aux_sym_block_repeat1, + [6116] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + ACTIONS(535), 1, + anon_sym_GT, + STATE(63), 1, + sym__comma, + STATE(207), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4278] = 5, - ACTIONS(451), 1, + [6133] = 5, + ACTIONS(420), 1, anon_sym_RBRACE, - ACTIONS(453), 1, + ACTIONS(424), 1, anon_sym_LF, - STATE(5), 1, + STATE(7), 1, aux_sym__linebreak, - STATE(133), 1, + STATE(175), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4295] = 5, - ACTIONS(455), 1, - anon_sym_RBRACE, - ACTIONS(457), 1, + [6150] = 5, + ACTIONS(537), 1, + ts_builtin_sym_end, + ACTIONS(539), 1, anon_sym_LF, - STATE(2), 1, + STATE(192), 1, aux_sym__linebreak, - STATE(133), 1, - aux_sym_block_repeat1, + STATE(197), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4312] = 5, - ACTIONS(459), 1, - anon_sym_RBRACE, - ACTIONS(461), 1, - anon_sym_LF, - STATE(9), 1, - aux_sym__linebreak, - STATE(133), 1, - aux_sym_block_repeat1, + [6167] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + ACTIONS(542), 1, + anon_sym_GT, + STATE(63), 1, + sym__comma, + STATE(209), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4329] = 2, + [6184] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(463), 4, + ACTIONS(164), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_COMMA, + [6195] = 5, + ACTIONS(544), 1, ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, + ACTIONS(546), 1, anon_sym_LF, - [4340] = 2, + STATE(144), 1, + aux_sym__linebreak, + STATE(205), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(465), 4, + [6212] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + ACTIONS(548), 1, + anon_sym_GT, + STATE(63), 1, + sym__comma, + STATE(185), 1, + aux_sym_template_params_repeat2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6229] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(550), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [4351] = 5, - ACTIONS(366), 1, - anon_sym_RBRACE, - ACTIONS(368), 1, - anon_sym_LF, - STATE(3), 1, - aux_sym__linebreak, - STATE(153), 1, - aux_sym_block_repeat1, + [6240] = 5, + ACTIONS(552), 1, + anon_sym_GT, + ACTIONS(554), 1, + anon_sym_COMMA, + STATE(203), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(239), 1, + sym__comma, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4368] = 4, - ACTIONS(389), 1, - anon_sym_LBRACK, - STATE(136), 1, - sym_array_bracket_expression, + [6257] = 5, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(393), 1, + anon_sym_COLON, + STATE(236), 1, + sym_interface_ports, + STATE(241), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(222), 2, - anon_sym_GT, - anon_sym_COMMA, - [4383] = 4, - ACTIONS(467), 1, + [6274] = 5, + ACTIONS(557), 1, + ts_builtin_sym_end, + ACTIONS(559), 1, anon_sym_LF, - STATE(158), 1, + STATE(128), 1, aux_sym__linebreak, + STATE(197), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(172), 2, - ts_builtin_sym_end, - anon_sym_module, - [4398] = 5, - ACTIONS(179), 1, + [6291] = 5, + ACTIONS(215), 1, anon_sym_COMMA, - ACTIONS(470), 1, + ACTIONS(561), 1, anon_sym_GT, - STATE(43), 1, + STATE(63), 1, sym__comma, - STATE(132), 1, - aux_sym_template_params_repeat1, + STATE(207), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4415] = 2, + [6308] = 5, + ACTIONS(563), 1, + anon_sym_GT, + ACTIONS(565), 1, + anon_sym_COMMA, + STATE(63), 1, + sym__comma, + STATE(207), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(465), 4, + [6325] = 5, + ACTIONS(568), 1, ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, + ACTIONS(570), 1, anon_sym_LF, - [4426] = 5, - ACTIONS(179), 1, + STATE(130), 1, + aux_sym__linebreak, + STATE(193), 1, + aux_sym_source_file_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6342] = 5, + ACTIONS(215), 1, anon_sym_COMMA, - ACTIONS(472), 1, + ACTIONS(572), 1, anon_sym_GT, - STATE(86), 1, + STATE(63), 1, sym__comma, - STATE(126), 1, - aux_sym_template_declaration_arguments_repeat1, + STATE(207), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4443] = 4, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(474), 1, - anon_sym_if, + [6359] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + ACTIONS(574), 1, + anon_sym_GT, + STATE(63), 1, + sym__comma, + STATE(206), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(180), 2, - sym_block, - sym_if_statement, - [4458] = 4, - ACTIONS(98), 1, - anon_sym_LBRACK, - ACTIONS(476), 1, + [6376] = 4, + ACTIONS(576), 1, + anon_sym_LF, + STATE(211), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(208), 2, + ts_builtin_sym_end, + anon_sym_module, + [6391] = 4, + ACTIONS(579), 1, sym_identifier, - STATE(136), 1, - sym_array_bracket_expression, + ACTIONS(581), 1, + anon_sym_GT, + STATE(163), 1, + sym_template_declaration_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4472] = 4, - ACTIONS(98), 1, - anon_sym_LBRACK, - ACTIONS(478), 1, + [6405] = 4, + ACTIONS(583), 1, sym_identifier, - STATE(136), 1, - sym_array_bracket_expression, + ACTIONS(585), 1, + anon_sym_LT, + STATE(153), 1, + sym_template_params, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4486] = 2, + [6419] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(480), 3, + ACTIONS(587), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4496] = 2, + [6429] = 3, + ACTIONS(591), 1, + anon_sym_else, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 3, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COMMA, - [4506] = 3, - ACTIONS(360), 1, - anon_sym_EQ, + ACTIONS(589), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6441] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(482), 2, + ACTIONS(593), 3, + anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4518] = 2, + [6451] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(484), 3, + ACTIONS(595), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4528] = 2, + [6461] = 4, + ACTIONS(98), 1, + anon_sym_LBRACK, + ACTIONS(597), 1, + sym_identifier, + STATE(154), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(486), 3, + [6475] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(599), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4538] = 2, + [6485] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(488), 3, - anon_sym_LBRACE, + ACTIONS(601), 3, + anon_sym_GT, + anon_sym_SEMI, + anon_sym_COMMA, + [6495] = 3, + ACTIONS(422), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(603), 2, anon_sym_RBRACE, anon_sym_LF, - [4548] = 2, + [6507] = 4, + ACTIONS(605), 1, + sym_identifier, + ACTIONS(607), 1, + anon_sym_LT, + STATE(20), 1, + sym_template_params, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6521] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(490), 3, + ACTIONS(609), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4558] = 3, - ACTIONS(494), 1, - anon_sym_else, + [6531] = 4, + ACTIONS(98), 1, + anon_sym_LBRACK, + ACTIONS(611), 1, + sym_identifier, + STATE(154), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(492), 2, - anon_sym_RBRACE, - anon_sym_LF, - [4570] = 4, + [6545] = 4, ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(496), 1, + ACTIONS(613), 1, sym_identifier, - STATE(136), 1, + STATE(154), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4584] = 4, + [6559] = 4, ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(498), 1, + ACTIONS(615), 1, sym_identifier, - STATE(136), 1, + STATE(154), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4598] = 2, + [6573] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(500), 3, + ACTIONS(617), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4608] = 4, - ACTIONS(502), 1, - sym_identifier, - ACTIONS(504), 1, - anon_sym_LT, - STATE(27), 1, - sym_template_params, + [6583] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4622] = 3, + ACTIONS(619), 2, + ts_builtin_sym_end, + anon_sym_LF, + [6592] = 3, ACTIONS(13), 1, anon_sym_LBRACE, - STATE(181), 1, + STATE(228), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4633] = 2, + [6603] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(506), 2, + ACTIONS(621), 2, anon_sym_RBRACE, anon_sym_LF, - [4642] = 3, - ACTIONS(13), 1, - anon_sym_LBRACE, - STATE(188), 1, - sym_block, + [6612] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4653] = 2, + ACTIONS(623), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6621] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(508), 2, - anon_sym_RBRACE, - anon_sym_LF, - [4662] = 2, + ACTIONS(625), 2, + anon_sym_COLON, + anon_sym_LBRACE, + [6630] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(510), 2, + ACTIONS(627), 2, ts_builtin_sym_end, anon_sym_LF, - [4671] = 2, + [6639] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(482), 2, - anon_sym_RBRACE, - anon_sym_LF, - [4680] = 2, + ACTIONS(629), 2, + anon_sym_COLON, + anon_sym_LBRACE, + [6648] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(512), 2, - ts_builtin_sym_end, - anon_sym_LF, - [4689] = 2, + ACTIONS(631), 2, + anon_sym_GT, + anon_sym_COMMA, + [6657] = 3, + ACTIONS(13), 1, + anon_sym_LBRACE, + STATE(233), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(514), 2, - anon_sym_RBRACE, - anon_sym_LF, - [4698] = 2, + [6668] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(516), 2, - anon_sym_COLON, - anon_sym_LBRACE, - [4707] = 2, + ACTIONS(633), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6677] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(518), 2, + ACTIONS(635), 2, anon_sym_GT, anon_sym_COMMA, - [4716] = 2, + [6686] = 3, + ACTIONS(579), 1, + sym_identifier, + STATE(235), 1, + sym_template_declaration_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(520), 2, - ts_builtin_sym_end, - anon_sym_LF, - [4725] = 2, + [6697] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(637), 2, + anon_sym_COLON, + anon_sym_LBRACE, + [6706] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(522), 2, + ACTIONS(639), 2, ts_builtin_sym_end, anon_sym_LF, - [4734] = 2, + [6715] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(524), 2, + ACTIONS(641), 2, anon_sym_GT, anon_sym_COMMA, - [4743] = 2, + [6724] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(526), 2, - anon_sym_COLON, - anon_sym_LBRACE, - [4752] = 2, + ACTIONS(643), 2, + ts_builtin_sym_end, + anon_sym_LF, + [6733] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(528), 2, + ACTIONS(645), 2, ts_builtin_sym_end, anon_sym_LF, - [4761] = 2, + [6742] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(530), 2, - anon_sym_COLON, - anon_sym_LBRACE, - [4770] = 2, - ACTIONS(532), 1, + ACTIONS(603), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6751] = 2, + ACTIONS(647), 1, + sym_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6759] = 2, + ACTIONS(649), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4778] = 2, - ACTIONS(534), 1, + [6767] = 2, + ACTIONS(651), 1, ts_builtin_sym_end, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4786] = 2, - ACTIONS(536), 1, + [6775] = 2, + ACTIONS(653), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4794] = 2, - ACTIONS(538), 1, + [6783] = 2, + ACTIONS(655), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4802] = 2, - ACTIONS(540), 1, - anon_sym_in, + [6791] = 2, + ACTIONS(657), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4810] = 2, - ACTIONS(542), 1, - sym_identifier, + [6799] = 2, + ACTIONS(659), 1, + anon_sym_in, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, }; static const uint32_t ts_small_parse_table_map[] = { - [SMALL_STATE(11)] = 0, - [SMALL_STATE(12)] = 68, - [SMALL_STATE(13)] = 111, - [SMALL_STATE(14)] = 154, - [SMALL_STATE(15)] = 197, - [SMALL_STATE(16)] = 240, - [SMALL_STATE(17)] = 283, - [SMALL_STATE(18)] = 339, - [SMALL_STATE(19)] = 377, - [SMALL_STATE(20)] = 437, - [SMALL_STATE(21)] = 495, - [SMALL_STATE(22)] = 543, - [SMALL_STATE(23)] = 595, - [SMALL_STATE(24)] = 657, - [SMALL_STATE(25)] = 695, - [SMALL_STATE(26)] = 733, - [SMALL_STATE(27)] = 781, - [SMALL_STATE(28)] = 819, - [SMALL_STATE(29)] = 856, - [SMALL_STATE(30)] = 892, - [SMALL_STATE(31)] = 928, - [SMALL_STATE(32)] = 964, - [SMALL_STATE(33)] = 1000, - [SMALL_STATE(34)] = 1036, - [SMALL_STATE(35)] = 1072, - [SMALL_STATE(36)] = 1108, - [SMALL_STATE(37)] = 1161, - [SMALL_STATE(38)] = 1224, - [SMALL_STATE(39)] = 1262, - [SMALL_STATE(40)] = 1324, - [SMALL_STATE(41)] = 1372, - [SMALL_STATE(42)] = 1430, - [SMALL_STATE(43)] = 1488, - [SMALL_STATE(44)] = 1533, - [SMALL_STATE(45)] = 1568, - [SMALL_STATE(46)] = 1624, - [SMALL_STATE(47)] = 1678, - [SMALL_STATE(48)] = 1720, - [SMALL_STATE(49)] = 1756, - [SMALL_STATE(50)] = 1810, - [SMALL_STATE(51)] = 1866, - [SMALL_STATE(52)] = 1919, - [SMALL_STATE(53)] = 1972, - [SMALL_STATE(54)] = 2025, - [SMALL_STATE(55)] = 2078, - [SMALL_STATE(56)] = 2131, - [SMALL_STATE(57)] = 2184, - [SMALL_STATE(58)] = 2223, - [SMALL_STATE(59)] = 2259, - [SMALL_STATE(60)] = 2295, - [SMALL_STATE(61)] = 2331, - [SMALL_STATE(62)] = 2367, - [SMALL_STATE(63)] = 2403, - [SMALL_STATE(64)] = 2439, - [SMALL_STATE(65)] = 2471, - [SMALL_STATE(66)] = 2507, - [SMALL_STATE(67)] = 2543, - [SMALL_STATE(68)] = 2579, - [SMALL_STATE(69)] = 2615, - [SMALL_STATE(70)] = 2651, - [SMALL_STATE(71)] = 2687, - [SMALL_STATE(72)] = 2723, - [SMALL_STATE(73)] = 2759, - [SMALL_STATE(74)] = 2795, - [SMALL_STATE(75)] = 2831, - [SMALL_STATE(76)] = 2863, - [SMALL_STATE(77)] = 2894, - [SMALL_STATE(78)] = 2924, - [SMALL_STATE(79)] = 2954, - [SMALL_STATE(80)] = 2979, - [SMALL_STATE(81)] = 3021, - [SMALL_STATE(82)] = 3045, - [SMALL_STATE(83)] = 3087, - [SMALL_STATE(84)] = 3123, - [SMALL_STATE(85)] = 3159, - [SMALL_STATE(86)] = 3190, - [SMALL_STATE(87)] = 3218, - [SMALL_STATE(88)] = 3239, - [SMALL_STATE(89)] = 3266, - [SMALL_STATE(90)] = 3293, - [SMALL_STATE(91)] = 3314, - [SMALL_STATE(92)] = 3335, - [SMALL_STATE(93)] = 3356, - [SMALL_STATE(94)] = 3371, - [SMALL_STATE(95)] = 3386, - [SMALL_STATE(96)] = 3401, - [SMALL_STATE(97)] = 3416, - [SMALL_STATE(98)] = 3436, - [SMALL_STATE(99)] = 3456, - [SMALL_STATE(100)] = 3476, - [SMALL_STATE(101)] = 3496, - [SMALL_STATE(102)] = 3515, - [SMALL_STATE(103)] = 3534, - [SMALL_STATE(104)] = 3553, - [SMALL_STATE(105)] = 3572, - [SMALL_STATE(106)] = 3595, - [SMALL_STATE(107)] = 3615, - [SMALL_STATE(108)] = 3635, - [SMALL_STATE(109)] = 3655, - [SMALL_STATE(110)] = 3671, - [SMALL_STATE(111)] = 3691, - [SMALL_STATE(112)] = 3707, - [SMALL_STATE(113)] = 3727, - [SMALL_STATE(114)] = 3747, - [SMALL_STATE(115)] = 3763, - [SMALL_STATE(116)] = 3783, - [SMALL_STATE(117)] = 3795, - [SMALL_STATE(118)] = 3811, - [SMALL_STATE(119)] = 3822, - [SMALL_STATE(120)] = 3837, - [SMALL_STATE(121)] = 3848, - [SMALL_STATE(122)] = 3865, - [SMALL_STATE(123)] = 3882, - [SMALL_STATE(124)] = 3897, - [SMALL_STATE(125)] = 3908, - [SMALL_STATE(126)] = 3919, - [SMALL_STATE(127)] = 3936, - [SMALL_STATE(128)] = 3953, - [SMALL_STATE(129)] = 3970, - [SMALL_STATE(130)] = 3981, - [SMALL_STATE(131)] = 3992, - [SMALL_STATE(132)] = 4003, - [SMALL_STATE(133)] = 4020, - [SMALL_STATE(134)] = 4037, - [SMALL_STATE(135)] = 4054, - [SMALL_STATE(136)] = 4065, - [SMALL_STATE(137)] = 4076, - [SMALL_STATE(138)] = 4087, - [SMALL_STATE(139)] = 4104, - [SMALL_STATE(140)] = 4115, - [SMALL_STATE(141)] = 4126, - [SMALL_STATE(142)] = 4143, - [SMALL_STATE(143)] = 4160, - [SMALL_STATE(144)] = 4171, - [SMALL_STATE(145)] = 4188, - [SMALL_STATE(146)] = 4199, - [SMALL_STATE(147)] = 4210, - [SMALL_STATE(148)] = 4227, - [SMALL_STATE(149)] = 4244, - [SMALL_STATE(150)] = 4261, - [SMALL_STATE(151)] = 4278, - [SMALL_STATE(152)] = 4295, - [SMALL_STATE(153)] = 4312, - [SMALL_STATE(154)] = 4329, - [SMALL_STATE(155)] = 4340, - [SMALL_STATE(156)] = 4351, - [SMALL_STATE(157)] = 4368, - [SMALL_STATE(158)] = 4383, - [SMALL_STATE(159)] = 4398, - [SMALL_STATE(160)] = 4415, - [SMALL_STATE(161)] = 4426, - [SMALL_STATE(162)] = 4443, - [SMALL_STATE(163)] = 4458, - [SMALL_STATE(164)] = 4472, - [SMALL_STATE(165)] = 4486, - [SMALL_STATE(166)] = 4496, - [SMALL_STATE(167)] = 4506, - [SMALL_STATE(168)] = 4518, - [SMALL_STATE(169)] = 4528, - [SMALL_STATE(170)] = 4538, - [SMALL_STATE(171)] = 4548, - [SMALL_STATE(172)] = 4558, - [SMALL_STATE(173)] = 4570, - [SMALL_STATE(174)] = 4584, - [SMALL_STATE(175)] = 4598, - [SMALL_STATE(176)] = 4608, - [SMALL_STATE(177)] = 4622, - [SMALL_STATE(178)] = 4633, - [SMALL_STATE(179)] = 4642, - [SMALL_STATE(180)] = 4653, - [SMALL_STATE(181)] = 4662, - [SMALL_STATE(182)] = 4671, - [SMALL_STATE(183)] = 4680, - [SMALL_STATE(184)] = 4689, - [SMALL_STATE(185)] = 4698, - [SMALL_STATE(186)] = 4707, - [SMALL_STATE(187)] = 4716, - [SMALL_STATE(188)] = 4725, - [SMALL_STATE(189)] = 4734, - [SMALL_STATE(190)] = 4743, - [SMALL_STATE(191)] = 4752, - [SMALL_STATE(192)] = 4761, - [SMALL_STATE(193)] = 4770, - [SMALL_STATE(194)] = 4778, - [SMALL_STATE(195)] = 4786, - [SMALL_STATE(196)] = 4794, - [SMALL_STATE(197)] = 4802, - [SMALL_STATE(198)] = 4810, + [SMALL_STATE(2)] = 0, + [SMALL_STATE(3)] = 99, + [SMALL_STATE(4)] = 198, + [SMALL_STATE(5)] = 297, + [SMALL_STATE(6)] = 396, + [SMALL_STATE(7)] = 495, + [SMALL_STATE(8)] = 594, + [SMALL_STATE(9)] = 693, + [SMALL_STATE(10)] = 792, + [SMALL_STATE(11)] = 888, + [SMALL_STATE(12)] = 956, + [SMALL_STATE(13)] = 999, + [SMALL_STATE(14)] = 1042, + [SMALL_STATE(15)] = 1085, + [SMALL_STATE(16)] = 1128, + [SMALL_STATE(17)] = 1171, + [SMALL_STATE(18)] = 1209, + [SMALL_STATE(19)] = 1247, + [SMALL_STATE(20)] = 1295, + [SMALL_STATE(21)] = 1333, + [SMALL_STATE(22)] = 1371, + [SMALL_STATE(23)] = 1409, + [SMALL_STATE(24)] = 1447, + [SMALL_STATE(25)] = 1485, + [SMALL_STATE(26)] = 1523, + [SMALL_STATE(27)] = 1561, + [SMALL_STATE(28)] = 1623, + [SMALL_STATE(29)] = 1661, + [SMALL_STATE(30)] = 1699, + [SMALL_STATE(31)] = 1751, + [SMALL_STATE(32)] = 1789, + [SMALL_STATE(33)] = 1837, + [SMALL_STATE(34)] = 1895, + [SMALL_STATE(35)] = 1955, + [SMALL_STATE(36)] = 2011, + [SMALL_STATE(37)] = 2049, + [SMALL_STATE(38)] = 2086, + [SMALL_STATE(39)] = 2122, + [SMALL_STATE(40)] = 2158, + [SMALL_STATE(41)] = 2194, + [SMALL_STATE(42)] = 2230, + [SMALL_STATE(43)] = 2266, + [SMALL_STATE(44)] = 2302, + [SMALL_STATE(45)] = 2338, + [SMALL_STATE(46)] = 2401, + [SMALL_STATE(47)] = 2454, + [SMALL_STATE(48)] = 2492, + [SMALL_STATE(49)] = 2554, + [SMALL_STATE(50)] = 2612, + [SMALL_STATE(51)] = 2670, + [SMALL_STATE(52)] = 2705, + [SMALL_STATE(53)] = 2759, + [SMALL_STATE(54)] = 2801, + [SMALL_STATE(55)] = 2843, + [SMALL_STATE(56)] = 2897, + [SMALL_STATE(57)] = 2939, + [SMALL_STATE(58)] = 2981, + [SMALL_STATE(59)] = 3017, + [SMALL_STATE(60)] = 3059, + [SMALL_STATE(61)] = 3115, + [SMALL_STATE(62)] = 3171, + [SMALL_STATE(63)] = 3213, + [SMALL_STATE(64)] = 3252, + [SMALL_STATE(65)] = 3305, + [SMALL_STATE(66)] = 3358, + [SMALL_STATE(67)] = 3411, + [SMALL_STATE(68)] = 3464, + [SMALL_STATE(69)] = 3503, + [SMALL_STATE(70)] = 3556, + [SMALL_STATE(71)] = 3609, + [SMALL_STATE(72)] = 3645, + [SMALL_STATE(73)] = 3681, + [SMALL_STATE(74)] = 3717, + [SMALL_STATE(75)] = 3753, + [SMALL_STATE(76)] = 3789, + [SMALL_STATE(77)] = 3825, + [SMALL_STATE(78)] = 3861, + [SMALL_STATE(79)] = 3897, + [SMALL_STATE(80)] = 3929, + [SMALL_STATE(81)] = 3965, + [SMALL_STATE(82)] = 4001, + [SMALL_STATE(83)] = 4037, + [SMALL_STATE(84)] = 4073, + [SMALL_STATE(85)] = 4109, + [SMALL_STATE(86)] = 4145, + [SMALL_STATE(87)] = 4181, + [SMALL_STATE(88)] = 4217, + [SMALL_STATE(89)] = 4249, + [SMALL_STATE(90)] = 4285, + [SMALL_STATE(91)] = 4315, + [SMALL_STATE(92)] = 4345, + [SMALL_STATE(93)] = 4370, + [SMALL_STATE(94)] = 4412, + [SMALL_STATE(95)] = 4454, + [SMALL_STATE(96)] = 4478, + [SMALL_STATE(97)] = 4514, + [SMALL_STATE(98)] = 4550, + [SMALL_STATE(99)] = 4577, + [SMALL_STATE(100)] = 4604, + [SMALL_STATE(101)] = 4624, + [SMALL_STATE(102)] = 4644, + [SMALL_STATE(103)] = 4664, + [SMALL_STATE(104)] = 4684, + [SMALL_STATE(105)] = 4709, + [SMALL_STATE(106)] = 4734, + [SMALL_STATE(107)] = 4754, + [SMALL_STATE(108)] = 4774, + [SMALL_STATE(109)] = 4788, + [SMALL_STATE(110)] = 4802, + [SMALL_STATE(111)] = 4822, + [SMALL_STATE(112)] = 4842, + [SMALL_STATE(113)] = 4856, + [SMALL_STATE(114)] = 4876, + [SMALL_STATE(115)] = 4890, + [SMALL_STATE(116)] = 4909, + [SMALL_STATE(117)] = 4928, + [SMALL_STATE(118)] = 4951, + [SMALL_STATE(119)] = 4970, + [SMALL_STATE(120)] = 4987, + [SMALL_STATE(121)] = 5004, + [SMALL_STATE(122)] = 5021, + [SMALL_STATE(123)] = 5038, + [SMALL_STATE(124)] = 5055, + [SMALL_STATE(125)] = 5074, + [SMALL_STATE(126)] = 5094, + [SMALL_STATE(127)] = 5106, + [SMALL_STATE(128)] = 5126, + [SMALL_STATE(129)] = 5146, + [SMALL_STATE(130)] = 5162, + [SMALL_STATE(131)] = 5182, + [SMALL_STATE(132)] = 5202, + [SMALL_STATE(133)] = 5214, + [SMALL_STATE(134)] = 5226, + [SMALL_STATE(135)] = 5238, + [SMALL_STATE(136)] = 5258, + [SMALL_STATE(137)] = 5270, + [SMALL_STATE(138)] = 5286, + [SMALL_STATE(139)] = 5302, + [SMALL_STATE(140)] = 5318, + [SMALL_STATE(141)] = 5330, + [SMALL_STATE(142)] = 5346, + [SMALL_STATE(143)] = 5364, + [SMALL_STATE(144)] = 5384, + [SMALL_STATE(145)] = 5404, + [SMALL_STATE(146)] = 5416, + [SMALL_STATE(147)] = 5428, + [SMALL_STATE(148)] = 5440, + [SMALL_STATE(149)] = 5452, + [SMALL_STATE(150)] = 5464, + [SMALL_STATE(151)] = 5476, + [SMALL_STATE(152)] = 5488, + [SMALL_STATE(153)] = 5504, + [SMALL_STATE(154)] = 5516, + [SMALL_STATE(155)] = 5528, + [SMALL_STATE(156)] = 5548, + [SMALL_STATE(157)] = 5568, + [SMALL_STATE(158)] = 5588, + [SMALL_STATE(159)] = 5604, + [SMALL_STATE(160)] = 5619, + [SMALL_STATE(161)] = 5630, + [SMALL_STATE(162)] = 5641, + [SMALL_STATE(163)] = 5656, + [SMALL_STATE(164)] = 5673, + [SMALL_STATE(165)] = 5684, + [SMALL_STATE(166)] = 5695, + [SMALL_STATE(167)] = 5706, + [SMALL_STATE(168)] = 5723, + [SMALL_STATE(169)] = 5740, + [SMALL_STATE(170)] = 5757, + [SMALL_STATE(171)] = 5768, + [SMALL_STATE(172)] = 5779, + [SMALL_STATE(173)] = 5796, + [SMALL_STATE(174)] = 5807, + [SMALL_STATE(175)] = 5824, + [SMALL_STATE(176)] = 5841, + [SMALL_STATE(177)] = 5852, + [SMALL_STATE(178)] = 5869, + [SMALL_STATE(179)] = 5880, + [SMALL_STATE(180)] = 5897, + [SMALL_STATE(181)] = 5908, + [SMALL_STATE(182)] = 5925, + [SMALL_STATE(183)] = 5942, + [SMALL_STATE(184)] = 5953, + [SMALL_STATE(185)] = 5970, + [SMALL_STATE(186)] = 5987, + [SMALL_STATE(187)] = 5998, + [SMALL_STATE(188)] = 6009, + [SMALL_STATE(189)] = 6026, + [SMALL_STATE(190)] = 6043, + [SMALL_STATE(191)] = 6054, + [SMALL_STATE(192)] = 6065, + [SMALL_STATE(193)] = 6082, + [SMALL_STATE(194)] = 6099, + [SMALL_STATE(195)] = 6116, + [SMALL_STATE(196)] = 6133, + [SMALL_STATE(197)] = 6150, + [SMALL_STATE(198)] = 6167, + [SMALL_STATE(199)] = 6184, + [SMALL_STATE(200)] = 6195, + [SMALL_STATE(201)] = 6212, + [SMALL_STATE(202)] = 6229, + [SMALL_STATE(203)] = 6240, + [SMALL_STATE(204)] = 6257, + [SMALL_STATE(205)] = 6274, + [SMALL_STATE(206)] = 6291, + [SMALL_STATE(207)] = 6308, + [SMALL_STATE(208)] = 6325, + [SMALL_STATE(209)] = 6342, + [SMALL_STATE(210)] = 6359, + [SMALL_STATE(211)] = 6376, + [SMALL_STATE(212)] = 6391, + [SMALL_STATE(213)] = 6405, + [SMALL_STATE(214)] = 6419, + [SMALL_STATE(215)] = 6429, + [SMALL_STATE(216)] = 6441, + [SMALL_STATE(217)] = 6451, + [SMALL_STATE(218)] = 6461, + [SMALL_STATE(219)] = 6475, + [SMALL_STATE(220)] = 6485, + [SMALL_STATE(221)] = 6495, + [SMALL_STATE(222)] = 6507, + [SMALL_STATE(223)] = 6521, + [SMALL_STATE(224)] = 6531, + [SMALL_STATE(225)] = 6545, + [SMALL_STATE(226)] = 6559, + [SMALL_STATE(227)] = 6573, + [SMALL_STATE(228)] = 6583, + [SMALL_STATE(229)] = 6592, + [SMALL_STATE(230)] = 6603, + [SMALL_STATE(231)] = 6612, + [SMALL_STATE(232)] = 6621, + [SMALL_STATE(233)] = 6630, + [SMALL_STATE(234)] = 6639, + [SMALL_STATE(235)] = 6648, + [SMALL_STATE(236)] = 6657, + [SMALL_STATE(237)] = 6668, + [SMALL_STATE(238)] = 6677, + [SMALL_STATE(239)] = 6686, + [SMALL_STATE(240)] = 6697, + [SMALL_STATE(241)] = 6706, + [SMALL_STATE(242)] = 6715, + [SMALL_STATE(243)] = 6724, + [SMALL_STATE(244)] = 6733, + [SMALL_STATE(245)] = 6742, + [SMALL_STATE(246)] = 6751, + [SMALL_STATE(247)] = 6759, + [SMALL_STATE(248)] = 6767, + [SMALL_STATE(249)] = 6775, + [SMALL_STATE(250)] = 6783, + [SMALL_STATE(251)] = 6791, + [SMALL_STATE(252)] = 6799, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -8112,268 +9443,326 @@ static const TSParseActionEntry ts_parse_actions[] = { [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 = true}}, SHIFT(196), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), - [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(193), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(89), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(114), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), - [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), - [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), - [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), - [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), - [57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 14), - [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 14), - [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), - [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 2), - [65] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 2), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(250), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(92), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(95), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(89), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(99), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(111), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(137), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), + [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), + [57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 2), + [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 2), + [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), + [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 14), + [65] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 14), [67] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 28), [69] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 28), [71] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), [73] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), - [75] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(176), + [75] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(222), [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1, .production_id = 1), [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1, .production_id = 1), - [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 35), - [84] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 35), - [86] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [88] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), - [90] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [92] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74), - [94] = {.entry = {.count = 1, .reusable = false}}, SHIFT(195), - [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 2), - [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 2), - [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 6), - [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 6), - [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 3, .production_id = 3), - [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3, .production_id = 3), - [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 21), - [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 21), - [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), - [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), - [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 33), - [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 33), - [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 33), - [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 33), - [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 17), - [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 17), - [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 23), - [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 23), - [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), - [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 36), - [152] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 36), - [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 33), - [162] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), - [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 33), - [166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), - [170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), - [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), - [174] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(38), - [177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [187] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 9), - [189] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 9), - [191] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 22), - [193] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 22), - [195] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), - [197] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [199] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [201] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), - [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [210] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), - [212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 34), - [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), - [218] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_param, 3, .production_id = 45), - [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_param, 1, .production_id = 41), - [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [242] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), - [244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), - [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [266] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), - [268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), - [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [272] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [275] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [277] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(79), - [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [282] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), - [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), - [286] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [294] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), - [300] = {.entry = {.count = 1, .reusable = false}}, SHIFT(102), - [302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), - [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 16), - [306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 26), - [310] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 38), - [312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 27), - [314] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 40), - [316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 29), - [318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 39), - [320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 43), - [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), - [324] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(75), - [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), - [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), - [331] = {.entry = {.count = 1, .reusable = false}}, SHIFT(111), - [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), - [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1), - [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), - [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), - [341] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(75), - [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), - [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), - [352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), - [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), - [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 8), - [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), - [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), - [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), - [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), - [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 19), - [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 20), - [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), - [382] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), SHIFT_REPEAT(75), - [385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), - [387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), - [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 42), - [393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), - [395] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), SHIFT_REPEAT(75), - [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), - [400] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(75), - [403] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), - [405] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 37), - [407] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), - [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [411] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), - [413] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), - [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), - [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 17), - [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), - [422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 42), - [426] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), - [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), - [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), - [434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), - [436] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(128), - [439] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 37), - [441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [443] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), - [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), - [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), - [453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), - [457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), - [461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), - [465] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), - [467] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(158), - [470] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), - [474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [480] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 25), - [482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), - [484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 18), - [486] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 13), - [488] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), - [490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 30), - [492] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 32), - [494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), - [496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), - [500] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 15), - [502] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [504] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [506] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 46), - [508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 44), - [510] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5, .production_id = 24), - [512] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 12), - [514] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 31), - [516] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 6), - [518] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 3), - [520] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), - [522] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 11), - [524] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 3), - [526] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 3), - [528] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), - [530] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), - [532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), - [534] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [538] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [540] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 3), + [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 3), + [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 49), + [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 49), + [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 21), + [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 21), + [94] = {.entry = {.count = 1, .reusable = false}}, SHIFT(246), + [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), + [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), + [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 6), + [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 6), + [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 7, .production_id = 50), + [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 7, .production_id = 50), + [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 48), + [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 48), + [116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 37), + [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 37), + [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 6), + [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 6), + [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 46), + [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 46), + [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 35), + [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 35), + [132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [134] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), + [136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [144] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80), + [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 3, .production_id = 3), + [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3, .production_id = 3), + [150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 42), + [152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 42), + [154] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 3), + [156] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3), + [158] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 2), + [160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 2), + [162] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 33), + [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 33), + [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 23), + [172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 23), + [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), + [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 36), + [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 36), + [182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [184] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 17), + [188] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 17), + [190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 33), + [192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 33), + [194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 33), + [196] = {.entry = {.count = 1, .reusable = false}}, SHIFT(83), + [198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 33), + [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246), + [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [206] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), + [208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), + [210] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(47), + [213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 22), + [219] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 22), + [221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 9), + [223] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 9), + [225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), + [227] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [229] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [231] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), + [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 34), + [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), + [244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), + [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [250] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74), + [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), + [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), + [256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 3, .production_id = 45), + [258] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 1, .production_id = 41), + [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), + [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [290] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), + [292] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), + [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [312] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), + [314] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), + [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [318] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [320] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(92), + [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [325] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), + [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), + [329] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [337] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 38), + [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 27), + [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 16), + [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 26), + [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), + [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), + [359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), + [367] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(79), + [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), + [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), + [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 43), + [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 29), + [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), + [380] = {.entry = {.count = 1, .reusable = false}}, SHIFT(138), + [382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 40), + [384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), + [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 39), + [388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), + [390] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(79), + [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), + [397] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), + [399] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(213), + [402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), + [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), + [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), + [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), + [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 3, .production_id = 45), + [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), + [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), + [422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), + [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), + [434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 8), + [436] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), + [438] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), SHIFT_REPEAT(79), + [441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), + [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [445] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), + [447] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 19), + [449] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 17), + [451] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), + [455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), + [459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [461] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 1, .production_id = 41), + [463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [465] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), + [467] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [469] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 20), + [471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), + [473] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), + [475] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), + [477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), + [479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), + [481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [485] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 37), + [487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 42), + [489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), + [491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), + [495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), + [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 37), + [503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), + [507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), + [509] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), + [511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), + [513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), + [515] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [517] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), + [519] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), + [522] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), + [524] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(79), + [527] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 42), + [529] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), + [531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), + [535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [537] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), + [539] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(192), + [542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [544] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), + [546] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), + [548] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), + [550] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), + [552] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), + [554] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), SHIFT_REPEAT(79), + [557] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), + [559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [563] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), + [565] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), SHIFT_REPEAT(79), + [568] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), + [570] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [572] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [574] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [576] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(211), + [579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), + [581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234), + [583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), + [585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [587] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 18), + [589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 32), + [591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 15), + [595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 30), + [597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 25), + [601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 3), + [603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), + [605] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [607] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), + [611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 13), + [619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 11), + [621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 31), + [623] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 47), + [625] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 6), + [627] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5, .production_id = 24), + [629] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), + [631] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 3), + [633] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 44), + [635] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1), + [637] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 3), + [639] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 12), + [641] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 3), + [643] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), + [645] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), + [647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), + [651] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [655] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [657] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [659] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), }; #ifdef __cplusplus From 46c895a169129f6804d5d5143941576815035905 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Fri, 21 Jun 2024 11:11:21 +0200 Subject: [PATCH 34/49] Require the template semicolon --- grammar.js | 6 +- src/grammar.json | 71 +- src/parser.c | 4944 ++++++++++++++++++++-------------------------- 3 files changed, 2131 insertions(+), 2890 deletions(-) diff --git a/grammar.js b/grammar.js index 09bbefd..a02a703 100644 --- a/grammar.js +++ b/grammar.js @@ -279,10 +279,8 @@ module.exports = grammar({ template_params: $ => seq( '<', sepSeq($.template_type_param, $._comma), - optional(seq( - ';', - sepSeq($.template_value_param, $._comma), - )), + ';', + optional(sepSeq($.template_value_param, $._comma)), '>' ), identifier: $ => /[\p{Alphabetic}_][\p{Alphabetic}_\p{Decimal_Number}]*/, diff --git a/src/grammar.json b/src/grammar.json index 64feaf3..6f4df34 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -1543,56 +1543,51 @@ } ] }, + { + "type": "STRING", + "value": ";" + }, { "type": "CHOICE", "members": [ { - "type": "SEQ", + "type": "CHOICE", "members": [ { - "type": "STRING", - "value": ";" - }, - { - "type": "CHOICE", + "type": "SEQ", "members": [ { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "item", - "content": { - "type": "SYMBOL", - "name": "template_value_param" - } - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_comma" - }, - { - "type": "FIELD", - "name": "item", - "content": { - "type": "SYMBOL", - "name": "template_value_param" - } - } - ] - } - } - ] + "type": "FIELD", + "name": "item", + "content": { + "type": "SYMBOL", + "name": "template_value_param" + } }, { - "type": "BLANK" + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_comma" + }, + { + "type": "FIELD", + "name": "item", + "content": { + "type": "SYMBOL", + "name": "template_value_param" + } + } + ] + } } ] + }, + { + "type": "BLANK" } ] }, diff --git a/src/parser.c b/src/parser.c index 1cc80c0..9e971f1 100644 --- a/src/parser.c +++ b/src/parser.c @@ -5,7 +5,7 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 253 +#define STATE_COUNT 215 #define LARGE_STATE_COUNT 2 #define SYMBOL_COUNT 92 #define ALIAS_COUNT 0 @@ -1020,17 +1020,17 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [54] = 54, [55] = 55, [56] = 56, - [57] = 54, + [57] = 57, [58] = 58, - [59] = 53, + [59] = 59, [60] = 60, [61] = 61, - [62] = 56, + [62] = 62, [63] = 63, [64] = 64, [65] = 65, [66] = 66, - [67] = 66, + [67] = 67, [68] = 68, [69] = 69, [70] = 70, @@ -1045,7 +1045,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [79] = 79, [80] = 80, [81] = 81, - [82] = 75, + [82] = 82, [83] = 83, [84] = 84, [85] = 85, @@ -1068,7 +1068,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [102] = 102, [103] = 103, [104] = 104, - [105] = 104, + [105] = 105, [106] = 106, [107] = 107, [108] = 108, @@ -1082,45 +1082,45 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [116] = 116, [117] = 117, [118] = 118, - [119] = 15, - [120] = 14, - [121] = 12, - [122] = 13, - [123] = 16, + [119] = 119, + [120] = 120, + [121] = 121, + [122] = 122, + [123] = 123, [124] = 124, [125] = 125, - [126] = 36, + [126] = 126, [127] = 127, [128] = 128, [129] = 129, [130] = 130, [131] = 131, - [132] = 31, - [133] = 28, - [134] = 24, + [132] = 132, + [133] = 133, + [134] = 134, [135] = 135, [136] = 136, [137] = 137, [138] = 138, [139] = 139, - [140] = 17, + [140] = 140, [141] = 141, [142] = 142, [143] = 143, [144] = 144, - [145] = 21, - [146] = 29, - [147] = 26, - [148] = 25, - [149] = 23, - [150] = 18, - [151] = 22, + [145] = 145, + [146] = 146, + [147] = 147, + [148] = 148, + [149] = 149, + [150] = 150, + [151] = 151, [152] = 152, - [153] = 20, + [153] = 153, [154] = 154, [155] = 155, - [156] = 125, - [157] = 135, + [156] = 156, + [157] = 157, [158] = 158, [159] = 159, [160] = 160, @@ -1129,7 +1129,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [163] = 163, [164] = 164, [165] = 165, - [166] = 166, + [166] = 44, [167] = 167, [168] = 168, [169] = 169, @@ -1158,64 +1158,26 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [192] = 192, [193] = 193, [194] = 194, - [195] = 185, + [195] = 195, [196] = 196, [197] = 197, - [198] = 184, - [199] = 37, + [198] = 198, + [199] = 199, [200] = 200, - [201] = 179, + [201] = 201, [202] = 202, [203] = 203, [204] = 204, [205] = 205, - [206] = 167, + [206] = 206, [207] = 207, [208] = 208, - [209] = 182, - [210] = 181, - [211] = 47, + [209] = 209, + [210] = 210, + [211] = 211, [212] = 212, [213] = 213, [214] = 214, - [215] = 215, - [216] = 216, - [217] = 217, - [218] = 218, - [219] = 219, - [220] = 220, - [221] = 221, - [222] = 213, - [223] = 223, - [224] = 224, - [225] = 225, - [226] = 226, - [227] = 227, - [228] = 228, - [229] = 229, - [230] = 230, - [231] = 231, - [232] = 232, - [233] = 233, - [234] = 234, - [235] = 235, - [236] = 236, - [237] = 237, - [238] = 238, - [239] = 239, - [240] = 240, - [241] = 241, - [242] = 242, - [243] = 243, - [244] = 244, - [245] = 245, - [246] = 246, - [247] = 247, - [248] = 248, - [249] = 249, - [250] = 250, - [251] = 247, - [252] = 252, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -3204,6 +3166,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '.') ADVANCE(34); if (lookahead == '/') ADVANCE(32); if (lookahead == ':') ADVANCE(6); + if (lookahead == ';') ADVANCE(40); if (lookahead == '<') ADVANCE(11); if (lookahead == '=') ADVANCE(17); if (lookahead == '>') ADVANCE(13); @@ -3554,10 +3517,10 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [8] = {.lex_state = 1}, [9] = {.lex_state = 1}, [10] = {.lex_state = 1}, - [11] = {.lex_state = 1}, + [11] = {.lex_state = 2}, [12] = {.lex_state = 2}, [13] = {.lex_state = 2}, - [14] = {.lex_state = 2}, + [14] = {.lex_state = 1}, [15] = {.lex_state = 2}, [16] = {.lex_state = 2}, [17] = {.lex_state = 2}, @@ -3586,34 +3549,34 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [40] = {.lex_state = 2}, [41] = {.lex_state = 2}, [42] = {.lex_state = 2}, - [43] = {.lex_state = 2}, - [44] = {.lex_state = 2}, + [43] = {.lex_state = 1}, + [44] = {.lex_state = 1}, [45] = {.lex_state = 2}, - [46] = {.lex_state = 1}, - [47] = {.lex_state = 1}, + [46] = {.lex_state = 2}, + [47] = {.lex_state = 2}, [48] = {.lex_state = 2}, [49] = {.lex_state = 2}, [50] = {.lex_state = 2}, - [51] = {.lex_state = 2}, - [52] = {.lex_state = 2}, - [53] = {.lex_state = 1}, + [51] = {.lex_state = 1}, + [52] = {.lex_state = 1}, + [53] = {.lex_state = 2}, [54] = {.lex_state = 1}, [55] = {.lex_state = 2}, - [56] = {.lex_state = 1}, - [57] = {.lex_state = 1}, + [56] = {.lex_state = 2}, + [57] = {.lex_state = 2}, [58] = {.lex_state = 2}, [59] = {.lex_state = 1}, [60] = {.lex_state = 2}, [61] = {.lex_state = 2}, - [62] = {.lex_state = 1}, + [62] = {.lex_state = 2}, [63] = {.lex_state = 1}, - [64] = {.lex_state = 2}, - [65] = {.lex_state = 2}, - [66] = {.lex_state = 2}, - [67] = {.lex_state = 2}, + [64] = {.lex_state = 1}, + [65] = {.lex_state = 1}, + [66] = {.lex_state = 1}, + [67] = {.lex_state = 1}, [68] = {.lex_state = 1}, - [69] = {.lex_state = 2}, - [70] = {.lex_state = 2}, + [69] = {.lex_state = 1}, + [70] = {.lex_state = 1}, [71] = {.lex_state = 1}, [72] = {.lex_state = 1}, [73] = {.lex_state = 1}, @@ -3635,167 +3598,129 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [89] = {.lex_state = 1}, [90] = {.lex_state = 1}, [91] = {.lex_state = 1}, - [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}, + [92] = {.lex_state = 0}, + [93] = {.lex_state = 0}, + [94] = {.lex_state = 0}, + [95] = {.lex_state = 0}, + [96] = {.lex_state = 0}, + [97] = {.lex_state = 0}, + [98] = {.lex_state = 0}, + [99] = {.lex_state = 0}, [100] = {.lex_state = 0}, - [101] = {.lex_state = 0}, + [101] = {.lex_state = 1}, [102] = {.lex_state = 0}, - [103] = {.lex_state = 0}, - [104] = {.lex_state = 1}, - [105] = {.lex_state = 1}, - [106] = {.lex_state = 0}, - [107] = {.lex_state = 1}, - [108] = {.lex_state = 0}, + [103] = {.lex_state = 1}, + [104] = {.lex_state = 0}, + [105] = {.lex_state = 0}, + [106] = {.lex_state = 1}, + [107] = {.lex_state = 0}, + [108] = {.lex_state = 1}, [109] = {.lex_state = 0}, [110] = {.lex_state = 0}, [111] = {.lex_state = 1}, [112] = {.lex_state = 0}, [113] = {.lex_state = 0}, - [114] = {.lex_state = 0}, - [115] = {.lex_state = 1}, + [114] = {.lex_state = 1}, + [115] = {.lex_state = 0}, [116] = {.lex_state = 0}, [117] = {.lex_state = 0}, [118] = {.lex_state = 0}, [119] = {.lex_state = 1}, - [120] = {.lex_state = 1}, - [121] = {.lex_state = 1}, - [122] = {.lex_state = 1}, - [123] = {.lex_state = 1}, + [120] = {.lex_state = 0}, + [121] = {.lex_state = 0}, + [122] = {.lex_state = 0}, + [123] = {.lex_state = 0}, [124] = {.lex_state = 0}, - [125] = {.lex_state = 1}, + [125] = {.lex_state = 0}, [126] = {.lex_state = 1}, [127] = {.lex_state = 0}, [128] = {.lex_state = 0}, - [129] = {.lex_state = 1}, - [130] = {.lex_state = 0}, + [129] = {.lex_state = 0}, + [130] = {.lex_state = 1}, [131] = {.lex_state = 0}, - [132] = {.lex_state = 1}, - [133] = {.lex_state = 1}, - [134] = {.lex_state = 1}, + [132] = {.lex_state = 0}, + [133] = {.lex_state = 0}, + [134] = {.lex_state = 0}, [135] = {.lex_state = 1}, [136] = {.lex_state = 0}, - [137] = {.lex_state = 1}, - [138] = {.lex_state = 1}, - [139] = {.lex_state = 1}, - [140] = {.lex_state = 1}, + [137] = {.lex_state = 0}, + [138] = {.lex_state = 0}, + [139] = {.lex_state = 0}, + [140] = {.lex_state = 0}, [141] = {.lex_state = 0}, [142] = {.lex_state = 1}, [143] = {.lex_state = 0}, [144] = {.lex_state = 0}, [145] = {.lex_state = 1}, - [146] = {.lex_state = 1}, + [146] = {.lex_state = 0}, [147] = {.lex_state = 1}, [148] = {.lex_state = 1}, - [149] = {.lex_state = 1}, - [150] = {.lex_state = 1}, - [151] = {.lex_state = 1}, + [149] = {.lex_state = 0}, + [150] = {.lex_state = 0}, + [151] = {.lex_state = 0}, [152] = {.lex_state = 0}, - [153] = {.lex_state = 1}, - [154] = {.lex_state = 1}, + [153] = {.lex_state = 0}, + [154] = {.lex_state = 0}, [155] = {.lex_state = 0}, - [156] = {.lex_state = 1}, - [157] = {.lex_state = 1}, - [158] = {.lex_state = 1}, - [159] = {.lex_state = 0}, + [156] = {.lex_state = 0}, + [157] = {.lex_state = 0}, + [158] = {.lex_state = 0}, + [159] = {.lex_state = 1}, [160] = {.lex_state = 0}, [161] = {.lex_state = 0}, [162] = {.lex_state = 0}, - [163] = {.lex_state = 1}, - [164] = {.lex_state = 0}, + [163] = {.lex_state = 0}, + [164] = {.lex_state = 1}, [165] = {.lex_state = 0}, [166] = {.lex_state = 0}, - [167] = {.lex_state = 1}, + [167] = {.lex_state = 0}, [168] = {.lex_state = 0}, [169] = {.lex_state = 0}, [170] = {.lex_state = 0}, - [171] = {.lex_state = 0}, + [171] = {.lex_state = 1}, [172] = {.lex_state = 0}, [173] = {.lex_state = 0}, [174] = {.lex_state = 0}, [175] = {.lex_state = 0}, [176] = {.lex_state = 0}, [177] = {.lex_state = 0}, - [178] = {.lex_state = 0}, - [179] = {.lex_state = 1}, + [178] = {.lex_state = 1}, + [179] = {.lex_state = 0}, [180] = {.lex_state = 0}, - [181] = {.lex_state = 1}, - [182] = {.lex_state = 1}, + [181] = {.lex_state = 0}, + [182] = {.lex_state = 0}, [183] = {.lex_state = 0}, - [184] = {.lex_state = 1}, - [185] = {.lex_state = 1}, + [184] = {.lex_state = 0}, + [185] = {.lex_state = 0}, [186] = {.lex_state = 0}, [187] = {.lex_state = 0}, [188] = {.lex_state = 0}, [189] = {.lex_state = 0}, - [190] = {.lex_state = 0}, + [190] = {.lex_state = 1}, [191] = {.lex_state = 0}, [192] = {.lex_state = 0}, [193] = {.lex_state = 0}, - [194] = {.lex_state = 1}, - [195] = {.lex_state = 1}, + [194] = {.lex_state = 0}, + [195] = {.lex_state = 0}, [196] = {.lex_state = 0}, [197] = {.lex_state = 0}, - [198] = {.lex_state = 1}, - [199] = {.lex_state = 1}, + [198] = {.lex_state = 0}, + [199] = {.lex_state = 0}, [200] = {.lex_state = 0}, - [201] = {.lex_state = 1}, + [201] = {.lex_state = 0}, [202] = {.lex_state = 0}, [203] = {.lex_state = 1}, [204] = {.lex_state = 0}, [205] = {.lex_state = 0}, [206] = {.lex_state = 1}, - [207] = {.lex_state = 1}, + [207] = {.lex_state = 0}, [208] = {.lex_state = 0}, - [209] = {.lex_state = 1}, - [210] = {.lex_state = 1}, + [209] = {.lex_state = 0}, + [210] = {.lex_state = 0}, [211] = {.lex_state = 0}, - [212] = {.lex_state = 1}, + [212] = {.lex_state = 0}, [213] = {.lex_state = 0}, [214] = {.lex_state = 0}, - [215] = {.lex_state = 0}, - [216] = {.lex_state = 0}, - [217] = {.lex_state = 0}, - [218] = {.lex_state = 0}, - [219] = {.lex_state = 0}, - [220] = {.lex_state = 1}, - [221] = {.lex_state = 0}, - [222] = {.lex_state = 0}, - [223] = {.lex_state = 0}, - [224] = {.lex_state = 0}, - [225] = {.lex_state = 0}, - [226] = {.lex_state = 0}, - [227] = {.lex_state = 0}, - [228] = {.lex_state = 0}, - [229] = {.lex_state = 0}, - [230] = {.lex_state = 0}, - [231] = {.lex_state = 0}, - [232] = {.lex_state = 0}, - [233] = {.lex_state = 0}, - [234] = {.lex_state = 0}, - [235] = {.lex_state = 1}, - [236] = {.lex_state = 0}, - [237] = {.lex_state = 0}, - [238] = {.lex_state = 1}, - [239] = {.lex_state = 0}, - [240] = {.lex_state = 0}, - [241] = {.lex_state = 0}, - [242] = {.lex_state = 1}, - [243] = {.lex_state = 0}, - [244] = {.lex_state = 0}, - [245] = {.lex_state = 0}, - [246] = {.lex_state = 0}, - [247] = {.lex_state = 0}, - [248] = {.lex_state = 0}, - [249] = {.lex_state = 0}, - [250] = {.lex_state = 0}, - [251] = {.lex_state = 0}, - [252] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -3849,9 +3774,9 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(248), - [sym_module] = STATE(200), - [aux_sym__linebreak] = STATE(155), + [sym_source_file] = STATE(214), + [sym_module] = STATE(172), + [aux_sym__linebreak] = STATE(113), [ts_builtin_sym_end] = ACTIONS(5), [anon_sym_module] = ACTIONS(7), [anon_sym_LF] = ACTIONS(9), @@ -3886,20 +3811,20 @@ static const uint16_t ts_small_parse_table[] = { sym_number, ACTIONS(39), 1, anon_sym_LF, - STATE(46), 1, + STATE(43), 1, sym_write_modifiers, - STATE(47), 1, + STATE(44), 1, aux_sym__linebreak, - STATE(51), 1, + STATE(48), 1, sym_template_global, - STATE(91), 1, + STATE(82), 1, aux_sym_write_modifiers_repeat1, - STATE(124), 1, + STATE(110), 1, sym_assign_to, - STATE(180), 1, - sym_declaration, - STATE(221), 1, + STATE(112), 1, sym_assign_left_side, + STATE(138), 1, + sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -3909,10 +3834,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(224), 2, + STATE(182), 2, sym__type, sym_array_type, - STATE(245), 5, + STATE(146), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -3926,7 +3851,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(50), 7, + STATE(47), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -3959,19 +3884,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(41), 1, anon_sym_RBRACE, - STATE(46), 1, + STATE(43), 1, sym_write_modifiers, - STATE(47), 1, + STATE(44), 1, aux_sym__linebreak, - STATE(51), 1, + STATE(48), 1, sym_template_global, - STATE(91), 1, + STATE(82), 1, aux_sym_write_modifiers_repeat1, - STATE(124), 1, + STATE(110), 1, sym_assign_to, - STATE(180), 1, + STATE(138), 1, sym_declaration, - STATE(221), 1, + STATE(179), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -3982,10 +3907,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(224), 2, + STATE(182), 2, sym__type, sym_array_type, - STATE(245), 5, + STATE(192), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -3999,7 +3924,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(50), 7, + STATE(47), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4032,19 +3957,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(43), 1, anon_sym_RBRACE, - STATE(46), 1, + STATE(43), 1, sym_write_modifiers, - STATE(47), 1, + STATE(44), 1, aux_sym__linebreak, - STATE(51), 1, + STATE(48), 1, sym_template_global, - STATE(91), 1, + STATE(82), 1, aux_sym_write_modifiers_repeat1, - STATE(124), 1, + STATE(110), 1, sym_assign_to, - STATE(180), 1, + STATE(138), 1, sym_declaration, - STATE(221), 1, + STATE(179), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4055,10 +3980,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(224), 2, + STATE(182), 2, sym__type, sym_array_type, - STATE(245), 5, + STATE(192), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -4072,7 +3997,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(50), 7, + STATE(47), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4105,19 +4030,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(45), 1, anon_sym_RBRACE, - STATE(46), 1, + STATE(43), 1, sym_write_modifiers, - STATE(47), 1, + STATE(44), 1, aux_sym__linebreak, - STATE(51), 1, + STATE(48), 1, sym_template_global, - STATE(91), 1, + STATE(82), 1, aux_sym_write_modifiers_repeat1, - STATE(124), 1, + STATE(110), 1, sym_assign_to, - STATE(180), 1, + STATE(138), 1, sym_declaration, - STATE(221), 1, + STATE(179), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4128,10 +4053,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(224), 2, + STATE(182), 2, sym__type, sym_array_type, - STATE(245), 5, + STATE(192), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -4145,7 +4070,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(50), 7, + STATE(47), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4178,20 +4103,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(47), 1, anon_sym_RBRACE, - STATE(46), 1, + STATE(43), 1, sym_write_modifiers, - STATE(47), 1, + STATE(44), 1, aux_sym__linebreak, - STATE(51), 1, + STATE(48), 1, sym_template_global, - STATE(91), 1, + STATE(82), 1, aux_sym_write_modifiers_repeat1, - STATE(124), 1, + STATE(110), 1, sym_assign_to, - STATE(131), 1, - sym_assign_left_side, - STATE(180), 1, + STATE(138), 1, sym_declaration, + STATE(179), 1, + sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4201,10 +4126,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(224), 2, + STATE(182), 2, sym__type, sym_array_type, - STATE(196), 5, + STATE(192), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -4218,7 +4143,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(50), 7, + STATE(47), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4251,19 +4176,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(49), 1, anon_sym_RBRACE, - STATE(46), 1, + STATE(43), 1, sym_write_modifiers, - STATE(47), 1, + STATE(44), 1, aux_sym__linebreak, - STATE(51), 1, + STATE(48), 1, sym_template_global, - STATE(91), 1, + STATE(82), 1, aux_sym_write_modifiers_repeat1, - STATE(124), 1, + STATE(110), 1, sym_assign_to, - STATE(180), 1, + STATE(138), 1, sym_declaration, - STATE(221), 1, + STATE(179), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4274,10 +4199,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(224), 2, + STATE(182), 2, sym__type, sym_array_type, - STATE(245), 5, + STATE(192), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -4291,7 +4216,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(50), 7, + STATE(47), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4324,19 +4249,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, ACTIONS(53), 1, anon_sym_LF, - STATE(6), 1, + STATE(2), 1, aux_sym__linebreak, - STATE(46), 1, + STATE(43), 1, sym_write_modifiers, - STATE(51), 1, + STATE(48), 1, sym_template_global, - STATE(91), 1, + STATE(82), 1, aux_sym_write_modifiers_repeat1, - STATE(124), 1, + STATE(110), 1, sym_assign_to, - STATE(143), 1, + STATE(121), 1, sym_assign_left_side, - STATE(180), 1, + STATE(138), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -4347,10 +4272,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(224), 2, + STATE(182), 2, sym__type, sym_array_type, - STATE(177), 5, + STATE(139), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -4364,7 +4289,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(50), 7, + STATE(47), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4397,19 +4322,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(55), 1, anon_sym_RBRACE, - STATE(46), 1, + STATE(43), 1, sym_write_modifiers, - STATE(47), 1, + STATE(44), 1, aux_sym__linebreak, - STATE(51), 1, + STATE(48), 1, sym_template_global, - STATE(91), 1, + STATE(82), 1, aux_sym_write_modifiers_repeat1, - STATE(124), 1, + STATE(110), 1, sym_assign_to, - STATE(180), 1, + STATE(138), 1, sym_declaration, - STATE(221), 1, + STATE(179), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4420,10 +4345,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(224), 2, + STATE(182), 2, sym__type, sym_array_type, - STATE(245), 5, + STATE(192), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -4437,7 +4362,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(50), 7, + STATE(47), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4468,19 +4393,19 @@ static const uint16_t ts_small_parse_table[] = { sym_number, ACTIONS(39), 1, anon_sym_LF, - STATE(46), 1, + STATE(43), 1, sym_write_modifiers, - STATE(47), 1, + STATE(44), 1, aux_sym__linebreak, - STATE(51), 1, + STATE(48), 1, sym_template_global, - STATE(91), 1, + STATE(82), 1, aux_sym_write_modifiers_repeat1, - STATE(124), 1, + STATE(110), 1, sym_assign_to, - STATE(180), 1, + STATE(138), 1, sym_declaration, - STATE(221), 1, + STATE(179), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4491,10 +4416,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(224), 2, + STATE(182), 2, sym__type, sym_array_type, - STATE(245), 5, + STATE(192), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -4508,58 +4433,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(50), 7, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - [888] = 17, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(19), 1, - anon_sym_reg, - ACTIONS(21), 1, - anon_sym_initial, - ACTIONS(33), 1, - anon_sym_LPAREN, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(37), 1, - sym_number, - STATE(46), 1, - sym_write_modifiers, - STATE(51), 1, - sym_template_global, - STATE(91), 1, - aux_sym_write_modifiers_repeat1, - STATE(180), 1, - sym_declaration, - STATE(183), 1, - sym_assign_to, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(27), 2, - anon_sym_input, - anon_sym_output, - ACTIONS(29), 2, - anon_sym_state, - anon_sym_gen, - STATE(224), 2, - sym__type, - sym_array_type, - ACTIONS(31), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(50), 7, + STATE(47), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4567,10 +4441,10 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [956] = 5, + [888] = 5, ACTIONS(61), 1, anon_sym_COLON_COLON, - STATE(15), 1, + STATE(16), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, @@ -4584,7 +4458,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(59), 20, + ACTIONS(59), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4603,12 +4477,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [999] = 5, + [932] = 5, ACTIONS(61), 1, anon_sym_COLON_COLON, - STATE(14), 1, + STATE(11), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, @@ -4622,7 +4497,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(65), 20, + ACTIONS(65), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4641,12 +4516,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1042] = 5, + [976] = 5, ACTIONS(61), 1, anon_sym_COLON_COLON, - STATE(15), 1, + STATE(16), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, @@ -4660,7 +4536,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(69), 20, + ACTIONS(69), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4679,12 +4555,64 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1085] = 5, - ACTIONS(75), 1, + [1020] = 17, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(19), 1, + anon_sym_reg, + ACTIONS(21), 1, + anon_sym_initial, + ACTIONS(33), 1, + anon_sym_LPAREN, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(37), 1, + sym_number, + STATE(43), 1, + sym_write_modifiers, + STATE(48), 1, + sym_template_global, + STATE(82), 1, + aux_sym_write_modifiers_repeat1, + STATE(134), 1, + sym_assign_to, + STATE(138), 1, + sym_declaration, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(27), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(29), 2, + anon_sym_state, + anon_sym_gen, + STATE(182), 2, + sym__type, + sym_array_type, + ACTIONS(31), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(47), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + [1088] = 5, + ACTIONS(61), 1, anon_sym_COLON_COLON, - STATE(15), 1, + STATE(13), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, @@ -4698,7 +4626,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(73), 20, + ACTIONS(73), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4717,17 +4645,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1128] = 5, - ACTIONS(61), 1, + [1132] = 5, + ACTIONS(79), 1, anon_sym_COLON_COLON, - STATE(12), 1, + STATE(16), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 8, + ACTIONS(75), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4736,7 +4665,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(80), 20, + ACTIONS(77), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4755,9 +4684,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1171] = 3, + [1176] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4770,7 +4700,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(84), 21, + ACTIONS(84), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4790,9 +4720,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COLON_COLON, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1209] = 3, + [1215] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4805,7 +4736,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(88), 21, + ACTIONS(88), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4825,33 +4756,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COLON_COLON, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1247] = 8, - ACTIONS(94), 1, - anon_sym_DOT, - ACTIONS(96), 1, - anon_sym_LPAREN, - ACTIONS(98), 1, - anon_sym_LBRACK, - STATE(39), 1, - sym_parenthesis_expression_list, - STATE(43), 1, - sym_array_bracket_expression, + [1254] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(92), 5, + ACTIONS(90), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, + anon_sym_in, anon_sym_DASH, anon_sym_SLASH, - ACTIONS(90), 19, + anon_sym_DOT, + sym_identifier, + ACTIONS(92), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_PLUS, anon_sym_STAR, @@ -4863,15 +4787,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1295] = 3, + [1293] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(100), 8, + ACTIONS(94), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4880,7 +4808,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(102), 21, + ACTIONS(96), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4900,13 +4828,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COLON_COLON, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1333] = 3, + [1332] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(104), 8, + ACTIONS(98), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4915,7 +4844,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(106), 21, + ACTIONS(100), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4935,13 +4864,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COLON_COLON, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, [1371] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(108), 8, + ACTIONS(102), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4950,7 +4880,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(110), 21, + ACTIONS(104), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4970,13 +4900,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COLON_COLON, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1409] = 3, + [1410] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(112), 8, + ACTIONS(106), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4985,7 +4916,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(114), 21, + ACTIONS(108), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5005,13 +4936,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COLON_COLON, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1447] = 3, + [1449] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(116), 8, + ACTIONS(110), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5020,7 +4952,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(118), 21, + ACTIONS(112), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5040,13 +4972,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COLON_COLON, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1485] = 3, + [1488] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(120), 8, + ACTIONS(114), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5055,7 +4988,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(122), 21, + ACTIONS(116), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5075,13 +5008,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COLON_COLON, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1523] = 3, + [1527] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(124), 8, + ACTIONS(118), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5090,7 +5024,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(126), 21, + ACTIONS(120), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5110,60 +5044,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COLON_COLON, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1561] = 15, - ACTIONS(94), 1, - anon_sym_DOT, - ACTIONS(96), 1, - anon_sym_LPAREN, - ACTIONS(98), 1, - anon_sym_LBRACK, - ACTIONS(132), 1, - anon_sym_PLUS, - ACTIONS(134), 1, - anon_sym_DASH, - ACTIONS(138), 1, - anon_sym_PIPE, - ACTIONS(140), 1, - anon_sym_AMP, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, - anon_sym_SLASH, - STATE(39), 1, - sym_parenthesis_expression_list, - STATE(43), 1, - sym_array_bracket_expression, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(136), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(130), 3, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - ACTIONS(128), 13, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DOT_DOT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_LF, - [1623] = 3, + [1566] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(146), 8, + ACTIONS(122), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5172,7 +5060,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(148), 21, + ACTIONS(124), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5191,78 +5079,92 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1661] = 3, + [1604] = 13, + ACTIONS(130), 1, + anon_sym_PLUS, + ACTIONS(132), 1, + anon_sym_DASH, + ACTIONS(136), 1, + anon_sym_CARET, + ACTIONS(138), 1, + anon_sym_SLASH, + ACTIONS(140), 1, + anon_sym_DOT, + ACTIONS(142), 1, + anon_sym_LPAREN, + ACTIONS(144), 1, + anon_sym_LBRACK, + STATE(35), 1, + sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(150), 8, + ACTIONS(134), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(128), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(152), 21, + ACTIONS(126), 15, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, - anon_sym_PLUS, - anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_COMMA, anon_sym_LF, - [1699] = 10, - ACTIONS(94), 1, + [1662] = 14, + ACTIONS(130), 1, + anon_sym_PLUS, + ACTIONS(132), 1, + anon_sym_DASH, + ACTIONS(136), 1, + anon_sym_CARET, + ACTIONS(138), 1, + anon_sym_SLASH, + ACTIONS(140), 1, anon_sym_DOT, - ACTIONS(96), 1, + ACTIONS(142), 1, anon_sym_LPAREN, - ACTIONS(98), 1, - anon_sym_LBRACK, ACTIONS(144), 1, - anon_sym_SLASH, - STATE(39), 1, - sym_parenthesis_expression_list, - STATE(43), 1, + anon_sym_LBRACK, + ACTIONS(146), 1, + anon_sym_PIPE, + STATE(35), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(136), 2, + ACTIONS(134), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(130), 4, + ACTIONS(128), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_DASH, - ACTIONS(128), 17, + ACTIONS(126), 14, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - anon_sym_PLUS, - anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -5271,69 +5173,39 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1751] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(154), 8, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - anon_sym_in, + [1722] = 12, + ACTIONS(130), 1, + anon_sym_PLUS, + ACTIONS(132), 1, anon_sym_DASH, + ACTIONS(138), 1, anon_sym_SLASH, + ACTIONS(140), 1, anon_sym_DOT, - sym_identifier, - ACTIONS(156), 21, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DOT_DOT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - anon_sym_LF, - [1789] = 8, - ACTIONS(94), 1, - anon_sym_DOT, - ACTIONS(96), 1, + ACTIONS(142), 1, anon_sym_LPAREN, - ACTIONS(98), 1, + ACTIONS(144), 1, anon_sym_LBRACK, - STATE(39), 1, - sym_parenthesis_expression_list, - STATE(43), 1, + STATE(35), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 5, + ACTIONS(134), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(128), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_DASH, - anon_sym_SLASH, - ACTIONS(128), 19, + ACTIONS(126), 16, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - anon_sym_PLUS, - anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -5341,135 +5213,121 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1837] = 13, - ACTIONS(94), 1, + [1778] = 8, + ACTIONS(140), 1, anon_sym_DOT, - ACTIONS(96), 1, - anon_sym_LPAREN, - ACTIONS(98), 1, - anon_sym_LBRACK, - ACTIONS(132), 1, - anon_sym_PLUS, - ACTIONS(134), 1, - anon_sym_DASH, ACTIONS(142), 1, - anon_sym_CARET, + anon_sym_LPAREN, ACTIONS(144), 1, - anon_sym_SLASH, - STATE(39), 1, - sym_parenthesis_expression_list, - STATE(43), 1, + anon_sym_LBRACK, + STATE(35), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(136), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(130), 3, + ACTIONS(128), 5, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(128), 15, + anon_sym_DASH, + anon_sym_SLASH, + ACTIONS(126), 19, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1895] = 14, - ACTIONS(94), 1, + [1826] = 8, + ACTIONS(140), 1, anon_sym_DOT, - ACTIONS(96), 1, - anon_sym_LPAREN, - ACTIONS(98), 1, - anon_sym_LBRACK, - ACTIONS(132), 1, - anon_sym_PLUS, - ACTIONS(134), 1, - anon_sym_DASH, - ACTIONS(138), 1, - anon_sym_PIPE, ACTIONS(142), 1, - anon_sym_CARET, + anon_sym_LPAREN, ACTIONS(144), 1, - anon_sym_SLASH, - STATE(39), 1, - sym_parenthesis_expression_list, - STATE(43), 1, + anon_sym_LBRACK, + STATE(35), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(136), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(130), 3, + ACTIONS(150), 5, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(128), 14, + anon_sym_DASH, + anon_sym_SLASH, + ACTIONS(148), 19, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1955] = 12, - ACTIONS(94), 1, + [1874] = 10, + ACTIONS(138), 1, + anon_sym_SLASH, + ACTIONS(140), 1, anon_sym_DOT, - ACTIONS(96), 1, + ACTIONS(142), 1, anon_sym_LPAREN, - ACTIONS(98), 1, - anon_sym_LBRACK, - ACTIONS(132), 1, - anon_sym_PLUS, - ACTIONS(134), 1, - anon_sym_DASH, ACTIONS(144), 1, - anon_sym_SLASH, - STATE(39), 1, - sym_parenthesis_expression_list, - STATE(43), 1, + anon_sym_LBRACK, + STATE(35), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(136), 2, + ACTIONS(134), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(130), 3, + ACTIONS(128), 4, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(128), 16, + anon_sym_DASH, + ACTIONS(126), 17, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, + anon_sym_PLUS, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -5481,87 +5339,65 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [2011] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(158), 8, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - anon_sym_in, + [1926] = 15, + ACTIONS(130), 1, + anon_sym_PLUS, + ACTIONS(132), 1, anon_sym_DASH, + ACTIONS(136), 1, + anon_sym_CARET, + ACTIONS(138), 1, anon_sym_SLASH, + ACTIONS(140), 1, anon_sym_DOT, - sym_identifier, - ACTIONS(160), 21, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DOT_DOT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_PERCENT, + ACTIONS(142), 1, anon_sym_LPAREN, - anon_sym_RPAREN, + ACTIONS(144), 1, anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - anon_sym_LF, - [2049] = 3, + ACTIONS(146), 1, + anon_sym_PIPE, + ACTIONS(152), 1, + anon_sym_AMP, + STATE(35), 1, + sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(162), 8, + ACTIONS(134), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(128), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(164), 20, + ACTIONS(126), 13, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [2086] = 3, + [1988] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(168), 6, + ACTIONS(156), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(166), 21, + ACTIONS(154), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5583,18 +5419,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [2122] = 3, + [2024] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(172), 6, + ACTIONS(160), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(170), 21, + ACTIONS(158), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5616,18 +5452,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [2158] = 3, + [2060] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(176), 6, + ACTIONS(164), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(174), 21, + ACTIONS(162), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5649,18 +5485,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [2194] = 3, + [2096] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(180), 6, + ACTIONS(168), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(178), 21, + ACTIONS(166), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5682,18 +5518,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [2230] = 3, + [2132] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(184), 6, + ACTIONS(172), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(182), 21, + ACTIONS(170), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5715,18 +5551,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [2266] = 3, + [2168] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(188), 6, + ACTIONS(176), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(186), 21, + ACTIONS(174), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5748,18 +5584,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [2302] = 3, + [2204] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(192), 6, + ACTIONS(180), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(190), 21, + ACTIONS(178), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5781,64 +5617,64 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [2338] = 17, - ACTIONS(96), 1, - anon_sym_LPAREN, - ACTIONS(98), 1, - anon_sym_LBRACK, - ACTIONS(132), 1, + [2240] = 17, + ACTIONS(130), 1, anon_sym_PLUS, - ACTIONS(134), 1, + ACTIONS(132), 1, anon_sym_DASH, + ACTIONS(136), 1, + anon_sym_CARET, ACTIONS(138), 1, - anon_sym_PIPE, - ACTIONS(140), 1, - anon_sym_AMP, + anon_sym_SLASH, ACTIONS(142), 1, - anon_sym_CARET, + anon_sym_LPAREN, ACTIONS(144), 1, - anon_sym_SLASH, - ACTIONS(198), 1, + anon_sym_LBRACK, + ACTIONS(146), 1, + anon_sym_PIPE, + ACTIONS(152), 1, + anon_sym_AMP, + ACTIONS(186), 1, anon_sym_EQ, - ACTIONS(202), 1, + ACTIONS(190), 1, anon_sym_DOT, - STATE(39), 1, - sym_parenthesis_expression_list, - STATE(43), 1, + STATE(35), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(136), 2, + ACTIONS(134), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(196), 2, + ACTIONS(184), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(200), 4, + ACTIONS(188), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(194), 6, + ACTIONS(182), 6, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [2401] = 12, + [2303] = 12, ACTIONS(11), 1, sym_identifier, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(204), 1, + ACTIONS(192), 1, sym_number, - STATE(51), 1, + STATE(48), 1, sym_template_global, - STATE(178), 1, + STATE(173), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -5849,7 +5685,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(224), 2, + STATE(182), 2, sym__type, sym_array_type, ACTIONS(31), 7, @@ -5860,7 +5696,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(49), 7, + STATE(46), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -5868,15 +5704,15 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [2454] = 5, - ACTIONS(210), 1, + [2356] = 5, + ACTIONS(198), 1, anon_sym_LF, - STATE(47), 1, + STATE(44), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(206), 11, + ACTIONS(194), 11, anon_sym_interface, anon_sym_reg, anon_sym_initial, @@ -5888,7 +5724,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_gen, anon_sym_DASH, sym_identifier, - ACTIONS(208), 12, + ACTIONS(196), 12, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5901,148 +5737,148 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [2492] = 18, - ACTIONS(96), 1, + [2394] = 18, + ACTIONS(136), 1, + anon_sym_CARET, + ACTIONS(138), 1, + anon_sym_SLASH, + ACTIONS(142), 1, anon_sym_LPAREN, - ACTIONS(98), 1, + ACTIONS(144), 1, anon_sym_LBRACK, - ACTIONS(138), 1, + ACTIONS(146), 1, anon_sym_PIPE, - ACTIONS(140), 1, + ACTIONS(152), 1, anon_sym_AMP, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, - anon_sym_SLASH, - ACTIONS(202), 1, + ACTIONS(190), 1, anon_sym_DOT, - ACTIONS(213), 1, + ACTIONS(201), 1, anon_sym_RPAREN, - ACTIONS(215), 1, + ACTIONS(203), 1, anon_sym_COMMA, - STATE(39), 1, - sym_parenthesis_expression_list, - STATE(43), 1, + STATE(35), 1, sym_array_bracket_expression, - STATE(86), 1, + STATE(41), 1, + sym_parenthesis_expression_list, + STATE(64), 1, sym__comma, - STATE(169), 1, + STATE(161), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(132), 2, + ACTIONS(130), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(136), 2, + ACTIONS(134), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(196), 2, + ACTIONS(184), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(200), 4, + ACTIONS(188), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2554] = 16, - ACTIONS(96), 1, + [2456] = 16, + ACTIONS(136), 1, + anon_sym_CARET, + ACTIONS(138), 1, + anon_sym_SLASH, + ACTIONS(142), 1, anon_sym_LPAREN, - ACTIONS(98), 1, + ACTIONS(144), 1, anon_sym_LBRACK, - ACTIONS(138), 1, + ACTIONS(146), 1, anon_sym_PIPE, - ACTIONS(140), 1, + ACTIONS(152), 1, anon_sym_AMP, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, - anon_sym_SLASH, - ACTIONS(202), 1, + ACTIONS(190), 1, anon_sym_DOT, - ACTIONS(219), 1, + ACTIONS(207), 1, anon_sym_EQ, - STATE(39), 1, - sym_parenthesis_expression_list, - STATE(43), 1, + STATE(35), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(132), 2, + ACTIONS(130), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(136), 2, + ACTIONS(134), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(196), 2, + ACTIONS(184), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(217), 3, + ACTIONS(205), 3, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, - ACTIONS(200), 4, + ACTIONS(188), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2612] = 16, - ACTIONS(96), 1, + [2514] = 16, + ACTIONS(136), 1, + anon_sym_CARET, + ACTIONS(138), 1, + anon_sym_SLASH, + ACTIONS(142), 1, anon_sym_LPAREN, - ACTIONS(98), 1, + ACTIONS(144), 1, anon_sym_LBRACK, - ACTIONS(138), 1, + ACTIONS(146), 1, anon_sym_PIPE, - ACTIONS(140), 1, + ACTIONS(152), 1, anon_sym_AMP, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, - anon_sym_SLASH, - ACTIONS(202), 1, + ACTIONS(190), 1, anon_sym_DOT, - ACTIONS(223), 1, + ACTIONS(211), 1, anon_sym_EQ, - STATE(39), 1, - sym_parenthesis_expression_list, - STATE(43), 1, + STATE(35), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(132), 2, + ACTIONS(130), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(136), 2, + ACTIONS(134), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(196), 2, + ACTIONS(184), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(221), 3, + ACTIONS(209), 3, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, - ACTIONS(200), 4, + ACTIONS(188), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2670] = 5, - ACTIONS(225), 1, + [2572] = 5, + ACTIONS(213), 1, sym_identifier, - ACTIONS(231), 1, + ACTIONS(219), 1, anon_sym_LBRACK, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(227), 4, + ACTIONS(215), 4, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_SLASH, - ACTIONS(229), 16, + ACTIONS(217), 16, anon_sym_RBRACE, anon_sym_PLUS, anon_sym_DASH, @@ -6059,162 +5895,97 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COMMA, anon_sym_LF, - [2705] = 15, - ACTIONS(96), 1, + [2607] = 16, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(136), 1, + anon_sym_CARET, + ACTIONS(138), 1, + anon_sym_SLASH, + ACTIONS(142), 1, anon_sym_LPAREN, - ACTIONS(98), 1, + ACTIONS(144), 1, anon_sym_LBRACK, - ACTIONS(138), 1, + ACTIONS(146), 1, anon_sym_PIPE, - ACTIONS(140), 1, + ACTIONS(152), 1, anon_sym_AMP, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, - anon_sym_SLASH, - ACTIONS(202), 1, + ACTIONS(190), 1, anon_sym_DOT, - STATE(39), 1, - sym_parenthesis_expression_list, - STATE(43), 1, + STATE(35), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, + STATE(208), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(132), 2, + ACTIONS(130), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(136), 2, + ACTIONS(134), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(196), 2, + ACTIONS(184), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(234), 2, - anon_sym_RBRACE, - anon_sym_LF, - ACTIONS(200), 4, + ACTIONS(188), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2759] = 9, - ACTIONS(33), 1, - anon_sym_LPAREN, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(236), 1, - sym_identifier, - ACTIONS(238), 1, - anon_sym_GT, - ACTIONS(240), 1, - sym_number, - STATE(179), 1, - sym_template_value_param, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(31), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, + [2663] = 15, + ACTIONS(136), 1, anon_sym_CARET, - STATE(65), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_template_global, - [2801] = 9, - ACTIONS(33), 1, - anon_sym_LPAREN, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(236), 1, - sym_identifier, - ACTIONS(240), 1, - sym_number, - ACTIONS(242), 1, - anon_sym_GT, - STATE(181), 1, - sym_template_value_param, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(31), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(65), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_template_global, - [2843] = 15, - ACTIONS(96), 1, + ACTIONS(138), 1, + anon_sym_SLASH, + ACTIONS(142), 1, anon_sym_LPAREN, - ACTIONS(98), 1, + ACTIONS(144), 1, anon_sym_LBRACK, - ACTIONS(138), 1, + ACTIONS(146), 1, anon_sym_PIPE, - ACTIONS(140), 1, + ACTIONS(152), 1, anon_sym_AMP, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, - anon_sym_SLASH, - ACTIONS(202), 1, + ACTIONS(190), 1, anon_sym_DOT, - STATE(39), 1, - sym_parenthesis_expression_list, - STATE(43), 1, + STATE(35), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(132), 2, + ACTIONS(130), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(136), 2, + ACTIONS(134), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(196), 2, + ACTIONS(184), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(244), 2, + ACTIONS(222), 2, anon_sym_RPAREN, anon_sym_COMMA, - ACTIONS(200), 4, + ACTIONS(188), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2897] = 9, + [2717] = 9, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(236), 1, + ACTIONS(224), 1, sym_identifier, - ACTIONS(240), 1, - sym_number, - ACTIONS(246), 1, + ACTIONS(226), 1, anon_sym_GT, - STATE(198), 1, + ACTIONS(228), 1, + sym_number, + STATE(135), 1, sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, @@ -6227,7 +5998,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(65), 8, + STATE(58), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6236,18 +6007,18 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2939] = 9, + [2759] = 9, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(236), 1, + ACTIONS(224), 1, sym_identifier, - ACTIONS(240), 1, + ACTIONS(228), 1, sym_number, - ACTIONS(248), 1, + ACTIONS(230), 1, anon_sym_GT, - STATE(210), 1, + STATE(159), 1, sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, @@ -6260,7 +6031,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(65), 8, + STATE(58), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6269,21 +6040,21 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2981] = 6, + [2801] = 6, ACTIONS(61), 1, anon_sym_COLON_COLON, - ACTIONS(250), 1, + ACTIONS(232), 1, anon_sym_EQ, - STATE(12), 1, + STATE(13), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 3, + ACTIONS(71), 3, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - ACTIONS(80), 15, + ACTIONS(73), 15, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6299,18 +6070,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACK, anon_sym_COMMA, - [3017] = 9, + [2837] = 9, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(236), 1, + ACTIONS(224), 1, sym_identifier, - ACTIONS(240), 1, + ACTIONS(228), 1, sym_number, - ACTIONS(252), 1, + ACTIONS(234), 1, anon_sym_GT, - STATE(201), 1, + STATE(171), 1, sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, @@ -6323,7 +6094,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(65), 8, + STATE(58), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6332,130 +6103,172 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3059] = 16, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(96), 1, + [2879] = 15, + ACTIONS(136), 1, + anon_sym_CARET, + ACTIONS(138), 1, + anon_sym_SLASH, + ACTIONS(142), 1, anon_sym_LPAREN, - ACTIONS(98), 1, + ACTIONS(144), 1, anon_sym_LBRACK, - ACTIONS(138), 1, + ACTIONS(146), 1, anon_sym_PIPE, - ACTIONS(140), 1, + ACTIONS(152), 1, anon_sym_AMP, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, - anon_sym_SLASH, - ACTIONS(202), 1, + ACTIONS(190), 1, anon_sym_DOT, - STATE(39), 1, - sym_parenthesis_expression_list, - STATE(43), 1, + STATE(35), 1, sym_array_bracket_expression, - STATE(215), 1, - sym_block, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(132), 2, + ACTIONS(130), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(136), 2, + ACTIONS(134), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(196), 2, + ACTIONS(184), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(200), 4, + ACTIONS(236), 2, + anon_sym_RBRACE, + anon_sym_LF, + ACTIONS(188), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3115] = 16, + [2933] = 16, ACTIONS(13), 1, anon_sym_LBRACE, - ACTIONS(96), 1, + ACTIONS(136), 1, + anon_sym_CARET, + ACTIONS(138), 1, + anon_sym_SLASH, + ACTIONS(142), 1, anon_sym_LPAREN, - ACTIONS(98), 1, + ACTIONS(144), 1, anon_sym_LBRACK, - ACTIONS(138), 1, + ACTIONS(146), 1, anon_sym_PIPE, - ACTIONS(140), 1, + ACTIONS(152), 1, anon_sym_AMP, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, - anon_sym_SLASH, - ACTIONS(202), 1, + ACTIONS(190), 1, anon_sym_DOT, - STATE(39), 1, - sym_parenthesis_expression_list, - STATE(43), 1, + STATE(35), 1, sym_array_bracket_expression, - STATE(231), 1, + STATE(41), 1, + sym_parenthesis_expression_list, + STATE(181), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(132), 2, + ACTIONS(130), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(136), 2, + ACTIONS(134), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(196), 2, + ACTIONS(184), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(200), 4, + ACTIONS(188), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3171] = 9, - ACTIONS(33), 1, + [2989] = 15, + ACTIONS(136), 1, + anon_sym_CARET, + ACTIONS(138), 1, + anon_sym_SLASH, + ACTIONS(142), 1, anon_sym_LPAREN, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(236), 1, - sym_identifier, - ACTIONS(240), 1, - sym_number, - ACTIONS(254), 1, - anon_sym_GT, - STATE(184), 1, - sym_template_value_param, + ACTIONS(144), 1, + anon_sym_LBRACK, + ACTIONS(146), 1, + anon_sym_PIPE, + ACTIONS(152), 1, + anon_sym_AMP, + ACTIONS(190), 1, + anon_sym_DOT, + ACTIONS(238), 1, + anon_sym_RBRACK, + STATE(35), 1, + sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(130), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(134), 2, anon_sym_STAR, - anon_sym_BANG, + anon_sym_PERCENT, + ACTIONS(184), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(188), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [3042] = 15, + ACTIONS(136), 1, + anon_sym_CARET, + ACTIONS(138), 1, + anon_sym_SLASH, + ACTIONS(142), 1, + anon_sym_LPAREN, + ACTIONS(144), 1, + anon_sym_LBRACK, + ACTIONS(146), 1, anon_sym_PIPE, + ACTIONS(152), 1, anon_sym_AMP, - anon_sym_CARET, - STATE(65), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_template_global, - [3213] = 8, + ACTIONS(190), 1, + anon_sym_DOT, + ACTIONS(240), 1, + anon_sym_COMMA, + STATE(35), 1, + sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(130), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(134), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(184), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(188), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [3095] = 8, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(236), 1, + ACTIONS(242), 1, sym_identifier, - ACTIONS(240), 1, + ACTIONS(244), 1, + anon_sym_RPAREN, + ACTIONS(246), 1, sym_number, - STATE(242), 1, - sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6467,7 +6280,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(65), 8, + STATE(45), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6476,169 +6289,131 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3252] = 15, - ACTIONS(96), 1, - anon_sym_LPAREN, - ACTIONS(98), 1, - anon_sym_LBRACK, + [3134] = 15, + ACTIONS(136), 1, + anon_sym_CARET, ACTIONS(138), 1, - anon_sym_PIPE, + anon_sym_SLASH, ACTIONS(140), 1, - anon_sym_AMP, + anon_sym_DOT, ACTIONS(142), 1, - anon_sym_CARET, + anon_sym_LPAREN, ACTIONS(144), 1, - anon_sym_SLASH, - ACTIONS(202), 1, - anon_sym_DOT, - ACTIONS(256), 1, - anon_sym_COMMA, - STATE(39), 1, - sym_parenthesis_expression_list, - STATE(43), 1, + anon_sym_LBRACK, + ACTIONS(146), 1, + anon_sym_PIPE, + ACTIONS(152), 1, + anon_sym_AMP, + ACTIONS(248), 1, + anon_sym_DOT_DOT, + STATE(35), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(132), 2, + ACTIONS(130), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(136), 2, + ACTIONS(134), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(196), 2, + ACTIONS(184), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(200), 4, + ACTIONS(188), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3305] = 15, - ACTIONS(96), 1, + [3187] = 15, + ACTIONS(136), 1, + anon_sym_CARET, + ACTIONS(138), 1, + anon_sym_SLASH, + ACTIONS(142), 1, anon_sym_LPAREN, - ACTIONS(98), 1, + ACTIONS(144), 1, anon_sym_LBRACK, - ACTIONS(138), 1, + ACTIONS(146), 1, anon_sym_PIPE, - ACTIONS(140), 1, + ACTIONS(152), 1, anon_sym_AMP, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, - anon_sym_SLASH, - ACTIONS(202), 1, + ACTIONS(190), 1, anon_sym_DOT, - ACTIONS(258), 1, - anon_sym_COMMA, - STATE(39), 1, - sym_parenthesis_expression_list, - STATE(43), 1, + ACTIONS(250), 1, + anon_sym_RPAREN, + STATE(35), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(132), 2, + ACTIONS(130), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(136), 2, + ACTIONS(134), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(196), 2, + ACTIONS(184), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(200), 4, + ACTIONS(188), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3358] = 15, - ACTIONS(96), 1, + [3240] = 15, + ACTIONS(136), 1, + anon_sym_CARET, + ACTIONS(138), 1, + anon_sym_SLASH, + ACTIONS(142), 1, anon_sym_LPAREN, - ACTIONS(98), 1, + ACTIONS(144), 1, anon_sym_LBRACK, - ACTIONS(138), 1, + ACTIONS(146), 1, anon_sym_PIPE, - ACTIONS(140), 1, + ACTIONS(152), 1, anon_sym_AMP, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, - anon_sym_SLASH, - ACTIONS(202), 1, + ACTIONS(190), 1, anon_sym_DOT, - ACTIONS(260), 1, - anon_sym_RBRACK, - STATE(39), 1, - sym_parenthesis_expression_list, - STATE(43), 1, + ACTIONS(252), 1, + anon_sym_COMMA, + STATE(35), 1, sym_array_bracket_expression, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(132), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(136), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(196), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(200), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [3411] = 15, - ACTIONS(96), 1, - anon_sym_LPAREN, - ACTIONS(98), 1, - anon_sym_LBRACK, - ACTIONS(138), 1, - anon_sym_PIPE, - ACTIONS(140), 1, - anon_sym_AMP, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, - anon_sym_SLASH, - ACTIONS(202), 1, - anon_sym_DOT, - ACTIONS(262), 1, - anon_sym_RBRACK, - STATE(39), 1, + STATE(41), 1, sym_parenthesis_expression_list, - STATE(43), 1, - sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(132), 2, + ACTIONS(130), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(136), 2, + ACTIONS(134), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(196), 2, + ACTIONS(184), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(200), 4, + ACTIONS(188), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3464] = 8, + [3293] = 8, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(264), 1, + ACTIONS(224), 1, sym_identifier, - ACTIONS(266), 1, - anon_sym_RPAREN, - ACTIONS(268), 1, + ACTIONS(228), 1, sym_number, + STATE(190), 1, + sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6650,7 +6425,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(48), 8, + STATE(58), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6659,90 +6434,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3503] = 15, - ACTIONS(96), 1, - anon_sym_LPAREN, - ACTIONS(98), 1, - anon_sym_LBRACK, - ACTIONS(138), 1, - anon_sym_PIPE, - ACTIONS(140), 1, - anon_sym_AMP, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, - anon_sym_SLASH, - ACTIONS(202), 1, - anon_sym_DOT, - ACTIONS(270), 1, - anon_sym_RPAREN, - STATE(39), 1, - sym_parenthesis_expression_list, - STATE(43), 1, - sym_array_bracket_expression, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(132), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(136), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(196), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(200), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [3556] = 15, - ACTIONS(94), 1, - anon_sym_DOT, - ACTIONS(96), 1, - anon_sym_LPAREN, - ACTIONS(98), 1, - anon_sym_LBRACK, - ACTIONS(138), 1, - anon_sym_PIPE, - ACTIONS(140), 1, - anon_sym_AMP, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, - anon_sym_SLASH, - ACTIONS(272), 1, - anon_sym_DOT_DOT, - STATE(39), 1, - sym_parenthesis_expression_list, - STATE(43), 1, - sym_array_bracket_expression, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(132), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(136), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(196), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(200), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [3609] = 7, + [3332] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(264), 1, + ACTIONS(242), 1, sym_identifier, - ACTIONS(274), 1, + ACTIONS(254), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6755,7 +6454,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(70), 8, + STATE(50), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6764,14 +6463,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3645] = 7, + [3368] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(264), 1, + ACTIONS(242), 1, sym_identifier, - ACTIONS(276), 1, + ACTIONS(256), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6784,7 +6483,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(19), 8, + STATE(55), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6793,14 +6492,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3681] = 7, + [3404] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(264), 1, + ACTIONS(242), 1, sym_identifier, - ACTIONS(278), 1, + ACTIONS(258), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6813,7 +6512,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(45), 8, + STATE(56), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6822,19 +6521,23 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3717] = 7, - ACTIONS(33), 1, - anon_sym_LPAREN, - ACTIONS(35), 1, - anon_sym_COLON_COLON, + [3440] = 5, ACTIONS(264), 1, - sym_identifier, - ACTIONS(280), 1, - sym_number, + anon_sym_LF, + STATE(79), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(260), 7, + anon_sym_reg, + anon_sym_initial, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(262), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6842,52 +6545,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(64), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_template_global, - [3753] = 7, - ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(264), 1, - sym_identifier, - ACTIONS(282), 1, sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(31), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(67), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_template_global, - [3789] = 7, + [3472] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(264), 1, + ACTIONS(242), 1, sym_identifier, - ACTIONS(284), 1, + ACTIONS(266), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6900,7 +6568,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(35), 8, + STATE(30), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6909,14 +6577,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3825] = 7, + [3508] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(264), 1, + ACTIONS(242), 1, sym_identifier, - ACTIONS(286), 1, + ACTIONS(268), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6929,7 +6597,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(34), 8, + STATE(29), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6938,14 +6606,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3861] = 7, + [3544] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(264), 1, + ACTIONS(242), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(270), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6958,7 +6626,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(33), 8, + STATE(57), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6967,41 +6635,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3897] = 5, - ACTIONS(294), 1, - anon_sym_LF, - STATE(88), 1, - aux_sym__linebreak, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(290), 7, - anon_sym_reg, - anon_sym_initial, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(292), 10, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_COLON_COLON, - sym_number, - [3929] = 7, + [3580] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(264), 1, + ACTIONS(242), 1, sym_identifier, - ACTIONS(296), 1, + ACTIONS(272), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7014,7 +6655,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(32), 8, + STATE(28), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7023,14 +6664,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3965] = 7, + [3616] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(264), 1, + ACTIONS(242), 1, sym_identifier, - ACTIONS(298), 1, + ACTIONS(274), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7043,7 +6684,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(30), 8, + STATE(60), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7052,14 +6693,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [4001] = 7, + [3652] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(264), 1, + ACTIONS(242), 1, sym_identifier, - ACTIONS(300), 1, + ACTIONS(276), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7072,7 +6713,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(66), 8, + STATE(31), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7081,14 +6722,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [4037] = 7, + [3688] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(264), 1, + ACTIONS(242), 1, sym_identifier, - ACTIONS(302), 1, + ACTIONS(278), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7101,7 +6742,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(27), 8, + STATE(33), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7110,14 +6751,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [4073] = 7, + [3724] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(264), 1, + ACTIONS(242), 1, sym_identifier, - ACTIONS(304), 1, + ACTIONS(280), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7130,7 +6771,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(61), 8, + STATE(62), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7139,14 +6780,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [4109] = 7, + [3760] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(264), 1, + ACTIONS(242), 1, sym_identifier, - ACTIONS(306), 1, + ACTIONS(282), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7159,7 +6800,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(52), 8, + STATE(42), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7168,14 +6809,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [4145] = 7, + [3796] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(264), 1, + ACTIONS(242), 1, sym_identifier, - ACTIONS(308), 1, + ACTIONS(284), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7188,7 +6829,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(55), 8, + STATE(34), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7197,14 +6838,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [4181] = 7, + [3832] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(264), 1, + ACTIONS(242), 1, sym_identifier, - ACTIONS(310), 1, + ACTIONS(286), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7217,7 +6858,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(69), 8, + STATE(61), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7226,15 +6867,15 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [4217] = 5, + [3868] = 5, ACTIONS(39), 1, anon_sym_LF, - STATE(47), 1, + STATE(44), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(312), 7, + ACTIONS(288), 7, anon_sym_reg, anon_sym_initial, anon_sym_input, @@ -7242,7 +6883,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(314), 10, + ACTIONS(290), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7253,14 +6894,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [4249] = 7, + [3900] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(264), 1, + ACTIONS(242), 1, sym_identifier, - ACTIONS(316), 1, + ACTIONS(292), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7273,7 +6914,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(60), 8, + STATE(32), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7282,21 +6923,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [4285] = 5, - ACTIONS(320), 1, - anon_sym_reg, - STATE(90), 1, - aux_sym_write_modifiers_repeat1, + [3936] = 7, + ACTIONS(33), 1, + anon_sym_LPAREN, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(242), 1, + sym_identifier, + ACTIONS(294), 1, + sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(318), 5, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(323), 10, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7304,24 +6943,55 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_COLON_COLON, - sym_number, - [4315] = 5, + STATE(49), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_template_global, + [3972] = 5, ACTIONS(19), 1, anon_sym_reg, - STATE(90), 1, + STATE(83), 1, + aux_sym_write_modifiers_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(296), 5, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(298), 10, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, + [4002] = 5, + ACTIONS(302), 1, + anon_sym_reg, + STATE(83), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(325), 5, + ACTIONS(300), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(327), 10, + ACTIONS(305), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7332,18 +7002,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [4345] = 3, + [4032] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(329), 6, + ACTIONS(307), 6, anon_sym_reg, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(331), 10, + ACTIONS(309), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7354,22 +7024,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [4370] = 12, + [4057] = 12, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(333), 1, - anon_sym_DASH_GT, - ACTIONS(335), 1, + ACTIONS(39), 1, anon_sym_LF, - STATE(94), 1, + ACTIONS(311), 1, + anon_sym_DASH_GT, + STATE(44), 1, aux_sym__linebreak, - STATE(110), 1, + STATE(104), 1, sym_declaration, - STATE(141), 1, + STATE(122), 1, sym_declaration_list, - STATE(223), 1, + STATE(189), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, @@ -7380,26 +7050,26 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(224), 3, + STATE(182), 3, sym__type, sym_array_type, sym_template_global, - [4412] = 12, + [4099] = 12, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(39), 1, - anon_sym_LF, - ACTIONS(333), 1, + ACTIONS(311), 1, anon_sym_DASH_GT, - STATE(47), 1, + ACTIONS(313), 1, + anon_sym_LF, + STATE(85), 1, aux_sym__linebreak, - STATE(110), 1, + STATE(104), 1, sym_declaration, - STATE(152), 1, + STATE(120), 1, sym_declaration_list, - STATE(214), 1, + STATE(180), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, @@ -7410,21 +7080,21 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(224), 3, + STATE(182), 3, sym__type, sym_array_type, sym_template_global, - [4454] = 3, + [4141] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(337), 5, + ACTIONS(315), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(339), 10, + ACTIONS(317), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7435,18 +7105,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [4478] = 10, + [4165] = 10, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, ACTIONS(39), 1, anon_sym_LF, - STATE(47), 1, + STATE(44), 1, aux_sym__linebreak, - STATE(110), 1, + STATE(104), 1, sym_declaration, - STATE(219), 1, + STATE(186), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, @@ -7457,22 +7127,22 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(224), 3, + STATE(182), 3, sym__type, sym_array_type, sym_template_global, - [4514] = 10, + [4201] = 10, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(341), 1, + ACTIONS(319), 1, anon_sym_LF, - STATE(96), 1, + STATE(88), 1, aux_sym__linebreak, - STATE(110), 1, + STATE(104), 1, sym_declaration, - STATE(227), 1, + STATE(183), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, @@ -7483,16 +7153,16 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(224), 3, + STATE(182), 3, sym__type, sym_array_type, sym_template_global, - [4550] = 7, + [4237] = 7, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, - STATE(136), 1, + STATE(118), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -7503,16 +7173,16 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(224), 3, + STATE(182), 3, sym__type, sym_array_type, sym_template_global, - [4577] = 7, + [4264] = 7, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, - STATE(252), 1, + STATE(213), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -7523,19 +7193,19 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(224), 3, + STATE(182), 3, sym__type, sym_array_type, sym_template_global, - [4604] = 4, - ACTIONS(345), 1, + [4291] = 4, + ACTIONS(323), 1, anon_sym_SQUOTE, - STATE(108), 1, + STATE(98), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(343), 7, + ACTIONS(321), 7, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -7543,15 +7213,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [4624] = 4, - ACTIONS(345), 1, + [4311] = 4, + ACTIONS(323), 1, anon_sym_SQUOTE, - STATE(112), 1, + STATE(102), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(347), 7, + ACTIONS(325), 7, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -7559,15 +7229,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [4644] = 4, - ACTIONS(345), 1, + [4331] = 4, + ACTIONS(323), 1, anon_sym_SQUOTE, - STATE(109), 1, + STATE(99), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(349), 7, + ACTIONS(327), 7, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -7575,15 +7245,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [4664] = 4, - ACTIONS(345), 1, + [4351] = 4, + ACTIONS(323), 1, anon_sym_SQUOTE, - STATE(114), 1, + STATE(96), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(351), 7, + ACTIONS(329), 7, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -7591,77 +7261,38 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [4684] = 7, - ACTIONS(353), 1, - sym_identifier, - ACTIONS(355), 1, - anon_sym_GT, - ACTIONS(357), 1, - anon_sym_COLON_COLON, - ACTIONS(359), 1, - anon_sym_SEMI, - STATE(156), 1, - sym_template_type_param, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(158), 3, - sym__type, - sym_array_type, - sym_template_global, - [4709] = 7, - ACTIONS(353), 1, - sym_identifier, - ACTIONS(357), 1, - anon_sym_COLON_COLON, - ACTIONS(361), 1, - anon_sym_GT, - ACTIONS(363), 1, - anon_sym_SEMI, - STATE(125), 1, - sym_template_type_param, + [4371] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(158), 3, - sym__type, - sym_array_type, - sym_template_global, - [4734] = 5, - ACTIONS(367), 1, + ACTIONS(331), 7, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, anon_sym_COMMA, - STATE(98), 1, + anon_sym_LF, + [4385] = 5, + ACTIONS(335), 1, + anon_sym_COMMA, + STATE(90), 1, sym__comma, - STATE(106), 1, + STATE(97), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(365), 4, + ACTIONS(333), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4754] = 5, - ACTIONS(370), 1, - anon_sym_EQ, - ACTIONS(372), 1, - anon_sym_COLON_COLON, - STATE(121), 1, - aux_sym_template_global_repeat1, + [4405] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_SEMI, - anon_sym_COMMA, - [4774] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(374), 7, + ACTIONS(338), 7, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -7669,11 +7300,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [4788] = 2, + [4419] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(376), 7, + ACTIONS(340), 7, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -7681,22 +7312,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [4802] = 5, - ACTIONS(215), 1, + [4433] = 5, + ACTIONS(203), 1, anon_sym_COMMA, - STATE(98), 1, + STATE(90), 1, sym__comma, - STATE(113), 1, + STATE(97), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(378), 4, + ACTIONS(342), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4822] = 5, + [4453] = 5, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, @@ -7704,18 +7335,18 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(380), 2, + ACTIONS(344), 2, anon_sym_state, anon_sym_gen, - STATE(225), 3, + STATE(184), 3, sym__type, sym_array_type, sym_template_global, - [4842] = 2, + [4473] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(382), 7, + ACTIONS(346), 7, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -7723,1462 +7354,1151 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [4856] = 5, - ACTIONS(215), 1, + [4487] = 6, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(348), 1, + sym_identifier, + ACTIONS(350), 1, + anon_sym_SEMI, + STATE(151), 1, + sym_template_type_param, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(150), 3, + sym__type, + sym_array_type, + sym_template_global, + [4509] = 5, + ACTIONS(203), 1, anon_sym_COMMA, - STATE(98), 1, + STATE(90), 1, sym__comma, - STATE(106), 1, + STATE(100), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(384), 4, + ACTIONS(352), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4876] = 2, + [4529] = 5, + ACTIONS(203), 1, + anon_sym_COMMA, + STATE(14), 1, + sym__comma, + STATE(109), 1, + aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(386), 7, - anon_sym_DASH_GT, - anon_sym_LBRACE, + ACTIONS(354), 3, anon_sym_RBRACE, anon_sym_EQ, - anon_sym_in, - anon_sym_COMMA, anon_sym_LF, - [4890] = 5, - ACTIONS(353), 1, - sym_identifier, - ACTIONS(357), 1, + [4548] = 5, + ACTIONS(35), 1, anon_sym_COLON_COLON, - STATE(220), 1, + ACTIONS(348), 1, + sym_identifier, + STATE(197), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(158), 3, + STATE(150), 3, sym__type, sym_array_type, sym_template_global, - [4909] = 5, - ACTIONS(390), 1, - anon_sym_COMMA, - STATE(11), 1, - sym__comma, - STATE(116), 1, - aux_sym_assign_left_side_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(388), 3, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_LF, - [4928] = 7, + [4567] = 7, ACTIONS(13), 1, anon_sym_LBRACE, - ACTIONS(393), 1, + ACTIONS(356), 1, anon_sym_COLON, - ACTIONS(395), 1, + ACTIONS(358), 1, anon_sym_LT, - STATE(204), 1, + STATE(160), 1, sym_template_declaration_arguments, - STATE(229), 1, - sym_interface_ports, - STATE(243), 1, + STATE(191), 1, sym_block, + STATE(193), 1, + sym_interface_ports, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4951] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, - STATE(11), 1, - sym__comma, - STATE(116), 1, - aux_sym_assign_left_side_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(397), 3, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_LF, - [4970] = 4, - ACTIONS(399), 1, - anon_sym_COLON_COLON, - STATE(119), 1, - aux_sym_template_global_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(73), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_SEMI, - anon_sym_COMMA, - [4987] = 4, - ACTIONS(372), 1, - anon_sym_COLON_COLON, - STATE(119), 1, - aux_sym_template_global_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(69), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_SEMI, - anon_sym_COMMA, - [5004] = 4, - ACTIONS(372), 1, + [4590] = 5, + ACTIONS(61), 1, anon_sym_COLON_COLON, - STATE(119), 1, + ACTIONS(360), 1, + anon_sym_EQ, + STATE(13), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(59), 4, - anon_sym_GT, + ACTIONS(73), 3, anon_sym_LBRACK, anon_sym_SEMI, anon_sym_COMMA, - [5021] = 4, - ACTIONS(372), 1, - anon_sym_COLON_COLON, - STATE(120), 1, - aux_sym_template_global_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(65), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_SEMI, + [4609] = 5, + ACTIONS(364), 1, anon_sym_COMMA, - [5038] = 4, - ACTIONS(372), 1, - anon_sym_COLON_COLON, - STATE(121), 1, - aux_sym_template_global_repeat1, + STATE(14), 1, + sym__comma, + STATE(109), 1, + aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_SEMI, - anon_sym_COMMA, - [5055] = 5, - ACTIONS(215), 1, + ACTIONS(362), 3, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_LF, + [4628] = 5, + ACTIONS(203), 1, anon_sym_COMMA, - STATE(11), 1, + STATE(14), 1, sym__comma, - STATE(118), 1, + STATE(105), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(402), 3, + ACTIONS(367), 3, anon_sym_RBRACE, anon_sym_EQ, anon_sym_LF, - [5074] = 6, - ACTIONS(215), 1, - anon_sym_COMMA, - ACTIONS(404), 1, - anon_sym_GT, - ACTIONS(406), 1, - anon_sym_SEMI, - STATE(115), 1, - sym__comma, - STATE(135), 1, - aux_sym_template_params_repeat1, + [4647] = 4, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(242), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5094] = 2, + STATE(176), 3, + sym__type, + sym_array_type, + sym_template_global, + [4663] = 6, + ACTIONS(369), 1, + anon_sym_RBRACE, + ACTIONS(371), 1, + anon_sym_EQ, + ACTIONS(373), 1, + anon_sym_LF, + STATE(4), 1, + aux_sym__linebreak, + STATE(144), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(160), 5, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_SEMI, - anon_sym_COMMA, - [5106] = 6, + [4683] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(408), 1, + ACTIONS(375), 1, ts_builtin_sym_end, - ACTIONS(410), 1, + ACTIONS(377), 1, anon_sym_LF, - STATE(211), 1, + STATE(166), 1, aux_sym__linebreak, - STATE(244), 1, + STATE(167), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5126] = 6, + [4703] = 4, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(242), 1, + sym_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(132), 3, + sym__type, + sym_array_type, + sym_template_global, + [4719] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(410), 1, + ACTIONS(377), 1, anon_sym_LF, - ACTIONS(412), 1, + ACTIONS(379), 1, ts_builtin_sym_end, - STATE(211), 1, + STATE(166), 1, aux_sym__linebreak, - STATE(244), 1, + STATE(195), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5146] = 4, - ACTIONS(416), 1, - anon_sym_LBRACK, - STATE(154), 1, - sym_array_bracket_expression, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(414), 3, - anon_sym_GT, - anon_sym_SEMI, - anon_sym_COMMA, - [5162] = 6, + [4739] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(410), 1, + ACTIONS(377), 1, anon_sym_LF, - ACTIONS(418), 1, + ACTIONS(381), 1, ts_builtin_sym_end, - STATE(211), 1, + STATE(166), 1, aux_sym__linebreak, - STATE(244), 1, + STATE(195), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5182] = 6, - ACTIONS(420), 1, - anon_sym_RBRACE, - ACTIONS(422), 1, - anon_sym_EQ, - ACTIONS(424), 1, + [4759] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(377), 1, anon_sym_LF, - STATE(7), 1, + ACTIONS(383), 1, + ts_builtin_sym_end, + STATE(166), 1, aux_sym__linebreak, - STATE(172), 1, - aux_sym_block_repeat1, + STATE(195), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5202] = 2, + [4779] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(156), 5, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_SEMI, - anon_sym_COMMA, - [5214] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(148), 5, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_SEMI, - anon_sym_COMMA, - [5226] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(118), 5, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_SEMI, - anon_sym_COMMA, - [5238] = 6, - ACTIONS(215), 1, - anon_sym_COMMA, - ACTIONS(426), 1, - anon_sym_GT, - ACTIONS(428), 1, - anon_sym_SEMI, - STATE(115), 1, - sym__comma, - STATE(142), 1, - aux_sym_template_params_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5258] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(430), 5, + ACTIONS(385), 5, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, - [5270] = 4, + [4791] = 4, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(264), 1, - sym_identifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(226), 3, - sym__type, - sym_array_type, - sym_template_global, - [5286] = 4, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(264), 1, - sym_identifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(218), 3, - sym__type, - sym_array_type, - sym_template_global, - [5302] = 4, - ACTIONS(357), 1, - anon_sym_COLON_COLON, - ACTIONS(432), 1, + ACTIONS(242), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(129), 3, + STATE(177), 3, sym__type, sym_array_type, sym_template_global, - [5318] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(84), 5, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_SEMI, - anon_sym_COMMA, - [5330] = 4, - ACTIONS(333), 1, + [4807] = 4, + ACTIONS(311), 1, anon_sym_DASH_GT, - STATE(216), 1, + STATE(188), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(434), 3, + ACTIONS(387), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [5346] = 5, - ACTIONS(438), 1, - anon_sym_COMMA, - STATE(115), 1, - sym__comma, - STATE(142), 1, - aux_sym_template_params_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(436), 2, - anon_sym_GT, - anon_sym_SEMI, - [5364] = 6, - ACTIONS(422), 1, + [4823] = 6, + ACTIONS(371), 1, anon_sym_EQ, - ACTIONS(441), 1, + ACTIONS(389), 1, anon_sym_RBRACE, - ACTIONS(443), 1, + ACTIONS(391), 1, anon_sym_LF, - STATE(3), 1, + STATE(9), 1, aux_sym__linebreak, - STATE(174), 1, + STATE(170), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5384] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(410), 1, - anon_sym_LF, - ACTIONS(445), 1, - ts_builtin_sym_end, - STATE(211), 1, - aux_sym__linebreak, - STATE(244), 1, - sym_module, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5404] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(106), 5, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_SEMI, - anon_sym_COMMA, - [5416] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(152), 5, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_SEMI, - anon_sym_COMMA, - [5428] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(126), 5, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_SEMI, - anon_sym_COMMA, - [5440] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(122), 5, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_SEMI, - anon_sym_COMMA, - [5452] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(114), 5, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_SEMI, - anon_sym_COMMA, - [5464] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(88), 5, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_SEMI, - anon_sym_COMMA, - [5476] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(110), 5, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_SEMI, - anon_sym_COMMA, - [5488] = 4, - ACTIONS(333), 1, + [4843] = 4, + ACTIONS(311), 1, anon_sym_DASH_GT, - STATE(217), 1, + STATE(185), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(447), 3, + ACTIONS(393), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [5504] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(102), 5, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_SEMI, - anon_sym_COMMA, - [5516] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(449), 5, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_SEMI, - sym_identifier, - anon_sym_COMMA, - [5528] = 6, + [4859] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(410), 1, + ACTIONS(377), 1, anon_sym_LF, - ACTIONS(451), 1, + ACTIONS(395), 1, ts_builtin_sym_end, - STATE(208), 1, - sym_module, - STATE(211), 1, + STATE(166), 1, aux_sym__linebreak, + STATE(195), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5548] = 6, - ACTIONS(215), 1, - anon_sym_COMMA, - ACTIONS(453), 1, - anon_sym_GT, - ACTIONS(455), 1, - anon_sym_SEMI, - STATE(115), 1, - sym__comma, - STATE(157), 1, - aux_sym_template_params_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5568] = 6, - ACTIONS(215), 1, - anon_sym_COMMA, - ACTIONS(457), 1, - anon_sym_GT, - ACTIONS(459), 1, - anon_sym_SEMI, - STATE(115), 1, - sym__comma, - STATE(142), 1, - aux_sym_template_params_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5588] = 4, - ACTIONS(416), 1, - anon_sym_LBRACK, - STATE(154), 1, - sym_array_bracket_expression, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(461), 3, - anon_sym_GT, - anon_sym_SEMI, - anon_sym_COMMA, - [5604] = 4, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(463), 1, - anon_sym_if, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(237), 2, - sym_block, - sym_if_statement, - [5619] = 2, + [4879] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(465), 4, + ACTIONS(397), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5630] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(467), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5641] = 4, - ACTIONS(393), 1, + [4890] = 4, + ACTIONS(356), 1, anon_sym_COLON, - STATE(230), 1, + STATE(207), 1, sym_interface_ports, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(469), 2, + ACTIONS(399), 2, anon_sym_RBRACE, anon_sym_LF, - [5656] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, - ACTIONS(471), 1, + [4905] = 5, + ACTIONS(401), 1, anon_sym_GT, - STATE(194), 1, + ACTIONS(403), 1, + anon_sym_COMMA, + STATE(126), 1, aux_sym_template_declaration_arguments_repeat1, - STATE(239), 1, + STATE(204), 1, sym__comma, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5673] = 2, + [4922] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(473), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5684] = 2, + ACTIONS(406), 4, + anon_sym_LBRACK, + anon_sym_SEMI, + sym_identifier, + anon_sym_COMMA, + [4933] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(475), 4, + ACTIONS(408), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5695] = 2, + [4944] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(473), 4, + ACTIONS(410), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5706] = 5, - ACTIONS(215), 1, + [4955] = 5, + ACTIONS(203), 1, anon_sym_COMMA, - ACTIONS(477), 1, + ACTIONS(412), 1, anon_sym_GT, STATE(63), 1, sym__comma, - STATE(207), 1, + STATE(145), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5723] = 5, - ACTIONS(479), 1, + [4972] = 5, + ACTIONS(414), 1, anon_sym_RBRACE, - ACTIONS(481), 1, + ACTIONS(416), 1, anon_sym_LF, - STATE(4), 1, + STATE(10), 1, aux_sym__linebreak, - STATE(188), 1, + STATE(131), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5740] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, - ACTIONS(483), 1, - anon_sym_RPAREN, - STATE(86), 1, - sym__comma, - STATE(189), 1, - aux_sym_parenthesis_expression_list_repeat1, + [4989] = 4, + ACTIONS(144), 1, + anon_sym_LBRACK, + STATE(127), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5757] = 2, + ACTIONS(419), 2, + anon_sym_SEMI, + anon_sym_COMMA, + [5004] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(485), 4, + ACTIONS(410), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5768] = 2, + [5015] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(487), 4, - ts_builtin_sym_end, + ACTIONS(421), 4, anon_sym_RBRACE, - anon_sym_else, + anon_sym_EQ, + anon_sym_COMMA, anon_sym_LF, - [5779] = 5, - ACTIONS(489), 1, - anon_sym_RBRACE, - ACTIONS(491), 1, + [5026] = 5, + ACTIONS(203), 1, + anon_sym_COMMA, + ACTIONS(423), 1, + anon_sym_GT, + STATE(63), 1, + sym__comma, + STATE(147), 1, + aux_sym_template_params_repeat2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5043] = 5, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(377), 1, anon_sym_LF, - STATE(2), 1, + STATE(166), 1, aux_sym__linebreak, - STATE(188), 1, - aux_sym_block_repeat1, + STATE(195), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5796] = 2, + [5060] = 5, + ACTIONS(425), 1, + anon_sym_SEMI, + ACTIONS(427), 1, + anon_sym_COMMA, + STATE(106), 1, + sym__comma, + STATE(137), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(487), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5807] = 5, - ACTIONS(493), 1, - anon_sym_RBRACE, - ACTIONS(495), 1, - anon_sym_LF, - STATE(5), 1, - aux_sym__linebreak, - STATE(188), 1, - aux_sym_block_repeat1, + [5077] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5824] = 5, - ACTIONS(497), 1, + ACTIONS(209), 4, anon_sym_RBRACE, - ACTIONS(499), 1, + anon_sym_EQ, + anon_sym_COMMA, + anon_sym_LF, + [5088] = 5, + ACTIONS(389), 1, + anon_sym_RBRACE, + ACTIONS(391), 1, anon_sym_LF, STATE(9), 1, aux_sym__linebreak, - STATE(188), 1, + STATE(169), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5841] = 2, + [5105] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(501), 4, + ACTIONS(430), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5852] = 5, - ACTIONS(441), 1, - anon_sym_RBRACE, - ACTIONS(443), 1, - anon_sym_LF, - STATE(3), 1, - aux_sym__linebreak, - STATE(168), 1, - aux_sym_block_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5869] = 2, + [5116] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(217), 4, + ACTIONS(432), 4, + ts_builtin_sym_end, anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COMMA, + anon_sym_else, anon_sym_LF, - [5880] = 5, - ACTIONS(215), 1, + [5127] = 5, + ACTIONS(203), 1, anon_sym_COMMA, - ACTIONS(503), 1, + ACTIONS(434), 1, anon_sym_GT, - STATE(63), 1, + STATE(148), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(204), 1, sym__comma, - STATE(195), 1, - aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5897] = 2, + [5144] = 5, + ACTIONS(436), 1, + anon_sym_RBRACE, + ACTIONS(438), 1, + anon_sym_LF, + STATE(7), 1, + aux_sym__linebreak, + STATE(131), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(221), 4, + [5161] = 5, + ACTIONS(440), 1, anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COMMA, + ACTIONS(442), 1, anon_sym_LF, - [5908] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, - ACTIONS(505), 1, - anon_sym_GT, - STATE(63), 1, - sym__comma, - STATE(167), 1, - aux_sym_template_params_repeat2, + STATE(6), 1, + aux_sym__linebreak, + STATE(131), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5925] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, - ACTIONS(507), 1, + [5178] = 5, + ACTIONS(444), 1, anon_sym_GT, + ACTIONS(446), 1, + anon_sym_COMMA, STATE(63), 1, sym__comma, - STATE(207), 1, + STATE(145), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5942] = 2, + [5195] = 5, + ACTIONS(369), 1, + anon_sym_RBRACE, + ACTIONS(373), 1, + anon_sym_LF, + STATE(4), 1, + aux_sym__linebreak, + STATE(143), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(509), 4, - anon_sym_RBRACE, - anon_sym_EQ, + [5212] = 5, + ACTIONS(203), 1, anon_sym_COMMA, - anon_sym_LF, - [5953] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, - ACTIONS(511), 1, + ACTIONS(449), 1, anon_sym_GT, STATE(63), 1, sym__comma, - STATE(182), 1, + STATE(145), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5970] = 5, - ACTIONS(215), 1, + [5229] = 5, + ACTIONS(203), 1, anon_sym_COMMA, - ACTIONS(513), 1, + ACTIONS(451), 1, anon_sym_GT, - STATE(63), 1, + STATE(126), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(204), 1, sym__comma, - STATE(207), 1, - aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5987] = 2, + [5246] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(465), 4, + ACTIONS(453), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5998] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(515), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [6009] = 5, - ACTIONS(517), 1, - anon_sym_RBRACE, - ACTIONS(519), 1, - anon_sym_LF, - STATE(10), 1, - aux_sym__linebreak, - STATE(188), 1, - aux_sym_block_repeat1, + [5257] = 4, + ACTIONS(144), 1, + anon_sym_LBRACK, + STATE(127), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6026] = 5, - ACTIONS(522), 1, - anon_sym_RPAREN, - ACTIONS(524), 1, + ACTIONS(455), 2, + anon_sym_SEMI, + anon_sym_COMMA, + [5272] = 5, + ACTIONS(203), 1, anon_sym_COMMA, - STATE(86), 1, + ACTIONS(457), 1, + anon_sym_SEMI, + STATE(106), 1, sym__comma, - STATE(189), 1, - aux_sym_parenthesis_expression_list_repeat1, + STATE(175), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6043] = 2, + [5289] = 5, + ACTIONS(459), 1, + ts_builtin_sym_end, + ACTIONS(461), 1, + anon_sym_LF, + STATE(123), 1, + aux_sym__linebreak, + STATE(155), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(527), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [6054] = 2, + [5306] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(527), 4, + ACTIONS(453), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [6065] = 5, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(410), 1, - anon_sym_LF, - STATE(211), 1, - aux_sym__linebreak, - STATE(244), 1, - sym_module, + [5317] = 4, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(463), 1, + anon_sym_if, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6082] = 5, - ACTIONS(529), 1, + STATE(198), 2, + sym_block, + sym_if_statement, + [5332] = 5, + ACTIONS(465), 1, ts_builtin_sym_end, - ACTIONS(531), 1, + ACTIONS(467), 1, anon_sym_LF, - STATE(127), 1, + STATE(136), 1, aux_sym__linebreak, - STATE(197), 1, + STATE(155), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6099] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, - ACTIONS(533), 1, - anon_sym_GT, - STATE(203), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(239), 1, - sym__comma, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [6116] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, - ACTIONS(535), 1, - anon_sym_GT, - STATE(63), 1, - sym__comma, - STATE(207), 1, - aux_sym_template_params_repeat2, + [5349] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6133] = 5, - ACTIONS(420), 1, + ACTIONS(470), 4, + ts_builtin_sym_end, anon_sym_RBRACE, - ACTIONS(424), 1, + anon_sym_else, anon_sym_LF, - STATE(7), 1, - aux_sym__linebreak, - STATE(175), 1, - aux_sym_block_repeat1, + [5360] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6150] = 5, - ACTIONS(537), 1, + ACTIONS(472), 4, ts_builtin_sym_end, - ACTIONS(539), 1, + anon_sym_RBRACE, + anon_sym_else, anon_sym_LF, - STATE(192), 1, - aux_sym__linebreak, - STATE(197), 1, - aux_sym_source_file_repeat1, + [5371] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6167] = 5, - ACTIONS(215), 1, + ACTIONS(470), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [5382] = 5, + ACTIONS(203), 1, anon_sym_COMMA, - ACTIONS(542), 1, + ACTIONS(474), 1, anon_sym_GT, STATE(63), 1, sym__comma, - STATE(209), 1, + STATE(164), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6184] = 2, + [5399] = 5, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(356), 1, + anon_sym_COLON, + STATE(199), 1, + sym_block, + STATE(200), 1, + sym_interface_ports, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(164), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_SEMI, + [5416] = 5, + ACTIONS(203), 1, anon_sym_COMMA, - [6195] = 5, - ACTIONS(544), 1, + ACTIONS(476), 1, + anon_sym_RPAREN, + STATE(64), 1, + sym__comma, + STATE(174), 1, + aux_sym_parenthesis_expression_list_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5433] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(478), 4, ts_builtin_sym_end, - ACTIONS(546), 1, + anon_sym_RBRACE, + anon_sym_else, anon_sym_LF, - STATE(144), 1, - aux_sym__linebreak, - STATE(205), 1, - aux_sym_source_file_repeat1, + [5444] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6212] = 5, - ACTIONS(215), 1, + ACTIONS(480), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [5455] = 5, + ACTIONS(203), 1, anon_sym_COMMA, - ACTIONS(548), 1, + ACTIONS(482), 1, anon_sym_GT, STATE(63), 1, sym__comma, - STATE(185), 1, + STATE(145), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6229] = 2, + [5472] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(550), 4, + ACTIONS(480), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [6240] = 5, - ACTIONS(552), 1, - anon_sym_GT, - ACTIONS(554), 1, - anon_sym_COMMA, - STATE(203), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(239), 1, - sym__comma, + [5483] = 4, + ACTIONS(484), 1, + anon_sym_LF, + STATE(166), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6257] = 5, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(393), 1, - anon_sym_COLON, - STATE(236), 1, - sym_interface_ports, - STATE(241), 1, - sym_block, + ACTIONS(196), 2, + ts_builtin_sym_end, + anon_sym_module, + [5498] = 5, + ACTIONS(487), 1, + ts_builtin_sym_end, + ACTIONS(489), 1, + anon_sym_LF, + STATE(117), 1, + aux_sym__linebreak, + STATE(152), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6274] = 5, - ACTIONS(557), 1, + [5515] = 5, + ACTIONS(491), 1, ts_builtin_sym_end, - ACTIONS(559), 1, + ACTIONS(493), 1, anon_sym_LF, - STATE(128), 1, + STATE(116), 1, aux_sym__linebreak, - STATE(197), 1, + STATE(155), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6291] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, - ACTIONS(561), 1, - anon_sym_GT, - STATE(63), 1, - sym__comma, - STATE(207), 1, - aux_sym_template_params_repeat2, + [5532] = 5, + ACTIONS(495), 1, + anon_sym_RBRACE, + ACTIONS(497), 1, + anon_sym_LF, + STATE(5), 1, + aux_sym__linebreak, + STATE(131), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6308] = 5, - ACTIONS(563), 1, - anon_sym_GT, - ACTIONS(565), 1, + [5549] = 5, + ACTIONS(499), 1, + anon_sym_RBRACE, + ACTIONS(501), 1, + anon_sym_LF, + STATE(3), 1, + aux_sym__linebreak, + STATE(131), 1, + aux_sym_block_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5566] = 5, + ACTIONS(203), 1, anon_sym_COMMA, + ACTIONS(503), 1, + anon_sym_GT, STATE(63), 1, sym__comma, - STATE(207), 1, + STATE(130), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6325] = 5, - ACTIONS(568), 1, + [5583] = 5, + ACTIONS(505), 1, ts_builtin_sym_end, - ACTIONS(570), 1, + ACTIONS(507), 1, anon_sym_LF, - STATE(130), 1, + STATE(115), 1, aux_sym__linebreak, - STATE(193), 1, + STATE(168), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6342] = 5, - ACTIONS(215), 1, + [5600] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(205), 4, + anon_sym_RBRACE, + anon_sym_EQ, anon_sym_COMMA, - ACTIONS(572), 1, - anon_sym_GT, - STATE(63), 1, + anon_sym_LF, + [5611] = 5, + ACTIONS(509), 1, + anon_sym_RPAREN, + ACTIONS(511), 1, + anon_sym_COMMA, + STATE(64), 1, sym__comma, - STATE(207), 1, - aux_sym_template_params_repeat2, + STATE(174), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6359] = 5, - ACTIONS(215), 1, + [5628] = 5, + ACTIONS(203), 1, anon_sym_COMMA, - ACTIONS(574), 1, - anon_sym_GT, - STATE(63), 1, + ACTIONS(514), 1, + anon_sym_SEMI, + STATE(106), 1, sym__comma, - STATE(206), 1, - aux_sym_template_params_repeat2, + STATE(137), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6376] = 4, - ACTIONS(576), 1, - anon_sym_LF, - STATE(211), 1, - aux_sym__linebreak, + [5645] = 4, + ACTIONS(144), 1, + anon_sym_LBRACK, + ACTIONS(516), 1, + sym_identifier, + STATE(127), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(208), 2, - ts_builtin_sym_end, - anon_sym_module, - [6391] = 4, - ACTIONS(579), 1, + [5659] = 4, + ACTIONS(144), 1, + anon_sym_LBRACK, + ACTIONS(518), 1, sym_identifier, - ACTIONS(581), 1, + STATE(127), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5673] = 4, + ACTIONS(520), 1, + sym_identifier, + ACTIONS(522), 1, anon_sym_GT, - STATE(163), 1, + STATE(142), 1, sym_template_declaration_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6405] = 4, - ACTIONS(583), 1, - sym_identifier, - ACTIONS(585), 1, - anon_sym_LT, - STATE(153), 1, - sym_template_params, + [5687] = 3, + ACTIONS(371), 1, + anon_sym_EQ, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6419] = 2, + ACTIONS(524), 2, + anon_sym_RBRACE, + anon_sym_LF, + [5699] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(587), 3, + ACTIONS(526), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [6429] = 3, - ACTIONS(591), 1, + [5709] = 3, + ACTIONS(530), 1, anon_sym_else, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(589), 2, + ACTIONS(528), 2, anon_sym_RBRACE, anon_sym_LF, - [6441] = 2, + [5721] = 4, + ACTIONS(144), 1, + anon_sym_LBRACK, + ACTIONS(532), 1, + sym_identifier, + STATE(127), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(593), 3, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_LF, - [6451] = 2, + [5735] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(595), 3, + ACTIONS(534), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [6461] = 4, - ACTIONS(98), 1, + [5745] = 4, + ACTIONS(144), 1, anon_sym_LBRACK, - ACTIONS(597), 1, + ACTIONS(536), 1, sym_identifier, - STATE(154), 1, + STATE(127), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6475] = 2, + [5759] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(599), 3, + ACTIONS(538), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [6485] = 2, + [5769] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(601), 3, - anon_sym_GT, - anon_sym_SEMI, - anon_sym_COMMA, - [6495] = 3, - ACTIONS(422), 1, - anon_sym_EQ, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(603), 2, + ACTIONS(540), 3, + anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [6507] = 4, - ACTIONS(605), 1, + [5779] = 4, + ACTIONS(542), 1, sym_identifier, - ACTIONS(607), 1, + ACTIONS(544), 1, anon_sym_LT, - STATE(20), 1, + STATE(19), 1, sym_template_params, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6521] = 2, + [5793] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(609), 3, + ACTIONS(546), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [6531] = 4, - ACTIONS(98), 1, - anon_sym_LBRACK, - ACTIONS(611), 1, - sym_identifier, - STATE(154), 1, - sym_array_bracket_expression, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [6545] = 4, - ACTIONS(98), 1, - anon_sym_LBRACK, - ACTIONS(613), 1, - sym_identifier, - STATE(154), 1, - sym_array_bracket_expression, + [5803] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6559] = 4, - ACTIONS(98), 1, - anon_sym_LBRACK, - ACTIONS(615), 1, - sym_identifier, - STATE(154), 1, - sym_array_bracket_expression, + ACTIONS(548), 3, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_LF, + [5813] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6573] = 2, + ACTIONS(550), 2, + anon_sym_GT, + anon_sym_COMMA, + [5822] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(617), 3, - anon_sym_LBRACE, - anon_sym_RBRACE, + ACTIONS(552), 2, + ts_builtin_sym_end, anon_sym_LF, - [6583] = 2, + [5831] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(619), 2, - ts_builtin_sym_end, + ACTIONS(524), 2, + anon_sym_RBRACE, anon_sym_LF, - [6592] = 3, + [5840] = 3, ACTIONS(13), 1, anon_sym_LBRACE, - STATE(228), 1, + STATE(201), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6603] = 2, + [5851] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(621), 2, - anon_sym_RBRACE, + ACTIONS(554), 2, + ts_builtin_sym_end, anon_sym_LF, - [6612] = 2, + [5860] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(623), 2, - anon_sym_RBRACE, + ACTIONS(556), 2, + ts_builtin_sym_end, anon_sym_LF, - [6621] = 2, + [5869] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(625), 2, + ACTIONS(558), 2, anon_sym_COLON, anon_sym_LBRACE, - [6630] = 2, + [5878] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(627), 2, - ts_builtin_sym_end, - anon_sym_LF, - [6639] = 2, + ACTIONS(560), 2, + anon_sym_SEMI, + anon_sym_COMMA, + [5887] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(629), 2, - anon_sym_COLON, - anon_sym_LBRACE, - [6648] = 2, + ACTIONS(562), 2, + anon_sym_RBRACE, + anon_sym_LF, + [5896] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(631), 2, - anon_sym_GT, - anon_sym_COMMA, - [6657] = 3, + ACTIONS(564), 2, + ts_builtin_sym_end, + anon_sym_LF, + [5905] = 3, ACTIONS(13), 1, anon_sym_LBRACE, - STATE(233), 1, + STATE(194), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6668] = 2, + [5916] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(633), 2, - anon_sym_RBRACE, + ACTIONS(566), 2, + ts_builtin_sym_end, anon_sym_LF, - [6677] = 2, + [5925] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(568), 2, + anon_sym_COLON, + anon_sym_LBRACE, + [5934] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(635), 2, + ACTIONS(570), 2, anon_sym_GT, anon_sym_COMMA, - [6686] = 3, - ACTIONS(579), 1, + [5943] = 3, + ACTIONS(520), 1, sym_identifier, - STATE(235), 1, + STATE(206), 1, sym_template_declaration_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6697] = 2, + [5954] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(637), 2, + ACTIONS(572), 2, anon_sym_COLON, anon_sym_LBRACE, - [6706] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(639), 2, - ts_builtin_sym_end, - anon_sym_LF, - [6715] = 2, + [5963] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(641), 2, + ACTIONS(574), 2, anon_sym_GT, anon_sym_COMMA, - [6724] = 2, + [5972] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(643), 2, - ts_builtin_sym_end, - anon_sym_LF, - [6733] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(645), 2, - ts_builtin_sym_end, + ACTIONS(576), 2, + anon_sym_RBRACE, anon_sym_LF, - [6742] = 2, + [5981] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(603), 2, + ACTIONS(578), 2, anon_sym_RBRACE, anon_sym_LF, - [6751] = 2, - ACTIONS(647), 1, + [5990] = 2, + ACTIONS(580), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6759] = 2, - ACTIONS(649), 1, + [5998] = 2, + ACTIONS(582), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6767] = 2, - ACTIONS(651), 1, - ts_builtin_sym_end, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [6775] = 2, - ACTIONS(653), 1, + [6006] = 2, + ACTIONS(584), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6783] = 2, - ACTIONS(655), 1, + [6014] = 2, + ACTIONS(586), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6791] = 2, - ACTIONS(657), 1, - sym_identifier, + [6022] = 2, + ACTIONS(588), 1, + anon_sym_in, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6799] = 2, - ACTIONS(659), 1, - anon_sym_in, + [6030] = 2, + ACTIONS(590), 1, + ts_builtin_sym_end, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -9195,247 +8515,209 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(9)] = 693, [SMALL_STATE(10)] = 792, [SMALL_STATE(11)] = 888, - [SMALL_STATE(12)] = 956, - [SMALL_STATE(13)] = 999, - [SMALL_STATE(14)] = 1042, - [SMALL_STATE(15)] = 1085, - [SMALL_STATE(16)] = 1128, - [SMALL_STATE(17)] = 1171, - [SMALL_STATE(18)] = 1209, - [SMALL_STATE(19)] = 1247, - [SMALL_STATE(20)] = 1295, - [SMALL_STATE(21)] = 1333, + [SMALL_STATE(12)] = 932, + [SMALL_STATE(13)] = 976, + [SMALL_STATE(14)] = 1020, + [SMALL_STATE(15)] = 1088, + [SMALL_STATE(16)] = 1132, + [SMALL_STATE(17)] = 1176, + [SMALL_STATE(18)] = 1215, + [SMALL_STATE(19)] = 1254, + [SMALL_STATE(20)] = 1293, + [SMALL_STATE(21)] = 1332, [SMALL_STATE(22)] = 1371, - [SMALL_STATE(23)] = 1409, - [SMALL_STATE(24)] = 1447, - [SMALL_STATE(25)] = 1485, - [SMALL_STATE(26)] = 1523, - [SMALL_STATE(27)] = 1561, - [SMALL_STATE(28)] = 1623, - [SMALL_STATE(29)] = 1661, - [SMALL_STATE(30)] = 1699, - [SMALL_STATE(31)] = 1751, - [SMALL_STATE(32)] = 1789, - [SMALL_STATE(33)] = 1837, - [SMALL_STATE(34)] = 1895, - [SMALL_STATE(35)] = 1955, - [SMALL_STATE(36)] = 2011, - [SMALL_STATE(37)] = 2049, - [SMALL_STATE(38)] = 2086, - [SMALL_STATE(39)] = 2122, - [SMALL_STATE(40)] = 2158, - [SMALL_STATE(41)] = 2194, - [SMALL_STATE(42)] = 2230, - [SMALL_STATE(43)] = 2266, - [SMALL_STATE(44)] = 2302, - [SMALL_STATE(45)] = 2338, - [SMALL_STATE(46)] = 2401, - [SMALL_STATE(47)] = 2454, - [SMALL_STATE(48)] = 2492, - [SMALL_STATE(49)] = 2554, - [SMALL_STATE(50)] = 2612, - [SMALL_STATE(51)] = 2670, - [SMALL_STATE(52)] = 2705, - [SMALL_STATE(53)] = 2759, - [SMALL_STATE(54)] = 2801, - [SMALL_STATE(55)] = 2843, - [SMALL_STATE(56)] = 2897, - [SMALL_STATE(57)] = 2939, - [SMALL_STATE(58)] = 2981, - [SMALL_STATE(59)] = 3017, - [SMALL_STATE(60)] = 3059, - [SMALL_STATE(61)] = 3115, - [SMALL_STATE(62)] = 3171, - [SMALL_STATE(63)] = 3213, - [SMALL_STATE(64)] = 3252, - [SMALL_STATE(65)] = 3305, - [SMALL_STATE(66)] = 3358, - [SMALL_STATE(67)] = 3411, - [SMALL_STATE(68)] = 3464, - [SMALL_STATE(69)] = 3503, - [SMALL_STATE(70)] = 3556, - [SMALL_STATE(71)] = 3609, - [SMALL_STATE(72)] = 3645, - [SMALL_STATE(73)] = 3681, - [SMALL_STATE(74)] = 3717, - [SMALL_STATE(75)] = 3753, - [SMALL_STATE(76)] = 3789, - [SMALL_STATE(77)] = 3825, - [SMALL_STATE(78)] = 3861, - [SMALL_STATE(79)] = 3897, - [SMALL_STATE(80)] = 3929, - [SMALL_STATE(81)] = 3965, - [SMALL_STATE(82)] = 4001, - [SMALL_STATE(83)] = 4037, - [SMALL_STATE(84)] = 4073, - [SMALL_STATE(85)] = 4109, - [SMALL_STATE(86)] = 4145, - [SMALL_STATE(87)] = 4181, - [SMALL_STATE(88)] = 4217, - [SMALL_STATE(89)] = 4249, - [SMALL_STATE(90)] = 4285, - [SMALL_STATE(91)] = 4315, - [SMALL_STATE(92)] = 4345, - [SMALL_STATE(93)] = 4370, - [SMALL_STATE(94)] = 4412, - [SMALL_STATE(95)] = 4454, - [SMALL_STATE(96)] = 4478, - [SMALL_STATE(97)] = 4514, - [SMALL_STATE(98)] = 4550, - [SMALL_STATE(99)] = 4577, - [SMALL_STATE(100)] = 4604, - [SMALL_STATE(101)] = 4624, - [SMALL_STATE(102)] = 4644, - [SMALL_STATE(103)] = 4664, - [SMALL_STATE(104)] = 4684, - [SMALL_STATE(105)] = 4709, - [SMALL_STATE(106)] = 4734, - [SMALL_STATE(107)] = 4754, - [SMALL_STATE(108)] = 4774, - [SMALL_STATE(109)] = 4788, - [SMALL_STATE(110)] = 4802, - [SMALL_STATE(111)] = 4822, - [SMALL_STATE(112)] = 4842, - [SMALL_STATE(113)] = 4856, - [SMALL_STATE(114)] = 4876, - [SMALL_STATE(115)] = 4890, - [SMALL_STATE(116)] = 4909, - [SMALL_STATE(117)] = 4928, - [SMALL_STATE(118)] = 4951, - [SMALL_STATE(119)] = 4970, - [SMALL_STATE(120)] = 4987, - [SMALL_STATE(121)] = 5004, - [SMALL_STATE(122)] = 5021, - [SMALL_STATE(123)] = 5038, - [SMALL_STATE(124)] = 5055, - [SMALL_STATE(125)] = 5074, - [SMALL_STATE(126)] = 5094, - [SMALL_STATE(127)] = 5106, - [SMALL_STATE(128)] = 5126, - [SMALL_STATE(129)] = 5146, - [SMALL_STATE(130)] = 5162, - [SMALL_STATE(131)] = 5182, - [SMALL_STATE(132)] = 5202, - [SMALL_STATE(133)] = 5214, - [SMALL_STATE(134)] = 5226, - [SMALL_STATE(135)] = 5238, - [SMALL_STATE(136)] = 5258, - [SMALL_STATE(137)] = 5270, - [SMALL_STATE(138)] = 5286, - [SMALL_STATE(139)] = 5302, - [SMALL_STATE(140)] = 5318, - [SMALL_STATE(141)] = 5330, - [SMALL_STATE(142)] = 5346, - [SMALL_STATE(143)] = 5364, - [SMALL_STATE(144)] = 5384, - [SMALL_STATE(145)] = 5404, - [SMALL_STATE(146)] = 5416, - [SMALL_STATE(147)] = 5428, - [SMALL_STATE(148)] = 5440, - [SMALL_STATE(149)] = 5452, - [SMALL_STATE(150)] = 5464, - [SMALL_STATE(151)] = 5476, - [SMALL_STATE(152)] = 5488, - [SMALL_STATE(153)] = 5504, - [SMALL_STATE(154)] = 5516, - [SMALL_STATE(155)] = 5528, - [SMALL_STATE(156)] = 5548, - [SMALL_STATE(157)] = 5568, - [SMALL_STATE(158)] = 5588, - [SMALL_STATE(159)] = 5604, - [SMALL_STATE(160)] = 5619, - [SMALL_STATE(161)] = 5630, - [SMALL_STATE(162)] = 5641, - [SMALL_STATE(163)] = 5656, - [SMALL_STATE(164)] = 5673, - [SMALL_STATE(165)] = 5684, - [SMALL_STATE(166)] = 5695, - [SMALL_STATE(167)] = 5706, - [SMALL_STATE(168)] = 5723, - [SMALL_STATE(169)] = 5740, - [SMALL_STATE(170)] = 5757, - [SMALL_STATE(171)] = 5768, - [SMALL_STATE(172)] = 5779, - [SMALL_STATE(173)] = 5796, - [SMALL_STATE(174)] = 5807, - [SMALL_STATE(175)] = 5824, - [SMALL_STATE(176)] = 5841, - [SMALL_STATE(177)] = 5852, - [SMALL_STATE(178)] = 5869, - [SMALL_STATE(179)] = 5880, - [SMALL_STATE(180)] = 5897, - [SMALL_STATE(181)] = 5908, - [SMALL_STATE(182)] = 5925, - [SMALL_STATE(183)] = 5942, - [SMALL_STATE(184)] = 5953, - [SMALL_STATE(185)] = 5970, - [SMALL_STATE(186)] = 5987, - [SMALL_STATE(187)] = 5998, - [SMALL_STATE(188)] = 6009, - [SMALL_STATE(189)] = 6026, - [SMALL_STATE(190)] = 6043, - [SMALL_STATE(191)] = 6054, - [SMALL_STATE(192)] = 6065, - [SMALL_STATE(193)] = 6082, - [SMALL_STATE(194)] = 6099, - [SMALL_STATE(195)] = 6116, - [SMALL_STATE(196)] = 6133, - [SMALL_STATE(197)] = 6150, - [SMALL_STATE(198)] = 6167, - [SMALL_STATE(199)] = 6184, - [SMALL_STATE(200)] = 6195, - [SMALL_STATE(201)] = 6212, - [SMALL_STATE(202)] = 6229, - [SMALL_STATE(203)] = 6240, - [SMALL_STATE(204)] = 6257, - [SMALL_STATE(205)] = 6274, - [SMALL_STATE(206)] = 6291, - [SMALL_STATE(207)] = 6308, - [SMALL_STATE(208)] = 6325, - [SMALL_STATE(209)] = 6342, - [SMALL_STATE(210)] = 6359, - [SMALL_STATE(211)] = 6376, - [SMALL_STATE(212)] = 6391, - [SMALL_STATE(213)] = 6405, - [SMALL_STATE(214)] = 6419, - [SMALL_STATE(215)] = 6429, - [SMALL_STATE(216)] = 6441, - [SMALL_STATE(217)] = 6451, - [SMALL_STATE(218)] = 6461, - [SMALL_STATE(219)] = 6475, - [SMALL_STATE(220)] = 6485, - [SMALL_STATE(221)] = 6495, - [SMALL_STATE(222)] = 6507, - [SMALL_STATE(223)] = 6521, - [SMALL_STATE(224)] = 6531, - [SMALL_STATE(225)] = 6545, - [SMALL_STATE(226)] = 6559, - [SMALL_STATE(227)] = 6573, - [SMALL_STATE(228)] = 6583, - [SMALL_STATE(229)] = 6592, - [SMALL_STATE(230)] = 6603, - [SMALL_STATE(231)] = 6612, - [SMALL_STATE(232)] = 6621, - [SMALL_STATE(233)] = 6630, - [SMALL_STATE(234)] = 6639, - [SMALL_STATE(235)] = 6648, - [SMALL_STATE(236)] = 6657, - [SMALL_STATE(237)] = 6668, - [SMALL_STATE(238)] = 6677, - [SMALL_STATE(239)] = 6686, - [SMALL_STATE(240)] = 6697, - [SMALL_STATE(241)] = 6706, - [SMALL_STATE(242)] = 6715, - [SMALL_STATE(243)] = 6724, - [SMALL_STATE(244)] = 6733, - [SMALL_STATE(245)] = 6742, - [SMALL_STATE(246)] = 6751, - [SMALL_STATE(247)] = 6759, - [SMALL_STATE(248)] = 6767, - [SMALL_STATE(249)] = 6775, - [SMALL_STATE(250)] = 6783, - [SMALL_STATE(251)] = 6791, - [SMALL_STATE(252)] = 6799, + [SMALL_STATE(23)] = 1410, + [SMALL_STATE(24)] = 1449, + [SMALL_STATE(25)] = 1488, + [SMALL_STATE(26)] = 1527, + [SMALL_STATE(27)] = 1566, + [SMALL_STATE(28)] = 1604, + [SMALL_STATE(29)] = 1662, + [SMALL_STATE(30)] = 1722, + [SMALL_STATE(31)] = 1778, + [SMALL_STATE(32)] = 1826, + [SMALL_STATE(33)] = 1874, + [SMALL_STATE(34)] = 1926, + [SMALL_STATE(35)] = 1988, + [SMALL_STATE(36)] = 2024, + [SMALL_STATE(37)] = 2060, + [SMALL_STATE(38)] = 2096, + [SMALL_STATE(39)] = 2132, + [SMALL_STATE(40)] = 2168, + [SMALL_STATE(41)] = 2204, + [SMALL_STATE(42)] = 2240, + [SMALL_STATE(43)] = 2303, + [SMALL_STATE(44)] = 2356, + [SMALL_STATE(45)] = 2394, + [SMALL_STATE(46)] = 2456, + [SMALL_STATE(47)] = 2514, + [SMALL_STATE(48)] = 2572, + [SMALL_STATE(49)] = 2607, + [SMALL_STATE(50)] = 2663, + [SMALL_STATE(51)] = 2717, + [SMALL_STATE(52)] = 2759, + [SMALL_STATE(53)] = 2801, + [SMALL_STATE(54)] = 2837, + [SMALL_STATE(55)] = 2879, + [SMALL_STATE(56)] = 2933, + [SMALL_STATE(57)] = 2989, + [SMALL_STATE(58)] = 3042, + [SMALL_STATE(59)] = 3095, + [SMALL_STATE(60)] = 3134, + [SMALL_STATE(61)] = 3187, + [SMALL_STATE(62)] = 3240, + [SMALL_STATE(63)] = 3293, + [SMALL_STATE(64)] = 3332, + [SMALL_STATE(65)] = 3368, + [SMALL_STATE(66)] = 3404, + [SMALL_STATE(67)] = 3440, + [SMALL_STATE(68)] = 3472, + [SMALL_STATE(69)] = 3508, + [SMALL_STATE(70)] = 3544, + [SMALL_STATE(71)] = 3580, + [SMALL_STATE(72)] = 3616, + [SMALL_STATE(73)] = 3652, + [SMALL_STATE(74)] = 3688, + [SMALL_STATE(75)] = 3724, + [SMALL_STATE(76)] = 3760, + [SMALL_STATE(77)] = 3796, + [SMALL_STATE(78)] = 3832, + [SMALL_STATE(79)] = 3868, + [SMALL_STATE(80)] = 3900, + [SMALL_STATE(81)] = 3936, + [SMALL_STATE(82)] = 3972, + [SMALL_STATE(83)] = 4002, + [SMALL_STATE(84)] = 4032, + [SMALL_STATE(85)] = 4057, + [SMALL_STATE(86)] = 4099, + [SMALL_STATE(87)] = 4141, + [SMALL_STATE(88)] = 4165, + [SMALL_STATE(89)] = 4201, + [SMALL_STATE(90)] = 4237, + [SMALL_STATE(91)] = 4264, + [SMALL_STATE(92)] = 4291, + [SMALL_STATE(93)] = 4311, + [SMALL_STATE(94)] = 4331, + [SMALL_STATE(95)] = 4351, + [SMALL_STATE(96)] = 4371, + [SMALL_STATE(97)] = 4385, + [SMALL_STATE(98)] = 4405, + [SMALL_STATE(99)] = 4419, + [SMALL_STATE(100)] = 4433, + [SMALL_STATE(101)] = 4453, + [SMALL_STATE(102)] = 4473, + [SMALL_STATE(103)] = 4487, + [SMALL_STATE(104)] = 4509, + [SMALL_STATE(105)] = 4529, + [SMALL_STATE(106)] = 4548, + [SMALL_STATE(107)] = 4567, + [SMALL_STATE(108)] = 4590, + [SMALL_STATE(109)] = 4609, + [SMALL_STATE(110)] = 4628, + [SMALL_STATE(111)] = 4647, + [SMALL_STATE(112)] = 4663, + [SMALL_STATE(113)] = 4683, + [SMALL_STATE(114)] = 4703, + [SMALL_STATE(115)] = 4719, + [SMALL_STATE(116)] = 4739, + [SMALL_STATE(117)] = 4759, + [SMALL_STATE(118)] = 4779, + [SMALL_STATE(119)] = 4791, + [SMALL_STATE(120)] = 4807, + [SMALL_STATE(121)] = 4823, + [SMALL_STATE(122)] = 4843, + [SMALL_STATE(123)] = 4859, + [SMALL_STATE(124)] = 4879, + [SMALL_STATE(125)] = 4890, + [SMALL_STATE(126)] = 4905, + [SMALL_STATE(127)] = 4922, + [SMALL_STATE(128)] = 4933, + [SMALL_STATE(129)] = 4944, + [SMALL_STATE(130)] = 4955, + [SMALL_STATE(131)] = 4972, + [SMALL_STATE(132)] = 4989, + [SMALL_STATE(133)] = 5004, + [SMALL_STATE(134)] = 5015, + [SMALL_STATE(135)] = 5026, + [SMALL_STATE(136)] = 5043, + [SMALL_STATE(137)] = 5060, + [SMALL_STATE(138)] = 5077, + [SMALL_STATE(139)] = 5088, + [SMALL_STATE(140)] = 5105, + [SMALL_STATE(141)] = 5116, + [SMALL_STATE(142)] = 5127, + [SMALL_STATE(143)] = 5144, + [SMALL_STATE(144)] = 5161, + [SMALL_STATE(145)] = 5178, + [SMALL_STATE(146)] = 5195, + [SMALL_STATE(147)] = 5212, + [SMALL_STATE(148)] = 5229, + [SMALL_STATE(149)] = 5246, + [SMALL_STATE(150)] = 5257, + [SMALL_STATE(151)] = 5272, + [SMALL_STATE(152)] = 5289, + [SMALL_STATE(153)] = 5306, + [SMALL_STATE(154)] = 5317, + [SMALL_STATE(155)] = 5332, + [SMALL_STATE(156)] = 5349, + [SMALL_STATE(157)] = 5360, + [SMALL_STATE(158)] = 5371, + [SMALL_STATE(159)] = 5382, + [SMALL_STATE(160)] = 5399, + [SMALL_STATE(161)] = 5416, + [SMALL_STATE(162)] = 5433, + [SMALL_STATE(163)] = 5444, + [SMALL_STATE(164)] = 5455, + [SMALL_STATE(165)] = 5472, + [SMALL_STATE(166)] = 5483, + [SMALL_STATE(167)] = 5498, + [SMALL_STATE(168)] = 5515, + [SMALL_STATE(169)] = 5532, + [SMALL_STATE(170)] = 5549, + [SMALL_STATE(171)] = 5566, + [SMALL_STATE(172)] = 5583, + [SMALL_STATE(173)] = 5600, + [SMALL_STATE(174)] = 5611, + [SMALL_STATE(175)] = 5628, + [SMALL_STATE(176)] = 5645, + [SMALL_STATE(177)] = 5659, + [SMALL_STATE(178)] = 5673, + [SMALL_STATE(179)] = 5687, + [SMALL_STATE(180)] = 5699, + [SMALL_STATE(181)] = 5709, + [SMALL_STATE(182)] = 5721, + [SMALL_STATE(183)] = 5735, + [SMALL_STATE(184)] = 5745, + [SMALL_STATE(185)] = 5759, + [SMALL_STATE(186)] = 5769, + [SMALL_STATE(187)] = 5779, + [SMALL_STATE(188)] = 5793, + [SMALL_STATE(189)] = 5803, + [SMALL_STATE(190)] = 5813, + [SMALL_STATE(191)] = 5822, + [SMALL_STATE(192)] = 5831, + [SMALL_STATE(193)] = 5840, + [SMALL_STATE(194)] = 5851, + [SMALL_STATE(195)] = 5860, + [SMALL_STATE(196)] = 5869, + [SMALL_STATE(197)] = 5878, + [SMALL_STATE(198)] = 5887, + [SMALL_STATE(199)] = 5896, + [SMALL_STATE(200)] = 5905, + [SMALL_STATE(201)] = 5916, + [SMALL_STATE(202)] = 5925, + [SMALL_STATE(203)] = 5934, + [SMALL_STATE(204)] = 5943, + [SMALL_STATE(205)] = 5954, + [SMALL_STATE(206)] = 5963, + [SMALL_STATE(207)] = 5972, + [SMALL_STATE(208)] = 5981, + [SMALL_STATE(209)] = 5990, + [SMALL_STATE(210)] = 5998, + [SMALL_STATE(211)] = 6006, + [SMALL_STATE(212)] = 6014, + [SMALL_STATE(213)] = 6022, + [SMALL_STATE(214)] = 6030, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -9443,326 +8725,292 @@ static const TSParseActionEntry ts_parse_actions[] = { [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 = true}}, SHIFT(249), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), - [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(250), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(92), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(95), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(89), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(99), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(111), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(137), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), - [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), - [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), - [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), - [57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 2), - [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 2), - [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(211), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(84), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(91), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(101), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(119), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 28), + [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 28), + [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 14), [65] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 14), - [67] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 28), - [69] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 28), - [71] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), - [73] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), - [75] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(222), - [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1, .production_id = 1), - [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1, .production_id = 1), - [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 3), - [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 3), - [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 49), - [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 49), - [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 21), - [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 21), - [94] = {.entry = {.count = 1, .reusable = false}}, SHIFT(246), - [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), - [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), - [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 6), - [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 6), - [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 7, .production_id = 50), - [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 7, .production_id = 50), - [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 48), - [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 48), - [116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 37), - [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 37), - [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 6), - [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 6), - [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 46), - [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 46), - [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 35), - [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 35), - [132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [134] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), - [136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [144] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80), - [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 3, .production_id = 3), - [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3, .production_id = 3), - [150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 42), - [152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 42), - [154] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 3), - [156] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3), - [158] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 2), - [160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 2), - [162] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 33), - [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 33), - [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 23), - [172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 23), - [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), - [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 36), - [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 36), - [182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [184] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 17), - [188] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 17), - [190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 33), - [192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 33), - [194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 33), - [196] = {.entry = {.count = 1, .reusable = false}}, SHIFT(83), - [198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 33), - [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246), - [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [206] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), - [208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), - [210] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(47), - [213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 22), - [219] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 22), - [221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 9), - [223] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 9), - [225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), - [227] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [229] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [231] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 34), - [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), - [244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), - [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [250] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74), - [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), - [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), - [256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 3, .production_id = 45), - [258] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 1, .production_id = 41), - [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), - [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), - [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [290] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), - [292] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), - [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [312] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), - [314] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), - [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [318] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [320] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(92), - [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [325] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), - [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), - [329] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), - [335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [337] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 38), - [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 27), - [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 16), - [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 26), - [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), - [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), - [359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), - [367] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(79), - [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), - [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), - [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 43), - [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 29), - [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), - [380] = {.entry = {.count = 1, .reusable = false}}, SHIFT(138), - [382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 40), - [384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), - [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 39), - [388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), - [390] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(79), - [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), - [397] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), - [399] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(213), - [402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), - [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), - [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), - [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), - [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 3, .production_id = 45), - [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), - [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), - [422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), - [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), - [434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 8), - [436] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), - [438] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), SHIFT_REPEAT(79), - [441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), - [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [445] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), - [447] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 19), - [449] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 17), - [451] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), - [455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), - [459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [461] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 1, .production_id = 41), - [463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [465] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), - [467] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [469] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 20), - [471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), - [473] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), - [475] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), - [477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), - [479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), - [481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [485] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 37), - [487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 42), - [489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), - [491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), - [495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), - [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 37), - [503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), - [507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), - [509] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), - [511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), - [513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), - [515] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [517] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), - [519] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), - [522] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), - [524] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(79), - [527] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 42), - [529] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), - [531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), - [533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), - [535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [537] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), - [539] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(192), - [542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [544] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), - [546] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), - [548] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), - [550] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), - [552] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), - [554] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), SHIFT_REPEAT(79), - [557] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), - [559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), - [561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [563] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), - [565] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), SHIFT_REPEAT(79), - [568] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), - [570] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), - [572] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [574] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [576] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(211), - [579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), - [581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234), - [583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), - [585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [587] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 18), - [589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 32), - [591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), - [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 15), - [595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 30), - [597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 25), - [601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 3), - [603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), - [605] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [607] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), - [611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), - [613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 13), - [619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 11), - [621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 31), - [623] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 47), - [625] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 6), - [627] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5, .production_id = 24), - [629] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), - [631] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 3), - [633] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 44), - [635] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1), - [637] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 3), - [639] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 12), - [641] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 3), - [643] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), - [645] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), - [647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), - [651] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), - [655] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), - [657] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [659] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [67] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 2), + [69] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 2), + [71] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1, .production_id = 1), + [73] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1, .production_id = 1), + [75] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), + [77] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), + [79] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(187), + [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 37), + [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 37), + [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 3), + [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3), + [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), + [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), + [94] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 7, .production_id = 50), + [96] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 7, .production_id = 50), + [98] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 3), + [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 3), + [102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 42), + [104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 42), + [106] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 48), + [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 48), + [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 46), + [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 46), + [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 6), + [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 6), + [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 49), + [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 49), + [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 33), + [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 33), + [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 35), + [128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 35), + [130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [132] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74), + [134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [138] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), + [140] = {.entry = {.count = 1, .reusable = false}}, SHIFT(212), + [142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 21), + [150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 21), + [152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 17), + [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 17), + [158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [160] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), + [162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 33), + [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 33), + [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 36), + [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 36), + [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 23), + [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 23), + [182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 33), + [184] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), + [186] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 33), + [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), + [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), + [196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), + [198] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(44), + [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [205] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 22), + [207] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 22), + [209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 9), + [211] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 9), + [213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), + [215] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [219] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), + [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), + [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [232] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), + [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 34), + [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 1, .production_id = 41), + [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [252] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 3, .production_id = 45), + [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [260] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), + [262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), + [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [288] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), + [290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), + [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [296] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), + [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), + [300] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [302] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(84), + [305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [307] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [315] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 16), + [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 38), + [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 26), + [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 27), + [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 40), + [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), + [335] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(67), + [338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 29), + [340] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 39), + [342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), + [344] = {.entry = {.count = 1, .reusable = false}}, SHIFT(111), + [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 43), + [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), + [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), + [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), + [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), + [364] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(67), + [367] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), + [369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), + [371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [375] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), + [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), + [381] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), + [383] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), + [385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), + [387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 8), + [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), + [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 19), + [395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), + [397] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 20), + [401] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), + [403] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), SHIFT_REPEAT(67), + [406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 17), + [408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), + [410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), + [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), + [416] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), + [419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 3, .production_id = 45), + [421] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), + [423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [425] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), + [427] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), SHIFT_REPEAT(67), + [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [432] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 37), + [434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), + [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), + [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), + [442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [444] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), + [446] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), SHIFT_REPEAT(67), + [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), + [453] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 42), + [455] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 1, .production_id = 41), + [457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [459] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), + [461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), + [463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [465] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), + [467] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(136), + [470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), + [472] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), + [474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 37), + [480] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 42), + [482] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [484] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(166), + [487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), + [489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [491] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), + [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), + [495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), + [497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), + [501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [505] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), + [507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [509] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), + [511] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(67), + [514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), + [522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), + [524] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), + [526] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), + [528] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 32), + [530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [534] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 13), + [536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [538] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 30), + [540] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 25), + [542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [544] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [546] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 15), + [548] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 18), + [550] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 3), + [552] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), + [554] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5, .production_id = 24), + [556] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), + [558] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 6), + [560] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 3), + [562] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 44), + [564] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 12), + [566] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 11), + [568] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 3), + [570] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1), + [572] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), + [574] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 3), + [576] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 31), + [578] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 47), + [580] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [582] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [584] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), + [586] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [588] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [590] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), }; #ifdef __cplusplus From 0b367e1e6494b0a891961ada7e3c846cdd4b49af Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Sat, 22 Jun 2024 00:04:09 +0200 Subject: [PATCH 35/49] Swap template order, for non-ambiguous grammar --- grammar.js | 13 +- src/grammar.json | 74 +- src/parser.c | 4803 +++++++++++++++++++++++++--------------------- 3 files changed, 2703 insertions(+), 2187 deletions(-) diff --git a/grammar.js b/grammar.js index a02a703..e150e8b 100644 --- a/grammar.js +++ b/grammar.js @@ -115,8 +115,8 @@ module.exports = grammar({ assign_to: $ => seq( optional(field('write_modifiers', $.write_modifiers)), field('expr_or_decl', choice( - $._expression, - $.declaration + $.declaration, + $._expression )) ), write_modifiers: $ => choice( @@ -278,10 +278,10 @@ module.exports = grammar({ ), template_params: $ => seq( '<', - sepSeq($.template_type_param, $._comma), + sepSeq($.template_value_param, $._comma), ';', - optional(sepSeq($.template_value_param, $._comma)), - '>' + sepSeq($.template_type_param, $._comma), + prec(11, '>') ), identifier: $ => /[\p{Alphabetic}_][\p{Alphabetic}_\p{Decimal_Number}]*/, number: $ => /\d[\d_]*/, @@ -300,7 +300,8 @@ module.exports = grammar({ }, conflicts: $ => [ - [$._type, $._expression] // Just because LR(1) is too weak to resolve 'ident[] a' vs 'type_name[]'. Tree sitter resolves this itself with more expensive GLR. NOT a precedence relation. + [$._type, $._expression], // Just because LR(1) is too weak to resolve 'ident[] a' vs 'type_name[]'. Tree sitter resolves this itself with more expensive GLR. NOT a precedence relation. + //[$.binary_op, $.template_params] ], word: $=> $.identifier, diff --git a/src/grammar.json b/src/grammar.json index 6f4df34..54863af 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -527,11 +527,11 @@ "members": [ { "type": "SYMBOL", - "name": "_expression" + "name": "declaration" }, { "type": "SYMBOL", - "name": "declaration" + "name": "_expression" } ] } @@ -1513,7 +1513,7 @@ "name": "item", "content": { "type": "SYMBOL", - "name": "template_type_param" + "name": "template_value_param" } }, { @@ -1530,7 +1530,7 @@ "name": "item", "content": { "type": "SYMBOL", - "name": "template_type_param" + "name": "template_value_param" } } ] @@ -1551,43 +1551,35 @@ "type": "CHOICE", "members": [ { - "type": "CHOICE", + "type": "SEQ", "members": [ { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "item", - "content": { - "type": "SYMBOL", - "name": "template_value_param" - } - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_comma" - }, - { - "type": "FIELD", - "name": "item", - "content": { - "type": "SYMBOL", - "name": "template_value_param" - } - } - ] - } - } - ] + "type": "FIELD", + "name": "item", + "content": { + "type": "SYMBOL", + "name": "template_type_param" + } }, { - "type": "BLANK" + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_comma" + }, + { + "type": "FIELD", + "name": "item", + "content": { + "type": "SYMBOL", + "name": "template_type_param" + } + } + ] + } } ] }, @@ -1597,8 +1589,12 @@ ] }, { - "type": "STRING", - "value": ">" + "type": "PREC", + "value": 11, + "content": { + "type": "STRING", + "value": ">" + } } ] }, diff --git a/src/parser.c b/src/parser.c index 9e971f1..93640c7 100644 --- a/src/parser.c +++ b/src/parser.c @@ -5,7 +5,7 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 215 +#define STATE_COUNT 247 #define LARGE_STATE_COUNT 2 #define SYMBOL_COUNT 92 #define ALIAS_COUNT 0 @@ -1019,14 +1019,14 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [53] = 53, [54] = 54, [55] = 55, - [56] = 56, + [56] = 50, [57] = 57, [58] = 58, [59] = 59, [60] = 60, [61] = 61, [62] = 62, - [63] = 63, + [63] = 58, [64] = 64, [65] = 65, [66] = 66, @@ -1036,7 +1036,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [70] = 70, [71] = 71, [72] = 72, - [73] = 73, + [73] = 69, [74] = 74, [75] = 75, [76] = 76, @@ -1067,13 +1067,13 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [101] = 101, [102] = 102, [103] = 103, - [104] = 104, + [104] = 97, [105] = 105, - [106] = 106, + [106] = 99, [107] = 107, [108] = 108, [109] = 109, - [110] = 110, + [110] = 108, [111] = 111, [112] = 112, [113] = 113, @@ -1081,18 +1081,18 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [115] = 115, [116] = 116, [117] = 117, - [118] = 118, + [118] = 15, [119] = 119, - [120] = 120, - [121] = 121, + [120] = 13, + [121] = 12, [122] = 122, - [123] = 123, + [123] = 11, [124] = 124, [125] = 125, [126] = 126, [127] = 127, [128] = 128, - [129] = 129, + [129] = 14, [130] = 130, [131] = 131, [132] = 132, @@ -1113,35 +1113,35 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [147] = 147, [148] = 148, [149] = 149, - [150] = 150, + [150] = 29, [151] = 151, [152] = 152, [153] = 153, [154] = 154, - [155] = 155, - [156] = 156, + [155] = 33, + [156] = 25, [157] = 157, - [158] = 158, + [158] = 27, [159] = 159, [160] = 160, [161] = 161, - [162] = 162, + [162] = 32, [163] = 163, [164] = 164, [165] = 165, - [166] = 44, - [167] = 167, + [166] = 166, + [167] = 23, [168] = 168, [169] = 169, [170] = 170, [171] = 171, [172] = 172, [173] = 173, - [174] = 174, + [174] = 141, [175] = 175, [176] = 176, [177] = 177, - [178] = 178, + [178] = 163, [179] = 179, [180] = 180, [181] = 181, @@ -1149,27 +1149,27 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [183] = 183, [184] = 184, [185] = 185, - [186] = 186, + [186] = 22, [187] = 187, - [188] = 188, - [189] = 189, + [188] = 145, + [189] = 44, [190] = 190, - [191] = 191, + [191] = 153, [192] = 192, [193] = 193, [194] = 194, [195] = 195, - [196] = 196, + [196] = 20, [197] = 197, - [198] = 198, - [199] = 199, - [200] = 200, - [201] = 201, + [198] = 26, + [199] = 160, + [200] = 28, + [201] = 179, [202] = 202, - [203] = 203, - [204] = 204, + [203] = 154, + [204] = 180, [205] = 205, - [206] = 206, + [206] = 34, [207] = 207, [208] = 208, [209] = 209, @@ -1178,6 +1178,38 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [212] = 212, [213] = 213, [214] = 214, + [215] = 211, + [216] = 216, + [217] = 217, + [218] = 218, + [219] = 219, + [220] = 220, + [221] = 221, + [222] = 222, + [223] = 223, + [224] = 224, + [225] = 225, + [226] = 226, + [227] = 227, + [228] = 228, + [229] = 229, + [230] = 230, + [231] = 231, + [232] = 232, + [233] = 233, + [234] = 234, + [235] = 235, + [236] = 236, + [237] = 237, + [238] = 238, + [239] = 239, + [240] = 240, + [241] = 241, + [242] = 241, + [243] = 243, + [244] = 244, + [245] = 245, + [246] = 246, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -3520,9 +3552,9 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [11] = {.lex_state = 2}, [12] = {.lex_state = 2}, [13] = {.lex_state = 2}, - [14] = {.lex_state = 1}, + [14] = {.lex_state = 2}, [15] = {.lex_state = 2}, - [16] = {.lex_state = 2}, + [16] = {.lex_state = 1}, [17] = {.lex_state = 2}, [18] = {.lex_state = 2}, [19] = {.lex_state = 2}, @@ -3548,28 +3580,28 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [39] = {.lex_state = 2}, [40] = {.lex_state = 2}, [41] = {.lex_state = 2}, - [42] = {.lex_state = 2}, - [43] = {.lex_state = 1}, + [42] = {.lex_state = 1}, + [43] = {.lex_state = 2}, [44] = {.lex_state = 1}, [45] = {.lex_state = 2}, [46] = {.lex_state = 2}, [47] = {.lex_state = 2}, [48] = {.lex_state = 2}, [49] = {.lex_state = 2}, - [50] = {.lex_state = 2}, - [51] = {.lex_state = 1}, - [52] = {.lex_state = 1}, + [50] = {.lex_state = 1}, + [51] = {.lex_state = 2}, + [52] = {.lex_state = 2}, [53] = {.lex_state = 2}, - [54] = {.lex_state = 1}, + [54] = {.lex_state = 2}, [55] = {.lex_state = 2}, - [56] = {.lex_state = 2}, + [56] = {.lex_state = 1}, [57] = {.lex_state = 2}, [58] = {.lex_state = 2}, [59] = {.lex_state = 1}, [60] = {.lex_state = 2}, [61] = {.lex_state = 2}, - [62] = {.lex_state = 2}, - [63] = {.lex_state = 1}, + [62] = {.lex_state = 1}, + [63] = {.lex_state = 2}, [64] = {.lex_state = 1}, [65] = {.lex_state = 1}, [66] = {.lex_state = 1}, @@ -3598,129 +3630,161 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [89] = {.lex_state = 1}, [90] = {.lex_state = 1}, [91] = {.lex_state = 1}, - [92] = {.lex_state = 0}, + [92] = {.lex_state = 1}, [93] = {.lex_state = 0}, [94] = {.lex_state = 0}, [95] = {.lex_state = 0}, [96] = {.lex_state = 0}, - [97] = {.lex_state = 0}, + [97] = {.lex_state = 1}, [98] = {.lex_state = 0}, - [99] = {.lex_state = 0}, + [99] = {.lex_state = 1}, [100] = {.lex_state = 0}, - [101] = {.lex_state = 1}, + [101] = {.lex_state = 0}, [102] = {.lex_state = 0}, - [103] = {.lex_state = 1}, - [104] = {.lex_state = 0}, - [105] = {.lex_state = 0}, + [103] = {.lex_state = 0}, + [104] = {.lex_state = 1}, + [105] = {.lex_state = 1}, [106] = {.lex_state = 1}, [107] = {.lex_state = 0}, [108] = {.lex_state = 1}, [109] = {.lex_state = 0}, - [110] = {.lex_state = 0}, + [110] = {.lex_state = 1}, [111] = {.lex_state = 1}, [112] = {.lex_state = 0}, [113] = {.lex_state = 0}, - [114] = {.lex_state = 1}, + [114] = {.lex_state = 0}, [115] = {.lex_state = 0}, - [116] = {.lex_state = 0}, + [116] = {.lex_state = 1}, [117] = {.lex_state = 0}, - [118] = {.lex_state = 0}, - [119] = {.lex_state = 1}, - [120] = {.lex_state = 0}, - [121] = {.lex_state = 0}, + [118] = {.lex_state = 1}, + [119] = {.lex_state = 0}, + [120] = {.lex_state = 1}, + [121] = {.lex_state = 1}, [122] = {.lex_state = 0}, - [123] = {.lex_state = 0}, + [123] = {.lex_state = 1}, [124] = {.lex_state = 0}, - [125] = {.lex_state = 0}, - [126] = {.lex_state = 1}, + [125] = {.lex_state = 1}, + [126] = {.lex_state = 0}, [127] = {.lex_state = 0}, - [128] = {.lex_state = 0}, - [129] = {.lex_state = 0}, - [130] = {.lex_state = 1}, + [128] = {.lex_state = 1}, + [129] = {.lex_state = 1}, + [130] = {.lex_state = 0}, [131] = {.lex_state = 0}, [132] = {.lex_state = 0}, [133] = {.lex_state = 0}, - [134] = {.lex_state = 0}, - [135] = {.lex_state = 1}, + [134] = {.lex_state = 1}, + [135] = {.lex_state = 0}, [136] = {.lex_state = 0}, [137] = {.lex_state = 0}, [138] = {.lex_state = 0}, [139] = {.lex_state = 0}, [140] = {.lex_state = 0}, - [141] = {.lex_state = 0}, - [142] = {.lex_state = 1}, - [143] = {.lex_state = 0}, - [144] = {.lex_state = 0}, + [141] = {.lex_state = 1}, + [142] = {.lex_state = 0}, + [143] = {.lex_state = 1}, + [144] = {.lex_state = 1}, [145] = {.lex_state = 1}, [146] = {.lex_state = 0}, - [147] = {.lex_state = 1}, - [148] = {.lex_state = 1}, + [147] = {.lex_state = 0}, + [148] = {.lex_state = 0}, [149] = {.lex_state = 0}, - [150] = {.lex_state = 0}, + [150] = {.lex_state = 1}, [151] = {.lex_state = 0}, - [152] = {.lex_state = 0}, - [153] = {.lex_state = 0}, + [152] = {.lex_state = 1}, + [153] = {.lex_state = 1}, [154] = {.lex_state = 0}, - [155] = {.lex_state = 0}, - [156] = {.lex_state = 0}, + [155] = {.lex_state = 1}, + [156] = {.lex_state = 1}, [157] = {.lex_state = 0}, - [158] = {.lex_state = 0}, - [159] = {.lex_state = 1}, - [160] = {.lex_state = 0}, + [158] = {.lex_state = 1}, + [159] = {.lex_state = 0}, + [160] = {.lex_state = 1}, [161] = {.lex_state = 0}, - [162] = {.lex_state = 0}, + [162] = {.lex_state = 1}, [163] = {.lex_state = 0}, - [164] = {.lex_state = 1}, + [164] = {.lex_state = 0}, [165] = {.lex_state = 0}, [166] = {.lex_state = 0}, - [167] = {.lex_state = 0}, + [167] = {.lex_state = 1}, [168] = {.lex_state = 0}, [169] = {.lex_state = 0}, [170] = {.lex_state = 0}, - [171] = {.lex_state = 1}, + [171] = {.lex_state = 0}, [172] = {.lex_state = 0}, - [173] = {.lex_state = 0}, - [174] = {.lex_state = 0}, + [173] = {.lex_state = 1}, + [174] = {.lex_state = 1}, [175] = {.lex_state = 0}, [176] = {.lex_state = 0}, [177] = {.lex_state = 0}, - [178] = {.lex_state = 1}, - [179] = {.lex_state = 0}, - [180] = {.lex_state = 0}, + [178] = {.lex_state = 0}, + [179] = {.lex_state = 1}, + [180] = {.lex_state = 1}, [181] = {.lex_state = 0}, [182] = {.lex_state = 0}, [183] = {.lex_state = 0}, [184] = {.lex_state = 0}, [185] = {.lex_state = 0}, - [186] = {.lex_state = 0}, + [186] = {.lex_state = 1}, [187] = {.lex_state = 0}, - [188] = {.lex_state = 0}, + [188] = {.lex_state = 1}, [189] = {.lex_state = 0}, - [190] = {.lex_state = 1}, - [191] = {.lex_state = 0}, - [192] = {.lex_state = 0}, + [190] = {.lex_state = 0}, + [191] = {.lex_state = 1}, + [192] = {.lex_state = 1}, [193] = {.lex_state = 0}, [194] = {.lex_state = 0}, - [195] = {.lex_state = 0}, - [196] = {.lex_state = 0}, - [197] = {.lex_state = 0}, - [198] = {.lex_state = 0}, - [199] = {.lex_state = 0}, - [200] = {.lex_state = 0}, - [201] = {.lex_state = 0}, + [195] = {.lex_state = 1}, + [196] = {.lex_state = 1}, + [197] = {.lex_state = 1}, + [198] = {.lex_state = 1}, + [199] = {.lex_state = 1}, + [200] = {.lex_state = 1}, + [201] = {.lex_state = 1}, [202] = {.lex_state = 0}, - [203] = {.lex_state = 1}, - [204] = {.lex_state = 0}, + [203] = {.lex_state = 0}, + [204] = {.lex_state = 1}, [205] = {.lex_state = 0}, [206] = {.lex_state = 1}, [207] = {.lex_state = 0}, - [208] = {.lex_state = 0}, + [208] = {.lex_state = 1}, [209] = {.lex_state = 0}, [210] = {.lex_state = 0}, [211] = {.lex_state = 0}, [212] = {.lex_state = 0}, [213] = {.lex_state = 0}, [214] = {.lex_state = 0}, + [215] = {.lex_state = 0}, + [216] = {.lex_state = 0}, + [217] = {.lex_state = 0}, + [218] = {.lex_state = 0}, + [219] = {.lex_state = 0}, + [220] = {.lex_state = 0}, + [221] = {.lex_state = 1}, + [222] = {.lex_state = 0}, + [223] = {.lex_state = 0}, + [224] = {.lex_state = 0}, + [225] = {.lex_state = 0}, + [226] = {.lex_state = 0}, + [227] = {.lex_state = 0}, + [228] = {.lex_state = 0}, + [229] = {.lex_state = 0}, + [230] = {.lex_state = 0}, + [231] = {.lex_state = 0}, + [232] = {.lex_state = 0}, + [233] = {.lex_state = 0}, + [234] = {.lex_state = 0}, + [235] = {.lex_state = 0}, + [236] = {.lex_state = 1}, + [237] = {.lex_state = 1}, + [238] = {.lex_state = 0}, + [239] = {.lex_state = 0}, + [240] = {.lex_state = 0}, + [241] = {.lex_state = 0}, + [242] = {.lex_state = 0}, + [243] = {.lex_state = 0}, + [244] = {.lex_state = 0}, + [245] = {.lex_state = 0}, + [246] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -3774,9 +3838,9 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(214), - [sym_module] = STATE(172), - [aux_sym__linebreak] = STATE(113), + [sym_source_file] = STATE(246), + [sym_module] = STATE(202), + [aux_sym__linebreak] = STATE(132), [ts_builtin_sym_end] = ACTIONS(5), [anon_sym_module] = ACTIONS(7), [anon_sym_LF] = ACTIONS(9), @@ -3811,20 +3875,20 @@ static const uint16_t ts_small_parse_table[] = { sym_number, ACTIONS(39), 1, anon_sym_LF, - STATE(43), 1, + STATE(42), 1, sym_write_modifiers, STATE(44), 1, aux_sym__linebreak, STATE(48), 1, sym_template_global, - STATE(82), 1, + STATE(83), 1, aux_sym_write_modifiers_repeat1, - STATE(110), 1, + STATE(115), 1, sym_assign_to, - STATE(112), 1, - sym_assign_left_side, - STATE(138), 1, + STATE(137), 1, sym_declaration, + STATE(213), 1, + sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -3834,10 +3898,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(182), 2, + STATE(210), 2, sym__type, sym_array_type, - STATE(146), 5, + STATE(239), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -3851,7 +3915,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(45), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -3884,19 +3948,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(41), 1, anon_sym_RBRACE, - STATE(43), 1, + STATE(42), 1, sym_write_modifiers, STATE(44), 1, aux_sym__linebreak, STATE(48), 1, sym_template_global, - STATE(82), 1, + STATE(83), 1, aux_sym_write_modifiers_repeat1, - STATE(110), 1, + STATE(115), 1, sym_assign_to, - STATE(138), 1, + STATE(137), 1, sym_declaration, - STATE(179), 1, + STATE(213), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -3907,10 +3971,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(182), 2, + STATE(210), 2, sym__type, sym_array_type, - STATE(192), 5, + STATE(239), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -3924,7 +3988,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(45), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -3957,20 +4021,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(43), 1, anon_sym_RBRACE, - STATE(43), 1, + STATE(42), 1, sym_write_modifiers, STATE(44), 1, aux_sym__linebreak, STATE(48), 1, sym_template_global, - STATE(82), 1, + STATE(83), 1, aux_sym_write_modifiers_repeat1, - STATE(110), 1, + STATE(115), 1, sym_assign_to, - STATE(138), 1, - sym_declaration, - STATE(179), 1, + STATE(119), 1, sym_assign_left_side, + STATE(137), 1, + sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -3980,10 +4044,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(182), 2, + STATE(210), 2, sym__type, sym_array_type, - STATE(192), 5, + STATE(136), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -3997,7 +4061,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(45), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4030,19 +4094,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(45), 1, anon_sym_RBRACE, - STATE(43), 1, + STATE(42), 1, sym_write_modifiers, STATE(44), 1, aux_sym__linebreak, STATE(48), 1, sym_template_global, - STATE(82), 1, + STATE(83), 1, aux_sym_write_modifiers_repeat1, - STATE(110), 1, + STATE(115), 1, sym_assign_to, - STATE(138), 1, + STATE(137), 1, sym_declaration, - STATE(179), 1, + STATE(213), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4053,10 +4117,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(182), 2, + STATE(210), 2, sym__type, sym_array_type, - STATE(192), 5, + STATE(239), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -4070,7 +4134,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(45), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4103,19 +4167,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(47), 1, anon_sym_RBRACE, - STATE(43), 1, + STATE(42), 1, sym_write_modifiers, STATE(44), 1, aux_sym__linebreak, STATE(48), 1, sym_template_global, - STATE(82), 1, + STATE(83), 1, aux_sym_write_modifiers_repeat1, - STATE(110), 1, + STATE(115), 1, sym_assign_to, - STATE(138), 1, + STATE(137), 1, sym_declaration, - STATE(179), 1, + STATE(213), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4126,10 +4190,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(182), 2, + STATE(210), 2, sym__type, sym_array_type, - STATE(192), 5, + STATE(239), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -4143,7 +4207,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(45), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4176,19 +4240,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(49), 1, anon_sym_RBRACE, - STATE(43), 1, + STATE(42), 1, sym_write_modifiers, STATE(44), 1, aux_sym__linebreak, STATE(48), 1, sym_template_global, - STATE(82), 1, + STATE(83), 1, aux_sym_write_modifiers_repeat1, - STATE(110), 1, + STATE(115), 1, sym_assign_to, - STATE(138), 1, + STATE(137), 1, sym_declaration, - STATE(179), 1, + STATE(213), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4199,10 +4263,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(182), 2, + STATE(210), 2, sym__type, sym_array_type, - STATE(192), 5, + STATE(239), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -4216,7 +4280,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(45), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4249,19 +4313,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, ACTIONS(53), 1, anon_sym_LF, - STATE(2), 1, + STATE(4), 1, aux_sym__linebreak, - STATE(43), 1, + STATE(42), 1, sym_write_modifiers, STATE(48), 1, sym_template_global, - STATE(82), 1, + STATE(83), 1, aux_sym_write_modifiers_repeat1, - STATE(110), 1, + STATE(115), 1, sym_assign_to, - STATE(121), 1, + STATE(126), 1, sym_assign_left_side, - STATE(138), 1, + STATE(137), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -4272,10 +4336,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(182), 2, + STATE(210), 2, sym__type, sym_array_type, - STATE(139), 5, + STATE(140), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -4289,7 +4353,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(45), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4322,19 +4386,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(55), 1, anon_sym_RBRACE, - STATE(43), 1, + STATE(42), 1, sym_write_modifiers, STATE(44), 1, aux_sym__linebreak, STATE(48), 1, sym_template_global, - STATE(82), 1, + STATE(83), 1, aux_sym_write_modifiers_repeat1, - STATE(110), 1, + STATE(115), 1, sym_assign_to, - STATE(138), 1, + STATE(137), 1, sym_declaration, - STATE(179), 1, + STATE(213), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4345,10 +4409,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(182), 2, + STATE(210), 2, sym__type, sym_array_type, - STATE(192), 5, + STATE(239), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -4362,7 +4426,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(45), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4393,19 +4457,19 @@ static const uint16_t ts_small_parse_table[] = { sym_number, ACTIONS(39), 1, anon_sym_LF, - STATE(43), 1, + STATE(42), 1, sym_write_modifiers, STATE(44), 1, aux_sym__linebreak, STATE(48), 1, sym_template_global, - STATE(82), 1, + STATE(83), 1, aux_sym_write_modifiers_repeat1, - STATE(110), 1, + STATE(115), 1, sym_assign_to, - STATE(138), 1, + STATE(137), 1, sym_declaration, - STATE(179), 1, + STATE(213), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4416,10 +4480,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(182), 2, + STATE(210), 2, sym__type, sym_array_type, - STATE(192), 5, + STATE(239), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -4433,7 +4497,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(45), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4444,7 +4508,7 @@ static const uint16_t ts_small_parse_table[] = { [888] = 5, ACTIONS(61), 1, anon_sym_COLON_COLON, - STATE(16), 1, + STATE(11), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, @@ -4481,14 +4545,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_LF, [932] = 5, - ACTIONS(61), 1, + ACTIONS(68), 1, anon_sym_COLON_COLON, - STATE(11), 1, + STATE(14), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(63), 8, + ACTIONS(64), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4497,7 +4561,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(65), 21, + ACTIONS(66), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4520,14 +4584,92 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_LF, [976] = 5, - ACTIONS(61), 1, + ACTIONS(68), 1, anon_sym_COLON_COLON, - STATE(16), 1, + STATE(15), 1, + aux_sym_template_global_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(70), 8, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(72), 21, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_LF, + [1020] = 5, + ACTIONS(68), 1, + anon_sym_COLON_COLON, + STATE(11), 1, + aux_sym_template_global_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(74), 8, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(76), 21, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_LF, + [1064] = 5, + ACTIONS(68), 1, + anon_sym_COLON_COLON, + STATE(11), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(67), 8, + ACTIONS(78), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4536,7 +4678,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(69), 21, + ACTIONS(80), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4558,7 +4700,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1020] = 17, + [1108] = 17, ACTIONS(11), 1, sym_identifier, ACTIONS(19), 1, @@ -4571,16 +4713,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(37), 1, sym_number, - STATE(43), 1, + STATE(42), 1, sym_write_modifiers, STATE(48), 1, sym_template_global, - STATE(82), 1, + STATE(83), 1, aux_sym_write_modifiers_repeat1, - STATE(134), 1, - sym_assign_to, - STATE(138), 1, + STATE(137), 1, sym_declaration, + STATE(139), 1, + sym_assign_to, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4590,7 +4732,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(182), 2, + STATE(210), 2, sym__type, sym_array_type, ACTIONS(31), 7, @@ -4601,7 +4743,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(45), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4609,30 +4751,39 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [1088] = 5, - ACTIONS(61), 1, - anon_sym_COLON_COLON, - STATE(13), 1, - aux_sym_template_global_repeat1, + [1176] = 12, + ACTIONS(86), 1, + anon_sym_PLUS, + ACTIONS(88), 1, + anon_sym_DASH, + ACTIONS(92), 1, + anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_DOT, + ACTIONS(96), 1, + anon_sym_LPAREN, + ACTIONS(98), 1, + anon_sym_LBRACK, + STATE(36), 1, + sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(71), 8, + ACTIONS(90), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(84), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(73), 21, + ACTIONS(82), 17, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, - anon_sym_PLUS, - anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -4640,94 +4791,111 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1132] = 5, - ACTIONS(79), 1, - anon_sym_COLON_COLON, - STATE(16), 1, - aux_sym_template_global_repeat1, + [1233] = 14, + ACTIONS(86), 1, + anon_sym_PLUS, + ACTIONS(88), 1, + anon_sym_DASH, + ACTIONS(92), 1, + anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_DOT, + ACTIONS(96), 1, + anon_sym_LPAREN, + ACTIONS(98), 1, + anon_sym_LBRACK, + ACTIONS(100), 1, + anon_sym_PIPE, + ACTIONS(102), 1, + anon_sym_CARET, + STATE(36), 1, + sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(75), 8, + ACTIONS(90), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(84), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(77), 21, + ACTIONS(82), 15, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1176] = 3, + [1294] = 15, + ACTIONS(86), 1, + anon_sym_PLUS, + ACTIONS(88), 1, + anon_sym_DASH, + ACTIONS(92), 1, + anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_DOT, + ACTIONS(96), 1, + anon_sym_LPAREN, + ACTIONS(98), 1, + anon_sym_LBRACK, + ACTIONS(100), 1, + anon_sym_PIPE, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, + anon_sym_AMP, + STATE(36), 1, + sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(82), 8, + ACTIONS(90), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(84), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(84), 22, + ACTIONS(82), 14, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1215] = 3, + [1357] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 8, + ACTIONS(106), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4736,7 +4904,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(88), 22, + ACTIONS(108), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4759,23 +4927,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1254] = 3, + [1396] = 8, + ACTIONS(94), 1, + anon_sym_DOT, + ACTIONS(96), 1, + anon_sym_LPAREN, + ACTIONS(98), 1, + anon_sym_LBRACK, + STATE(36), 1, + sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(90), 8, + ACTIONS(112), 5, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, anon_sym_DASH, anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(92), 22, + ACTIONS(110), 20, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, anon_sym_PLUS, anon_sym_STAR, @@ -4787,19 +4963,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1293] = 3, + [1445] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(94), 8, + ACTIONS(114), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4808,7 +4981,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(96), 22, + ACTIONS(116), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4831,11 +5004,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1332] = 3, + [1484] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(98), 8, + ACTIONS(118), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4844,7 +5017,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(100), 22, + ACTIONS(120), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4867,26 +5040,37 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1371] = 3, + [1523] = 10, + ACTIONS(92), 1, + anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_DOT, + ACTIONS(96), 1, + anon_sym_LPAREN, + ACTIONS(98), 1, + anon_sym_LBRACK, + STATE(36), 1, + sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(102), 8, + ACTIONS(90), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(84), 4, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(104), 22, + ACTIONS(82), 18, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, anon_sym_PLUS, - anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -4894,20 +5078,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1410] = 3, + [1576] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(106), 8, + ACTIONS(122), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4916,7 +5096,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(108), 22, + ACTIONS(124), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4939,11 +5119,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1449] = 3, + [1615] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(110), 8, + ACTIONS(126), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4952,7 +5132,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(112), 22, + ACTIONS(128), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4975,11 +5155,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1488] = 3, + [1654] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(114), 8, + ACTIONS(130), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4988,7 +5168,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(116), 22, + ACTIONS(132), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5011,11 +5191,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1527] = 3, + [1693] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(118), 8, + ACTIONS(134), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5024,7 +5204,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(120), 22, + ACTIONS(136), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5047,11 +5227,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1566] = 3, + [1732] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(122), 8, + ACTIONS(138), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5060,7 +5240,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(124), 21, + ACTIONS(140), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5079,128 +5259,81 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1604] = 13, - ACTIONS(130), 1, - anon_sym_PLUS, - ACTIONS(132), 1, - anon_sym_DASH, - ACTIONS(136), 1, - anon_sym_CARET, - ACTIONS(138), 1, - anon_sym_SLASH, - ACTIONS(140), 1, + [1771] = 8, + ACTIONS(94), 1, anon_sym_DOT, - ACTIONS(142), 1, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(144), 1, + ACTIONS(98), 1, anon_sym_LBRACK, - STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, + STATE(36), 1, sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(134), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(128), 3, + ACTIONS(84), 5, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(126), 15, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DOT_DOT, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_LF, - [1662] = 14, - ACTIONS(130), 1, - anon_sym_PLUS, - ACTIONS(132), 1, anon_sym_DASH, - ACTIONS(136), 1, - anon_sym_CARET, - ACTIONS(138), 1, anon_sym_SLASH, - ACTIONS(140), 1, - anon_sym_DOT, - ACTIONS(142), 1, - anon_sym_LPAREN, - ACTIONS(144), 1, - anon_sym_LBRACK, - ACTIONS(146), 1, - anon_sym_PIPE, - STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, - sym_parenthesis_expression_list, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(134), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(128), 3, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - ACTIONS(126), 14, + ACTIONS(82), 20, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1722] = 12, - ACTIONS(130), 1, + [1820] = 13, + ACTIONS(86), 1, anon_sym_PLUS, - ACTIONS(132), 1, + ACTIONS(88), 1, anon_sym_DASH, - ACTIONS(138), 1, + ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(140), 1, + ACTIONS(94), 1, anon_sym_DOT, - ACTIONS(142), 1, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(144), 1, + ACTIONS(98), 1, anon_sym_LBRACK, - STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, + ACTIONS(102), 1, + anon_sym_CARET, + STATE(36), 1, sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(134), 2, + ACTIONS(90), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(128), 3, + ACTIONS(84), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(126), 16, + ACTIONS(82), 16, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5208,40 +5341,32 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DOT_DOT, anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_RPAREN, anon_sym_RBRACK, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1778] = 8, - ACTIONS(140), 1, - anon_sym_DOT, - ACTIONS(142), 1, - anon_sym_LPAREN, - ACTIONS(144), 1, - anon_sym_LBRACK, - STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, - sym_parenthesis_expression_list, + [1879] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 5, + ACTIONS(142), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, + anon_sym_in, anon_sym_DASH, anon_sym_SLASH, - ACTIONS(126), 19, + anon_sym_DOT, + sym_identifier, + ACTIONS(144), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_PLUS, anon_sym_STAR, @@ -5253,35 +5378,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1826] = 8, - ACTIONS(140), 1, - anon_sym_DOT, - ACTIONS(142), 1, - anon_sym_LPAREN, - ACTIONS(144), 1, - anon_sym_LBRACK, - STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, - sym_parenthesis_expression_list, + [1918] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(150), 5, + ACTIONS(146), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, + anon_sym_in, anon_sym_DASH, anon_sym_SLASH, - ACTIONS(148), 19, + anon_sym_DOT, + sym_identifier, + ACTIONS(148), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_PLUS, anon_sym_STAR, @@ -5293,41 +5414,34 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1874] = 10, - ACTIONS(138), 1, - anon_sym_SLASH, - ACTIONS(140), 1, - anon_sym_DOT, - ACTIONS(142), 1, - anon_sym_LPAREN, - ACTIONS(144), 1, - anon_sym_LBRACK, - STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, - sym_parenthesis_expression_list, + [1957] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(134), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(128), 4, + ACTIONS(150), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, + anon_sym_in, anon_sym_DASH, - ACTIONS(126), 17, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(152), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -5335,58 +5449,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_LF, - [1926] = 15, - ACTIONS(130), 1, - anon_sym_PLUS, - ACTIONS(132), 1, - anon_sym_DASH, - ACTIONS(136), 1, - anon_sym_CARET, - ACTIONS(138), 1, - anon_sym_SLASH, - ACTIONS(140), 1, - anon_sym_DOT, - ACTIONS(142), 1, - anon_sym_LPAREN, - ACTIONS(144), 1, - anon_sym_LBRACK, - ACTIONS(146), 1, - anon_sym_PIPE, - ACTIONS(152), 1, - anon_sym_AMP, - STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, - sym_parenthesis_expression_list, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(134), 2, - anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(128), 3, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - ACTIONS(126), 13, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DOT_DOT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1988] = 3, + [1995] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -5397,7 +5468,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(154), 21, + ACTIONS(154), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5417,9 +5488,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [2024] = 3, + [2032] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -5430,7 +5502,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(158), 21, + ACTIONS(158), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5450,9 +5522,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [2060] = 3, + [2069] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -5463,7 +5536,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(162), 21, + ACTIONS(162), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5483,9 +5556,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [2096] = 3, + [2106] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -5496,7 +5570,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(166), 21, + ACTIONS(166), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5516,9 +5590,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [2132] = 3, + [2143] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -5529,7 +5604,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(170), 21, + ACTIONS(170), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5549,9 +5624,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [2168] = 3, + [2180] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -5562,7 +5638,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(174), 21, + ACTIONS(174), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5582,9 +5658,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [2204] = 3, + [2217] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -5595,7 +5672,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(178), 21, + ACTIONS(178), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5615,66 +5692,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [2240] = 17, - ACTIONS(130), 1, - anon_sym_PLUS, - ACTIONS(132), 1, - anon_sym_DASH, - ACTIONS(136), 1, - anon_sym_CARET, - ACTIONS(138), 1, - anon_sym_SLASH, - ACTIONS(142), 1, - anon_sym_LPAREN, - ACTIONS(144), 1, - anon_sym_LBRACK, - ACTIONS(146), 1, - anon_sym_PIPE, - ACTIONS(152), 1, - anon_sym_AMP, - ACTIONS(186), 1, - anon_sym_EQ, - ACTIONS(190), 1, - anon_sym_DOT, - STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, - sym_parenthesis_expression_list, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(134), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(184), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(188), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - ACTIONS(182), 6, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_COMMA, - anon_sym_LF, - [2303] = 12, + [2254] = 12, ACTIONS(11), 1, sym_identifier, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(192), 1, + ACTIONS(182), 1, sym_number, STATE(48), 1, sym_template_global, - STATE(173), 1, + STATE(172), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -5685,7 +5717,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(182), 2, + STATE(210), 2, sym__type, sym_array_type, ACTIONS(31), 7, @@ -5696,7 +5728,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(46), 7, + STATE(47), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -5704,7 +5736,53 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [2356] = 5, + [2307] = 17, + ACTIONS(86), 1, + anon_sym_PLUS, + ACTIONS(88), 1, + anon_sym_DASH, + ACTIONS(92), 1, + anon_sym_SLASH, + ACTIONS(96), 1, + anon_sym_LPAREN, + ACTIONS(98), 1, + anon_sym_LBRACK, + ACTIONS(100), 1, + anon_sym_PIPE, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, + anon_sym_AMP, + ACTIONS(188), 1, + anon_sym_EQ, + ACTIONS(192), 1, + anon_sym_DOT, + STATE(36), 1, + sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(90), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(186), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(190), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(184), 6, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_COMMA, + anon_sym_LF, + [2370] = 5, ACTIONS(198), 1, anon_sym_LF, STATE(44), 1, @@ -5737,135 +5815,135 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [2394] = 18, - ACTIONS(136), 1, - anon_sym_CARET, - ACTIONS(138), 1, + [2408] = 16, + ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(142), 1, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(144), 1, + ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(146), 1, + ACTIONS(100), 1, anon_sym_PIPE, - ACTIONS(152), 1, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, anon_sym_AMP, - ACTIONS(190), 1, + ACTIONS(192), 1, anon_sym_DOT, - ACTIONS(201), 1, - anon_sym_RPAREN, ACTIONS(203), 1, - anon_sym_COMMA, - STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, + anon_sym_EQ, + STATE(36), 1, sym_parenthesis_expression_list, - STATE(64), 1, - sym__comma, - STATE(161), 1, - aux_sym_parenthesis_expression_list_repeat1, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 2, + ACTIONS(86), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(134), 2, + ACTIONS(90), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(184), 2, + ACTIONS(186), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(188), 4, + ACTIONS(201), 3, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LF, + ACTIONS(190), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2456] = 16, - ACTIONS(136), 1, - anon_sym_CARET, - ACTIONS(138), 1, + [2466] = 18, + ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(142), 1, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(144), 1, + ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(146), 1, + ACTIONS(100), 1, anon_sym_PIPE, - ACTIONS(152), 1, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, anon_sym_AMP, - ACTIONS(190), 1, + ACTIONS(192), 1, anon_sym_DOT, + ACTIONS(205), 1, + anon_sym_RPAREN, ACTIONS(207), 1, - anon_sym_EQ, - STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, + anon_sym_COMMA, + STATE(36), 1, sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, + STATE(81), 1, + sym__comma, + STATE(164), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 2, + ACTIONS(86), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(134), 2, + ACTIONS(90), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(184), 2, + ACTIONS(186), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(205), 3, - anon_sym_RBRACE, - anon_sym_COMMA, - anon_sym_LF, - ACTIONS(188), 4, + ACTIONS(190), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2514] = 16, - ACTIONS(136), 1, - anon_sym_CARET, - ACTIONS(138), 1, + [2528] = 16, + ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(142), 1, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(144), 1, + ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(146), 1, + ACTIONS(100), 1, anon_sym_PIPE, - ACTIONS(152), 1, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, anon_sym_AMP, - ACTIONS(190), 1, + ACTIONS(192), 1, anon_sym_DOT, ACTIONS(211), 1, anon_sym_EQ, - STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, + STATE(36), 1, sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 2, + ACTIONS(86), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(134), 2, + ACTIONS(90), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(184), 2, + ACTIONS(186), 2, anon_sym_LT, anon_sym_GT, ACTIONS(209), 3, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, - ACTIONS(188), 4, + ACTIONS(190), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2572] = 5, + [2586] = 5, ACTIONS(213), 1, sym_identifier, ACTIONS(219), 1, @@ -5895,86 +5973,38 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COMMA, anon_sym_LF, - [2607] = 16, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(136), 1, - anon_sym_CARET, - ACTIONS(138), 1, - anon_sym_SLASH, - ACTIONS(142), 1, - anon_sym_LPAREN, - ACTIONS(144), 1, - anon_sym_LBRACK, - ACTIONS(146), 1, - anon_sym_PIPE, - ACTIONS(152), 1, - anon_sym_AMP, - ACTIONS(190), 1, - anon_sym_DOT, - STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, - sym_parenthesis_expression_list, - STATE(208), 1, - sym_block, + [2621] = 6, + ACTIONS(68), 1, + anon_sym_COLON_COLON, + ACTIONS(222), 1, + anon_sym_EQ, + STATE(14), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 2, + ACTIONS(64), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(66), 16, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(134), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(184), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(188), 4, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2663] = 15, - ACTIONS(136), 1, - anon_sym_CARET, - ACTIONS(138), 1, - anon_sym_SLASH, - ACTIONS(142), 1, + anon_sym_PERCENT, + anon_sym_DOT, anon_sym_LPAREN, - ACTIONS(144), 1, anon_sym_LBRACK, - ACTIONS(146), 1, - anon_sym_PIPE, - ACTIONS(152), 1, - anon_sym_AMP, - ACTIONS(190), 1, - anon_sym_DOT, - STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, - sym_parenthesis_expression_list, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(130), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(134), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(184), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(222), 2, - anon_sym_RPAREN, + anon_sym_SEMI, anon_sym_COMMA, - ACTIONS(188), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [2717] = 9, + [2658] = 9, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, @@ -5982,10 +6012,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(224), 1, sym_identifier, ACTIONS(226), 1, - anon_sym_GT, + anon_sym_SEMI, ACTIONS(228), 1, sym_number, - STATE(135), 1, + STATE(203), 1, sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, @@ -5998,7 +6028,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(58), 8, + STATE(57), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6007,268 +6037,216 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2759] = 9, - ACTIONS(33), 1, + [2700] = 16, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(92), 1, + anon_sym_SLASH, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(224), 1, - sym_identifier, - ACTIONS(228), 1, - sym_number, - ACTIONS(230), 1, - anon_sym_GT, - STATE(159), 1, - sym_template_value_param, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(31), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, + ACTIONS(98), 1, + anon_sym_LBRACK, + ACTIONS(100), 1, anon_sym_PIPE, - anon_sym_AMP, + ACTIONS(102), 1, anon_sym_CARET, - STATE(58), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_template_global, - [2801] = 6, - ACTIONS(61), 1, - anon_sym_COLON_COLON, - ACTIONS(232), 1, - anon_sym_EQ, - STATE(13), 1, - aux_sym_template_global_repeat1, + ACTIONS(104), 1, + anon_sym_AMP, + ACTIONS(192), 1, + anon_sym_DOT, + STATE(36), 1, + sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, + STATE(223), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(71), 3, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, - ACTIONS(73), 15, + ACTIONS(86), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(90), 2, anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, + anon_sym_PERCENT, + ACTIONS(186), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(190), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_LBRACK, - anon_sym_COMMA, - [2837] = 9, - ACTIONS(33), 1, - anon_sym_LPAREN, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(224), 1, - sym_identifier, - ACTIONS(228), 1, - sym_number, - ACTIONS(234), 1, - anon_sym_GT, - STATE(171), 1, - sym_template_value_param, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(31), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(58), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_template_global, - [2879] = 15, - ACTIONS(136), 1, - anon_sym_CARET, - ACTIONS(138), 1, + [2756] = 15, + ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(142), 1, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(144), 1, + ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(146), 1, + ACTIONS(100), 1, anon_sym_PIPE, - ACTIONS(152), 1, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, anon_sym_AMP, - ACTIONS(190), 1, + ACTIONS(192), 1, anon_sym_DOT, - STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, + STATE(36), 1, sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 2, + ACTIONS(86), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(134), 2, + ACTIONS(90), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(184), 2, + ACTIONS(186), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(236), 2, + ACTIONS(230), 2, anon_sym_RBRACE, anon_sym_LF, - ACTIONS(188), 4, + ACTIONS(190), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2933] = 16, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(136), 1, - anon_sym_CARET, - ACTIONS(138), 1, + [2810] = 15, + ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(142), 1, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(144), 1, + ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(146), 1, + ACTIONS(100), 1, anon_sym_PIPE, - ACTIONS(152), 1, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, anon_sym_AMP, - ACTIONS(190), 1, + ACTIONS(192), 1, anon_sym_DOT, - STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, + STATE(36), 1, sym_parenthesis_expression_list, - STATE(181), 1, - sym_block, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 2, + ACTIONS(86), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(134), 2, + ACTIONS(90), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(184), 2, + ACTIONS(186), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(188), 4, + ACTIONS(232), 2, + anon_sym_SEMI, + anon_sym_COMMA, + ACTIONS(190), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2989] = 15, - ACTIONS(136), 1, - anon_sym_CARET, - ACTIONS(138), 1, + [2864] = 16, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(142), 1, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(144), 1, + ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(146), 1, + ACTIONS(100), 1, anon_sym_PIPE, - ACTIONS(152), 1, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, anon_sym_AMP, - ACTIONS(190), 1, + ACTIONS(192), 1, anon_sym_DOT, - ACTIONS(238), 1, - anon_sym_RBRACK, - STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, + STATE(36), 1, sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, + STATE(207), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 2, + ACTIONS(86), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(134), 2, + ACTIONS(90), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(184), 2, + ACTIONS(186), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(188), 4, + ACTIONS(190), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3042] = 15, - ACTIONS(136), 1, - anon_sym_CARET, - ACTIONS(138), 1, + [2920] = 15, + ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(142), 1, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(144), 1, + ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(146), 1, + ACTIONS(100), 1, anon_sym_PIPE, - ACTIONS(152), 1, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, anon_sym_AMP, - ACTIONS(190), 1, + ACTIONS(192), 1, anon_sym_DOT, - ACTIONS(240), 1, - anon_sym_COMMA, - STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, + STATE(36), 1, sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 2, + ACTIONS(86), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(134), 2, + ACTIONS(90), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(184), 2, + ACTIONS(186), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(188), 4, + ACTIONS(234), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + ACTIONS(190), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3095] = 8, + [2974] = 9, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(224), 1, sym_identifier, - ACTIONS(244), 1, - anon_sym_RPAREN, - ACTIONS(246), 1, + ACTIONS(228), 1, sym_number, + ACTIONS(236), 1, + anon_sym_SEMI, + STATE(154), 1, + sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6280,7 +6258,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(45), 8, + STATE(57), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6289,131 +6267,201 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3134] = 15, - ACTIONS(136), 1, - anon_sym_CARET, - ACTIONS(138), 1, + [3016] = 15, + ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(140), 1, - anon_sym_DOT, - ACTIONS(142), 1, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(144), 1, + ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(146), 1, + ACTIONS(100), 1, anon_sym_PIPE, - ACTIONS(152), 1, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, anon_sym_AMP, - ACTIONS(248), 1, - anon_sym_DOT_DOT, - STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, + ACTIONS(192), 1, + anon_sym_DOT, + STATE(36), 1, sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 2, + ACTIONS(86), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(134), 2, + ACTIONS(90), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(184), 2, + ACTIONS(186), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(188), 4, + ACTIONS(238), 2, + anon_sym_SEMI, + anon_sym_COMMA, + ACTIONS(190), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3187] = 15, - ACTIONS(136), 1, - anon_sym_CARET, - ACTIONS(138), 1, + [3070] = 15, + ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(142), 1, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(144), 1, + ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(146), 1, + ACTIONS(100), 1, anon_sym_PIPE, - ACTIONS(152), 1, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, anon_sym_AMP, - ACTIONS(190), 1, + ACTIONS(192), 1, anon_sym_DOT, - ACTIONS(250), 1, - anon_sym_RPAREN, - STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, + ACTIONS(240), 1, + anon_sym_RBRACK, + STATE(36), 1, sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 2, + ACTIONS(86), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(134), 2, + ACTIONS(90), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(184), 2, + ACTIONS(186), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(188), 4, + ACTIONS(190), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3240] = 15, - ACTIONS(136), 1, + [3123] = 8, + ACTIONS(33), 1, + anon_sym_LPAREN, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(224), 1, + sym_identifier, + ACTIONS(228), 1, + sym_number, + STATE(232), 1, + sym_template_value_param, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(31), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, anon_sym_CARET, - ACTIONS(138), 1, + STATE(57), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_template_global, + [3162] = 15, + ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(142), 1, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(144), 1, + ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(146), 1, + ACTIONS(100), 1, anon_sym_PIPE, - ACTIONS(152), 1, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, anon_sym_AMP, - ACTIONS(190), 1, + ACTIONS(192), 1, anon_sym_DOT, - ACTIONS(252), 1, - anon_sym_COMMA, - STATE(35), 1, + ACTIONS(242), 1, + anon_sym_RPAREN, + STATE(36), 1, + sym_parenthesis_expression_list, + STATE(39), 1, sym_array_bracket_expression, - STATE(41), 1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(86), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(90), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(186), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(190), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [3215] = 15, + ACTIONS(92), 1, + anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_DOT, + ACTIONS(96), 1, + anon_sym_LPAREN, + ACTIONS(98), 1, + anon_sym_LBRACK, + ACTIONS(100), 1, + anon_sym_PIPE, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, + anon_sym_AMP, + ACTIONS(244), 1, + anon_sym_DOT_DOT, + STATE(36), 1, sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 2, + ACTIONS(86), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(134), 2, + ACTIONS(90), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(184), 2, + ACTIONS(186), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(188), 4, + ACTIONS(190), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3293] = 8, + [3268] = 8, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(224), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(228), 1, + ACTIONS(248), 1, + anon_sym_RPAREN, + ACTIONS(250), 1, sym_number, - STATE(190), 1, - sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6425,7 +6473,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(58), 8, + STATE(46), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6434,43 +6482,52 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3332] = 7, - ACTIONS(33), 1, + [3307] = 15, + ACTIONS(92), 1, + anon_sym_SLASH, + ACTIONS(96), 1, anon_sym_LPAREN, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(242), 1, - sym_identifier, - ACTIONS(254), 1, - sym_number, + ACTIONS(98), 1, + anon_sym_LBRACK, + ACTIONS(100), 1, + anon_sym_PIPE, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, + anon_sym_AMP, + ACTIONS(192), 1, + anon_sym_DOT, + ACTIONS(252), 1, + anon_sym_RBRACK, + STATE(36), 1, + sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(86), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(90), 2, anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(50), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_template_global, - [3368] = 7, + anon_sym_PERCENT, + ACTIONS(186), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(190), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [3360] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(256), 1, + ACTIONS(254), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6483,7 +6540,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(55), 8, + STATE(43), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6492,14 +6549,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3404] = 7, + [3396] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(258), 1, + ACTIONS(256), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6512,7 +6569,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(56), 8, + STATE(53), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6521,15 +6578,15 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3440] = 5, - ACTIONS(264), 1, + [3432] = 5, + ACTIONS(262), 1, anon_sym_LF, - STATE(79), 1, + STATE(71), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(260), 7, + ACTIONS(258), 7, anon_sym_reg, anon_sym_initial, anon_sym_input, @@ -6537,7 +6594,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(262), 10, + ACTIONS(260), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6548,14 +6605,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [3472] = 7, + [3464] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(266), 1, + ACTIONS(264), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6568,7 +6625,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(30), 8, + STATE(17), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6577,14 +6634,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3508] = 7, + [3500] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(268), 1, + ACTIONS(266), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6597,7 +6654,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(29), 8, + STATE(52), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6606,14 +6663,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3544] = 7, + [3536] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(270), 1, + ACTIONS(268), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6626,7 +6683,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(57), 8, + STATE(63), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6635,14 +6692,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3580] = 7, + [3572] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(272), 1, + ACTIONS(270), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6655,7 +6712,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(28), 8, + STATE(51), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6664,14 +6721,41 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3616] = 7, + [3608] = 5, + ACTIONS(39), 1, + anon_sym_LF, + STATE(44), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(272), 7, + anon_sym_reg, + anon_sym_initial, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(274), 10, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, + [3640] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(274), 1, + ACTIONS(276), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6693,14 +6777,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3652] = 7, + [3676] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(276), 1, + ACTIONS(278), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6713,7 +6797,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(31), 8, + STATE(58), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6722,14 +6806,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3688] = 7, + [3712] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(278), 1, + ACTIONS(280), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6742,7 +6826,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(33), 8, + STATE(61), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6751,14 +6835,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3724] = 7, + [3748] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(280), 1, + ACTIONS(282), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6771,7 +6855,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(62), 8, + STATE(19), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6780,14 +6864,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3760] = 7, + [3784] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(282), 1, + ACTIONS(284), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6800,7 +6884,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(42), 8, + STATE(24), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6809,14 +6893,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3796] = 7, + [3820] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(284), 1, + ACTIONS(286), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6829,7 +6913,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(34), 8, + STATE(30), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6838,14 +6922,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3832] = 7, + [3856] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(286), 1, + ACTIONS(288), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6858,7 +6942,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(61), 8, + STATE(21), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6867,23 +6951,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3868] = 5, - ACTIONS(39), 1, - anon_sym_LF, - STATE(44), 1, - aux_sym__linebreak, + [3892] = 7, + ACTIONS(33), 1, + anon_sym_LPAREN, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(246), 1, + sym_identifier, + ACTIONS(290), 1, + sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(288), 7, - anon_sym_reg, - anon_sym_initial, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(290), 10, + ACTIONS(31), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6891,17 +6971,52 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, + STATE(31), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_template_global, + [3928] = 7, + ACTIONS(33), 1, anon_sym_LPAREN, + ACTIONS(35), 1, anon_sym_COLON_COLON, + ACTIONS(246), 1, + sym_identifier, + ACTIONS(292), 1, sym_number, - [3900] = 7, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(31), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(54), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_template_global, + [3964] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(292), 1, + ACTIONS(294), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6914,7 +7029,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(32), 8, + STATE(55), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6923,14 +7038,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3936] = 7, + [4000] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(294), 1, + ACTIONS(296), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6943,7 +7058,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(49), 8, + STATE(18), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6952,21 +7067,21 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3972] = 5, + [4036] = 5, ACTIONS(19), 1, anon_sym_reg, - STATE(83), 1, + STATE(84), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(296), 5, + ACTIONS(298), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(298), 10, + ACTIONS(300), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6977,21 +7092,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [4002] = 5, - ACTIONS(302), 1, + [4066] = 5, + ACTIONS(304), 1, anon_sym_reg, - STATE(83), 1, + STATE(84), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(300), 5, + ACTIONS(302), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(305), 10, + ACTIONS(307), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7002,18 +7117,39 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [4032] = 3, + [4096] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(307), 6, + ACTIONS(309), 6, anon_sym_reg, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(309), 10, + ACTIONS(311), 10, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, + [4121] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(313), 5, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(315), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7024,22 +7160,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [4057] = 12, + [4145] = 12, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(39), 1, - anon_sym_LF, - ACTIONS(311), 1, + ACTIONS(317), 1, anon_sym_DASH_GT, - STATE(44), 1, + ACTIONS(319), 1, + anon_sym_LF, + STATE(88), 1, aux_sym__linebreak, - STATE(104), 1, + STATE(109), 1, sym_declaration, STATE(122), 1, sym_declaration_list, - STATE(189), 1, + STATE(209), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, @@ -7050,26 +7186,26 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(182), 3, + STATE(210), 3, sym__type, sym_array_type, sym_template_global, - [4099] = 12, + [4187] = 12, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(311), 1, - anon_sym_DASH_GT, - ACTIONS(313), 1, + ACTIONS(39), 1, anon_sym_LF, - STATE(85), 1, + ACTIONS(317), 1, + anon_sym_DASH_GT, + STATE(44), 1, aux_sym__linebreak, - STATE(104), 1, + STATE(109), 1, sym_declaration, - STATE(120), 1, + STATE(131), 1, sym_declaration_list, - STATE(180), 1, + STATE(220), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, @@ -7080,43 +7216,22 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(182), 3, + STATE(210), 3, sym__type, sym_array_type, sym_template_global, - [4141] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(315), 5, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(317), 10, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_COLON_COLON, - sym_number, - [4165] = 10, + [4229] = 10, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(39), 1, + ACTIONS(321), 1, anon_sym_LF, - STATE(44), 1, + STATE(90), 1, aux_sym__linebreak, - STATE(104), 1, + STATE(109), 1, sym_declaration, - STATE(186), 1, + STATE(212), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, @@ -7127,22 +7242,22 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(182), 3, + STATE(210), 3, sym__type, sym_array_type, sym_template_global, - [4201] = 10, + [4265] = 10, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(319), 1, + ACTIONS(39), 1, anon_sym_LF, - STATE(88), 1, + STATE(44), 1, aux_sym__linebreak, - STATE(104), 1, + STATE(109), 1, sym_declaration, - STATE(183), 1, + STATE(219), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, @@ -7153,16 +7268,16 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(182), 3, + STATE(210), 3, sym__type, sym_array_type, sym_template_global, - [4237] = 7, + [4301] = 7, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, - STATE(118), 1, + STATE(244), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -7173,16 +7288,16 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(182), 3, + STATE(210), 3, sym__type, sym_array_type, sym_template_global, - [4264] = 7, + [4328] = 7, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, - STATE(213), 1, + STATE(133), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -7193,19 +7308,19 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(182), 3, + STATE(210), 3, sym__type, sym_array_type, sym_template_global, - [4291] = 4, - ACTIONS(323), 1, + [4355] = 4, + ACTIONS(325), 1, anon_sym_SQUOTE, STATE(98), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(321), 7, + ACTIONS(323), 7, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -7213,15 +7328,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [4311] = 4, - ACTIONS(323), 1, + [4375] = 4, + ACTIONS(325), 1, anon_sym_SQUOTE, - STATE(102), 1, + STATE(100), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(325), 7, + ACTIONS(327), 7, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -7229,15 +7344,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [4331] = 4, - ACTIONS(323), 1, + [4395] = 4, + ACTIONS(325), 1, anon_sym_SQUOTE, - STATE(99), 1, + STATE(102), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(327), 7, + ACTIONS(329), 7, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -7245,15 +7360,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [4351] = 4, - ACTIONS(323), 1, + [4415] = 4, + ACTIONS(325), 1, anon_sym_SQUOTE, - STATE(96), 1, + STATE(101), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(329), 7, + ACTIONS(331), 7, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -7261,11 +7376,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [4371] = 2, + [4435] = 6, + ACTIONS(333), 1, + sym_identifier, + ACTIONS(335), 1, + anon_sym_GT, + ACTIONS(337), 1, + anon_sym_COLON_COLON, + STATE(153), 1, + sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(331), 7, + STATE(173), 3, + sym__type, + sym_array_type, + sym_template_global, + [4457] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(339), 7, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -7273,26 +7404,39 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [4385] = 5, - ACTIONS(335), 1, - anon_sym_COMMA, - STATE(90), 1, - sym__comma, - STATE(97), 1, - aux_sym_declaration_list_repeat1, + [4471] = 6, + ACTIONS(333), 1, + sym_identifier, + ACTIONS(337), 1, + anon_sym_COLON_COLON, + ACTIONS(341), 1, + anon_sym_GT, + STATE(174), 1, + sym_template_type_param, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(173), 3, + sym__type, + sym_array_type, + sym_template_global, + [4493] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(333), 4, + ACTIONS(343), 7, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_COMMA, anon_sym_LF, - [4405] = 2, + [4507] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(338), 7, + ACTIONS(345), 7, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -7300,11 +7444,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [4419] = 2, + [4521] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(340), 7, + ACTIONS(347), 7, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -7312,22 +7456,38 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [4433] = 5, - ACTIONS(203), 1, + [4535] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - STATE(90), 1, + STATE(92), 1, sym__comma, - STATE(97), 1, + STATE(107), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(342), 4, + ACTIONS(349), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4453] = 5, + [4555] = 6, + ACTIONS(333), 1, + sym_identifier, + ACTIONS(337), 1, + anon_sym_COLON_COLON, + ACTIONS(351), 1, + anon_sym_GT, + STATE(191), 1, + sym_template_type_param, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(173), 3, + sym__type, + sym_array_type, + sym_template_global, + [4577] = 5, ACTIONS(11), 1, sym_identifier, ACTIONS(35), 1, @@ -7335,763 +7495,979 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(344), 2, + ACTIONS(353), 2, anon_sym_state, anon_sym_gen, - STATE(184), 3, + STATE(205), 3, sym__type, sym_array_type, sym_template_global, - [4473] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(346), 7, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_COMMA, - anon_sym_LF, - [4487] = 6, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(348), 1, + [4597] = 6, + ACTIONS(333), 1, sym_identifier, - ACTIONS(350), 1, - anon_sym_SEMI, - STATE(151), 1, + ACTIONS(337), 1, + anon_sym_COLON_COLON, + ACTIONS(355), 1, + anon_sym_GT, + STATE(141), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(150), 3, + STATE(173), 3, sym__type, sym_array_type, sym_template_global, - [4509] = 5, - ACTIONS(203), 1, + [4619] = 5, + ACTIONS(359), 1, anon_sym_COMMA, - STATE(90), 1, + STATE(92), 1, sym__comma, - STATE(100), 1, + STATE(107), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(352), 4, + ACTIONS(357), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4529] = 5, - ACTIONS(203), 1, + [4639] = 6, + ACTIONS(333), 1, + sym_identifier, + ACTIONS(337), 1, + anon_sym_COLON_COLON, + ACTIONS(362), 1, + anon_sym_GT, + STATE(201), 1, + sym_template_type_param, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(173), 3, + sym__type, + sym_array_type, + sym_template_global, + [4661] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - STATE(14), 1, + STATE(92), 1, sym__comma, - STATE(109), 1, - aux_sym_assign_left_side_repeat1, + STATE(103), 1, + aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(354), 3, + ACTIONS(364), 4, + anon_sym_DASH_GT, + anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_EQ, anon_sym_LF, - [4548] = 5, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(348), 1, + [4681] = 6, + ACTIONS(333), 1, sym_identifier, - STATE(197), 1, + ACTIONS(337), 1, + anon_sym_COLON_COLON, + ACTIONS(366), 1, + anon_sym_GT, + STATE(179), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(150), 3, + STATE(173), 3, sym__type, sym_array_type, sym_template_global, - [4567] = 7, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(356), 1, - anon_sym_COLON, - ACTIONS(358), 1, - anon_sym_LT, - STATE(160), 1, - sym_template_declaration_arguments, - STATE(191), 1, - sym_block, - STATE(193), 1, - sym_interface_ports, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4590] = 5, - ACTIONS(61), 1, - anon_sym_COLON_COLON, - ACTIONS(360), 1, + [4703] = 5, + ACTIONS(368), 1, anon_sym_EQ, - STATE(13), 1, + ACTIONS(370), 1, + anon_sym_COLON_COLON, + STATE(129), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(73), 3, + ACTIONS(66), 3, + anon_sym_GT, anon_sym_LBRACK, - anon_sym_SEMI, anon_sym_COMMA, - [4609] = 5, - ACTIONS(364), 1, + [4722] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - STATE(14), 1, + STATE(16), 1, sym__comma, - STATE(109), 1, + STATE(113), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(362), 3, + ACTIONS(372), 3, anon_sym_RBRACE, anon_sym_EQ, anon_sym_LF, - [4628] = 5, - ACTIONS(203), 1, + [4741] = 5, + ACTIONS(376), 1, anon_sym_COMMA, - STATE(14), 1, + STATE(16), 1, sym__comma, - STATE(105), 1, + STATE(113), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(367), 3, + ACTIONS(374), 3, anon_sym_RBRACE, anon_sym_EQ, anon_sym_LF, - [4647] = 4, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(242), 1, + [4760] = 7, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(379), 1, + anon_sym_COLON, + ACTIONS(381), 1, + anon_sym_LT, + STATE(181), 1, + sym_template_declaration_arguments, + STATE(224), 1, + sym_interface_ports, + STATE(230), 1, + sym_block, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [4783] = 5, + ACTIONS(207), 1, + anon_sym_COMMA, + STATE(16), 1, + sym__comma, + STATE(112), 1, + aux_sym_assign_left_side_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(383), 3, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_LF, + [4802] = 5, + ACTIONS(333), 1, sym_identifier, + ACTIONS(337), 1, + anon_sym_COLON_COLON, + STATE(236), 1, + sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(176), 3, + STATE(173), 3, sym__type, sym_array_type, sym_template_global, - [4663] = 6, - ACTIONS(369), 1, + [4821] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(385), 1, + ts_builtin_sym_end, + ACTIONS(387), 1, + anon_sym_LF, + STATE(189), 1, + aux_sym__linebreak, + STATE(231), 1, + sym_module, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [4841] = 4, + ACTIONS(370), 1, + anon_sym_COLON_COLON, + STATE(123), 1, + aux_sym_template_global_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(80), 3, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + [4857] = 6, + ACTIONS(389), 1, anon_sym_RBRACE, - ACTIONS(371), 1, + ACTIONS(391), 1, anon_sym_EQ, - ACTIONS(373), 1, + ACTIONS(393), 1, anon_sym_LF, - STATE(4), 1, + STATE(7), 1, aux_sym__linebreak, - STATE(144), 1, + STATE(147), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4683] = 6, + [4877] = 4, + ACTIONS(370), 1, + anon_sym_COLON_COLON, + STATE(118), 1, + aux_sym_template_global_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(72), 3, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + [4893] = 4, + ACTIONS(370), 1, + anon_sym_COLON_COLON, + STATE(129), 1, + aux_sym_template_global_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(66), 3, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + [4909] = 4, + ACTIONS(317), 1, + anon_sym_DASH_GT, + STATE(216), 1, + sym__interface_ports_output, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(395), 3, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_LF, + [4925] = 4, + ACTIONS(397), 1, + anon_sym_COLON_COLON, + STATE(123), 1, + aux_sym_template_global_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(59), 3, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + [4941] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(375), 1, - ts_builtin_sym_end, - ACTIONS(377), 1, + ACTIONS(387), 1, anon_sym_LF, - STATE(166), 1, + ACTIONS(400), 1, + ts_builtin_sym_end, + STATE(189), 1, aux_sym__linebreak, - STATE(167), 1, + STATE(231), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4703] = 4, + [4961] = 4, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(246), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(132), 3, + STATE(214), 3, sym__type, sym_array_type, sym_template_global, - [4719] = 6, + [4977] = 6, + ACTIONS(391), 1, + anon_sym_EQ, + ACTIONS(402), 1, + anon_sym_RBRACE, + ACTIONS(404), 1, + anon_sym_LF, + STATE(3), 1, + aux_sym__linebreak, + STATE(176), 1, + aux_sym_block_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [4997] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(377), 1, + ACTIONS(387), 1, anon_sym_LF, - ACTIONS(379), 1, + ACTIONS(406), 1, ts_builtin_sym_end, - STATE(166), 1, + STATE(189), 1, aux_sym__linebreak, - STATE(195), 1, + STATE(231), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4739] = 6, + [5017] = 4, + ACTIONS(337), 1, + anon_sym_COLON_COLON, + ACTIONS(408), 1, + sym_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(195), 3, + sym__type, + sym_array_type, + sym_template_global, + [5033] = 4, + ACTIONS(370), 1, + anon_sym_COLON_COLON, + STATE(123), 1, + aux_sym_template_global_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(76), 3, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + [5049] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(377), 1, + ACTIONS(387), 1, anon_sym_LF, - ACTIONS(381), 1, + ACTIONS(410), 1, ts_builtin_sym_end, - STATE(166), 1, + STATE(189), 1, aux_sym__linebreak, - STATE(195), 1, + STATE(231), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4759] = 6, + [5069] = 4, + ACTIONS(317), 1, + anon_sym_DASH_GT, + STATE(217), 1, + sym__interface_ports_output, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(412), 3, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_LF, + [5085] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(377), 1, + ACTIONS(387), 1, anon_sym_LF, - ACTIONS(383), 1, + ACTIONS(414), 1, ts_builtin_sym_end, - STATE(166), 1, + STATE(189), 1, aux_sym__linebreak, - STATE(195), 1, + STATE(190), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4779] = 2, + [5105] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(385), 5, + ACTIONS(416), 5, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, - [4791] = 4, + [5117] = 4, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(246), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(177), 3, + STATE(218), 3, sym__type, sym_array_type, sym_template_global, - [4807] = 4, - ACTIONS(311), 1, - anon_sym_DASH_GT, - STATE(188), 1, - sym__interface_ports_output, + [5133] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(387), 3, - anon_sym_LBRACE, + ACTIONS(418), 4, + ts_builtin_sym_end, anon_sym_RBRACE, + anon_sym_else, anon_sym_LF, - [4823] = 6, - ACTIONS(371), 1, - anon_sym_EQ, + [5144] = 5, ACTIONS(389), 1, anon_sym_RBRACE, - ACTIONS(391), 1, + ACTIONS(393), 1, anon_sym_LF, - STATE(9), 1, + STATE(7), 1, aux_sym__linebreak, - STATE(170), 1, + STATE(146), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4843] = 4, - ACTIONS(311), 1, - anon_sym_DASH_GT, - STATE(185), 1, - sym__interface_ports_output, + [5161] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(393), 3, - anon_sym_LBRACE, + ACTIONS(201), 4, anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COMMA, anon_sym_LF, - [4859] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(377), 1, - anon_sym_LF, - ACTIONS(395), 1, - ts_builtin_sym_end, - STATE(166), 1, - aux_sym__linebreak, - STATE(195), 1, - sym_module, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4879] = 2, + [5172] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(397), 4, + ACTIONS(420), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [4890] = 4, - ACTIONS(356), 1, - anon_sym_COLON, - STATE(207), 1, - sym_interface_ports, + [5183] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(399), 2, + ACTIONS(422), 4, anon_sym_RBRACE, - anon_sym_LF, - [4905] = 5, - ACTIONS(401), 1, - anon_sym_GT, - ACTIONS(403), 1, + anon_sym_EQ, anon_sym_COMMA, - STATE(126), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(204), 1, - sym__comma, + anon_sym_LF, + [5194] = 5, + ACTIONS(402), 1, + anon_sym_RBRACE, + ACTIONS(404), 1, + anon_sym_LF, + STATE(3), 1, + aux_sym__linebreak, + STATE(177), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4922] = 2, + [5211] = 5, + ACTIONS(207), 1, + anon_sym_COMMA, + ACTIONS(424), 1, + anon_sym_GT, + STATE(116), 1, + sym__comma, + STATE(145), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(406), 4, - anon_sym_LBRACK, - anon_sym_SEMI, - sym_identifier, - anon_sym_COMMA, - [4933] = 2, + [5228] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(408), 4, + ACTIONS(426), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [4944] = 2, + [5239] = 5, + ACTIONS(207), 1, + anon_sym_COMMA, + ACTIONS(428), 1, + anon_sym_GT, + STATE(192), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(225), 1, + sym__comma, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(410), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [4955] = 5, - ACTIONS(203), 1, + [5256] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(430), 4, + anon_sym_GT, + anon_sym_LBRACK, + sym_identifier, + anon_sym_COMMA, + [5267] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(412), 1, + ACTIONS(432), 1, anon_sym_GT, - STATE(63), 1, + STATE(116), 1, sym__comma, - STATE(145), 1, + STATE(197), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4972] = 5, - ACTIONS(414), 1, + [5284] = 5, + ACTIONS(434), 1, anon_sym_RBRACE, - ACTIONS(416), 1, + ACTIONS(436), 1, anon_sym_LF, - STATE(10), 1, + STATE(2), 1, aux_sym__linebreak, - STATE(131), 1, + STATE(170), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4989] = 4, - ACTIONS(144), 1, - anon_sym_LBRACK, - STATE(127), 1, - sym_array_bracket_expression, + [5301] = 5, + ACTIONS(438), 1, + anon_sym_RBRACE, + ACTIONS(440), 1, + anon_sym_LF, + STATE(9), 1, + aux_sym__linebreak, + STATE(170), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(419), 2, - anon_sym_SEMI, - anon_sym_COMMA, - [5004] = 2, + [5318] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(410), 4, + ACTIONS(420), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5015] = 2, + [5329] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(421), 4, + ACTIONS(442), 4, + ts_builtin_sym_end, anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COMMA, + anon_sym_else, anon_sym_LF, - [5026] = 5, - ACTIONS(203), 1, - anon_sym_COMMA, - ACTIONS(423), 1, - anon_sym_GT, - STATE(63), 1, - sym__comma, - STATE(147), 1, - aux_sym_template_params_repeat2, + [5340] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5043] = 5, + ACTIONS(140), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5351] = 5, ACTIONS(7), 1, anon_sym_module, - ACTIONS(377), 1, + ACTIONS(387), 1, anon_sym_LF, - STATE(166), 1, + STATE(189), 1, aux_sym__linebreak, - STATE(195), 1, + STATE(231), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5060] = 5, - ACTIONS(425), 1, - anon_sym_SEMI, - ACTIONS(427), 1, + [5368] = 5, + ACTIONS(444), 1, + anon_sym_GT, + ACTIONS(446), 1, anon_sym_COMMA, - STATE(106), 1, + STATE(152), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(225), 1, sym__comma, - STATE(137), 1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5385] = 5, + ACTIONS(207), 1, + anon_sym_COMMA, + ACTIONS(449), 1, + anon_sym_GT, + STATE(116), 1, + sym__comma, + STATE(160), 1, + aux_sym_template_params_repeat2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5402] = 5, + ACTIONS(207), 1, + anon_sym_COMMA, + ACTIONS(451), 1, + anon_sym_SEMI, + STATE(59), 1, + sym__comma, + STATE(178), 1, aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5077] = 2, + [5419] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(209), 4, - anon_sym_RBRACE, - anon_sym_EQ, + ACTIONS(148), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, anon_sym_COMMA, - anon_sym_LF, - [5088] = 5, - ACTIONS(389), 1, - anon_sym_RBRACE, - ACTIONS(391), 1, - anon_sym_LF, - STATE(9), 1, - aux_sym__linebreak, - STATE(169), 1, - aux_sym_block_repeat1, + [5430] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5105] = 2, + ACTIONS(124), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5441] = 4, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(453), 1, + anon_sym_if, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(430), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5116] = 2, + STATE(228), 2, + sym_block, + sym_if_statement, + [5456] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(432), 4, + ACTIONS(132), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5467] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(455), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5127] = 5, - ACTIONS(203), 1, + [5478] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(434), 1, + ACTIONS(457), 1, anon_sym_GT, - STATE(148), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(204), 1, + STATE(116), 1, sym__comma, + STATE(197), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5144] = 5, - ACTIONS(436), 1, - anon_sym_RBRACE, - ACTIONS(438), 1, - anon_sym_LF, - STATE(7), 1, - aux_sym__linebreak, - STATE(131), 1, - aux_sym_block_repeat1, + [5495] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5161] = 5, - ACTIONS(440), 1, + ACTIONS(455), 4, + ts_builtin_sym_end, anon_sym_RBRACE, - ACTIONS(442), 1, + anon_sym_else, anon_sym_LF, - STATE(6), 1, - aux_sym__linebreak, - STATE(131), 1, - aux_sym_block_repeat1, + [5506] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5178] = 5, - ACTIONS(444), 1, + ACTIONS(144), 4, anon_sym_GT, - ACTIONS(446), 1, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5517] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - STATE(63), 1, + ACTIONS(459), 1, + anon_sym_SEMI, + STATE(59), 1, sym__comma, - STATE(145), 1, - aux_sym_template_params_repeat2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5195] = 5, - ACTIONS(369), 1, - anon_sym_RBRACE, - ACTIONS(373), 1, - anon_sym_LF, - STATE(4), 1, - aux_sym__linebreak, - STATE(143), 1, - aux_sym_block_repeat1, + STATE(193), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5212] = 5, - ACTIONS(203), 1, + [5534] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(449), 1, - anon_sym_GT, - STATE(63), 1, + ACTIONS(461), 1, + anon_sym_RPAREN, + STATE(81), 1, sym__comma, - STATE(145), 1, - aux_sym_template_params_repeat2, + STATE(182), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5229] = 5, - ACTIONS(203), 1, - anon_sym_COMMA, - ACTIONS(451), 1, - anon_sym_GT, - STATE(126), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(204), 1, - sym__comma, + [5551] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5246] = 2, + ACTIONS(463), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [5562] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(453), 4, + ACTIONS(465), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5257] = 4, - ACTIONS(144), 1, - anon_sym_LBRACK, - STATE(127), 1, - sym_array_bracket_expression, + [5573] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(455), 2, - anon_sym_SEMI, - anon_sym_COMMA, - [5272] = 5, - ACTIONS(203), 1, + ACTIONS(120), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, anon_sym_COMMA, - ACTIONS(457), 1, - anon_sym_SEMI, - STATE(106), 1, - sym__comma, - STATE(175), 1, - aux_sym_template_params_repeat1, + [5584] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5289] = 5, - ACTIONS(459), 1, + ACTIONS(465), 4, ts_builtin_sym_end, - ACTIONS(461), 1, + anon_sym_RBRACE, + anon_sym_else, anon_sym_LF, - STATE(123), 1, + [5595] = 5, + ACTIONS(467), 1, + ts_builtin_sym_end, + ACTIONS(469), 1, + anon_sym_LF, + STATE(117), 1, aux_sym__linebreak, - STATE(155), 1, + STATE(175), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5306] = 2, + [5612] = 5, + ACTIONS(471), 1, + anon_sym_RBRACE, + ACTIONS(473), 1, + anon_sym_LF, + STATE(10), 1, + aux_sym__linebreak, + STATE(170), 1, + aux_sym_block_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5629] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(453), 4, + ACTIONS(476), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5317] = 4, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(463), 1, - anon_sym_if, + [5640] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(198), 2, - sym_block, - sym_if_statement, - [5332] = 5, - ACTIONS(465), 1, - ts_builtin_sym_end, - ACTIONS(467), 1, + ACTIONS(209), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COMMA, anon_sym_LF, - STATE(136), 1, - aux_sym__linebreak, - STATE(155), 1, - aux_sym_source_file_repeat1, + [5651] = 4, + ACTIONS(480), 1, + anon_sym_LBRACK, + STATE(144), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5349] = 2, + ACTIONS(478), 2, + anon_sym_GT, + anon_sym_COMMA, + [5666] = 5, + ACTIONS(207), 1, + anon_sym_COMMA, + ACTIONS(482), 1, + anon_sym_GT, + STATE(116), 1, + sym__comma, + STATE(188), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(470), 4, + [5683] = 5, + ACTIONS(484), 1, ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, + ACTIONS(486), 1, anon_sym_LF, - [5360] = 2, + STATE(151), 1, + aux_sym__linebreak, + STATE(175), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(472), 4, - ts_builtin_sym_end, + [5700] = 5, + ACTIONS(489), 1, anon_sym_RBRACE, - anon_sym_else, + ACTIONS(491), 1, anon_sym_LF, - [5371] = 2, + STATE(6), 1, + aux_sym__linebreak, + STATE(170), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(470), 4, - ts_builtin_sym_end, + [5717] = 5, + ACTIONS(493), 1, anon_sym_RBRACE, - anon_sym_else, + ACTIONS(495), 1, anon_sym_LF, - [5382] = 5, - ACTIONS(203), 1, + STATE(5), 1, + aux_sym__linebreak, + STATE(170), 1, + aux_sym_block_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5734] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(474), 1, + ACTIONS(497), 1, + anon_sym_SEMI, + STATE(59), 1, + sym__comma, + STATE(193), 1, + aux_sym_template_params_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5751] = 5, + ACTIONS(207), 1, + anon_sym_COMMA, + ACTIONS(499), 1, anon_sym_GT, - STATE(63), 1, + STATE(116), 1, sym__comma, - STATE(164), 1, + STATE(180), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5399] = 5, + [5768] = 5, + ACTIONS(207), 1, + anon_sym_COMMA, + ACTIONS(501), 1, + anon_sym_GT, + STATE(116), 1, + sym__comma, + STATE(197), 1, + aux_sym_template_params_repeat2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5785] = 5, ACTIONS(13), 1, anon_sym_LBRACE, - ACTIONS(356), 1, + ACTIONS(379), 1, anon_sym_COLON, - STATE(199), 1, - sym_block, - STATE(200), 1, + STATE(222), 1, sym_interface_ports, + STATE(233), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5416] = 5, - ACTIONS(203), 1, - anon_sym_COMMA, - ACTIONS(476), 1, + [5802] = 5, + ACTIONS(503), 1, anon_sym_RPAREN, - STATE(64), 1, + ACTIONS(505), 1, + anon_sym_COMMA, + STATE(81), 1, sym__comma, - STATE(174), 1, + STATE(182), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5433] = 2, + [5819] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(508), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [5830] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(508), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [5841] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(478), 4, + ACTIONS(510), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5444] = 2, + [5852] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(116), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5863] = 4, + ACTIONS(379), 1, + anon_sym_COLON, + STATE(227), 1, + sym_interface_ports, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(480), 4, - ts_builtin_sym_end, + ACTIONS(512), 2, anon_sym_RBRACE, - anon_sym_else, anon_sym_LF, - [5455] = 5, - ACTIONS(203), 1, + [5878] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(482), 1, + ACTIONS(514), 1, anon_sym_GT, - STATE(63), 1, + STATE(116), 1, sym__comma, - STATE(145), 1, + STATE(197), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5472] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(480), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5483] = 4, - ACTIONS(484), 1, + [5895] = 4, + ACTIONS(516), 1, anon_sym_LF, - STATE(166), 1, + STATE(189), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, @@ -8099,405 +8475,494 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(196), 2, ts_builtin_sym_end, anon_sym_module, - [5498] = 5, - ACTIONS(487), 1, + [5910] = 5, + ACTIONS(519), 1, ts_builtin_sym_end, - ACTIONS(489), 1, + ACTIONS(521), 1, anon_sym_LF, - STATE(117), 1, + STATE(124), 1, aux_sym__linebreak, - STATE(152), 1, + STATE(169), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5515] = 5, - ACTIONS(491), 1, + [5927] = 5, + ACTIONS(207), 1, + anon_sym_COMMA, + ACTIONS(523), 1, + anon_sym_GT, + STATE(116), 1, + sym__comma, + STATE(199), 1, + aux_sym_template_params_repeat2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5944] = 5, + ACTIONS(207), 1, + anon_sym_COMMA, + ACTIONS(525), 1, + anon_sym_GT, + STATE(152), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(225), 1, + sym__comma, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5961] = 5, + ACTIONS(527), 1, + anon_sym_SEMI, + ACTIONS(529), 1, + anon_sym_COMMA, + STATE(59), 1, + sym__comma, + STATE(193), 1, + aux_sym_template_params_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5978] = 5, + ACTIONS(532), 1, ts_builtin_sym_end, - ACTIONS(493), 1, + ACTIONS(534), 1, anon_sym_LF, - STATE(116), 1, + STATE(127), 1, aux_sym__linebreak, - STATE(155), 1, + STATE(175), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5532] = 5, - ACTIONS(495), 1, - anon_sym_RBRACE, - ACTIONS(497), 1, - anon_sym_LF, - STATE(5), 1, - aux_sym__linebreak, - STATE(131), 1, - aux_sym_block_repeat1, + [5995] = 4, + ACTIONS(480), 1, + anon_sym_LBRACK, + STATE(144), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5549] = 5, - ACTIONS(499), 1, - anon_sym_RBRACE, - ACTIONS(501), 1, - anon_sym_LF, - STATE(3), 1, - aux_sym__linebreak, - STATE(131), 1, - aux_sym_block_repeat1, + ACTIONS(536), 2, + anon_sym_GT, + anon_sym_COMMA, + [6010] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5566] = 5, - ACTIONS(203), 1, + ACTIONS(108), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, anon_sym_COMMA, - ACTIONS(503), 1, + [6021] = 5, + ACTIONS(538), 1, anon_sym_GT, - STATE(63), 1, + ACTIONS(540), 1, + anon_sym_COMMA, + STATE(116), 1, sym__comma, - STATE(130), 1, + STATE(197), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5583] = 5, - ACTIONS(505), 1, - ts_builtin_sym_end, - ACTIONS(507), 1, - anon_sym_LF, - STATE(115), 1, - aux_sym__linebreak, - STATE(168), 1, - aux_sym_source_file_repeat1, + [6038] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5600] = 2, + ACTIONS(128), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [6049] = 5, + ACTIONS(207), 1, + anon_sym_COMMA, + ACTIONS(543), 1, + anon_sym_GT, + STATE(116), 1, + sym__comma, + STATE(197), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(205), 4, - anon_sym_RBRACE, - anon_sym_EQ, + [6066] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(136), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, anon_sym_COMMA, - anon_sym_LF, - [5611] = 5, - ACTIONS(509), 1, - anon_sym_RPAREN, - ACTIONS(511), 1, + [6077] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - STATE(64), 1, + ACTIONS(545), 1, + anon_sym_GT, + STATE(116), 1, sym__comma, - STATE(174), 1, - aux_sym_parenthesis_expression_list_repeat1, + STATE(204), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5628] = 5, - ACTIONS(203), 1, + [6094] = 5, + ACTIONS(547), 1, + ts_builtin_sym_end, + ACTIONS(549), 1, + anon_sym_LF, + STATE(130), 1, + aux_sym__linebreak, + STATE(194), 1, + aux_sym_source_file_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6111] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(514), 1, + ACTIONS(551), 1, anon_sym_SEMI, - STATE(106), 1, + STATE(59), 1, sym__comma, - STATE(137), 1, + STATE(163), 1, aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5645] = 4, - ACTIONS(144), 1, - anon_sym_LBRACK, - ACTIONS(516), 1, - sym_identifier, - STATE(127), 1, - sym_array_bracket_expression, + [6128] = 5, + ACTIONS(207), 1, + anon_sym_COMMA, + ACTIONS(553), 1, + anon_sym_GT, + STATE(116), 1, + sym__comma, + STATE(197), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5659] = 4, - ACTIONS(144), 1, + [6145] = 4, + ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(518), 1, + ACTIONS(555), 1, sym_identifier, - STATE(127), 1, + STATE(144), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5673] = 4, - ACTIONS(520), 1, - sym_identifier, - ACTIONS(522), 1, - anon_sym_GT, - STATE(142), 1, - sym_template_declaration_type, + [6159] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5687] = 3, - ACTIONS(371), 1, - anon_sym_EQ, + ACTIONS(152), 3, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + [6169] = 3, + ACTIONS(559), 1, + anon_sym_else, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(524), 2, + ACTIONS(557), 2, anon_sym_RBRACE, anon_sym_LF, - [5699] = 2, + [6181] = 4, + ACTIONS(561), 1, + sym_identifier, + ACTIONS(563), 1, + anon_sym_GT, + STATE(143), 1, + sym_template_declaration_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(526), 3, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_LF, - [5709] = 3, - ACTIONS(530), 1, - anon_sym_else, + [6195] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(528), 2, + ACTIONS(565), 3, + anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [5721] = 4, - ACTIONS(144), 1, + [6205] = 4, + ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(532), 1, + ACTIONS(567), 1, sym_identifier, - STATE(127), 1, + STATE(144), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5735] = 2, + [6219] = 4, + ACTIONS(569), 1, + sym_identifier, + ACTIONS(571), 1, + anon_sym_LT, + STATE(167), 1, + sym_template_params, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6233] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(534), 3, + ACTIONS(573), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [5745] = 4, - ACTIONS(144), 1, + [6243] = 3, + ACTIONS(391), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(575), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6255] = 4, + ACTIONS(98), 1, anon_sym_LBRACK, - ACTIONS(536), 1, + ACTIONS(577), 1, sym_identifier, - STATE(127), 1, + STATE(144), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5759] = 2, + [6269] = 4, + ACTIONS(579), 1, + sym_identifier, + ACTIONS(581), 1, + anon_sym_LT, + STATE(23), 1, + sym_template_params, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6283] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(538), 3, + ACTIONS(583), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [5769] = 2, + [6293] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(540), 3, + ACTIONS(585), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [5779] = 4, - ACTIONS(542), 1, + [6303] = 4, + ACTIONS(98), 1, + anon_sym_LBRACK, + ACTIONS(587), 1, sym_identifier, - ACTIONS(544), 1, - anon_sym_LT, - STATE(19), 1, - sym_template_params, + STATE(144), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5793] = 2, + [6317] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(546), 3, + ACTIONS(589), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [5803] = 2, + [6327] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(548), 3, + ACTIONS(591), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [5813] = 2, + [6337] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(550), 2, + ACTIONS(593), 2, anon_sym_GT, anon_sym_COMMA, - [5822] = 2, + [6346] = 3, + ACTIONS(13), 1, + anon_sym_LBRACE, + STATE(234), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(552), 2, - ts_builtin_sym_end, - anon_sym_LF, - [5831] = 2, + [6357] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(524), 2, + ACTIONS(595), 2, anon_sym_RBRACE, anon_sym_LF, - [5840] = 3, + [6366] = 3, ACTIONS(13), 1, anon_sym_LBRACE, - STATE(201), 1, + STATE(235), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5851] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(554), 2, - ts_builtin_sym_end, - anon_sym_LF, - [5860] = 2, + [6377] = 3, + ACTIONS(561), 1, + sym_identifier, + STATE(221), 1, + sym_template_declaration_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(556), 2, - ts_builtin_sym_end, - anon_sym_LF, - [5869] = 2, + [6388] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(558), 2, + ACTIONS(597), 2, anon_sym_COLON, anon_sym_LBRACE, - [5878] = 2, + [6397] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(560), 2, - anon_sym_SEMI, - anon_sym_COMMA, - [5887] = 2, + ACTIONS(599), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6406] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(562), 2, + ACTIONS(601), 2, anon_sym_RBRACE, anon_sym_LF, - [5896] = 2, + [6415] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(564), 2, - ts_builtin_sym_end, - anon_sym_LF, - [5905] = 3, - ACTIONS(13), 1, + ACTIONS(603), 2, + anon_sym_COLON, anon_sym_LBRACE, - STATE(194), 1, - sym_block, + [6424] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5916] = 2, + ACTIONS(605), 2, + ts_builtin_sym_end, + anon_sym_LF, + [6433] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(566), 2, + ACTIONS(607), 2, ts_builtin_sym_end, anon_sym_LF, - [5925] = 2, + [6442] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(568), 2, - anon_sym_COLON, - anon_sym_LBRACE, - [5934] = 2, + ACTIONS(609), 2, + anon_sym_SEMI, + anon_sym_COMMA, + [6451] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(570), 2, - anon_sym_GT, - anon_sym_COMMA, - [5943] = 3, - ACTIONS(520), 1, - sym_identifier, - STATE(206), 1, - sym_template_declaration_type, + ACTIONS(611), 2, + ts_builtin_sym_end, + anon_sym_LF, + [6460] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5954] = 2, + ACTIONS(613), 2, + ts_builtin_sym_end, + anon_sym_LF, + [6469] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(572), 2, - anon_sym_COLON, - anon_sym_LBRACE, - [5963] = 2, + ACTIONS(615), 2, + ts_builtin_sym_end, + anon_sym_LF, + [6478] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(574), 2, + ACTIONS(617), 2, anon_sym_GT, anon_sym_COMMA, - [5972] = 2, + [6487] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(576), 2, - anon_sym_RBRACE, - anon_sym_LF, - [5981] = 2, + ACTIONS(619), 2, + anon_sym_GT, + anon_sym_COMMA, + [6496] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(621), 2, + anon_sym_COLON, + anon_sym_LBRACE, + [6505] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(578), 2, + ACTIONS(575), 2, anon_sym_RBRACE, anon_sym_LF, - [5990] = 2, - ACTIONS(580), 1, + [6514] = 2, + ACTIONS(623), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5998] = 2, - ACTIONS(582), 1, + [6522] = 2, + ACTIONS(625), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6006] = 2, - ACTIONS(584), 1, + [6530] = 2, + ACTIONS(627), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6014] = 2, - ACTIONS(586), 1, + [6538] = 2, + ACTIONS(629), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6022] = 2, - ACTIONS(588), 1, + [6546] = 2, + ACTIONS(631), 1, anon_sym_in, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6030] = 2, - ACTIONS(590), 1, + [6554] = 2, + ACTIONS(633), 1, + sym_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6562] = 2, + ACTIONS(635), 1, ts_builtin_sym_end, ACTIONS(3), 2, sym_single_line_comment, @@ -8518,206 +8983,238 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(12)] = 932, [SMALL_STATE(13)] = 976, [SMALL_STATE(14)] = 1020, - [SMALL_STATE(15)] = 1088, - [SMALL_STATE(16)] = 1132, + [SMALL_STATE(15)] = 1064, + [SMALL_STATE(16)] = 1108, [SMALL_STATE(17)] = 1176, - [SMALL_STATE(18)] = 1215, - [SMALL_STATE(19)] = 1254, - [SMALL_STATE(20)] = 1293, - [SMALL_STATE(21)] = 1332, - [SMALL_STATE(22)] = 1371, - [SMALL_STATE(23)] = 1410, - [SMALL_STATE(24)] = 1449, - [SMALL_STATE(25)] = 1488, - [SMALL_STATE(26)] = 1527, - [SMALL_STATE(27)] = 1566, - [SMALL_STATE(28)] = 1604, - [SMALL_STATE(29)] = 1662, - [SMALL_STATE(30)] = 1722, - [SMALL_STATE(31)] = 1778, - [SMALL_STATE(32)] = 1826, - [SMALL_STATE(33)] = 1874, - [SMALL_STATE(34)] = 1926, - [SMALL_STATE(35)] = 1988, - [SMALL_STATE(36)] = 2024, - [SMALL_STATE(37)] = 2060, - [SMALL_STATE(38)] = 2096, - [SMALL_STATE(39)] = 2132, - [SMALL_STATE(40)] = 2168, - [SMALL_STATE(41)] = 2204, - [SMALL_STATE(42)] = 2240, - [SMALL_STATE(43)] = 2303, - [SMALL_STATE(44)] = 2356, - [SMALL_STATE(45)] = 2394, - [SMALL_STATE(46)] = 2456, - [SMALL_STATE(47)] = 2514, - [SMALL_STATE(48)] = 2572, - [SMALL_STATE(49)] = 2607, - [SMALL_STATE(50)] = 2663, - [SMALL_STATE(51)] = 2717, - [SMALL_STATE(52)] = 2759, - [SMALL_STATE(53)] = 2801, - [SMALL_STATE(54)] = 2837, - [SMALL_STATE(55)] = 2879, - [SMALL_STATE(56)] = 2933, - [SMALL_STATE(57)] = 2989, - [SMALL_STATE(58)] = 3042, - [SMALL_STATE(59)] = 3095, - [SMALL_STATE(60)] = 3134, - [SMALL_STATE(61)] = 3187, - [SMALL_STATE(62)] = 3240, - [SMALL_STATE(63)] = 3293, - [SMALL_STATE(64)] = 3332, - [SMALL_STATE(65)] = 3368, - [SMALL_STATE(66)] = 3404, - [SMALL_STATE(67)] = 3440, - [SMALL_STATE(68)] = 3472, - [SMALL_STATE(69)] = 3508, - [SMALL_STATE(70)] = 3544, - [SMALL_STATE(71)] = 3580, - [SMALL_STATE(72)] = 3616, - [SMALL_STATE(73)] = 3652, - [SMALL_STATE(74)] = 3688, - [SMALL_STATE(75)] = 3724, - [SMALL_STATE(76)] = 3760, - [SMALL_STATE(77)] = 3796, - [SMALL_STATE(78)] = 3832, - [SMALL_STATE(79)] = 3868, - [SMALL_STATE(80)] = 3900, - [SMALL_STATE(81)] = 3936, - [SMALL_STATE(82)] = 3972, - [SMALL_STATE(83)] = 4002, - [SMALL_STATE(84)] = 4032, - [SMALL_STATE(85)] = 4057, - [SMALL_STATE(86)] = 4099, - [SMALL_STATE(87)] = 4141, - [SMALL_STATE(88)] = 4165, - [SMALL_STATE(89)] = 4201, - [SMALL_STATE(90)] = 4237, - [SMALL_STATE(91)] = 4264, - [SMALL_STATE(92)] = 4291, - [SMALL_STATE(93)] = 4311, - [SMALL_STATE(94)] = 4331, - [SMALL_STATE(95)] = 4351, - [SMALL_STATE(96)] = 4371, - [SMALL_STATE(97)] = 4385, - [SMALL_STATE(98)] = 4405, - [SMALL_STATE(99)] = 4419, - [SMALL_STATE(100)] = 4433, - [SMALL_STATE(101)] = 4453, - [SMALL_STATE(102)] = 4473, - [SMALL_STATE(103)] = 4487, - [SMALL_STATE(104)] = 4509, - [SMALL_STATE(105)] = 4529, - [SMALL_STATE(106)] = 4548, - [SMALL_STATE(107)] = 4567, - [SMALL_STATE(108)] = 4590, - [SMALL_STATE(109)] = 4609, - [SMALL_STATE(110)] = 4628, - [SMALL_STATE(111)] = 4647, - [SMALL_STATE(112)] = 4663, - [SMALL_STATE(113)] = 4683, - [SMALL_STATE(114)] = 4703, - [SMALL_STATE(115)] = 4719, - [SMALL_STATE(116)] = 4739, - [SMALL_STATE(117)] = 4759, - [SMALL_STATE(118)] = 4779, - [SMALL_STATE(119)] = 4791, - [SMALL_STATE(120)] = 4807, - [SMALL_STATE(121)] = 4823, - [SMALL_STATE(122)] = 4843, - [SMALL_STATE(123)] = 4859, - [SMALL_STATE(124)] = 4879, - [SMALL_STATE(125)] = 4890, - [SMALL_STATE(126)] = 4905, - [SMALL_STATE(127)] = 4922, - [SMALL_STATE(128)] = 4933, - [SMALL_STATE(129)] = 4944, - [SMALL_STATE(130)] = 4955, - [SMALL_STATE(131)] = 4972, - [SMALL_STATE(132)] = 4989, - [SMALL_STATE(133)] = 5004, - [SMALL_STATE(134)] = 5015, - [SMALL_STATE(135)] = 5026, - [SMALL_STATE(136)] = 5043, - [SMALL_STATE(137)] = 5060, - [SMALL_STATE(138)] = 5077, - [SMALL_STATE(139)] = 5088, - [SMALL_STATE(140)] = 5105, - [SMALL_STATE(141)] = 5116, - [SMALL_STATE(142)] = 5127, - [SMALL_STATE(143)] = 5144, - [SMALL_STATE(144)] = 5161, - [SMALL_STATE(145)] = 5178, - [SMALL_STATE(146)] = 5195, - [SMALL_STATE(147)] = 5212, - [SMALL_STATE(148)] = 5229, - [SMALL_STATE(149)] = 5246, - [SMALL_STATE(150)] = 5257, - [SMALL_STATE(151)] = 5272, - [SMALL_STATE(152)] = 5289, - [SMALL_STATE(153)] = 5306, - [SMALL_STATE(154)] = 5317, - [SMALL_STATE(155)] = 5332, - [SMALL_STATE(156)] = 5349, - [SMALL_STATE(157)] = 5360, - [SMALL_STATE(158)] = 5371, - [SMALL_STATE(159)] = 5382, - [SMALL_STATE(160)] = 5399, - [SMALL_STATE(161)] = 5416, - [SMALL_STATE(162)] = 5433, - [SMALL_STATE(163)] = 5444, - [SMALL_STATE(164)] = 5455, - [SMALL_STATE(165)] = 5472, - [SMALL_STATE(166)] = 5483, - [SMALL_STATE(167)] = 5498, - [SMALL_STATE(168)] = 5515, - [SMALL_STATE(169)] = 5532, - [SMALL_STATE(170)] = 5549, - [SMALL_STATE(171)] = 5566, - [SMALL_STATE(172)] = 5583, - [SMALL_STATE(173)] = 5600, - [SMALL_STATE(174)] = 5611, - [SMALL_STATE(175)] = 5628, - [SMALL_STATE(176)] = 5645, - [SMALL_STATE(177)] = 5659, - [SMALL_STATE(178)] = 5673, - [SMALL_STATE(179)] = 5687, - [SMALL_STATE(180)] = 5699, - [SMALL_STATE(181)] = 5709, - [SMALL_STATE(182)] = 5721, - [SMALL_STATE(183)] = 5735, - [SMALL_STATE(184)] = 5745, - [SMALL_STATE(185)] = 5759, - [SMALL_STATE(186)] = 5769, - [SMALL_STATE(187)] = 5779, - [SMALL_STATE(188)] = 5793, - [SMALL_STATE(189)] = 5803, - [SMALL_STATE(190)] = 5813, - [SMALL_STATE(191)] = 5822, - [SMALL_STATE(192)] = 5831, - [SMALL_STATE(193)] = 5840, - [SMALL_STATE(194)] = 5851, - [SMALL_STATE(195)] = 5860, - [SMALL_STATE(196)] = 5869, - [SMALL_STATE(197)] = 5878, - [SMALL_STATE(198)] = 5887, - [SMALL_STATE(199)] = 5896, - [SMALL_STATE(200)] = 5905, - [SMALL_STATE(201)] = 5916, - [SMALL_STATE(202)] = 5925, - [SMALL_STATE(203)] = 5934, - [SMALL_STATE(204)] = 5943, - [SMALL_STATE(205)] = 5954, - [SMALL_STATE(206)] = 5963, - [SMALL_STATE(207)] = 5972, - [SMALL_STATE(208)] = 5981, - [SMALL_STATE(209)] = 5990, - [SMALL_STATE(210)] = 5998, - [SMALL_STATE(211)] = 6006, - [SMALL_STATE(212)] = 6014, - [SMALL_STATE(213)] = 6022, - [SMALL_STATE(214)] = 6030, + [SMALL_STATE(18)] = 1233, + [SMALL_STATE(19)] = 1294, + [SMALL_STATE(20)] = 1357, + [SMALL_STATE(21)] = 1396, + [SMALL_STATE(22)] = 1445, + [SMALL_STATE(23)] = 1484, + [SMALL_STATE(24)] = 1523, + [SMALL_STATE(25)] = 1576, + [SMALL_STATE(26)] = 1615, + [SMALL_STATE(27)] = 1654, + [SMALL_STATE(28)] = 1693, + [SMALL_STATE(29)] = 1732, + [SMALL_STATE(30)] = 1771, + [SMALL_STATE(31)] = 1820, + [SMALL_STATE(32)] = 1879, + [SMALL_STATE(33)] = 1918, + [SMALL_STATE(34)] = 1957, + [SMALL_STATE(35)] = 1995, + [SMALL_STATE(36)] = 2032, + [SMALL_STATE(37)] = 2069, + [SMALL_STATE(38)] = 2106, + [SMALL_STATE(39)] = 2143, + [SMALL_STATE(40)] = 2180, + [SMALL_STATE(41)] = 2217, + [SMALL_STATE(42)] = 2254, + [SMALL_STATE(43)] = 2307, + [SMALL_STATE(44)] = 2370, + [SMALL_STATE(45)] = 2408, + [SMALL_STATE(46)] = 2466, + [SMALL_STATE(47)] = 2528, + [SMALL_STATE(48)] = 2586, + [SMALL_STATE(49)] = 2621, + [SMALL_STATE(50)] = 2658, + [SMALL_STATE(51)] = 2700, + [SMALL_STATE(52)] = 2756, + [SMALL_STATE(53)] = 2810, + [SMALL_STATE(54)] = 2864, + [SMALL_STATE(55)] = 2920, + [SMALL_STATE(56)] = 2974, + [SMALL_STATE(57)] = 3016, + [SMALL_STATE(58)] = 3070, + [SMALL_STATE(59)] = 3123, + [SMALL_STATE(60)] = 3162, + [SMALL_STATE(61)] = 3215, + [SMALL_STATE(62)] = 3268, + [SMALL_STATE(63)] = 3307, + [SMALL_STATE(64)] = 3360, + [SMALL_STATE(65)] = 3396, + [SMALL_STATE(66)] = 3432, + [SMALL_STATE(67)] = 3464, + [SMALL_STATE(68)] = 3500, + [SMALL_STATE(69)] = 3536, + [SMALL_STATE(70)] = 3572, + [SMALL_STATE(71)] = 3608, + [SMALL_STATE(72)] = 3640, + [SMALL_STATE(73)] = 3676, + [SMALL_STATE(74)] = 3712, + [SMALL_STATE(75)] = 3748, + [SMALL_STATE(76)] = 3784, + [SMALL_STATE(77)] = 3820, + [SMALL_STATE(78)] = 3856, + [SMALL_STATE(79)] = 3892, + [SMALL_STATE(80)] = 3928, + [SMALL_STATE(81)] = 3964, + [SMALL_STATE(82)] = 4000, + [SMALL_STATE(83)] = 4036, + [SMALL_STATE(84)] = 4066, + [SMALL_STATE(85)] = 4096, + [SMALL_STATE(86)] = 4121, + [SMALL_STATE(87)] = 4145, + [SMALL_STATE(88)] = 4187, + [SMALL_STATE(89)] = 4229, + [SMALL_STATE(90)] = 4265, + [SMALL_STATE(91)] = 4301, + [SMALL_STATE(92)] = 4328, + [SMALL_STATE(93)] = 4355, + [SMALL_STATE(94)] = 4375, + [SMALL_STATE(95)] = 4395, + [SMALL_STATE(96)] = 4415, + [SMALL_STATE(97)] = 4435, + [SMALL_STATE(98)] = 4457, + [SMALL_STATE(99)] = 4471, + [SMALL_STATE(100)] = 4493, + [SMALL_STATE(101)] = 4507, + [SMALL_STATE(102)] = 4521, + [SMALL_STATE(103)] = 4535, + [SMALL_STATE(104)] = 4555, + [SMALL_STATE(105)] = 4577, + [SMALL_STATE(106)] = 4597, + [SMALL_STATE(107)] = 4619, + [SMALL_STATE(108)] = 4639, + [SMALL_STATE(109)] = 4661, + [SMALL_STATE(110)] = 4681, + [SMALL_STATE(111)] = 4703, + [SMALL_STATE(112)] = 4722, + [SMALL_STATE(113)] = 4741, + [SMALL_STATE(114)] = 4760, + [SMALL_STATE(115)] = 4783, + [SMALL_STATE(116)] = 4802, + [SMALL_STATE(117)] = 4821, + [SMALL_STATE(118)] = 4841, + [SMALL_STATE(119)] = 4857, + [SMALL_STATE(120)] = 4877, + [SMALL_STATE(121)] = 4893, + [SMALL_STATE(122)] = 4909, + [SMALL_STATE(123)] = 4925, + [SMALL_STATE(124)] = 4941, + [SMALL_STATE(125)] = 4961, + [SMALL_STATE(126)] = 4977, + [SMALL_STATE(127)] = 4997, + [SMALL_STATE(128)] = 5017, + [SMALL_STATE(129)] = 5033, + [SMALL_STATE(130)] = 5049, + [SMALL_STATE(131)] = 5069, + [SMALL_STATE(132)] = 5085, + [SMALL_STATE(133)] = 5105, + [SMALL_STATE(134)] = 5117, + [SMALL_STATE(135)] = 5133, + [SMALL_STATE(136)] = 5144, + [SMALL_STATE(137)] = 5161, + [SMALL_STATE(138)] = 5172, + [SMALL_STATE(139)] = 5183, + [SMALL_STATE(140)] = 5194, + [SMALL_STATE(141)] = 5211, + [SMALL_STATE(142)] = 5228, + [SMALL_STATE(143)] = 5239, + [SMALL_STATE(144)] = 5256, + [SMALL_STATE(145)] = 5267, + [SMALL_STATE(146)] = 5284, + [SMALL_STATE(147)] = 5301, + [SMALL_STATE(148)] = 5318, + [SMALL_STATE(149)] = 5329, + [SMALL_STATE(150)] = 5340, + [SMALL_STATE(151)] = 5351, + [SMALL_STATE(152)] = 5368, + [SMALL_STATE(153)] = 5385, + [SMALL_STATE(154)] = 5402, + [SMALL_STATE(155)] = 5419, + [SMALL_STATE(156)] = 5430, + [SMALL_STATE(157)] = 5441, + [SMALL_STATE(158)] = 5456, + [SMALL_STATE(159)] = 5467, + [SMALL_STATE(160)] = 5478, + [SMALL_STATE(161)] = 5495, + [SMALL_STATE(162)] = 5506, + [SMALL_STATE(163)] = 5517, + [SMALL_STATE(164)] = 5534, + [SMALL_STATE(165)] = 5551, + [SMALL_STATE(166)] = 5562, + [SMALL_STATE(167)] = 5573, + [SMALL_STATE(168)] = 5584, + [SMALL_STATE(169)] = 5595, + [SMALL_STATE(170)] = 5612, + [SMALL_STATE(171)] = 5629, + [SMALL_STATE(172)] = 5640, + [SMALL_STATE(173)] = 5651, + [SMALL_STATE(174)] = 5666, + [SMALL_STATE(175)] = 5683, + [SMALL_STATE(176)] = 5700, + [SMALL_STATE(177)] = 5717, + [SMALL_STATE(178)] = 5734, + [SMALL_STATE(179)] = 5751, + [SMALL_STATE(180)] = 5768, + [SMALL_STATE(181)] = 5785, + [SMALL_STATE(182)] = 5802, + [SMALL_STATE(183)] = 5819, + [SMALL_STATE(184)] = 5830, + [SMALL_STATE(185)] = 5841, + [SMALL_STATE(186)] = 5852, + [SMALL_STATE(187)] = 5863, + [SMALL_STATE(188)] = 5878, + [SMALL_STATE(189)] = 5895, + [SMALL_STATE(190)] = 5910, + [SMALL_STATE(191)] = 5927, + [SMALL_STATE(192)] = 5944, + [SMALL_STATE(193)] = 5961, + [SMALL_STATE(194)] = 5978, + [SMALL_STATE(195)] = 5995, + [SMALL_STATE(196)] = 6010, + [SMALL_STATE(197)] = 6021, + [SMALL_STATE(198)] = 6038, + [SMALL_STATE(199)] = 6049, + [SMALL_STATE(200)] = 6066, + [SMALL_STATE(201)] = 6077, + [SMALL_STATE(202)] = 6094, + [SMALL_STATE(203)] = 6111, + [SMALL_STATE(204)] = 6128, + [SMALL_STATE(205)] = 6145, + [SMALL_STATE(206)] = 6159, + [SMALL_STATE(207)] = 6169, + [SMALL_STATE(208)] = 6181, + [SMALL_STATE(209)] = 6195, + [SMALL_STATE(210)] = 6205, + [SMALL_STATE(211)] = 6219, + [SMALL_STATE(212)] = 6233, + [SMALL_STATE(213)] = 6243, + [SMALL_STATE(214)] = 6255, + [SMALL_STATE(215)] = 6269, + [SMALL_STATE(216)] = 6283, + [SMALL_STATE(217)] = 6293, + [SMALL_STATE(218)] = 6303, + [SMALL_STATE(219)] = 6317, + [SMALL_STATE(220)] = 6327, + [SMALL_STATE(221)] = 6337, + [SMALL_STATE(222)] = 6346, + [SMALL_STATE(223)] = 6357, + [SMALL_STATE(224)] = 6366, + [SMALL_STATE(225)] = 6377, + [SMALL_STATE(226)] = 6388, + [SMALL_STATE(227)] = 6397, + [SMALL_STATE(228)] = 6406, + [SMALL_STATE(229)] = 6415, + [SMALL_STATE(230)] = 6424, + [SMALL_STATE(231)] = 6433, + [SMALL_STATE(232)] = 6442, + [SMALL_STATE(233)] = 6451, + [SMALL_STATE(234)] = 6460, + [SMALL_STATE(235)] = 6469, + [SMALL_STATE(236)] = 6478, + [SMALL_STATE(237)] = 6487, + [SMALL_STATE(238)] = 6496, + [SMALL_STATE(239)] = 6505, + [SMALL_STATE(240)] = 6514, + [SMALL_STATE(241)] = 6522, + [SMALL_STATE(242)] = 6530, + [SMALL_STATE(243)] = 6538, + [SMALL_STATE(244)] = 6546, + [SMALL_STATE(245)] = 6554, + [SMALL_STATE(246)] = 6562, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -8725,292 +9222,314 @@ static const TSParseActionEntry ts_parse_actions[] = { [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 = true}}, SHIFT(210), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12), [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), - [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(211), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(84), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(240), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(86), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80), [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(91), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(101), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(119), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), - [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(105), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(125), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), - [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), - [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), - [57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 28), - [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 28), - [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), - [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 14), - [65] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 14), - [67] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 2), - [69] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 2), - [71] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1, .production_id = 1), - [73] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1, .production_id = 1), - [75] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), - [77] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), - [79] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(187), - [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 37), - [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 37), - [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 3), - [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3), - [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), - [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), - [94] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 7, .production_id = 50), - [96] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 7, .production_id = 50), - [98] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 3), - [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 3), - [102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 42), - [104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 42), - [106] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 48), - [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 48), - [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 46), - [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 46), - [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 6), - [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 6), - [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 49), - [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 49), - [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 33), - [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 33), - [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 35), - [128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 35), - [130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [132] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74), - [134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [138] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), - [140] = {.entry = {.count = 1, .reusable = false}}, SHIFT(212), - [142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 21), - [150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 21), - [152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 17), - [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 17), - [158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), - [160] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), + [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), + [57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), + [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), + [61] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(215), + [64] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1, .production_id = 1), + [66] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1, .production_id = 1), + [68] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), + [70] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 14), + [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 14), + [74] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 2), + [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 2), + [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 28), + [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 28), + [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 35), + [84] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 35), + [86] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [88] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), + [90] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [92] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), + [94] = {.entry = {.count = 1, .reusable = false}}, SHIFT(245), + [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [106] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 37), + [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 37), + [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 21), + [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 21), + [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 3), + [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3), + [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), + [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), + [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 48), + [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 48), + [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 3), + [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 3), + [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 6), + [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 6), + [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 42), + [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 42), + [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 7, .production_id = 50), + [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 7, .production_id = 50), + [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 46), + [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 46), + [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 49), + [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 49), + [150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 33), + [152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 33), + [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 36), + [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 36), + [158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 23), + [160] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 23), + [162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 33), [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 33), - [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 36), - [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 36), - [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 23), - [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 23), - [182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 33), - [184] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), - [186] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 33), - [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), - [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 17), + [172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 17), + [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 33), + [186] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), + [188] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 33), + [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245), [194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), [196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), [198] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(44), - [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [205] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 22), - [207] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 22), - [209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 9), - [211] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 9), + [201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 9), + [203] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 9), + [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 22), + [211] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 22), [213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), [215] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), [219] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), - [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [232] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), - [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 34), - [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 1, .production_id = 41), - [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [252] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 3, .production_id = 45), - [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [260] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), - [262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), - [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [288] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), - [290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), - [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [296] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), - [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), - [300] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [302] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(84), - [305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [307] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [315] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [222] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), + [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), + [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 34), + [232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 3, .production_id = 45), + [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), + [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 1, .production_id = 41), + [240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), + [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [258] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), + [260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), + [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [272] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), + [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), + [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [298] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), + [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), + [302] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [304] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(85), + [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [309] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [313] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), [319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 16), - [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 38), - [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 26), - [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 27), - [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 40), - [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), - [335] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(67), - [338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 29), - [340] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 39), - [342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), - [344] = {.entry = {.count = 1, .reusable = false}}, SHIFT(111), - [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 43), - [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), - [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), - [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), - [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), - [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), - [364] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(67), - [367] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), - [369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), - [371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [375] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), - [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), - [381] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), - [383] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), - [385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), - [387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 8), - [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), - [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 19), - [395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), - [397] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 20), - [401] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), - [403] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), SHIFT_REPEAT(67), - [406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 17), - [408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), - [410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), - [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), - [416] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), - [419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 3, .production_id = 45), - [421] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), - [423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [425] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), - [427] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), SHIFT_REPEAT(67), - [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [432] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 37), - [434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), - [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), - [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), - [442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [444] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), - [446] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), SHIFT_REPEAT(67), - [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), - [453] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 42), - [455] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 1, .production_id = 41), - [457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [459] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), - [461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), - [463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [465] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), - [467] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(136), - [470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), - [472] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), - [474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 37), - [480] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 42), + [321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 27), + [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 16), + [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 26), + [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 38), + [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), + [337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), + [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 40), + [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 29), + [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 43), + [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 39), + [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), + [351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [353] = {.entry = {.count = 1, .reusable = false}}, SHIFT(134), + [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), + [357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), + [359] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(66), + [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), + [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), + [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), + [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), + [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), + [376] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(66), + [379] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208), + [383] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), + [385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), + [387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), + [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), + [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 8), + [397] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(211), + [400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), + [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), + [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), + [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), + [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 19), + [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), + [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 37), + [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), + [422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), + [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), + [426] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226), + [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 17), + [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), + [434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), + [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), + [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [442] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), + [444] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), + [446] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), SHIFT_REPEAT(66), + [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [455] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), + [457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 37), + [465] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 42), + [467] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), + [469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [471] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), + [473] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), + [476] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 1, .production_id = 41), + [480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), [482] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [484] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(166), - [487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), - [489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), - [491] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), - [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), - [495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), - [497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), - [501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [505] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), - [507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [509] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), - [511] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(67), - [514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), - [522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), - [524] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), - [526] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), - [528] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 32), - [530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), - [532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [534] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 13), - [536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [538] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 30), - [540] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 25), - [542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [544] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [546] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 15), - [548] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 18), - [550] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 3), - [552] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), - [554] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5, .production_id = 24), - [556] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), - [558] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 6), - [560] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 3), - [562] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 44), - [564] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 12), - [566] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 11), - [568] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 3), - [570] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1), - [572] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), - [574] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 3), - [576] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 31), - [578] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 47), - [580] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [582] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [584] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), - [586] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [588] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [590] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), + [486] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(151), + [489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), + [491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), + [495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), + [501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), + [503] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), + [505] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(66), + [508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 42), + [510] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), + [512] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 20), + [514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [516] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(189), + [519] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), + [521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229), + [527] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), + [529] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), SHIFT_REPEAT(66), + [532] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), + [534] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [536] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 3, .production_id = 45), + [538] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), + [540] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), SHIFT_REPEAT(66), + [543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [547] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), + [549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [557] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 32), + [559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), + [561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237), + [563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), + [565] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), + [567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), + [571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [573] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 13), + [575] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), + [577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [583] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 15), + [585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 30), + [587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 25), + [591] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 18), + [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 3), + [595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 47), + [597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 3), + [599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 31), + [601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 44), + [603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 6), + [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), + [607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), + [609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 3), + [611] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 12), + [613] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5, .production_id = 24), + [615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 11), + [617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 3), + [619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1), + [621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), + [623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), + [625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), + [629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [635] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), }; #ifdef __cplusplus From d58da0d3ad5676e8f8e3b43e09f550f5a76885df Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Sat, 22 Jun 2024 20:41:40 +0200 Subject: [PATCH 36/49] Default Template Type Arguments --- grammar.js | 6 +- src/grammar.json | 33 +- src/node-types.json | 35 +- src/parser.c | 4598 ++++++++++++++++++++++--------------------- 4 files changed, 2381 insertions(+), 2291 deletions(-) diff --git a/grammar.js b/grammar.js index e150e8b..149df68 100644 --- a/grammar.js +++ b/grammar.js @@ -79,7 +79,11 @@ module.exports = grammar({ ), template_declaration_type: $ => seq( - $.identifier // The template type name + field('name', $.identifier), + optional(seq( + '=', + field('default_value', $._type) + )) ), // Statements diff --git a/src/grammar.json b/src/grammar.json index 54863af..a769393 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -271,8 +271,37 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "identifier" + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "=" + }, + { + "type": "FIELD", + "name": "default_value", + "content": { + "type": "SYMBOL", + "name": "_type" + } + } + ] + }, + { + "type": "BLANK" + } + ] } ] }, diff --git a/src/node-types.json b/src/node-types.json index 4cd73ca..a4dc03d 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -1062,16 +1062,31 @@ { "type": "template_declaration_type", "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - } - ] + "fields": { + "default_value": { + "multiple": false, + "required": false, + "types": [ + { + "type": "array_type", + "named": true + }, + { + "type": "template_global", + "named": true + } + ] + }, + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } } }, { diff --git a/src/parser.c b/src/parser.c index 93640c7..9407f5f 100644 --- a/src/parser.c +++ b/src/parser.c @@ -5,15 +5,15 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 247 +#define STATE_COUNT 249 #define LARGE_STATE_COUNT 2 #define SYMBOL_COUNT 92 #define ALIAS_COUNT 0 #define TOKEN_COUNT 48 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 30 +#define FIELD_COUNT 31 #define MAX_ALIAS_SEQUENCE_LENGTH 7 -#define PRODUCTION_ID_COUNT 51 +#define PRODUCTION_ID_COUNT 53 enum ts_symbol_identifiers { sym_identifier = 1, @@ -22,10 +22,10 @@ enum ts_symbol_identifiers { anon_sym_DASH_GT = 4, anon_sym_LT = 5, anon_sym_GT = 6, - anon_sym_LBRACE = 7, - anon_sym_RBRACE = 8, - anon_sym_interface = 9, - anon_sym_EQ = 10, + anon_sym_EQ = 7, + anon_sym_LBRACE = 8, + anon_sym_RBRACE = 9, + anon_sym_interface = 10, anon_sym_reg = 11, anon_sym_initial = 12, anon_sym_if = 13, @@ -117,10 +117,10 @@ static const char * const ts_symbol_names[] = { [anon_sym_DASH_GT] = "->", [anon_sym_LT] = "<", [anon_sym_GT] = ">", + [anon_sym_EQ] = "=", [anon_sym_LBRACE] = "{", [anon_sym_RBRACE] = "}", [anon_sym_interface] = "interface", - [anon_sym_EQ] = "=", [anon_sym_reg] = "reg", [anon_sym_initial] = "initial", [anon_sym_if] = "if", @@ -212,10 +212,10 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_DASH_GT] = anon_sym_DASH_GT, [anon_sym_LT] = anon_sym_LT, [anon_sym_GT] = anon_sym_GT, + [anon_sym_EQ] = anon_sym_EQ, [anon_sym_LBRACE] = anon_sym_LBRACE, [anon_sym_RBRACE] = anon_sym_RBRACE, [anon_sym_interface] = anon_sym_interface, - [anon_sym_EQ] = anon_sym_EQ, [anon_sym_reg] = anon_sym_reg, [anon_sym_initial] = anon_sym_initial, [anon_sym_if] = anon_sym_if, @@ -328,19 +328,19 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_LBRACE] = { + [anon_sym_EQ] = { .visible = true, .named = false, }, - [anon_sym_RBRACE] = { + [anon_sym_LBRACE] = { .visible = true, .named = false, }, - [anon_sym_interface] = { + [anon_sym_RBRACE] = { .visible = true, .named = false, }, - [anon_sym_EQ] = { + [anon_sym_interface] = { .visible = true, .named = false, }, @@ -681,26 +681,27 @@ enum ts_field_identifiers { field_condition = 8, field_content = 9, field_declaration_modifiers = 10, - field_else_block = 11, - field_expr_or_decl = 12, - field_for_decl = 13, - field_from = 14, - field_inputs = 15, - field_interface_ports = 16, - field_io_port_modifiers = 17, - field_is_global_path = 18, - field_item = 19, - field_latency_specifier = 20, - field_left = 21, - field_name = 22, - field_operator = 23, - field_outputs = 24, - field_right = 25, - field_template_declaration_arguments = 26, - field_then_block = 27, - field_to = 28, - field_type = 29, - field_write_modifiers = 30, + field_default_value = 11, + field_else_block = 12, + field_expr_or_decl = 13, + field_for_decl = 14, + field_from = 15, + field_inputs = 16, + field_interface_ports = 17, + field_io_port_modifiers = 18, + field_is_global_path = 19, + field_item = 20, + field_latency_specifier = 21, + field_left = 22, + field_name = 23, + field_operator = 24, + field_outputs = 25, + field_right = 26, + field_template_declaration_arguments = 27, + field_then_block = 28, + field_to = 29, + field_type = 30, + field_write_modifiers = 31, }; static const char * const ts_field_names[] = { @@ -715,6 +716,7 @@ static const char * const ts_field_names[] = { [field_condition] = "condition", [field_content] = "content", [field_declaration_modifiers] = "declaration_modifiers", + [field_default_value] = "default_value", [field_else_block] = "else_block", [field_expr_or_decl] = "expr_or_decl", [field_for_decl] = "for_decl", @@ -748,46 +750,48 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [8] = {.index = 11, .length = 1}, [9] = {.index = 12, .length = 1}, [10] = {.index = 13, .length = 1}, - [11] = {.index = 14, .length = 3}, - [12] = {.index = 17, .length = 3}, - [13] = {.index = 20, .length = 1}, - [14] = {.index = 21, .length = 2}, - [15] = {.index = 23, .length = 2}, - [16] = {.index = 25, .length = 2}, - [17] = {.index = 27, .length = 2}, - [18] = {.index = 29, .length = 1}, + [11] = {.index = 14, .length = 1}, + [12] = {.index = 15, .length = 3}, + [13] = {.index = 18, .length = 3}, + [14] = {.index = 21, .length = 1}, + [15] = {.index = 22, .length = 2}, + [16] = {.index = 24, .length = 2}, + [17] = {.index = 26, .length = 2}, + [18] = {.index = 28, .length = 2}, [19] = {.index = 30, .length = 1}, [20] = {.index = 31, .length = 1}, - [21] = {.index = 32, .length = 2}, - [22] = {.index = 34, .length = 2}, - [23] = {.index = 36, .length = 2}, - [24] = {.index = 38, .length = 4}, - [25] = {.index = 42, .length = 1}, - [26] = {.index = 43, .length = 3}, - [27] = {.index = 46, .length = 3}, - [28] = {.index = 49, .length = 3}, - [29] = {.index = 52, .length = 3}, - [30] = {.index = 55, .length = 2}, - [31] = {.index = 57, .length = 2}, - [32] = {.index = 59, .length = 2}, - [33] = {.index = 61, .length = 1}, + [21] = {.index = 32, .length = 1}, + [22] = {.index = 33, .length = 2}, + [23] = {.index = 35, .length = 2}, + [24] = {.index = 37, .length = 2}, + [25] = {.index = 39, .length = 4}, + [26] = {.index = 43, .length = 1}, + [27] = {.index = 44, .length = 3}, + [28] = {.index = 47, .length = 3}, + [29] = {.index = 50, .length = 3}, + [30] = {.index = 53, .length = 3}, + [31] = {.index = 56, .length = 2}, + [32] = {.index = 58, .length = 2}, + [33] = {.index = 60, .length = 2}, [34] = {.index = 62, .length = 2}, - [35] = {.index = 64, .length = 3}, - [36] = {.index = 67, .length = 2}, - [37] = {.index = 69, .length = 1}, - [38] = {.index = 70, .length = 4}, - [39] = {.index = 74, .length = 4}, - [40] = {.index = 78, .length = 4}, - [41] = {.index = 82, .length = 1}, - [42] = {.index = 83, .length = 2}, - [43] = {.index = 85, .length = 5}, - [44] = {.index = 90, .length = 3}, - [45] = {.index = 93, .length = 2}, - [46] = {.index = 95, .length = 2}, - [47] = {.index = 97, .length = 4}, - [48] = {.index = 101, .length = 3}, - [49] = {.index = 104, .length = 3}, - [50] = {.index = 107, .length = 4}, + [35] = {.index = 64, .length = 1}, + [36] = {.index = 65, .length = 2}, + [37] = {.index = 67, .length = 3}, + [38] = {.index = 70, .length = 2}, + [39] = {.index = 72, .length = 1}, + [40] = {.index = 73, .length = 4}, + [41] = {.index = 77, .length = 4}, + [42] = {.index = 81, .length = 4}, + [43] = {.index = 85, .length = 1}, + [44] = {.index = 86, .length = 2}, + [45] = {.index = 88, .length = 5}, + [46] = {.index = 93, .length = 3}, + [47] = {.index = 96, .length = 2}, + [48] = {.index = 98, .length = 2}, + [49] = {.index = 100, .length = 4}, + [50] = {.index = 104, .length = 3}, + [51] = {.index = 107, .length = 3}, + [52] = {.index = 110, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -812,142 +816,147 @@ static const TSFieldMapEntry ts_field_map_entries[] = { [11] = {field_inputs, 1}, [12] = - {field_expr_or_decl, 0}, + {field_name, 0}, [13] = - {field_item, 0, .inherited = true}, + {field_expr_or_decl, 0}, [14] = + {field_item, 0, .inherited = true}, + [15] = {field_block, 3}, {field_interface_ports, 2}, {field_name, 1}, - [17] = + [18] = {field_block, 3}, {field_name, 1}, {field_template_declaration_arguments, 2}, - [20] = - {field_outputs, 1}, [21] = + {field_outputs, 1}, + [22] = {field_is_global_path, 0}, {field_item, 1}, - [23] = + [24] = {field_inputs, 1}, {field_outputs, 2, .inherited = true}, - [25] = + [26] = {field_name, 1}, {field_type, 0}, - [27] = + [28] = {field_arr, 0}, {field_arr_idx, 1}, - [29] = - {field_outputs, 2, .inherited = true}, [30] = - {field_inputs, 2}, + {field_outputs, 2, .inherited = true}, [31] = - {field_name, 1}, + {field_inputs, 2}, [32] = + {field_name, 1}, + [33] = {field_operator, 0}, {field_right, 1}, - [34] = + [35] = {field_expr_or_decl, 1}, {field_write_modifiers, 0}, - [36] = + [37] = {field_arguments, 1}, {field_name, 0}, - [38] = + [39] = {field_block, 4}, {field_interface_ports, 3}, {field_name, 1}, {field_template_declaration_arguments, 2}, - [42] = - {field_outputs, 2}, [43] = + {field_outputs, 2}, + [44] = {field_io_port_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [46] = + [47] = {field_declaration_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [49] = + [50] = {field_is_global_path, 0}, {field_item, 1}, {field_item, 2, .inherited = true}, - [52] = + [53] = {field_latency_specifier, 2}, {field_name, 1}, {field_type, 0}, - [55] = + [56] = {field_inputs, 2}, {field_outputs, 3, .inherited = true}, - [57] = + [58] = + {field_default_value, 2}, + {field_name, 0}, + [60] = {field_interface_ports, 2}, {field_name, 1}, - [59] = + [62] = {field_condition, 1}, {field_then_block, 2}, - [61] = + [64] = {field_content, 1}, - [62] = + [65] = {field_assign_left, 0}, {field_assign_value, 2}, - [64] = + [67] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [67] = + [70] = {field_left, 0}, {field_name, 2}, - [69] = + [72] = {field_item, 2}, - [70] = + [73] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_name, 3}, {field_type, 2}, - [74] = + [77] = {field_io_port_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [78] = + [81] = {field_declaration_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [82] = + [85] = {field_arg, 0}, - [83] = + [86] = {field_item, 2}, {field_item, 3, .inherited = true}, - [85] = + [88] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_latency_specifier, 4}, {field_name, 3}, {field_type, 2}, - [90] = + [93] = {field_condition, 1}, {field_else_block, 4}, {field_then_block, 2}, - [93] = + [96] = {field_arg, 2}, {field_name, 0}, - [95] = + [98] = {field_item, 1}, {field_item, 3}, - [97] = + [100] = {field_block, 6}, {field_for_decl, 1}, {field_from, 3}, {field_to, 5}, - [101] = + [104] = {field_item, 1}, {field_item, 3}, {field_item, 4, .inherited = true}, - [104] = + [107] = {field_item, 1}, {field_item, 2, .inherited = true}, {field_item, 4}, - [107] = + [110] = {field_item, 1}, {field_item, 2, .inherited = true}, {field_item, 4}, @@ -1018,15 +1027,15 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [52] = 52, [53] = 53, [54] = 54, - [55] = 55, - [56] = 50, + [55] = 52, + [56] = 56, [57] = 57, [58] = 58, [59] = 59, [60] = 60, [61] = 61, [62] = 62, - [63] = 58, + [63] = 60, [64] = 64, [65] = 65, [66] = 66, @@ -1036,7 +1045,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [70] = 70, [71] = 71, [72] = 72, - [73] = 69, + [73] = 73, [74] = 74, [75] = 75, [76] = 76, @@ -1045,7 +1054,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [79] = 79, [80] = 80, [81] = 81, - [82] = 82, + [82] = 69, [83] = 83, [84] = 84, [85] = 85, @@ -1064,16 +1073,16 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [98] = 98, [99] = 99, [100] = 100, - [101] = 101, + [101] = 99, [102] = 102, [103] = 103, - [104] = 97, + [104] = 104, [105] = 105, - [106] = 99, - [107] = 107, + [106] = 102, + [107] = 103, [108] = 108, [109] = 109, - [110] = 108, + [110] = 110, [111] = 111, [112] = 112, [113] = 113, @@ -1081,95 +1090,95 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [115] = 115, [116] = 116, [117] = 117, - [118] = 15, + [118] = 118, [119] = 119, - [120] = 13, - [121] = 12, + [120] = 120, + [121] = 13, [122] = 122, - [123] = 11, + [123] = 14, [124] = 124, [125] = 125, [126] = 126, [127] = 127, - [128] = 128, - [129] = 14, + [128] = 11, + [129] = 16, [130] = 130, [131] = 131, [132] = 132, [133] = 133, [134] = 134, - [135] = 135, + [135] = 12, [136] = 136, [137] = 137, - [138] = 138, + [138] = 30, [139] = 139, - [140] = 140, + [140] = 33, [141] = 141, - [142] = 142, + [142] = 21, [143] = 143, - [144] = 144, + [144] = 31, [145] = 145, [146] = 146, [147] = 147, [148] = 148, [149] = 149, - [150] = 29, + [150] = 150, [151] = 151, [152] = 152, - [153] = 153, + [153] = 29, [154] = 154, - [155] = 33, - [156] = 25, + [155] = 155, + [156] = 156, [157] = 157, - [158] = 27, + [158] = 158, [159] = 159, [160] = 160, [161] = 161, - [162] = 32, + [162] = 162, [163] = 163, [164] = 164, [165] = 165, [166] = 166, - [167] = 23, + [167] = 167, [168] = 168, - [169] = 169, + [169] = 27, [170] = 170, [171] = 171, - [172] = 172, + [172] = 23, [173] = 173, - [174] = 141, + [174] = 22, [175] = 175, - [176] = 176, + [176] = 150, [177] = 177, - [178] = 163, + [178] = 178, [179] = 179, [180] = 180, - [181] = 181, + [181] = 20, [182] = 182, [183] = 183, [184] = 184, [185] = 185, - [186] = 22, + [186] = 186, [187] = 187, - [188] = 145, - [189] = 44, - [190] = 190, - [191] = 153, + [188] = 188, + [189] = 189, + [190] = 157, + [191] = 44, [192] = 192, - [193] = 193, - [194] = 194, + [193] = 158, + [194] = 18, [195] = 195, - [196] = 20, + [196] = 196, [197] = 197, - [198] = 26, - [199] = 160, - [200] = 28, - [201] = 179, + [198] = 180, + [199] = 199, + [200] = 200, + [201] = 165, [202] = 202, - [203] = 154, - [204] = 180, - [205] = 205, - [206] = 34, + [203] = 182, + [204] = 204, + [205] = 156, + [206] = 183, [207] = 207, [208] = 208, [209] = 209, @@ -1178,15 +1187,15 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [212] = 212, [213] = 213, [214] = 214, - [215] = 211, + [215] = 215, [216] = 216, [217] = 217, - [218] = 218, + [218] = 214, [219] = 219, [220] = 220, [221] = 221, [222] = 222, - [223] = 223, + [223] = 34, [224] = 224, [225] = 225, [226] = 226, @@ -1205,11 +1214,13 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [239] = 239, [240] = 240, [241] = 241, - [242] = 241, + [242] = 242, [243] = 243, [244] = 244, [245] = 245, - [246] = 246, + [246] = 243, + [247] = 247, + [248] = 248, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -3144,14 +3155,14 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == ':') ADVANCE(9); if (lookahead == ';') ADVANCE(40); if (lookahead == '<') ADVANCE(11); - if (lookahead == '=') ADVANCE(17); + if (lookahead == '=') ADVANCE(15); if (lookahead == '>') ADVANCE(13); if (lookahead == '[') ADVANCE(37); if (lookahead == ']') ADVANCE(38); if (lookahead == '^') ADVANCE(27); - if (lookahead == '{') ADVANCE(14); + if (lookahead == '{') ADVANCE(16); if (lookahead == '|') ADVANCE(25); - if (lookahead == '}') ADVANCE(15); + if (lookahead == '}') ADVANCE(17); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(0) @@ -3171,13 +3182,13 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '/') ADVANCE(3); if (lookahead == ':') ADVANCE(6); if (lookahead == ';') ADVANCE(40); - if (lookahead == '=') ADVANCE(16); + if (lookahead == '=') ADVANCE(14); if (lookahead == '>') ADVANCE(12); if (lookahead == '[') ADVANCE(37); if (lookahead == '^') ADVANCE(27); - if (lookahead == '{') ADVANCE(14); + if (lookahead == '{') ADVANCE(16); if (lookahead == '|') ADVANCE(25); - if (lookahead == '}') ADVANCE(15); + if (lookahead == '}') ADVANCE(17); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(1) @@ -3200,14 +3211,14 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == ':') ADVANCE(6); if (lookahead == ';') ADVANCE(40); if (lookahead == '<') ADVANCE(11); - if (lookahead == '=') ADVANCE(17); + if (lookahead == '=') ADVANCE(15); if (lookahead == '>') ADVANCE(13); if (lookahead == '[') ADVANCE(37); if (lookahead == ']') ADVANCE(38); if (lookahead == '^') ADVANCE(27); - if (lookahead == '{') ADVANCE(14); + if (lookahead == '{') ADVANCE(16); if (lookahead == '|') ADVANCE(25); - if (lookahead == '}') ADVANCE(15); + if (lookahead == '}') ADVANCE(17); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(2) @@ -3253,17 +3264,17 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '=') ADVANCE(31); END_STATE(); case 14: - ACCEPT_TOKEN(anon_sym_LBRACE); + ACCEPT_TOKEN(anon_sym_EQ); END_STATE(); case 15: - ACCEPT_TOKEN(anon_sym_RBRACE); + ACCEPT_TOKEN(anon_sym_EQ); + if (lookahead == '=') ADVANCE(28); END_STATE(); case 16: - ACCEPT_TOKEN(anon_sym_EQ); + ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); case 17: - ACCEPT_TOKEN(anon_sym_EQ); - if (lookahead == '=') ADVANCE(28); + ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); case 18: ACCEPT_TOKEN(anon_sym_DOT_DOT); @@ -3553,8 +3564,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [12] = {.lex_state = 2}, [13] = {.lex_state = 2}, [14] = {.lex_state = 2}, - [15] = {.lex_state = 2}, - [16] = {.lex_state = 1}, + [15] = {.lex_state = 1}, + [16] = {.lex_state = 2}, [17] = {.lex_state = 2}, [18] = {.lex_state = 2}, [19] = {.lex_state = 2}, @@ -3580,21 +3591,21 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [39] = {.lex_state = 2}, [40] = {.lex_state = 2}, [41] = {.lex_state = 2}, - [42] = {.lex_state = 1}, - [43] = {.lex_state = 2}, + [42] = {.lex_state = 2}, + [43] = {.lex_state = 1}, [44] = {.lex_state = 1}, [45] = {.lex_state = 2}, [46] = {.lex_state = 2}, [47] = {.lex_state = 2}, [48] = {.lex_state = 2}, [49] = {.lex_state = 2}, - [50] = {.lex_state = 1}, + [50] = {.lex_state = 2}, [51] = {.lex_state = 2}, - [52] = {.lex_state = 2}, + [52] = {.lex_state = 1}, [53] = {.lex_state = 2}, [54] = {.lex_state = 2}, - [55] = {.lex_state = 2}, - [56] = {.lex_state = 1}, + [55] = {.lex_state = 1}, + [56] = {.lex_state = 2}, [57] = {.lex_state = 2}, [58] = {.lex_state = 2}, [59] = {.lex_state = 1}, @@ -3635,123 +3646,123 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [94] = {.lex_state = 0}, [95] = {.lex_state = 0}, [96] = {.lex_state = 0}, - [97] = {.lex_state = 1}, + [97] = {.lex_state = 0}, [98] = {.lex_state = 0}, [99] = {.lex_state = 1}, [100] = {.lex_state = 0}, - [101] = {.lex_state = 0}, - [102] = {.lex_state = 0}, - [103] = {.lex_state = 0}, - [104] = {.lex_state = 1}, - [105] = {.lex_state = 1}, + [101] = {.lex_state = 1}, + [102] = {.lex_state = 1}, + [103] = {.lex_state = 1}, + [104] = {.lex_state = 0}, + [105] = {.lex_state = 0}, [106] = {.lex_state = 1}, - [107] = {.lex_state = 0}, - [108] = {.lex_state = 1}, + [107] = {.lex_state = 1}, + [108] = {.lex_state = 0}, [109] = {.lex_state = 0}, [110] = {.lex_state = 1}, - [111] = {.lex_state = 1}, + [111] = {.lex_state = 0}, [112] = {.lex_state = 0}, [113] = {.lex_state = 0}, - [114] = {.lex_state = 0}, - [115] = {.lex_state = 0}, - [116] = {.lex_state = 1}, + [114] = {.lex_state = 1}, + [115] = {.lex_state = 1}, + [116] = {.lex_state = 0}, [117] = {.lex_state = 0}, [118] = {.lex_state = 1}, [119] = {.lex_state = 0}, - [120] = {.lex_state = 1}, + [120] = {.lex_state = 0}, [121] = {.lex_state = 1}, - [122] = {.lex_state = 0}, + [122] = {.lex_state = 1}, [123] = {.lex_state = 1}, [124] = {.lex_state = 0}, - [125] = {.lex_state = 1}, + [125] = {.lex_state = 0}, [126] = {.lex_state = 0}, - [127] = {.lex_state = 0}, + [127] = {.lex_state = 1}, [128] = {.lex_state = 1}, [129] = {.lex_state = 1}, [130] = {.lex_state = 0}, - [131] = {.lex_state = 0}, + [131] = {.lex_state = 1}, [132] = {.lex_state = 0}, [133] = {.lex_state = 0}, - [134] = {.lex_state = 1}, - [135] = {.lex_state = 0}, - [136] = {.lex_state = 0}, - [137] = {.lex_state = 0}, - [138] = {.lex_state = 0}, + [134] = {.lex_state = 0}, + [135] = {.lex_state = 1}, + [136] = {.lex_state = 1}, + [137] = {.lex_state = 1}, + [138] = {.lex_state = 1}, [139] = {.lex_state = 0}, - [140] = {.lex_state = 0}, - [141] = {.lex_state = 1}, - [142] = {.lex_state = 0}, - [143] = {.lex_state = 1}, + [140] = {.lex_state = 1}, + [141] = {.lex_state = 0}, + [142] = {.lex_state = 1}, + [143] = {.lex_state = 0}, [144] = {.lex_state = 1}, - [145] = {.lex_state = 1}, + [145] = {.lex_state = 0}, [146] = {.lex_state = 0}, [147] = {.lex_state = 0}, [148] = {.lex_state = 0}, [149] = {.lex_state = 0}, [150] = {.lex_state = 1}, [151] = {.lex_state = 0}, - [152] = {.lex_state = 1}, + [152] = {.lex_state = 0}, [153] = {.lex_state = 1}, - [154] = {.lex_state = 0}, - [155] = {.lex_state = 1}, - [156] = {.lex_state = 1}, - [157] = {.lex_state = 0}, + [154] = {.lex_state = 1}, + [155] = {.lex_state = 0}, + [156] = {.lex_state = 0}, + [157] = {.lex_state = 1}, [158] = {.lex_state = 1}, [159] = {.lex_state = 0}, - [160] = {.lex_state = 1}, + [160] = {.lex_state = 0}, [161] = {.lex_state = 0}, [162] = {.lex_state = 1}, [163] = {.lex_state = 0}, [164] = {.lex_state = 0}, - [165] = {.lex_state = 0}, + [165] = {.lex_state = 1}, [166] = {.lex_state = 0}, - [167] = {.lex_state = 1}, + [167] = {.lex_state = 0}, [168] = {.lex_state = 0}, - [169] = {.lex_state = 0}, + [169] = {.lex_state = 1}, [170] = {.lex_state = 0}, [171] = {.lex_state = 0}, - [172] = {.lex_state = 0}, - [173] = {.lex_state = 1}, + [172] = {.lex_state = 1}, + [173] = {.lex_state = 0}, [174] = {.lex_state = 1}, - [175] = {.lex_state = 0}, - [176] = {.lex_state = 0}, - [177] = {.lex_state = 0}, + [175] = {.lex_state = 1}, + [176] = {.lex_state = 1}, + [177] = {.lex_state = 1}, [178] = {.lex_state = 0}, - [179] = {.lex_state = 1}, - [180] = {.lex_state = 1}, - [181] = {.lex_state = 0}, - [182] = {.lex_state = 0}, - [183] = {.lex_state = 0}, + [179] = {.lex_state = 0}, + [180] = {.lex_state = 0}, + [181] = {.lex_state = 1}, + [182] = {.lex_state = 1}, + [183] = {.lex_state = 1}, [184] = {.lex_state = 0}, [185] = {.lex_state = 0}, - [186] = {.lex_state = 1}, + [186] = {.lex_state = 0}, [187] = {.lex_state = 0}, - [188] = {.lex_state = 1}, + [188] = {.lex_state = 0}, [189] = {.lex_state = 0}, - [190] = {.lex_state = 0}, - [191] = {.lex_state = 1}, - [192] = {.lex_state = 1}, - [193] = {.lex_state = 0}, - [194] = {.lex_state = 0}, - [195] = {.lex_state = 1}, - [196] = {.lex_state = 1}, + [190] = {.lex_state = 1}, + [191] = {.lex_state = 0}, + [192] = {.lex_state = 0}, + [193] = {.lex_state = 1}, + [194] = {.lex_state = 1}, + [195] = {.lex_state = 0}, + [196] = {.lex_state = 0}, [197] = {.lex_state = 1}, - [198] = {.lex_state = 1}, + [198] = {.lex_state = 0}, [199] = {.lex_state = 1}, - [200] = {.lex_state = 1}, + [200] = {.lex_state = 0}, [201] = {.lex_state = 1}, [202] = {.lex_state = 0}, - [203] = {.lex_state = 0}, - [204] = {.lex_state = 1}, + [203] = {.lex_state = 1}, + [204] = {.lex_state = 0}, [205] = {.lex_state = 0}, [206] = {.lex_state = 1}, [207] = {.lex_state = 0}, - [208] = {.lex_state = 1}, + [208] = {.lex_state = 0}, [209] = {.lex_state = 0}, - [210] = {.lex_state = 0}, + [210] = {.lex_state = 1}, [211] = {.lex_state = 0}, [212] = {.lex_state = 0}, - [213] = {.lex_state = 0}, + [213] = {.lex_state = 1}, [214] = {.lex_state = 0}, [215] = {.lex_state = 0}, [216] = {.lex_state = 0}, @@ -3759,10 +3770,10 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [218] = {.lex_state = 0}, [219] = {.lex_state = 0}, [220] = {.lex_state = 0}, - [221] = {.lex_state = 1}, + [221] = {.lex_state = 0}, [222] = {.lex_state = 0}, - [223] = {.lex_state = 0}, - [224] = {.lex_state = 0}, + [223] = {.lex_state = 1}, + [224] = {.lex_state = 1}, [225] = {.lex_state = 0}, [226] = {.lex_state = 0}, [227] = {.lex_state = 0}, @@ -3774,9 +3785,9 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [233] = {.lex_state = 0}, [234] = {.lex_state = 0}, [235] = {.lex_state = 0}, - [236] = {.lex_state = 1}, - [237] = {.lex_state = 1}, - [238] = {.lex_state = 0}, + [236] = {.lex_state = 0}, + [237] = {.lex_state = 0}, + [238] = {.lex_state = 1}, [239] = {.lex_state = 0}, [240] = {.lex_state = 0}, [241] = {.lex_state = 0}, @@ -3785,6 +3796,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [244] = {.lex_state = 0}, [245] = {.lex_state = 0}, [246] = {.lex_state = 0}, + [247] = {.lex_state = 0}, + [248] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -3796,10 +3809,10 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_DASH_GT] = ACTIONS(1), [anon_sym_LT] = ACTIONS(1), [anon_sym_GT] = ACTIONS(1), + [anon_sym_EQ] = ACTIONS(1), [anon_sym_LBRACE] = ACTIONS(1), [anon_sym_RBRACE] = ACTIONS(1), [anon_sym_interface] = ACTIONS(1), - [anon_sym_EQ] = ACTIONS(1), [anon_sym_reg] = ACTIONS(1), [anon_sym_initial] = ACTIONS(1), [anon_sym_if] = ACTIONS(1), @@ -3838,9 +3851,9 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(246), - [sym_module] = STATE(202), - [aux_sym__linebreak] = STATE(132), + [sym_source_file] = STATE(248), + [sym_module] = STATE(204), + [aux_sym__linebreak] = STATE(120), [ts_builtin_sym_end] = ACTIONS(5), [anon_sym_module] = ACTIONS(7), [anon_sym_LF] = ACTIONS(9), @@ -3875,20 +3888,20 @@ static const uint16_t ts_small_parse_table[] = { sym_number, ACTIONS(39), 1, anon_sym_LF, - STATE(42), 1, + STATE(43), 1, sym_write_modifiers, STATE(44), 1, aux_sym__linebreak, STATE(48), 1, sym_template_global, - STATE(83), 1, + STATE(84), 1, aux_sym_write_modifiers_repeat1, - STATE(115), 1, + STATE(112), 1, sym_assign_to, - STATE(137), 1, - sym_declaration, - STATE(213), 1, + STATE(130), 1, sym_assign_left_side, + STATE(145), 1, + sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -3898,10 +3911,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(210), 2, + STATE(212), 2, sym__type, sym_array_type, - STATE(239), 5, + STATE(200), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -3948,19 +3961,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(41), 1, anon_sym_RBRACE, - STATE(42), 1, + STATE(43), 1, sym_write_modifiers, STATE(44), 1, aux_sym__linebreak, STATE(48), 1, sym_template_global, - STATE(83), 1, + STATE(84), 1, aux_sym_write_modifiers_repeat1, - STATE(115), 1, + STATE(112), 1, sym_assign_to, - STATE(137), 1, + STATE(145), 1, sym_declaration, - STATE(213), 1, + STATE(215), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -3971,10 +3984,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(210), 2, + STATE(212), 2, sym__type, sym_array_type, - STATE(239), 5, + STATE(241), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -4021,20 +4034,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(43), 1, anon_sym_RBRACE, - STATE(42), 1, + STATE(43), 1, sym_write_modifiers, STATE(44), 1, aux_sym__linebreak, STATE(48), 1, sym_template_global, - STATE(83), 1, + STATE(84), 1, aux_sym_write_modifiers_repeat1, - STATE(115), 1, + STATE(112), 1, sym_assign_to, - STATE(119), 1, - sym_assign_left_side, - STATE(137), 1, + STATE(145), 1, sym_declaration, + STATE(215), 1, + sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4044,10 +4057,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(210), 2, + STATE(212), 2, sym__type, sym_array_type, - STATE(136), 5, + STATE(241), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -4094,19 +4107,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(45), 1, anon_sym_RBRACE, - STATE(42), 1, + STATE(43), 1, sym_write_modifiers, STATE(44), 1, aux_sym__linebreak, STATE(48), 1, sym_template_global, - STATE(83), 1, + STATE(84), 1, aux_sym_write_modifiers_repeat1, - STATE(115), 1, + STATE(112), 1, sym_assign_to, - STATE(137), 1, + STATE(145), 1, sym_declaration, - STATE(213), 1, + STATE(215), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4117,10 +4130,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(210), 2, + STATE(212), 2, sym__type, sym_array_type, - STATE(239), 5, + STATE(241), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -4167,19 +4180,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(47), 1, anon_sym_RBRACE, - STATE(42), 1, + STATE(43), 1, sym_write_modifiers, STATE(44), 1, aux_sym__linebreak, STATE(48), 1, sym_template_global, - STATE(83), 1, + STATE(84), 1, aux_sym_write_modifiers_repeat1, - STATE(115), 1, + STATE(112), 1, sym_assign_to, - STATE(137), 1, + STATE(145), 1, sym_declaration, - STATE(213), 1, + STATE(215), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4190,10 +4203,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(210), 2, + STATE(212), 2, sym__type, sym_array_type, - STATE(239), 5, + STATE(241), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -4240,19 +4253,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(49), 1, anon_sym_RBRACE, - STATE(42), 1, + STATE(43), 1, sym_write_modifiers, STATE(44), 1, aux_sym__linebreak, STATE(48), 1, sym_template_global, - STATE(83), 1, + STATE(84), 1, aux_sym_write_modifiers_repeat1, - STATE(115), 1, + STATE(112), 1, sym_assign_to, - STATE(137), 1, + STATE(145), 1, sym_declaration, - STATE(213), 1, + STATE(215), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4263,10 +4276,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(210), 2, + STATE(212), 2, sym__type, sym_array_type, - STATE(239), 5, + STATE(241), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -4309,24 +4322,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(37), 1, sym_number, + ACTIONS(39), 1, + anon_sym_LF, ACTIONS(51), 1, anon_sym_RBRACE, - ACTIONS(53), 1, - anon_sym_LF, - STATE(4), 1, - aux_sym__linebreak, - STATE(42), 1, + STATE(43), 1, sym_write_modifiers, + STATE(44), 1, + aux_sym__linebreak, STATE(48), 1, sym_template_global, - STATE(83), 1, + STATE(84), 1, aux_sym_write_modifiers_repeat1, - STATE(115), 1, + STATE(112), 1, sym_assign_to, - STATE(126), 1, - sym_assign_left_side, - STATE(137), 1, + STATE(145), 1, sym_declaration, + STATE(215), 1, + sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4336,10 +4349,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(210), 2, + STATE(212), 2, sym__type, sym_array_type, - STATE(140), 5, + STATE(241), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -4382,24 +4395,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(37), 1, sym_number, - ACTIONS(39), 1, - anon_sym_LF, - ACTIONS(55), 1, + ACTIONS(53), 1, anon_sym_RBRACE, - STATE(42), 1, - sym_write_modifiers, - STATE(44), 1, + ACTIONS(55), 1, + anon_sym_LF, + STATE(2), 1, aux_sym__linebreak, + STATE(43), 1, + sym_write_modifiers, STATE(48), 1, sym_template_global, - STATE(83), 1, + STATE(84), 1, aux_sym_write_modifiers_repeat1, - STATE(115), 1, + STATE(112), 1, sym_assign_to, - STATE(137), 1, - sym_declaration, - STATE(213), 1, + STATE(134), 1, sym_assign_left_side, + STATE(145), 1, + sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4409,10 +4422,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(210), 2, + STATE(212), 2, sym__type, sym_array_type, - STATE(239), 5, + STATE(147), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -4457,19 +4470,19 @@ static const uint16_t ts_small_parse_table[] = { sym_number, ACTIONS(39), 1, anon_sym_LF, - STATE(42), 1, + STATE(43), 1, sym_write_modifiers, STATE(44), 1, aux_sym__linebreak, STATE(48), 1, sym_template_global, - STATE(83), 1, + STATE(84), 1, aux_sym_write_modifiers_repeat1, - STATE(115), 1, + STATE(112), 1, sym_assign_to, - STATE(137), 1, + STATE(145), 1, sym_declaration, - STATE(213), 1, + STATE(215), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4480,10 +4493,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(210), 2, + STATE(212), 2, sym__type, sym_array_type, - STATE(239), 5, + STATE(241), 5, sym_block, sym_interface_statement, sym_decl_assign_statement, @@ -4508,7 +4521,7 @@ static const uint16_t ts_small_parse_table[] = { [888] = 5, ACTIONS(61), 1, anon_sym_COLON_COLON, - STATE(11), 1, + STATE(12), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, @@ -4545,14 +4558,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_LF, [932] = 5, - ACTIONS(68), 1, + ACTIONS(67), 1, anon_sym_COLON_COLON, - STATE(14), 1, + STATE(12), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(64), 8, + ACTIONS(63), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4561,7 +4574,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(66), 21, + ACTIONS(65), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4584,9 +4597,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_LF, [976] = 5, - ACTIONS(68), 1, + ACTIONS(61), 1, anon_sym_COLON_COLON, - STATE(15), 1, + STATE(16), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, @@ -4623,7 +4636,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_LF, [1020] = 5, - ACTIONS(68), 1, + ACTIONS(61), 1, anon_sym_COLON_COLON, STATE(11), 1, aux_sym_template_global_repeat1, @@ -4661,46 +4674,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1064] = 5, - ACTIONS(68), 1, - anon_sym_COLON_COLON, - STATE(11), 1, - aux_sym_template_global_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(78), 8, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(80), 21, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DOT_DOT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_LF, - [1108] = 17, + [1064] = 17, ACTIONS(11), 1, sym_identifier, ACTIONS(19), 1, @@ -4713,16 +4687,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(37), 1, sym_number, - STATE(42), 1, + STATE(43), 1, sym_write_modifiers, STATE(48), 1, sym_template_global, - STATE(83), 1, + STATE(84), 1, aux_sym_write_modifiers_repeat1, - STATE(137), 1, - sym_declaration, - STATE(139), 1, + STATE(141), 1, sym_assign_to, + STATE(145), 1, + sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4732,7 +4706,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(210), 2, + STATE(212), 2, sym__type, sym_array_type, ACTIONS(31), 7, @@ -4751,39 +4725,30 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [1176] = 12, - ACTIONS(86), 1, - anon_sym_PLUS, - ACTIONS(88), 1, - anon_sym_DASH, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(94), 1, - anon_sym_DOT, - ACTIONS(96), 1, - anon_sym_LPAREN, - ACTIONS(98), 1, - anon_sym_LBRACK, - STATE(36), 1, - sym_parenthesis_expression_list, - STATE(39), 1, - sym_array_bracket_expression, + [1132] = 5, + ACTIONS(61), 1, + anon_sym_COLON_COLON, + STATE(12), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(90), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(84), 3, + ACTIONS(78), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(82), 17, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(80), 21, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -4791,99 +4756,130 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1233] = 14, + [1176] = 8, ACTIONS(86), 1, - anon_sym_PLUS, - ACTIONS(88), 1, - anon_sym_DASH, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(94), 1, anon_sym_DOT, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LPAREN, - ACTIONS(98), 1, + ACTIONS(90), 1, anon_sym_LBRACK, - ACTIONS(100), 1, - anon_sym_PIPE, - ACTIONS(102), 1, - anon_sym_CARET, - STATE(36), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + STATE(35), 1, sym_array_bracket_expression, + STATE(37), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(90), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(84), 3, + ACTIONS(84), 5, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(82), 15, + anon_sym_DASH, + anon_sym_SLASH, + ACTIONS(82), 20, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1294] = 15, - ACTIONS(86), 1, - anon_sym_PLUS, - ACTIONS(88), 1, - anon_sym_DASH, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(94), 1, - anon_sym_DOT, - ACTIONS(96), 1, - anon_sym_LPAREN, - ACTIONS(98), 1, - anon_sym_LBRACK, - ACTIONS(100), 1, - anon_sym_PIPE, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_AMP, - STATE(36), 1, - sym_parenthesis_expression_list, - STATE(39), 1, - sym_array_bracket_expression, + [1225] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(90), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(84), 3, + ACTIONS(92), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(82), 14, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(94), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON_COLON, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_LF, + [1264] = 13, + ACTIONS(86), 1, + anon_sym_DOT, + ACTIONS(88), 1, + anon_sym_LPAREN, + ACTIONS(90), 1, + anon_sym_LBRACK, + ACTIONS(96), 1, + anon_sym_PLUS, + ACTIONS(98), 1, + anon_sym_DASH, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, + anon_sym_SLASH, + STATE(35), 1, + sym_array_bracket_expression, + STATE(37), 1, + sym_parenthesis_expression_list, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(100), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(84), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + ACTIONS(82), 16, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DOT_DOT, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_RPAREN, @@ -4891,7 +4887,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1357] = 3, + [1323] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4927,31 +4923,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1396] = 8, - ACTIONS(94), 1, - anon_sym_DOT, - ACTIONS(96), 1, - anon_sym_LPAREN, - ACTIONS(98), 1, - anon_sym_LBRACK, - STATE(36), 1, - sym_parenthesis_expression_list, - STATE(39), 1, - sym_array_bracket_expression, + [1362] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(112), 5, + ACTIONS(110), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, + anon_sym_in, anon_sym_DASH, anon_sym_SLASH, - ACTIONS(110), 20, + anon_sym_DOT, + sym_identifier, + ACTIONS(112), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_PLUS, anon_sym_STAR, @@ -4963,12 +4951,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1445] = 3, + [1401] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -5004,7 +4995,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1484] = 3, + [1440] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -5040,23 +5031,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1523] = 10, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(94), 1, + [1479] = 10, + ACTIONS(86), 1, anon_sym_DOT, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LPAREN, - ACTIONS(98), 1, + ACTIONS(90), 1, anon_sym_LBRACK, - STATE(36), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + ACTIONS(104), 1, + anon_sym_SLASH, + STATE(35), 1, sym_array_bracket_expression, + STATE(37), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(90), 2, + ACTIONS(100), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(84), 4, @@ -5083,26 +5074,86 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1576] = 3, + [1532] = 14, + ACTIONS(86), 1, + anon_sym_DOT, + ACTIONS(88), 1, + anon_sym_LPAREN, + ACTIONS(90), 1, + anon_sym_LBRACK, + ACTIONS(96), 1, + anon_sym_PLUS, + ACTIONS(98), 1, + anon_sym_DASH, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, + anon_sym_SLASH, + ACTIONS(122), 1, + anon_sym_PIPE, + STATE(35), 1, + sym_array_bracket_expression, + STATE(37), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(122), 8, + ACTIONS(100), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(84), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, + ACTIONS(82), 15, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_in, + anon_sym_DOT_DOT, + anon_sym_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_LF, + [1593] = 12, + ACTIONS(86), 1, + anon_sym_DOT, + ACTIONS(88), 1, + anon_sym_LPAREN, + ACTIONS(90), 1, + anon_sym_LBRACK, + ACTIONS(96), 1, + anon_sym_PLUS, + ACTIONS(98), 1, anon_sym_DASH, + ACTIONS(104), 1, anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(124), 22, + STATE(35), 1, + sym_array_bracket_expression, + STATE(37), 1, + sym_parenthesis_expression_list, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(100), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(84), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + ACTIONS(82), 17, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, - anon_sym_PLUS, - anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -5110,20 +5161,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1615] = 3, + [1650] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(126), 8, + ACTIONS(124), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5132,7 +5179,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(128), 22, + ACTIONS(126), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5155,23 +5202,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1654] = 3, + [1689] = 8, + ACTIONS(86), 1, + anon_sym_DOT, + ACTIONS(88), 1, + anon_sym_LPAREN, + ACTIONS(90), 1, + anon_sym_LBRACK, + STATE(35), 1, + sym_array_bracket_expression, + STATE(37), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 8, + ACTIONS(130), 5, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, anon_sym_DASH, anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(132), 22, + ACTIONS(128), 20, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, anon_sym_PLUS, anon_sym_STAR, @@ -5183,19 +5238,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1693] = 3, + [1738] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(134), 8, + ACTIONS(132), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5204,7 +5256,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(136), 22, + ACTIONS(134), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5227,11 +5279,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1732] = 3, + [1777] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(138), 8, + ACTIONS(136), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5240,7 +5292,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(140), 22, + ACTIONS(138), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5263,31 +5315,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1771] = 8, - ACTIONS(94), 1, - anon_sym_DOT, - ACTIONS(96), 1, - anon_sym_LPAREN, - ACTIONS(98), 1, - anon_sym_LBRACK, - STATE(36), 1, - sym_parenthesis_expression_list, - STATE(39), 1, - sym_array_bracket_expression, + [1816] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(84), 5, + ACTIONS(140), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, + anon_sym_in, anon_sym_DASH, anon_sym_SLASH, - ACTIONS(82), 20, + anon_sym_DOT, + sym_identifier, + ACTIONS(142), 22, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_PLUS, anon_sym_STAR, @@ -5299,90 +5343,59 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1820] = 13, + [1855] = 15, ACTIONS(86), 1, - anon_sym_PLUS, - ACTIONS(88), 1, - anon_sym_DASH, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(94), 1, anon_sym_DOT, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LPAREN, - ACTIONS(98), 1, + ACTIONS(90), 1, anon_sym_LBRACK, + ACTIONS(96), 1, + anon_sym_PLUS, + ACTIONS(98), 1, + anon_sym_DASH, ACTIONS(102), 1, anon_sym_CARET, - STATE(36), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + ACTIONS(104), 1, + anon_sym_SLASH, + ACTIONS(122), 1, + anon_sym_PIPE, + ACTIONS(144), 1, + anon_sym_AMP, + STATE(35), 1, sym_array_bracket_expression, + STATE(37), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(90), 2, + ACTIONS(100), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(84), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(82), 16, + ACTIONS(82), 14, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_LF, - [1879] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(142), 8, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(144), 22, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DOT_DOT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, @@ -5695,93 +5708,93 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [2254] = 12, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(33), 1, + [2254] = 17, + ACTIONS(88), 1, anon_sym_LPAREN, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(182), 1, - sym_number, - STATE(48), 1, - sym_template_global, - STATE(172), 1, - sym_declaration, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(27), 2, - anon_sym_input, - anon_sym_output, - ACTIONS(29), 2, - anon_sym_state, - anon_sym_gen, - STATE(210), 2, - sym__type, - sym_array_type, - ACTIONS(31), 7, + ACTIONS(90), 1, + anon_sym_LBRACK, + ACTIONS(96), 1, anon_sym_PLUS, + ACTIONS(98), 1, anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, + anon_sym_SLASH, + ACTIONS(122), 1, anon_sym_PIPE, + ACTIONS(144), 1, anon_sym_AMP, - anon_sym_CARET, - STATE(47), 7, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - [2307] = 17, - ACTIONS(86), 1, - anon_sym_PLUS, - ACTIONS(88), 1, - anon_sym_DASH, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(96), 1, - anon_sym_LPAREN, - ACTIONS(98), 1, - anon_sym_LBRACK, - ACTIONS(100), 1, - anon_sym_PIPE, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_AMP, - ACTIONS(188), 1, + ACTIONS(186), 1, anon_sym_EQ, - ACTIONS(192), 1, + ACTIONS(190), 1, anon_sym_DOT, - STATE(36), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + STATE(35), 1, sym_array_bracket_expression, + STATE(37), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(90), 2, + ACTIONS(100), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(186), 2, + ACTIONS(184), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(190), 4, + ACTIONS(188), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(184), 6, + ACTIONS(182), 6, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_COMMA, anon_sym_LF, + [2317] = 12, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(33), 1, + anon_sym_LPAREN, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(192), 1, + sym_number, + STATE(48), 1, + sym_template_global, + STATE(151), 1, + sym_declaration, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(27), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(29), 2, + anon_sym_state, + anon_sym_gen, + STATE(212), 2, + sym__type, + sym_array_type, + ACTIONS(31), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(47), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, [2370] = 5, ACTIONS(198), 1, anon_sym_LF, @@ -5816,129 +5829,129 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, sym_number, [2408] = 16, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LPAREN, - ACTIONS(98), 1, + ACTIONS(90), 1, anon_sym_LBRACK, - ACTIONS(100), 1, - anon_sym_PIPE, ACTIONS(102), 1, anon_sym_CARET, ACTIONS(104), 1, + anon_sym_SLASH, + ACTIONS(122), 1, + anon_sym_PIPE, + ACTIONS(144), 1, anon_sym_AMP, - ACTIONS(192), 1, + ACTIONS(190), 1, anon_sym_DOT, - ACTIONS(203), 1, + ACTIONS(201), 1, anon_sym_EQ, - STATE(36), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + STATE(35), 1, sym_array_bracket_expression, + STATE(37), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 2, + ACTIONS(96), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(90), 2, + ACTIONS(100), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(186), 2, + ACTIONS(184), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(201), 3, + ACTIONS(203), 3, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, - ACTIONS(190), 4, + ACTIONS(188), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, [2466] = 18, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LPAREN, - ACTIONS(98), 1, + ACTIONS(90), 1, anon_sym_LBRACK, - ACTIONS(100), 1, - anon_sym_PIPE, ACTIONS(102), 1, anon_sym_CARET, ACTIONS(104), 1, + anon_sym_SLASH, + ACTIONS(122), 1, + anon_sym_PIPE, + ACTIONS(144), 1, anon_sym_AMP, - ACTIONS(192), 1, + ACTIONS(190), 1, anon_sym_DOT, ACTIONS(205), 1, anon_sym_RPAREN, ACTIONS(207), 1, anon_sym_COMMA, - STATE(36), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + STATE(35), 1, sym_array_bracket_expression, - STATE(81), 1, + STATE(37), 1, + sym_parenthesis_expression_list, + STATE(66), 1, sym__comma, - STATE(164), 1, + STATE(166), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 2, + ACTIONS(96), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(90), 2, + ACTIONS(100), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(186), 2, + ACTIONS(184), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(190), 4, + ACTIONS(188), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, [2528] = 16, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LPAREN, - ACTIONS(98), 1, + ACTIONS(90), 1, anon_sym_LBRACK, - ACTIONS(100), 1, - anon_sym_PIPE, ACTIONS(102), 1, anon_sym_CARET, ACTIONS(104), 1, + anon_sym_SLASH, + ACTIONS(122), 1, + anon_sym_PIPE, + ACTIONS(144), 1, anon_sym_AMP, - ACTIONS(192), 1, + ACTIONS(190), 1, anon_sym_DOT, - ACTIONS(211), 1, + ACTIONS(209), 1, anon_sym_EQ, - STATE(36), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + STATE(35), 1, sym_array_bracket_expression, + STATE(37), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 2, + ACTIONS(96), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(90), 2, + ACTIONS(100), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(186), 2, + ACTIONS(184), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(209), 3, + ACTIONS(211), 3, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, - ACTIONS(190), 4, + ACTIONS(188), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -5974,20 +5987,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_LF, [2621] = 6, - ACTIONS(68), 1, + ACTIONS(61), 1, anon_sym_COLON_COLON, ACTIONS(222), 1, anon_sym_EQ, - STATE(14), 1, + STATE(11), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(64), 3, + ACTIONS(74), 3, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - ACTIONS(66), 16, + ACTIONS(76), 16, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6004,153 +6017,153 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_SEMI, anon_sym_COMMA, - [2658] = 9, - ACTIONS(33), 1, - anon_sym_LPAREN, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(224), 1, - sym_identifier, - ACTIONS(226), 1, - anon_sym_SEMI, - ACTIONS(228), 1, - sym_number, - STATE(203), 1, - sym_template_value_param, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(31), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(57), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_template_global, - [2700] = 16, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(96), 1, + [2658] = 15, + ACTIONS(88), 1, anon_sym_LPAREN, - ACTIONS(98), 1, + ACTIONS(90), 1, anon_sym_LBRACK, - ACTIONS(100), 1, - anon_sym_PIPE, ACTIONS(102), 1, anon_sym_CARET, ACTIONS(104), 1, + anon_sym_SLASH, + ACTIONS(122), 1, + anon_sym_PIPE, + ACTIONS(144), 1, anon_sym_AMP, - ACTIONS(192), 1, + ACTIONS(190), 1, anon_sym_DOT, - STATE(36), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + STATE(35), 1, sym_array_bracket_expression, - STATE(223), 1, - sym_block, + STATE(37), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 2, + ACTIONS(96), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(90), 2, + ACTIONS(100), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(186), 2, + ACTIONS(184), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(190), 4, + ACTIONS(224), 2, + anon_sym_SEMI, + anon_sym_COMMA, + ACTIONS(188), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2756] = 15, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(96), 1, + [2712] = 16, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(88), 1, anon_sym_LPAREN, - ACTIONS(98), 1, + ACTIONS(90), 1, anon_sym_LBRACK, - ACTIONS(100), 1, - anon_sym_PIPE, ACTIONS(102), 1, anon_sym_CARET, ACTIONS(104), 1, + anon_sym_SLASH, + ACTIONS(122), 1, + anon_sym_PIPE, + ACTIONS(144), 1, anon_sym_AMP, - ACTIONS(192), 1, + ACTIONS(190), 1, anon_sym_DOT, - STATE(36), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + STATE(35), 1, sym_array_bracket_expression, + STATE(37), 1, + sym_parenthesis_expression_list, + STATE(226), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 2, + ACTIONS(96), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(90), 2, + ACTIONS(100), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(186), 2, + ACTIONS(184), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(230), 2, - anon_sym_RBRACE, - anon_sym_LF, - ACTIONS(190), 4, + ACTIONS(188), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + [2768] = 9, + ACTIONS(33), 1, + anon_sym_LPAREN, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(226), 1, + sym_identifier, + ACTIONS(228), 1, + anon_sym_SEMI, + ACTIONS(230), 1, + sym_number, + STATE(205), 1, + sym_template_value_param, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(31), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(57), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_template_global, [2810] = 15, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LPAREN, - ACTIONS(98), 1, + ACTIONS(90), 1, anon_sym_LBRACK, - ACTIONS(100), 1, - anon_sym_PIPE, ACTIONS(102), 1, anon_sym_CARET, ACTIONS(104), 1, + anon_sym_SLASH, + ACTIONS(122), 1, + anon_sym_PIPE, + ACTIONS(144), 1, anon_sym_AMP, - ACTIONS(192), 1, + ACTIONS(190), 1, anon_sym_DOT, - STATE(36), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + STATE(35), 1, sym_array_bracket_expression, + STATE(37), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 2, + ACTIONS(96), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(90), 2, + ACTIONS(100), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(186), 2, + ACTIONS(184), 2, anon_sym_LT, anon_sym_GT, ACTIONS(232), 2, - anon_sym_SEMI, + anon_sym_RPAREN, anon_sym_COMMA, - ACTIONS(190), 4, + ACTIONS(188), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -6158,94 +6171,55 @@ static const uint16_t ts_small_parse_table[] = { [2864] = 16, ACTIONS(13), 1, anon_sym_LBRACE, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LPAREN, - ACTIONS(98), 1, + ACTIONS(90), 1, anon_sym_LBRACK, - ACTIONS(100), 1, - anon_sym_PIPE, ACTIONS(102), 1, anon_sym_CARET, ACTIONS(104), 1, - anon_sym_AMP, - ACTIONS(192), 1, - anon_sym_DOT, - STATE(36), 1, - sym_parenthesis_expression_list, - STATE(39), 1, - sym_array_bracket_expression, - STATE(207), 1, - sym_block, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(86), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(90), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(186), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(190), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [2920] = 15, - ACTIONS(92), 1, anon_sym_SLASH, - ACTIONS(96), 1, - anon_sym_LPAREN, - ACTIONS(98), 1, - anon_sym_LBRACK, - ACTIONS(100), 1, + ACTIONS(122), 1, anon_sym_PIPE, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(104), 1, + ACTIONS(144), 1, anon_sym_AMP, - ACTIONS(192), 1, + ACTIONS(190), 1, anon_sym_DOT, - STATE(36), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + STATE(35), 1, sym_array_bracket_expression, + STATE(37), 1, + sym_parenthesis_expression_list, + STATE(209), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 2, + ACTIONS(96), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(90), 2, + ACTIONS(100), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(186), 2, + ACTIONS(184), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(234), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - ACTIONS(190), 4, + ACTIONS(188), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2974] = 9, + [2920] = 9, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(224), 1, + ACTIONS(226), 1, sym_identifier, - ACTIONS(228), 1, + ACTIONS(230), 1, sym_number, - ACTIONS(236), 1, + ACTIONS(234), 1, anon_sym_SEMI, - STATE(154), 1, + STATE(156), 1, sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, @@ -6267,79 +6241,118 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3016] = 15, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(96), 1, + [2962] = 15, + ACTIONS(88), 1, anon_sym_LPAREN, - ACTIONS(98), 1, + ACTIONS(90), 1, anon_sym_LBRACK, - ACTIONS(100), 1, - anon_sym_PIPE, ACTIONS(102), 1, anon_sym_CARET, ACTIONS(104), 1, + anon_sym_SLASH, + ACTIONS(122), 1, + anon_sym_PIPE, + ACTIONS(144), 1, anon_sym_AMP, - ACTIONS(192), 1, + ACTIONS(190), 1, anon_sym_DOT, - STATE(36), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + STATE(35), 1, sym_array_bracket_expression, + STATE(37), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 2, + ACTIONS(96), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(90), 2, + ACTIONS(100), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(186), 2, + ACTIONS(184), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(238), 2, - anon_sym_SEMI, - anon_sym_COMMA, - ACTIONS(190), 4, + ACTIONS(236), 2, + anon_sym_RBRACE, + anon_sym_LF, + ACTIONS(188), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3070] = 15, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(96), 1, + [3016] = 15, + ACTIONS(88), 1, anon_sym_LPAREN, - ACTIONS(98), 1, + ACTIONS(90), 1, anon_sym_LBRACK, - ACTIONS(100), 1, - anon_sym_PIPE, ACTIONS(102), 1, anon_sym_CARET, ACTIONS(104), 1, + anon_sym_SLASH, + ACTIONS(122), 1, + anon_sym_PIPE, + ACTIONS(144), 1, anon_sym_AMP, - ACTIONS(192), 1, + ACTIONS(190), 1, anon_sym_DOT, - ACTIONS(240), 1, - anon_sym_RBRACK, - STATE(36), 1, + STATE(35), 1, + sym_array_bracket_expression, + STATE(37), 1, sym_parenthesis_expression_list, - STATE(39), 1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(96), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(100), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(184), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(238), 2, + anon_sym_SEMI, + anon_sym_COMMA, + ACTIONS(188), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [3070] = 15, + ACTIONS(86), 1, + anon_sym_DOT, + ACTIONS(88), 1, + anon_sym_LPAREN, + ACTIONS(90), 1, + anon_sym_LBRACK, + ACTIONS(102), 1, + anon_sym_CARET, + ACTIONS(104), 1, + anon_sym_SLASH, + ACTIONS(122), 1, + anon_sym_PIPE, + ACTIONS(144), 1, + anon_sym_AMP, + ACTIONS(240), 1, + anon_sym_DOT_DOT, + STATE(35), 1, sym_array_bracket_expression, + STATE(37), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 2, + ACTIONS(96), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(90), 2, + ACTIONS(100), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(186), 2, + ACTIONS(184), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(190), 4, + ACTIONS(188), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -6349,12 +6362,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(224), 1, + ACTIONS(242), 1, sym_identifier, - ACTIONS(228), 1, + ACTIONS(244), 1, + anon_sym_RPAREN, + ACTIONS(246), 1, sym_number, - STATE(232), 1, - sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6366,7 +6379,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(57), 8, + STATE(46), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6376,77 +6389,77 @@ static const uint16_t ts_small_parse_table[] = { sym_parenthesis_expression, sym_template_global, [3162] = 15, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LPAREN, - ACTIONS(98), 1, + ACTIONS(90), 1, anon_sym_LBRACK, - ACTIONS(100), 1, - anon_sym_PIPE, ACTIONS(102), 1, anon_sym_CARET, ACTIONS(104), 1, + anon_sym_SLASH, + ACTIONS(122), 1, + anon_sym_PIPE, + ACTIONS(144), 1, anon_sym_AMP, - ACTIONS(192), 1, + ACTIONS(190), 1, anon_sym_DOT, - ACTIONS(242), 1, - anon_sym_RPAREN, - STATE(36), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + ACTIONS(248), 1, + anon_sym_RBRACK, + STATE(35), 1, sym_array_bracket_expression, + STATE(37), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 2, + ACTIONS(96), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(90), 2, + ACTIONS(100), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(186), 2, + ACTIONS(184), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(190), 4, + ACTIONS(188), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, [3215] = 15, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(94), 1, - anon_sym_DOT, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LPAREN, - ACTIONS(98), 1, + ACTIONS(90), 1, anon_sym_LBRACK, - ACTIONS(100), 1, - anon_sym_PIPE, ACTIONS(102), 1, anon_sym_CARET, ACTIONS(104), 1, + anon_sym_SLASH, + ACTIONS(122), 1, + anon_sym_PIPE, + ACTIONS(144), 1, anon_sym_AMP, - ACTIONS(244), 1, - anon_sym_DOT_DOT, - STATE(36), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + ACTIONS(190), 1, + anon_sym_DOT, + ACTIONS(250), 1, + anon_sym_RPAREN, + STATE(35), 1, sym_array_bracket_expression, + STATE(37), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 2, + ACTIONS(96), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(90), 2, + ACTIONS(100), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(186), 2, + ACTIONS(184), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(190), 4, + ACTIONS(188), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -6456,12 +6469,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(226), 1, sym_identifier, - ACTIONS(248), 1, - anon_sym_RPAREN, - ACTIONS(250), 1, + ACTIONS(230), 1, sym_number, + STATE(239), 1, + sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6473,7 +6486,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(46), 8, + STATE(57), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6483,51 +6496,78 @@ static const uint16_t ts_small_parse_table[] = { sym_parenthesis_expression, sym_template_global, [3307] = 15, - ACTIONS(92), 1, - anon_sym_SLASH, - ACTIONS(96), 1, + ACTIONS(88), 1, anon_sym_LPAREN, - ACTIONS(98), 1, + ACTIONS(90), 1, anon_sym_LBRACK, - ACTIONS(100), 1, - anon_sym_PIPE, ACTIONS(102), 1, anon_sym_CARET, ACTIONS(104), 1, + anon_sym_SLASH, + ACTIONS(122), 1, + anon_sym_PIPE, + ACTIONS(144), 1, anon_sym_AMP, - ACTIONS(192), 1, + ACTIONS(190), 1, anon_sym_DOT, ACTIONS(252), 1, anon_sym_RBRACK, - STATE(36), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + STATE(35), 1, sym_array_bracket_expression, + STATE(37), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 2, + ACTIONS(96), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(90), 2, + ACTIONS(100), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(186), 2, + ACTIONS(184), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(190), 4, + ACTIONS(188), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3360] = 7, + [3360] = 5, + ACTIONS(258), 1, + anon_sym_LF, + STATE(74), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(254), 7, + anon_sym_reg, + anon_sym_initial, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(256), 10, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, + [3392] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(242), 1, sym_identifier, - ACTIONS(254), 1, + ACTIONS(260), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6540,7 +6580,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(43), 8, + STATE(61), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6549,14 +6589,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3396] = 7, + [3428] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(242), 1, sym_identifier, - ACTIONS(256), 1, + ACTIONS(262), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6578,39 +6618,12 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3432] = 5, - ACTIONS(262), 1, - anon_sym_LF, - STATE(71), 1, - aux_sym__linebreak, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(258), 7, - anon_sym_reg, - anon_sym_initial, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(260), 10, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_COLON_COLON, - sym_number, [3464] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(242), 1, sym_identifier, ACTIONS(264), 1, sym_number, @@ -6639,7 +6652,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(242), 1, sym_identifier, ACTIONS(266), 1, sym_number, @@ -6654,7 +6667,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(52), 8, + STATE(58), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6668,7 +6681,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(242), 1, sym_identifier, ACTIONS(268), 1, sym_number, @@ -6697,7 +6710,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(242), 1, sym_identifier, ACTIONS(270), 1, sym_number, @@ -6712,7 +6725,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(51), 8, + STATE(24), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6721,41 +6734,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3608] = 5, - ACTIONS(39), 1, - anon_sym_LF, - STATE(44), 1, - aux_sym__linebreak, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(272), 7, - anon_sym_reg, - anon_sym_initial, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(274), 10, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_COLON_COLON, - sym_number, - [3640] = 7, + [3608] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(242), 1, sym_identifier, - ACTIONS(276), 1, + ACTIONS(272), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6768,7 +6754,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(60), 8, + STATE(32), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6777,14 +6763,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3676] = 7, + [3644] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(242), 1, sym_identifier, - ACTIONS(278), 1, + ACTIONS(274), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6797,7 +6783,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(58), 8, + STATE(42), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6806,14 +6792,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3712] = 7, + [3680] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(242), 1, sym_identifier, - ACTIONS(280), 1, + ACTIONS(276), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6826,7 +6812,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(61), 8, + STATE(26), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6835,12 +6821,39 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, + [3716] = 5, + ACTIONS(39), 1, + anon_sym_LF, + STATE(44), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(278), 7, + anon_sym_reg, + anon_sym_initial, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(280), 10, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, [3748] = 7, ACTIONS(33), 1, anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(242), 1, sym_identifier, ACTIONS(282), 1, sym_number, @@ -6855,7 +6868,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(19), 8, + STATE(50), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6869,7 +6882,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(242), 1, sym_identifier, ACTIONS(284), 1, sym_number, @@ -6884,7 +6897,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(24), 8, + STATE(19), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6898,7 +6911,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(242), 1, sym_identifier, ACTIONS(286), 1, sym_number, @@ -6913,7 +6926,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(30), 8, + STATE(28), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6927,7 +6940,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(242), 1, sym_identifier, ACTIONS(288), 1, sym_number, @@ -6942,7 +6955,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(21), 8, + STATE(51), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6956,7 +6969,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(242), 1, sym_identifier, ACTIONS(290), 1, sym_number, @@ -6971,7 +6984,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(31), 8, + STATE(25), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6985,7 +6998,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(242), 1, sym_identifier, ACTIONS(292), 1, sym_number, @@ -7000,7 +7013,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(54), 8, + STATE(56), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7014,7 +7027,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(242), 1, sym_identifier, ACTIONS(294), 1, sym_number, @@ -7029,7 +7042,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(55), 8, + STATE(54), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7043,7 +7056,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(242), 1, sym_identifier, ACTIONS(296), 1, sym_number, @@ -7058,7 +7071,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(18), 8, + STATE(60), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7068,9 +7081,9 @@ static const uint16_t ts_small_parse_table[] = { sym_parenthesis_expression, sym_template_global, [4036] = 5, - ACTIONS(19), 1, + ACTIONS(300), 1, anon_sym_reg, - STATE(84), 1, + STATE(83), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, @@ -7081,7 +7094,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(300), 10, + ACTIONS(303), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7093,14 +7106,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, sym_number, [4066] = 5, - ACTIONS(304), 1, + ACTIONS(19), 1, anon_sym_reg, - STATE(84), 1, + STATE(83), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(302), 5, + ACTIONS(305), 5, anon_sym_input, anon_sym_output, anon_sym_state, @@ -7171,11 +7184,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, STATE(88), 1, aux_sym__linebreak, - STATE(109), 1, + STATE(105), 1, sym_declaration, - STATE(122), 1, + STATE(125), 1, sym_declaration_list, - STATE(209), 1, + STATE(211), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, @@ -7186,7 +7199,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(210), 3, + STATE(212), 3, sym__type, sym_array_type, sym_template_global, @@ -7201,11 +7214,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_GT, STATE(44), 1, aux_sym__linebreak, - STATE(109), 1, + STATE(105), 1, sym_declaration, - STATE(131), 1, + STATE(119), 1, sym_declaration_list, - STATE(220), 1, + STATE(208), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, @@ -7216,7 +7229,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(210), 3, + STATE(212), 3, sym__type, sym_array_type, sym_template_global, @@ -7225,13 +7238,13 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(321), 1, + ACTIONS(39), 1, anon_sym_LF, - STATE(90), 1, + STATE(44), 1, aux_sym__linebreak, - STATE(109), 1, + STATE(105), 1, sym_declaration, - STATE(212), 1, + STATE(221), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, @@ -7242,7 +7255,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(210), 3, + STATE(212), 3, sym__type, sym_array_type, sym_template_global, @@ -7251,13 +7264,13 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(39), 1, + ACTIONS(321), 1, anon_sym_LF, - STATE(44), 1, + STATE(89), 1, aux_sym__linebreak, - STATE(109), 1, + STATE(105), 1, sym_declaration, - STATE(219), 1, + STATE(216), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, @@ -7268,7 +7281,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(210), 3, + STATE(212), 3, sym__type, sym_array_type, sym_template_global, @@ -7277,7 +7290,7 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, - STATE(244), 1, + STATE(247), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -7288,7 +7301,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(210), 3, + STATE(212), 3, sym__type, sym_array_type, sym_template_global, @@ -7297,7 +7310,7 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(35), 1, anon_sym_COLON_COLON, - STATE(133), 1, + STATE(117), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -7308,23 +7321,23 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(29), 2, anon_sym_state, anon_sym_gen, - STATE(210), 3, + STATE(212), 3, sym__type, sym_array_type, sym_template_global, [4355] = 4, ACTIONS(325), 1, anon_sym_SQUOTE, - STATE(98), 1, + STATE(97), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(323), 7, anon_sym_DASH_GT, + anon_sym_EQ, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_EQ, anon_sym_in, anon_sym_COMMA, anon_sym_LF, @@ -7338,492 +7351,410 @@ static const uint16_t ts_small_parse_table[] = { sym_multi_line_comment, ACTIONS(327), 7, anon_sym_DASH_GT, + anon_sym_EQ, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_EQ, anon_sym_in, anon_sym_COMMA, anon_sym_LF, [4395] = 4, ACTIONS(325), 1, anon_sym_SQUOTE, - STATE(102), 1, + STATE(108), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(329), 7, anon_sym_DASH_GT, + anon_sym_EQ, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_EQ, anon_sym_in, anon_sym_COMMA, anon_sym_LF, [4415] = 4, ACTIONS(325), 1, anon_sym_SQUOTE, - STATE(101), 1, + STATE(109), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(331), 7, anon_sym_DASH_GT, + anon_sym_EQ, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, + anon_sym_COMMA, + anon_sym_LF, + [4435] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(333), 7, + anon_sym_DASH_GT, anon_sym_EQ, + anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [4435] = 6, - ACTIONS(333), 1, + [4449] = 5, + ACTIONS(337), 1, + anon_sym_COMMA, + STATE(92), 1, + sym__comma, + STATE(98), 1, + aux_sym_declaration_list_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(335), 4, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_LF, + [4469] = 6, + ACTIONS(340), 1, sym_identifier, - ACTIONS(335), 1, + ACTIONS(342), 1, anon_sym_GT, - ACTIONS(337), 1, + ACTIONS(344), 1, anon_sym_COLON_COLON, - STATE(153), 1, + STATE(150), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(173), 3, + STATE(175), 3, sym__type, sym_array_type, sym_template_global, - [4457] = 2, + [4491] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(339), 7, + ACTIONS(346), 7, anon_sym_DASH_GT, + anon_sym_EQ, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_EQ, anon_sym_in, anon_sym_COMMA, anon_sym_LF, - [4471] = 6, - ACTIONS(333), 1, + [4505] = 6, + ACTIONS(340), 1, sym_identifier, - ACTIONS(337), 1, + ACTIONS(344), 1, anon_sym_COLON_COLON, - ACTIONS(341), 1, + ACTIONS(348), 1, anon_sym_GT, - STATE(174), 1, + STATE(176), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(173), 3, + STATE(175), 3, sym__type, sym_array_type, sym_template_global, - [4493] = 2, + [4527] = 6, + ACTIONS(340), 1, + sym_identifier, + ACTIONS(344), 1, + anon_sym_COLON_COLON, + ACTIONS(350), 1, + anon_sym_GT, + STATE(203), 1, + sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(343), 7, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_COMMA, - anon_sym_LF, - [4507] = 2, + STATE(175), 3, + sym__type, + sym_array_type, + sym_template_global, + [4549] = 6, + ACTIONS(340), 1, + sym_identifier, + ACTIONS(344), 1, + anon_sym_COLON_COLON, + ACTIONS(352), 1, + anon_sym_GT, + STATE(158), 1, + sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(345), 7, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, + STATE(175), 3, + sym__type, + sym_array_type, + sym_template_global, + [4571] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - anon_sym_LF, - [4521] = 2, + STATE(92), 1, + sym__comma, + STATE(98), 1, + aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(347), 7, + ACTIONS(354), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_COMMA, anon_sym_LF, - [4535] = 5, + [4591] = 5, ACTIONS(207), 1, anon_sym_COMMA, STATE(92), 1, sym__comma, - STATE(107), 1, + STATE(104), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(349), 4, + ACTIONS(356), 4, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4555] = 6, - ACTIONS(333), 1, + [4611] = 6, + ACTIONS(340), 1, sym_identifier, - ACTIONS(337), 1, + ACTIONS(344), 1, anon_sym_COLON_COLON, - ACTIONS(351), 1, + ACTIONS(358), 1, anon_sym_GT, - STATE(191), 1, + STATE(182), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(173), 3, - sym__type, - sym_array_type, - sym_template_global, - [4577] = 5, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(353), 2, - anon_sym_state, - anon_sym_gen, - STATE(205), 3, + STATE(175), 3, sym__type, sym_array_type, sym_template_global, - [4597] = 6, - ACTIONS(333), 1, + [4633] = 6, + ACTIONS(340), 1, sym_identifier, - ACTIONS(337), 1, + ACTIONS(344), 1, anon_sym_COLON_COLON, - ACTIONS(355), 1, + ACTIONS(360), 1, anon_sym_GT, - STATE(141), 1, + STATE(193), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(173), 3, + STATE(175), 3, sym__type, sym_array_type, sym_template_global, - [4619] = 5, - ACTIONS(359), 1, - anon_sym_COMMA, - STATE(92), 1, - sym__comma, - STATE(107), 1, - aux_sym_declaration_list_repeat1, + [4655] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(357), 4, + ACTIONS(362), 7, anon_sym_DASH_GT, + anon_sym_EQ, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_LF, - [4639] = 6, - ACTIONS(333), 1, - sym_identifier, - ACTIONS(337), 1, - anon_sym_COLON_COLON, - ACTIONS(362), 1, - anon_sym_GT, - STATE(201), 1, - sym_template_type_param, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(173), 3, - sym__type, - sym_array_type, - sym_template_global, - [4661] = 5, - ACTIONS(207), 1, + anon_sym_in, anon_sym_COMMA, - STATE(92), 1, - sym__comma, - STATE(103), 1, - aux_sym_declaration_list_repeat1, + anon_sym_LF, + [4669] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(364), 4, + ACTIONS(364), 7, anon_sym_DASH_GT, + anon_sym_EQ, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, + anon_sym_COMMA, anon_sym_LF, - [4681] = 6, - ACTIONS(333), 1, + [4683] = 5, + ACTIONS(11), 1, sym_identifier, - ACTIONS(337), 1, + ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(366), 1, - anon_sym_GT, - STATE(179), 1, - sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(173), 3, + ACTIONS(366), 2, + anon_sym_state, + anon_sym_gen, + STATE(217), 3, sym__type, sym_array_type, sym_template_global, [4703] = 5, - ACTIONS(368), 1, - anon_sym_EQ, - ACTIONS(370), 1, - anon_sym_COLON_COLON, - STATE(129), 1, - aux_sym_template_global_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(66), 3, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COMMA, - [4722] = 5, ACTIONS(207), 1, anon_sym_COMMA, - STATE(16), 1, + STATE(15), 1, sym__comma, - STATE(113), 1, + STATE(116), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(372), 3, - anon_sym_RBRACE, + ACTIONS(368), 3, anon_sym_EQ, + anon_sym_RBRACE, anon_sym_LF, - [4741] = 5, - ACTIONS(376), 1, + [4722] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - STATE(16), 1, + STATE(15), 1, sym__comma, - STATE(113), 1, + STATE(111), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(374), 3, - anon_sym_RBRACE, + ACTIONS(370), 3, anon_sym_EQ, + anon_sym_RBRACE, anon_sym_LF, - [4760] = 7, + [4741] = 7, ACTIONS(13), 1, anon_sym_LBRACE, - ACTIONS(379), 1, + ACTIONS(372), 1, anon_sym_COLON, - ACTIONS(381), 1, + ACTIONS(374), 1, anon_sym_LT, - STATE(181), 1, + STATE(188), 1, sym_template_declaration_arguments, - STATE(224), 1, + STATE(233), 1, sym_interface_ports, - STATE(230), 1, + STATE(234), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4783] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - STATE(16), 1, - sym__comma, - STATE(112), 1, - aux_sym_assign_left_side_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(383), 3, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_LF, - [4802] = 5, - ACTIONS(333), 1, + [4764] = 5, + ACTIONS(340), 1, sym_identifier, - ACTIONS(337), 1, + ACTIONS(344), 1, anon_sym_COLON_COLON, - STATE(236), 1, + STATE(238), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(173), 3, + STATE(175), 3, sym__type, sym_array_type, sym_template_global, - [4821] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(385), 1, - ts_builtin_sym_end, - ACTIONS(387), 1, - anon_sym_LF, - STATE(189), 1, - aux_sym__linebreak, - STATE(231), 1, - sym_module, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4841] = 4, - ACTIONS(370), 1, + [4783] = 5, + ACTIONS(376), 1, + anon_sym_EQ, + ACTIONS(378), 1, anon_sym_COLON_COLON, - STATE(123), 1, + STATE(128), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 3, + ACTIONS(76), 3, anon_sym_GT, anon_sym_LBRACK, anon_sym_COMMA, - [4857] = 6, - ACTIONS(389), 1, - anon_sym_RBRACE, - ACTIONS(391), 1, - anon_sym_EQ, - ACTIONS(393), 1, - anon_sym_LF, - STATE(7), 1, - aux_sym__linebreak, - STATE(147), 1, - aux_sym_block_repeat1, + [4802] = 5, + ACTIONS(382), 1, + anon_sym_COMMA, + STATE(15), 1, + sym__comma, + STATE(116), 1, + aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4877] = 4, - ACTIONS(370), 1, - anon_sym_COLON_COLON, - STATE(118), 1, - aux_sym_template_global_repeat1, + ACTIONS(380), 3, + anon_sym_EQ, + anon_sym_RBRACE, + anon_sym_LF, + [4821] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(72), 3, - anon_sym_GT, - anon_sym_LBRACK, + ACTIONS(385), 5, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_COMMA, - [4893] = 4, - ACTIONS(370), 1, + anon_sym_LF, + [4833] = 4, + ACTIONS(344), 1, anon_sym_COLON_COLON, - STATE(129), 1, - aux_sym_template_global_repeat1, + ACTIONS(387), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(66), 3, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COMMA, - [4909] = 4, + STATE(137), 3, + sym__type, + sym_array_type, + sym_template_global, + [4849] = 4, ACTIONS(317), 1, anon_sym_DASH_GT, - STATE(216), 1, + STATE(219), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(395), 3, + ACTIONS(389), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [4925] = 4, - ACTIONS(397), 1, - anon_sym_COLON_COLON, - STATE(123), 1, - aux_sym_template_global_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(59), 3, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COMMA, - [4941] = 6, + [4865] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(387), 1, - anon_sym_LF, - ACTIONS(400), 1, + ACTIONS(391), 1, ts_builtin_sym_end, - STATE(189), 1, + ACTIONS(393), 1, + anon_sym_LF, + STATE(191), 1, aux_sym__linebreak, - STATE(231), 1, + STATE(192), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4961] = 4, - ACTIONS(35), 1, + [4885] = 4, + ACTIONS(378), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, - sym_identifier, + STATE(129), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(214), 3, - sym__type, - sym_array_type, - sym_template_global, - [4977] = 6, - ACTIONS(391), 1, - anon_sym_EQ, - ACTIONS(402), 1, - anon_sym_RBRACE, - ACTIONS(404), 1, - anon_sym_LF, - STATE(3), 1, - aux_sym__linebreak, - STATE(176), 1, - aux_sym_block_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4997] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(387), 1, - anon_sym_LF, - ACTIONS(406), 1, - ts_builtin_sym_end, - STATE(189), 1, - aux_sym__linebreak, - STATE(231), 1, - sym_module, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5017] = 4, - ACTIONS(337), 1, + ACTIONS(72), 3, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + [4901] = 4, + ACTIONS(35), 1, anon_sym_COLON_COLON, - ACTIONS(408), 1, + ACTIONS(242), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(195), 3, + STATE(207), 3, sym__type, sym_array_type, sym_template_global, - [5033] = 4, - ACTIONS(370), 1, + [4917] = 4, + ACTIONS(378), 1, anon_sym_COLON_COLON, - STATE(123), 1, + STATE(128), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, @@ -7832,300 +7763,402 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_LBRACK, anon_sym_COMMA, - [5049] = 6, + [4933] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(387), 1, + ACTIONS(393), 1, anon_sym_LF, - ACTIONS(410), 1, + ACTIONS(395), 1, ts_builtin_sym_end, - STATE(189), 1, + STATE(191), 1, aux_sym__linebreak, - STATE(231), 1, + STATE(237), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5069] = 4, + [4953] = 4, ACTIONS(317), 1, anon_sym_DASH_GT, - STATE(217), 1, + STATE(222), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(412), 3, + ACTIONS(397), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [5085] = 6, + [4969] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(387), 1, + ACTIONS(393), 1, anon_sym_LF, - ACTIONS(414), 1, + ACTIONS(399), 1, ts_builtin_sym_end, - STATE(189), 1, + STATE(191), 1, aux_sym__linebreak, - STATE(190), 1, + STATE(237), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5105] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(416), 5, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_COMMA, - anon_sym_LF, - [5117] = 4, - ACTIONS(35), 1, + [4989] = 4, + ACTIONS(344), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(387), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(218), 3, + STATE(197), 3, sym__type, sym_array_type, sym_template_global, - [5133] = 2, + [5005] = 4, + ACTIONS(378), 1, + anon_sym_COLON_COLON, + STATE(135), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(418), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5144] = 5, - ACTIONS(389), 1, + ACTIONS(59), 3, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + [5021] = 4, + ACTIONS(378), 1, + anon_sym_COLON_COLON, + STATE(135), 1, + aux_sym_template_global_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(80), 3, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + [5037] = 6, + ACTIONS(401), 1, + anon_sym_EQ, + ACTIONS(403), 1, anon_sym_RBRACE, - ACTIONS(393), 1, + ACTIONS(405), 1, anon_sym_LF, - STATE(7), 1, + STATE(3), 1, aux_sym__linebreak, - STATE(146), 1, + STATE(149), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5161] = 2, + [5057] = 4, + ACTIONS(35), 1, + anon_sym_COLON_COLON, + ACTIONS(242), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(201), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COMMA, + STATE(220), 3, + sym__type, + sym_array_type, + sym_template_global, + [5073] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(393), 1, anon_sym_LF, - [5172] = 2, + ACTIONS(407), 1, + ts_builtin_sym_end, + STATE(191), 1, + aux_sym__linebreak, + STATE(237), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(420), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, + [5093] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(393), 1, anon_sym_LF, - [5183] = 2, + ACTIONS(409), 1, + ts_builtin_sym_end, + STATE(191), 1, + aux_sym__linebreak, + STATE(237), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(422), 4, - anon_sym_RBRACE, + [5113] = 6, + ACTIONS(401), 1, anon_sym_EQ, - anon_sym_COMMA, - anon_sym_LF, - [5194] = 5, - ACTIONS(402), 1, + ACTIONS(411), 1, anon_sym_RBRACE, - ACTIONS(404), 1, + ACTIONS(413), 1, anon_sym_LF, - STATE(3), 1, + STATE(8), 1, aux_sym__linebreak, - STATE(177), 1, + STATE(164), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5211] = 5, - ACTIONS(207), 1, + [5133] = 4, + ACTIONS(415), 1, + anon_sym_COLON_COLON, + STATE(135), 1, + aux_sym_template_global_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(65), 3, + anon_sym_GT, + anon_sym_LBRACK, anon_sym_COMMA, - ACTIONS(424), 1, + [5149] = 5, + ACTIONS(418), 1, anon_sym_GT, - STATE(116), 1, + ACTIONS(420), 1, + anon_sym_COMMA, + STATE(136), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(227), 1, sym__comma, - STATE(145), 1, - aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5228] = 2, + [5166] = 4, + ACTIONS(425), 1, + anon_sym_LBRACK, + STATE(162), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(426), 4, + ACTIONS(423), 2, + anon_sym_GT, + anon_sym_COMMA, + [5181] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(138), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5192] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(427), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5239] = 5, - ACTIONS(207), 1, + [5203] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(148), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5214] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(429), 4, + anon_sym_EQ, + anon_sym_RBRACE, anon_sym_COMMA, - ACTIONS(428), 1, + anon_sym_LF, + [5225] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(112), 4, anon_sym_GT, - STATE(192), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(225), 1, - sym__comma, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5236] = 5, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(393), 1, + anon_sym_LF, + STATE(191), 1, + aux_sym__linebreak, + STATE(237), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5256] = 2, + [5253] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(430), 4, + ACTIONS(142), 4, anon_sym_GT, anon_sym_LBRACK, - sym_identifier, + anon_sym_COLON_COLON, anon_sym_COMMA, - [5267] = 5, - ACTIONS(207), 1, + [5264] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(203), 4, + anon_sym_EQ, + anon_sym_RBRACE, anon_sym_COMMA, - ACTIONS(432), 1, - anon_sym_GT, - STATE(116), 1, - sym__comma, - STATE(197), 1, - aux_sym_template_params_repeat2, + anon_sym_LF, + [5275] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5284] = 5, - ACTIONS(434), 1, + ACTIONS(431), 4, + ts_builtin_sym_end, anon_sym_RBRACE, - ACTIONS(436), 1, + anon_sym_else, anon_sym_LF, - STATE(2), 1, + [5286] = 5, + ACTIONS(411), 1, + anon_sym_RBRACE, + ACTIONS(413), 1, + anon_sym_LF, + STATE(8), 1, aux_sym__linebreak, - STATE(170), 1, + STATE(189), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5301] = 5, - ACTIONS(438), 1, + [5303] = 5, + ACTIONS(433), 1, anon_sym_RBRACE, - ACTIONS(440), 1, + ACTIONS(435), 1, anon_sym_LF, - STATE(9), 1, + STATE(6), 1, aux_sym__linebreak, - STATE(170), 1, + STATE(171), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5318] = 2, + [5320] = 5, + ACTIONS(437), 1, + anon_sym_RBRACE, + ACTIONS(439), 1, + anon_sym_LF, + STATE(7), 1, + aux_sym__linebreak, + STATE(171), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(420), 4, - ts_builtin_sym_end, + [5337] = 5, + ACTIONS(207), 1, + anon_sym_COMMA, + ACTIONS(441), 1, + anon_sym_GT, + STATE(114), 1, + sym__comma, + STATE(157), 1, + aux_sym_template_params_repeat2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5354] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(211), 4, + anon_sym_EQ, anon_sym_RBRACE, - anon_sym_else, + anon_sym_COMMA, anon_sym_LF, - [5329] = 2, + [5365] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(442), 4, + ACTIONS(443), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5340] = 2, + [5376] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(140), 4, + ACTIONS(134), 4, anon_sym_GT, anon_sym_LBRACK, anon_sym_COLON_COLON, anon_sym_COMMA, - [5351] = 5, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(387), 1, - anon_sym_LF, - STATE(189), 1, - aux_sym__linebreak, - STATE(231), 1, - sym_module, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5368] = 5, - ACTIONS(444), 1, - anon_sym_GT, - ACTIONS(446), 1, + [5387] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - STATE(152), 1, + ACTIONS(445), 1, + anon_sym_GT, + STATE(177), 1, aux_sym_template_declaration_arguments_repeat1, - STATE(225), 1, + STATE(227), 1, sym__comma, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5385] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - ACTIONS(449), 1, - anon_sym_GT, - STATE(116), 1, - sym__comma, - STATE(160), 1, - aux_sym_template_params_repeat2, + [5404] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5402] = 5, + ACTIONS(427), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [5415] = 5, ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(451), 1, + ACTIONS(447), 1, anon_sym_SEMI, - STATE(59), 1, + STATE(62), 1, sym__comma, - STATE(178), 1, + STATE(180), 1, aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5419] = 2, + [5432] = 5, + ACTIONS(207), 1, + anon_sym_COMMA, + ACTIONS(449), 1, + anon_sym_GT, + STATE(114), 1, + sym__comma, + STATE(199), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(148), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, + [5449] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - [5430] = 2, + ACTIONS(451), 1, + anon_sym_GT, + STATE(114), 1, + sym__comma, + STATE(165), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(124), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5441] = 4, + [5466] = 4, ACTIONS(13), 1, anon_sym_LBRACE, ACTIONS(453), 1, @@ -8133,341 +8166,341 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(228), 2, + STATE(231), 2, sym_block, sym_if_statement, - [5456] = 2, + [5481] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(132), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5467] = 2, + ACTIONS(455), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [5492] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(455), 4, + ACTIONS(457), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5478] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - ACTIONS(457), 1, - anon_sym_GT, - STATE(116), 1, - sym__comma, - STATE(197), 1, - aux_sym_template_params_repeat2, + [5503] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5495] = 2, + ACTIONS(459), 4, + anon_sym_GT, + anon_sym_LBRACK, + sym_identifier, + anon_sym_COMMA, + [5514] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(455), 4, + ACTIONS(457), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5506] = 2, + [5525] = 5, + ACTIONS(461), 1, + anon_sym_RBRACE, + ACTIONS(463), 1, + anon_sym_LF, + STATE(4), 1, + aux_sym__linebreak, + STATE(171), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(144), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5517] = 5, + [5542] = 5, ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(459), 1, - anon_sym_SEMI, - STATE(59), 1, + ACTIONS(465), 1, + anon_sym_GT, + STATE(114), 1, sym__comma, - STATE(193), 1, - aux_sym_template_params_repeat1, + STATE(199), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5534] = 5, + [5559] = 5, ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(461), 1, + ACTIONS(467), 1, anon_sym_RPAREN, - STATE(81), 1, + STATE(66), 1, sym__comma, - STATE(182), 1, + STATE(184), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5551] = 2, + [5576] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(463), 4, + ACTIONS(469), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5562] = 2, + [5587] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(465), 4, + ACTIONS(471), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5573] = 2, + [5598] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(120), 4, + ACTIONS(126), 4, anon_sym_GT, anon_sym_LBRACK, anon_sym_COLON_COLON, anon_sym_COMMA, - [5584] = 2, + [5609] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(465), 4, + ACTIONS(471), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5595] = 5, - ACTIONS(467), 1, - ts_builtin_sym_end, - ACTIONS(469), 1, - anon_sym_LF, - STATE(117), 1, - aux_sym__linebreak, - STATE(175), 1, - aux_sym_source_file_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5612] = 5, - ACTIONS(471), 1, - anon_sym_RBRACE, + [5620] = 5, ACTIONS(473), 1, + anon_sym_RBRACE, + ACTIONS(475), 1, anon_sym_LF, STATE(10), 1, aux_sym__linebreak, - STATE(170), 1, + STATE(171), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5629] = 2, + [5637] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(476), 4, + ACTIONS(120), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5648] = 5, + ACTIONS(478), 1, ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, + ACTIONS(480), 1, anon_sym_LF, - [5640] = 2, + STATE(133), 1, + aux_sym__linebreak, + STATE(179), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(209), 4, - anon_sym_RBRACE, - anon_sym_EQ, + [5665] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(116), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, anon_sym_COMMA, - anon_sym_LF, - [5651] = 4, - ACTIONS(480), 1, + [5676] = 4, + ACTIONS(425), 1, anon_sym_LBRACK, - STATE(144), 1, + STATE(162), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(478), 2, + ACTIONS(482), 2, anon_sym_GT, anon_sym_COMMA, - [5666] = 5, + [5691] = 5, ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(482), 1, + ACTIONS(484), 1, anon_sym_GT, - STATE(116), 1, + STATE(114), 1, sym__comma, - STATE(188), 1, + STATE(190), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5683] = 5, - ACTIONS(484), 1, - ts_builtin_sym_end, + [5708] = 5, + ACTIONS(207), 1, + anon_sym_COMMA, ACTIONS(486), 1, - anon_sym_LF, - STATE(151), 1, - aux_sym__linebreak, - STATE(175), 1, - aux_sym_source_file_repeat1, + anon_sym_GT, + STATE(136), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(227), 1, + sym__comma, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5700] = 5, - ACTIONS(489), 1, - anon_sym_RBRACE, - ACTIONS(491), 1, - anon_sym_LF, - STATE(6), 1, - aux_sym__linebreak, - STATE(170), 1, - aux_sym_block_repeat1, + [5725] = 4, + ACTIONS(372), 1, + anon_sym_COLON, + STATE(229), 1, + sym_interface_ports, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5717] = 5, - ACTIONS(493), 1, + ACTIONS(488), 2, anon_sym_RBRACE, - ACTIONS(495), 1, anon_sym_LF, - STATE(5), 1, + [5740] = 5, + ACTIONS(490), 1, + ts_builtin_sym_end, + ACTIONS(492), 1, + anon_sym_LF, + STATE(143), 1, aux_sym__linebreak, - STATE(170), 1, - aux_sym_block_repeat1, + STATE(179), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5734] = 5, + [5757] = 5, ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(497), 1, + ACTIONS(495), 1, anon_sym_SEMI, - STATE(59), 1, + STATE(62), 1, sym__comma, - STATE(193), 1, + STATE(195), 1, aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5751] = 5, + [5774] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(108), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5785] = 5, ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(499), 1, + ACTIONS(497), 1, anon_sym_GT, - STATE(116), 1, + STATE(114), 1, sym__comma, - STATE(180), 1, + STATE(183), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5768] = 5, + [5802] = 5, ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(501), 1, + ACTIONS(499), 1, anon_sym_GT, - STATE(116), 1, + STATE(114), 1, sym__comma, - STATE(197), 1, + STATE(199), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5785] = 5, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(379), 1, - anon_sym_COLON, - STATE(222), 1, - sym_interface_ports, - STATE(233), 1, - sym_block, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5802] = 5, - ACTIONS(503), 1, + [5819] = 5, + ACTIONS(501), 1, anon_sym_RPAREN, - ACTIONS(505), 1, + ACTIONS(503), 1, anon_sym_COMMA, - STATE(81), 1, + STATE(66), 1, sym__comma, - STATE(182), 1, + STATE(184), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5819] = 2, + [5836] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(508), 4, + ACTIONS(506), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5830] = 2, + [5847] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(508), 4, + ACTIONS(506), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5841] = 2, + [5858] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(510), 4, + ACTIONS(508), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5852] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(116), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5863] = 4, - ACTIONS(379), 1, + [5869] = 5, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(372), 1, anon_sym_COLON, - STATE(227), 1, + STATE(235), 1, + sym_block, + STATE(236), 1, sym_interface_ports, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(512), 2, + [5886] = 5, + ACTIONS(510), 1, anon_sym_RBRACE, + ACTIONS(512), 1, anon_sym_LF, - [5878] = 5, + STATE(5), 1, + aux_sym__linebreak, + STATE(171), 1, + aux_sym_block_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5903] = 5, ACTIONS(207), 1, anon_sym_COMMA, ACTIONS(514), 1, anon_sym_GT, - STATE(116), 1, + STATE(114), 1, sym__comma, - STATE(197), 1, + STATE(199), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5895] = 4, + [5920] = 4, ACTIONS(516), 1, anon_sym_LF, - STATE(189), 1, + STATE(191), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, @@ -8475,494 +8508,499 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(196), 2, ts_builtin_sym_end, anon_sym_module, - [5910] = 5, + [5935] = 5, ACTIONS(519), 1, ts_builtin_sym_end, ACTIONS(521), 1, anon_sym_LF, STATE(124), 1, aux_sym__linebreak, - STATE(169), 1, + STATE(173), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5927] = 5, + [5952] = 5, ACTIONS(207), 1, anon_sym_COMMA, ACTIONS(523), 1, anon_sym_GT, - STATE(116), 1, + STATE(114), 1, sym__comma, - STATE(199), 1, + STATE(201), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5944] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - ACTIONS(525), 1, - anon_sym_GT, - STATE(152), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(225), 1, - sym__comma, + [5969] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5961] = 5, - ACTIONS(527), 1, + ACTIONS(94), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5980] = 5, + ACTIONS(525), 1, anon_sym_SEMI, - ACTIONS(529), 1, + ACTIONS(527), 1, anon_sym_COMMA, - STATE(59), 1, + STATE(62), 1, sym__comma, - STATE(193), 1, + STATE(195), 1, aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5978] = 5, - ACTIONS(532), 1, + [5997] = 5, + ACTIONS(530), 1, ts_builtin_sym_end, - ACTIONS(534), 1, + ACTIONS(532), 1, anon_sym_LF, - STATE(127), 1, + STATE(126), 1, aux_sym__linebreak, - STATE(175), 1, + STATE(179), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5995] = 4, - ACTIONS(480), 1, + [6014] = 4, + ACTIONS(425), 1, anon_sym_LBRACK, - STATE(144), 1, + STATE(162), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(536), 2, + ACTIONS(534), 2, anon_sym_GT, anon_sym_COMMA, - [6010] = 2, + [6029] = 5, + ACTIONS(207), 1, + anon_sym_COMMA, + ACTIONS(536), 1, + anon_sym_SEMI, + STATE(62), 1, + sym__comma, + STATE(195), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(108), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [6021] = 5, + [6046] = 5, ACTIONS(538), 1, anon_sym_GT, ACTIONS(540), 1, anon_sym_COMMA, - STATE(116), 1, + STATE(114), 1, sym__comma, - STATE(197), 1, + STATE(199), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6038] = 2, + [6063] = 5, + ACTIONS(403), 1, + anon_sym_RBRACE, + ACTIONS(405), 1, + anon_sym_LF, + STATE(3), 1, + aux_sym__linebreak, + STATE(148), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [6049] = 5, + [6080] = 5, ACTIONS(207), 1, anon_sym_COMMA, ACTIONS(543), 1, anon_sym_GT, - STATE(116), 1, + STATE(114), 1, sym__comma, - STATE(197), 1, + STATE(199), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6066] = 2, + [6097] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(136), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [6077] = 5, + ACTIONS(545), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [6108] = 5, ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(545), 1, + ACTIONS(547), 1, anon_sym_GT, - STATE(116), 1, + STATE(114), 1, sym__comma, - STATE(204), 1, + STATE(206), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6094] = 5, - ACTIONS(547), 1, - ts_builtin_sym_end, + [6125] = 5, ACTIONS(549), 1, + ts_builtin_sym_end, + ACTIONS(551), 1, anon_sym_LF, - STATE(130), 1, + STATE(132), 1, aux_sym__linebreak, - STATE(194), 1, + STATE(196), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6111] = 5, + [6142] = 5, ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(551), 1, + ACTIONS(553), 1, anon_sym_SEMI, - STATE(59), 1, + STATE(62), 1, sym__comma, - STATE(163), 1, + STATE(198), 1, aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6128] = 5, + [6159] = 5, ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(553), 1, + ACTIONS(555), 1, anon_sym_GT, - STATE(116), 1, + STATE(114), 1, sym__comma, - STATE(197), 1, + STATE(199), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6145] = 4, - ACTIONS(98), 1, + [6176] = 4, + ACTIONS(90), 1, anon_sym_LBRACK, - ACTIONS(555), 1, + ACTIONS(557), 1, sym_identifier, - STATE(144), 1, + STATE(162), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6159] = 2, + [6190] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(152), 3, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COMMA, - [6169] = 3, - ACTIONS(559), 1, + ACTIONS(559), 3, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_LF, + [6200] = 3, + ACTIONS(563), 1, anon_sym_else, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(557), 2, + ACTIONS(561), 2, anon_sym_RBRACE, anon_sym_LF, - [6181] = 4, - ACTIONS(561), 1, + [6212] = 4, + ACTIONS(565), 1, sym_identifier, - ACTIONS(563), 1, + ACTIONS(567), 1, anon_sym_GT, - STATE(143), 1, + STATE(154), 1, sym_template_declaration_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6195] = 2, + [6226] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(565), 3, + ACTIONS(569), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [6205] = 4, - ACTIONS(98), 1, + [6236] = 4, + ACTIONS(90), 1, anon_sym_LBRACK, - ACTIONS(567), 1, + ACTIONS(571), 1, sym_identifier, - STATE(144), 1, + STATE(162), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6219] = 4, - ACTIONS(569), 1, + [6250] = 3, + ACTIONS(575), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(573), 2, + anon_sym_GT, + anon_sym_COMMA, + [6262] = 4, + ACTIONS(577), 1, sym_identifier, - ACTIONS(571), 1, + ACTIONS(579), 1, anon_sym_LT, - STATE(167), 1, + STATE(194), 1, sym_template_params, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6233] = 2, + [6276] = 3, + ACTIONS(401), 1, + anon_sym_EQ, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(573), 3, - anon_sym_LBRACE, + ACTIONS(581), 2, anon_sym_RBRACE, anon_sym_LF, - [6243] = 3, - ACTIONS(391), 1, - anon_sym_EQ, + [6288] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(575), 2, + ACTIONS(583), 3, + anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [6255] = 4, - ACTIONS(98), 1, + [6298] = 4, + ACTIONS(90), 1, anon_sym_LBRACK, - ACTIONS(577), 1, + ACTIONS(585), 1, sym_identifier, - STATE(144), 1, + STATE(162), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6269] = 4, - ACTIONS(579), 1, + [6312] = 4, + ACTIONS(587), 1, sym_identifier, - ACTIONS(581), 1, + ACTIONS(589), 1, anon_sym_LT, - STATE(23), 1, + STATE(18), 1, sym_template_params, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6283] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(583), 3, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_LF, - [6293] = 2, + [6326] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(585), 3, + ACTIONS(591), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [6303] = 4, - ACTIONS(98), 1, + [6336] = 4, + ACTIONS(90), 1, anon_sym_LBRACK, - ACTIONS(587), 1, + ACTIONS(593), 1, sym_identifier, - STATE(144), 1, + STATE(162), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6317] = 2, + [6350] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(589), 3, + ACTIONS(595), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [6327] = 2, + [6360] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(591), 3, + ACTIONS(597), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [6337] = 2, + [6370] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(593), 2, + ACTIONS(152), 3, anon_sym_GT, + anon_sym_LBRACK, anon_sym_COMMA, - [6346] = 3, - ACTIONS(13), 1, - anon_sym_LBRACE, - STATE(234), 1, - sym_block, + [6380] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6357] = 2, + ACTIONS(599), 2, + anon_sym_GT, + anon_sym_COMMA, + [6389] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(595), 2, - anon_sym_RBRACE, + ACTIONS(601), 2, + ts_builtin_sym_end, anon_sym_LF, - [6366] = 3, - ACTIONS(13), 1, - anon_sym_LBRACE, - STATE(235), 1, - sym_block, + [6398] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6377] = 3, - ACTIONS(561), 1, + ACTIONS(603), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6407] = 3, + ACTIONS(565), 1, sym_identifier, - STATE(221), 1, + STATE(224), 1, sym_template_declaration_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6388] = 2, + [6418] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(597), 2, + ACTIONS(605), 2, anon_sym_COLON, anon_sym_LBRACE, - [6397] = 2, + [6427] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(599), 2, + ACTIONS(607), 2, anon_sym_RBRACE, anon_sym_LF, - [6406] = 2, + [6436] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(601), 2, + ACTIONS(609), 2, + ts_builtin_sym_end, + anon_sym_LF, + [6445] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(611), 2, anon_sym_RBRACE, anon_sym_LF, - [6415] = 2, + [6454] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(603), 2, + ACTIONS(613), 2, anon_sym_COLON, anon_sym_LBRACE, - [6424] = 2, + [6463] = 3, + ACTIONS(13), 1, + anon_sym_LBRACE, + STATE(225), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(605), 2, - ts_builtin_sym_end, - anon_sym_LF, - [6433] = 2, + [6474] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(607), 2, + ACTIONS(615), 2, ts_builtin_sym_end, anon_sym_LF, - [6442] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(609), 2, - anon_sym_SEMI, - anon_sym_COMMA, - [6451] = 2, + [6483] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(611), 2, + ACTIONS(617), 2, ts_builtin_sym_end, anon_sym_LF, - [6460] = 2, + [6492] = 3, + ACTIONS(13), 1, + anon_sym_LBRACE, + STATE(230), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(613), 2, - ts_builtin_sym_end, - anon_sym_LF, - [6469] = 2, + [6503] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(615), 2, + ACTIONS(619), 2, ts_builtin_sym_end, anon_sym_LF, - [6478] = 2, + [6512] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(617), 2, + ACTIONS(621), 2, anon_sym_GT, anon_sym_COMMA, - [6487] = 2, + [6521] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(619), 2, - anon_sym_GT, + ACTIONS(623), 2, + anon_sym_SEMI, anon_sym_COMMA, - [6496] = 2, + [6530] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(621), 2, + ACTIONS(625), 2, anon_sym_COLON, anon_sym_LBRACE, - [6505] = 2, + [6539] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(575), 2, + ACTIONS(581), 2, anon_sym_RBRACE, anon_sym_LF, - [6514] = 2, - ACTIONS(623), 1, + [6548] = 2, + ACTIONS(627), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6522] = 2, - ACTIONS(625), 1, + [6556] = 2, + ACTIONS(629), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6530] = 2, - ACTIONS(627), 1, + [6564] = 2, + ACTIONS(631), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6538] = 2, - ACTIONS(629), 1, + [6572] = 2, + ACTIONS(633), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6546] = 2, - ACTIONS(631), 1, - anon_sym_in, + [6580] = 2, + ACTIONS(635), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6554] = 2, - ACTIONS(633), 1, - sym_identifier, + [6588] = 2, + ACTIONS(637), 1, + anon_sym_in, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6562] = 2, - ACTIONS(635), 1, + [6596] = 2, + ACTIONS(639), 1, ts_builtin_sym_end, ACTIONS(3), 2, sym_single_line_comment, @@ -8984,23 +9022,23 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(13)] = 976, [SMALL_STATE(14)] = 1020, [SMALL_STATE(15)] = 1064, - [SMALL_STATE(16)] = 1108, + [SMALL_STATE(16)] = 1132, [SMALL_STATE(17)] = 1176, - [SMALL_STATE(18)] = 1233, - [SMALL_STATE(19)] = 1294, - [SMALL_STATE(20)] = 1357, - [SMALL_STATE(21)] = 1396, - [SMALL_STATE(22)] = 1445, - [SMALL_STATE(23)] = 1484, - [SMALL_STATE(24)] = 1523, - [SMALL_STATE(25)] = 1576, - [SMALL_STATE(26)] = 1615, - [SMALL_STATE(27)] = 1654, - [SMALL_STATE(28)] = 1693, - [SMALL_STATE(29)] = 1732, - [SMALL_STATE(30)] = 1771, - [SMALL_STATE(31)] = 1820, - [SMALL_STATE(32)] = 1879, + [SMALL_STATE(18)] = 1225, + [SMALL_STATE(19)] = 1264, + [SMALL_STATE(20)] = 1323, + [SMALL_STATE(21)] = 1362, + [SMALL_STATE(22)] = 1401, + [SMALL_STATE(23)] = 1440, + [SMALL_STATE(24)] = 1479, + [SMALL_STATE(25)] = 1532, + [SMALL_STATE(26)] = 1593, + [SMALL_STATE(27)] = 1650, + [SMALL_STATE(28)] = 1689, + [SMALL_STATE(29)] = 1738, + [SMALL_STATE(30)] = 1777, + [SMALL_STATE(31)] = 1816, + [SMALL_STATE(32)] = 1855, [SMALL_STATE(33)] = 1918, [SMALL_STATE(34)] = 1957, [SMALL_STATE(35)] = 1995, @@ -9011,7 +9049,7 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(40)] = 2180, [SMALL_STATE(41)] = 2217, [SMALL_STATE(42)] = 2254, - [SMALL_STATE(43)] = 2307, + [SMALL_STATE(43)] = 2317, [SMALL_STATE(44)] = 2370, [SMALL_STATE(45)] = 2408, [SMALL_STATE(46)] = 2466, @@ -9019,12 +9057,12 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(48)] = 2586, [SMALL_STATE(49)] = 2621, [SMALL_STATE(50)] = 2658, - [SMALL_STATE(51)] = 2700, - [SMALL_STATE(52)] = 2756, + [SMALL_STATE(51)] = 2712, + [SMALL_STATE(52)] = 2768, [SMALL_STATE(53)] = 2810, [SMALL_STATE(54)] = 2864, [SMALL_STATE(55)] = 2920, - [SMALL_STATE(56)] = 2974, + [SMALL_STATE(56)] = 2962, [SMALL_STATE(57)] = 3016, [SMALL_STATE(58)] = 3070, [SMALL_STATE(59)] = 3123, @@ -9033,16 +9071,16 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(62)] = 3268, [SMALL_STATE(63)] = 3307, [SMALL_STATE(64)] = 3360, - [SMALL_STATE(65)] = 3396, - [SMALL_STATE(66)] = 3432, + [SMALL_STATE(65)] = 3392, + [SMALL_STATE(66)] = 3428, [SMALL_STATE(67)] = 3464, [SMALL_STATE(68)] = 3500, [SMALL_STATE(69)] = 3536, [SMALL_STATE(70)] = 3572, [SMALL_STATE(71)] = 3608, - [SMALL_STATE(72)] = 3640, - [SMALL_STATE(73)] = 3676, - [SMALL_STATE(74)] = 3712, + [SMALL_STATE(72)] = 3644, + [SMALL_STATE(73)] = 3680, + [SMALL_STATE(74)] = 3716, [SMALL_STATE(75)] = 3748, [SMALL_STATE(76)] = 3784, [SMALL_STATE(77)] = 3820, @@ -9066,155 +9104,157 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(95)] = 4395, [SMALL_STATE(96)] = 4415, [SMALL_STATE(97)] = 4435, - [SMALL_STATE(98)] = 4457, - [SMALL_STATE(99)] = 4471, - [SMALL_STATE(100)] = 4493, - [SMALL_STATE(101)] = 4507, - [SMALL_STATE(102)] = 4521, - [SMALL_STATE(103)] = 4535, - [SMALL_STATE(104)] = 4555, - [SMALL_STATE(105)] = 4577, - [SMALL_STATE(106)] = 4597, - [SMALL_STATE(107)] = 4619, - [SMALL_STATE(108)] = 4639, - [SMALL_STATE(109)] = 4661, - [SMALL_STATE(110)] = 4681, + [SMALL_STATE(98)] = 4449, + [SMALL_STATE(99)] = 4469, + [SMALL_STATE(100)] = 4491, + [SMALL_STATE(101)] = 4505, + [SMALL_STATE(102)] = 4527, + [SMALL_STATE(103)] = 4549, + [SMALL_STATE(104)] = 4571, + [SMALL_STATE(105)] = 4591, + [SMALL_STATE(106)] = 4611, + [SMALL_STATE(107)] = 4633, + [SMALL_STATE(108)] = 4655, + [SMALL_STATE(109)] = 4669, + [SMALL_STATE(110)] = 4683, [SMALL_STATE(111)] = 4703, [SMALL_STATE(112)] = 4722, [SMALL_STATE(113)] = 4741, - [SMALL_STATE(114)] = 4760, + [SMALL_STATE(114)] = 4764, [SMALL_STATE(115)] = 4783, [SMALL_STATE(116)] = 4802, [SMALL_STATE(117)] = 4821, - [SMALL_STATE(118)] = 4841, - [SMALL_STATE(119)] = 4857, - [SMALL_STATE(120)] = 4877, - [SMALL_STATE(121)] = 4893, - [SMALL_STATE(122)] = 4909, - [SMALL_STATE(123)] = 4925, - [SMALL_STATE(124)] = 4941, - [SMALL_STATE(125)] = 4961, - [SMALL_STATE(126)] = 4977, - [SMALL_STATE(127)] = 4997, - [SMALL_STATE(128)] = 5017, - [SMALL_STATE(129)] = 5033, - [SMALL_STATE(130)] = 5049, - [SMALL_STATE(131)] = 5069, - [SMALL_STATE(132)] = 5085, - [SMALL_STATE(133)] = 5105, - [SMALL_STATE(134)] = 5117, + [SMALL_STATE(118)] = 4833, + [SMALL_STATE(119)] = 4849, + [SMALL_STATE(120)] = 4865, + [SMALL_STATE(121)] = 4885, + [SMALL_STATE(122)] = 4901, + [SMALL_STATE(123)] = 4917, + [SMALL_STATE(124)] = 4933, + [SMALL_STATE(125)] = 4953, + [SMALL_STATE(126)] = 4969, + [SMALL_STATE(127)] = 4989, + [SMALL_STATE(128)] = 5005, + [SMALL_STATE(129)] = 5021, + [SMALL_STATE(130)] = 5037, + [SMALL_STATE(131)] = 5057, + [SMALL_STATE(132)] = 5073, + [SMALL_STATE(133)] = 5093, + [SMALL_STATE(134)] = 5113, [SMALL_STATE(135)] = 5133, - [SMALL_STATE(136)] = 5144, - [SMALL_STATE(137)] = 5161, - [SMALL_STATE(138)] = 5172, - [SMALL_STATE(139)] = 5183, - [SMALL_STATE(140)] = 5194, - [SMALL_STATE(141)] = 5211, - [SMALL_STATE(142)] = 5228, - [SMALL_STATE(143)] = 5239, - [SMALL_STATE(144)] = 5256, - [SMALL_STATE(145)] = 5267, - [SMALL_STATE(146)] = 5284, - [SMALL_STATE(147)] = 5301, - [SMALL_STATE(148)] = 5318, - [SMALL_STATE(149)] = 5329, - [SMALL_STATE(150)] = 5340, - [SMALL_STATE(151)] = 5351, - [SMALL_STATE(152)] = 5368, - [SMALL_STATE(153)] = 5385, - [SMALL_STATE(154)] = 5402, - [SMALL_STATE(155)] = 5419, - [SMALL_STATE(156)] = 5430, - [SMALL_STATE(157)] = 5441, - [SMALL_STATE(158)] = 5456, - [SMALL_STATE(159)] = 5467, - [SMALL_STATE(160)] = 5478, - [SMALL_STATE(161)] = 5495, - [SMALL_STATE(162)] = 5506, - [SMALL_STATE(163)] = 5517, - [SMALL_STATE(164)] = 5534, - [SMALL_STATE(165)] = 5551, - [SMALL_STATE(166)] = 5562, - [SMALL_STATE(167)] = 5573, - [SMALL_STATE(168)] = 5584, - [SMALL_STATE(169)] = 5595, - [SMALL_STATE(170)] = 5612, - [SMALL_STATE(171)] = 5629, - [SMALL_STATE(172)] = 5640, - [SMALL_STATE(173)] = 5651, - [SMALL_STATE(174)] = 5666, - [SMALL_STATE(175)] = 5683, - [SMALL_STATE(176)] = 5700, - [SMALL_STATE(177)] = 5717, - [SMALL_STATE(178)] = 5734, - [SMALL_STATE(179)] = 5751, - [SMALL_STATE(180)] = 5768, - [SMALL_STATE(181)] = 5785, - [SMALL_STATE(182)] = 5802, - [SMALL_STATE(183)] = 5819, - [SMALL_STATE(184)] = 5830, - [SMALL_STATE(185)] = 5841, - [SMALL_STATE(186)] = 5852, - [SMALL_STATE(187)] = 5863, - [SMALL_STATE(188)] = 5878, - [SMALL_STATE(189)] = 5895, - [SMALL_STATE(190)] = 5910, - [SMALL_STATE(191)] = 5927, - [SMALL_STATE(192)] = 5944, - [SMALL_STATE(193)] = 5961, - [SMALL_STATE(194)] = 5978, - [SMALL_STATE(195)] = 5995, - [SMALL_STATE(196)] = 6010, - [SMALL_STATE(197)] = 6021, - [SMALL_STATE(198)] = 6038, - [SMALL_STATE(199)] = 6049, - [SMALL_STATE(200)] = 6066, - [SMALL_STATE(201)] = 6077, - [SMALL_STATE(202)] = 6094, - [SMALL_STATE(203)] = 6111, - [SMALL_STATE(204)] = 6128, - [SMALL_STATE(205)] = 6145, + [SMALL_STATE(136)] = 5149, + [SMALL_STATE(137)] = 5166, + [SMALL_STATE(138)] = 5181, + [SMALL_STATE(139)] = 5192, + [SMALL_STATE(140)] = 5203, + [SMALL_STATE(141)] = 5214, + [SMALL_STATE(142)] = 5225, + [SMALL_STATE(143)] = 5236, + [SMALL_STATE(144)] = 5253, + [SMALL_STATE(145)] = 5264, + [SMALL_STATE(146)] = 5275, + [SMALL_STATE(147)] = 5286, + [SMALL_STATE(148)] = 5303, + [SMALL_STATE(149)] = 5320, + [SMALL_STATE(150)] = 5337, + [SMALL_STATE(151)] = 5354, + [SMALL_STATE(152)] = 5365, + [SMALL_STATE(153)] = 5376, + [SMALL_STATE(154)] = 5387, + [SMALL_STATE(155)] = 5404, + [SMALL_STATE(156)] = 5415, + [SMALL_STATE(157)] = 5432, + [SMALL_STATE(158)] = 5449, + [SMALL_STATE(159)] = 5466, + [SMALL_STATE(160)] = 5481, + [SMALL_STATE(161)] = 5492, + [SMALL_STATE(162)] = 5503, + [SMALL_STATE(163)] = 5514, + [SMALL_STATE(164)] = 5525, + [SMALL_STATE(165)] = 5542, + [SMALL_STATE(166)] = 5559, + [SMALL_STATE(167)] = 5576, + [SMALL_STATE(168)] = 5587, + [SMALL_STATE(169)] = 5598, + [SMALL_STATE(170)] = 5609, + [SMALL_STATE(171)] = 5620, + [SMALL_STATE(172)] = 5637, + [SMALL_STATE(173)] = 5648, + [SMALL_STATE(174)] = 5665, + [SMALL_STATE(175)] = 5676, + [SMALL_STATE(176)] = 5691, + [SMALL_STATE(177)] = 5708, + [SMALL_STATE(178)] = 5725, + [SMALL_STATE(179)] = 5740, + [SMALL_STATE(180)] = 5757, + [SMALL_STATE(181)] = 5774, + [SMALL_STATE(182)] = 5785, + [SMALL_STATE(183)] = 5802, + [SMALL_STATE(184)] = 5819, + [SMALL_STATE(185)] = 5836, + [SMALL_STATE(186)] = 5847, + [SMALL_STATE(187)] = 5858, + [SMALL_STATE(188)] = 5869, + [SMALL_STATE(189)] = 5886, + [SMALL_STATE(190)] = 5903, + [SMALL_STATE(191)] = 5920, + [SMALL_STATE(192)] = 5935, + [SMALL_STATE(193)] = 5952, + [SMALL_STATE(194)] = 5969, + [SMALL_STATE(195)] = 5980, + [SMALL_STATE(196)] = 5997, + [SMALL_STATE(197)] = 6014, + [SMALL_STATE(198)] = 6029, + [SMALL_STATE(199)] = 6046, + [SMALL_STATE(200)] = 6063, + [SMALL_STATE(201)] = 6080, + [SMALL_STATE(202)] = 6097, + [SMALL_STATE(203)] = 6108, + [SMALL_STATE(204)] = 6125, + [SMALL_STATE(205)] = 6142, [SMALL_STATE(206)] = 6159, - [SMALL_STATE(207)] = 6169, - [SMALL_STATE(208)] = 6181, - [SMALL_STATE(209)] = 6195, - [SMALL_STATE(210)] = 6205, - [SMALL_STATE(211)] = 6219, - [SMALL_STATE(212)] = 6233, - [SMALL_STATE(213)] = 6243, - [SMALL_STATE(214)] = 6255, - [SMALL_STATE(215)] = 6269, - [SMALL_STATE(216)] = 6283, - [SMALL_STATE(217)] = 6293, - [SMALL_STATE(218)] = 6303, - [SMALL_STATE(219)] = 6317, - [SMALL_STATE(220)] = 6327, - [SMALL_STATE(221)] = 6337, - [SMALL_STATE(222)] = 6346, - [SMALL_STATE(223)] = 6357, - [SMALL_STATE(224)] = 6366, - [SMALL_STATE(225)] = 6377, - [SMALL_STATE(226)] = 6388, - [SMALL_STATE(227)] = 6397, - [SMALL_STATE(228)] = 6406, - [SMALL_STATE(229)] = 6415, - [SMALL_STATE(230)] = 6424, - [SMALL_STATE(231)] = 6433, - [SMALL_STATE(232)] = 6442, - [SMALL_STATE(233)] = 6451, - [SMALL_STATE(234)] = 6460, - [SMALL_STATE(235)] = 6469, - [SMALL_STATE(236)] = 6478, - [SMALL_STATE(237)] = 6487, - [SMALL_STATE(238)] = 6496, - [SMALL_STATE(239)] = 6505, - [SMALL_STATE(240)] = 6514, - [SMALL_STATE(241)] = 6522, - [SMALL_STATE(242)] = 6530, - [SMALL_STATE(243)] = 6538, - [SMALL_STATE(244)] = 6546, - [SMALL_STATE(245)] = 6554, - [SMALL_STATE(246)] = 6562, + [SMALL_STATE(207)] = 6176, + [SMALL_STATE(208)] = 6190, + [SMALL_STATE(209)] = 6200, + [SMALL_STATE(210)] = 6212, + [SMALL_STATE(211)] = 6226, + [SMALL_STATE(212)] = 6236, + [SMALL_STATE(213)] = 6250, + [SMALL_STATE(214)] = 6262, + [SMALL_STATE(215)] = 6276, + [SMALL_STATE(216)] = 6288, + [SMALL_STATE(217)] = 6298, + [SMALL_STATE(218)] = 6312, + [SMALL_STATE(219)] = 6326, + [SMALL_STATE(220)] = 6336, + [SMALL_STATE(221)] = 6350, + [SMALL_STATE(222)] = 6360, + [SMALL_STATE(223)] = 6370, + [SMALL_STATE(224)] = 6380, + [SMALL_STATE(225)] = 6389, + [SMALL_STATE(226)] = 6398, + [SMALL_STATE(227)] = 6407, + [SMALL_STATE(228)] = 6418, + [SMALL_STATE(229)] = 6427, + [SMALL_STATE(230)] = 6436, + [SMALL_STATE(231)] = 6445, + [SMALL_STATE(232)] = 6454, + [SMALL_STATE(233)] = 6463, + [SMALL_STATE(234)] = 6474, + [SMALL_STATE(235)] = 6483, + [SMALL_STATE(236)] = 6492, + [SMALL_STATE(237)] = 6503, + [SMALL_STATE(238)] = 6512, + [SMALL_STATE(239)] = 6521, + [SMALL_STATE(240)] = 6530, + [SMALL_STATE(241)] = 6539, + [SMALL_STATE(242)] = 6548, + [SMALL_STATE(243)] = 6556, + [SMALL_STATE(244)] = 6564, + [SMALL_STATE(245)] = 6572, + [SMALL_STATE(246)] = 6580, + [SMALL_STATE(247)] = 6588, + [SMALL_STATE(248)] = 6596, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -9222,314 +9262,316 @@ static const TSParseActionEntry ts_parse_actions[] = { [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 = true}}, SHIFT(243), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), - [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(240), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(242), [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(86), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(91), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(105), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(125), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(110), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(122), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), - [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), - [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), - [57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), - [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), - [61] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(215), - [64] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1, .production_id = 1), - [66] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1, .production_id = 1), - [68] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), - [70] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 14), - [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 14), - [74] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 2), - [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 2), - [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 28), - [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 28), - [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 35), - [84] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 35), - [86] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [88] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), - [90] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [92] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), - [94] = {.entry = {.count = 1, .reusable = false}}, SHIFT(245), - [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [106] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 37), - [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 37), - [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 21), - [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 21), - [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 3), - [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3), - [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), - [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), - [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 48), - [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 48), - [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 3), - [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 3), - [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 6), - [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 6), - [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 42), - [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 42), - [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 7, .production_id = 50), - [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 7, .production_id = 50), - [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 46), - [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 46), - [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 49), - [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 49), - [150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 33), - [152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 33), - [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 36), - [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 36), - [158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 23), - [160] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 23), - [162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), - [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 33), - [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 33), - [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 17), - [172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 17), - [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 33), - [186] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), - [188] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 33), - [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), + [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), + [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 2), + [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 2), + [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), + [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), + [65] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), + [67] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(218), + [70] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 15), + [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 15), + [74] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1, .production_id = 1), + [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1, .production_id = 1), + [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 29), + [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 29), + [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 37), + [84] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 37), + [86] = {.entry = {.count = 1, .reusable = false}}, SHIFT(244), + [88] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [90] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), + [94] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), + [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [98] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), + [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [104] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), + [106] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 3), + [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3), + [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 51), + [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 51), + [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 39), + [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 39), + [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 3), + [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 3), + [122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 44), + [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 44), + [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 22), + [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 22), + [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 48), + [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 48), + [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 6), + [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 6), + [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 7, .production_id = 52), + [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 7, .production_id = 52), + [144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 50), + [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 50), + [150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 35), + [152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 35), + [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 18), + [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 18), + [158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [160] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 24), + [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 24), + [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 35), + [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 35), + [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 38), + [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 38), + [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), + [182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 35), + [184] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), + [186] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 35), + [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244), + [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), [194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), [196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), [198] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(44), - [201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 9), - [203] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 9), - [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 22), - [211] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 22), + [201] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 10), + [203] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 10), + [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [209] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 23), + [211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 23), [213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), [215] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), [219] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [222] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), - [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), - [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 34), - [232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 3, .production_id = 45), - [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), - [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 1, .production_id = 41), - [240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), - [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [222] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), + [224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 3, .production_id = 47), + [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), + [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 36), + [238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 1, .production_id = 43), + [240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), + [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [258] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), - [260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), - [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [254] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), + [256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), + [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [272] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), - [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), - [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [298] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), - [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), - [302] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [304] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(85), - [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [278] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), + [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), + [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [298] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [300] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(85), + [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [305] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 11), + [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 11), [309] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), [313] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), [319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 27), - [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 16), - [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 26), - [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 38), - [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), - [335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), - [337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), - [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 40), - [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 29), - [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 43), - [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 39), - [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), - [351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [353] = {.entry = {.count = 1, .reusable = false}}, SHIFT(134), - [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), - [357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), - [359] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(66), - [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), - [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), - [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), - [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), - [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), - [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), - [376] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(66), - [379] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208), - [383] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), - [385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), - [387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), - [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), - [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 8), - [397] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(211), - [400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), - [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), - [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), - [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), - [410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), - [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 19), - [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), - [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 37), - [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), - [422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), - [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), - [426] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226), - [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 17), - [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), - [434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), - [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), - [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [442] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), - [444] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), - [446] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), SHIFT_REPEAT(66), - [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), - [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [455] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), - [457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), - [459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), - [461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 37), - [465] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 42), - [467] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), - [469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), - [471] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), - [473] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), - [476] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 1, .production_id = 41), - [480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [482] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), - [486] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(151), - [489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), - [491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), - [495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), - [501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), - [503] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), - [505] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(66), - [508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 42), - [510] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), - [512] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 20), - [514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [516] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(189), + [321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 28), + [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 27), + [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 17), + [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 40), + [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 42), + [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), + [337] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(64), + [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), + [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246), + [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 41), + [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), + [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), + [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), + [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), + [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 30), + [364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 45), + [366] = {.entry = {.count = 1, .reusable = false}}, SHIFT(131), + [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), + [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), + [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), + [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214), + [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), + [382] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(64), + [385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), + [387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), + [389] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 20), + [391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), + [395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), + [397] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 8), + [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), + [401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), + [405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [407] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), + [409] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), + [411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), + [413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [415] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(214), + [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), + [420] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), SHIFT_REPEAT(64), + [423] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 3, .production_id = 32), + [425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), + [429] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), + [431] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 39), + [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), + [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), + [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), + [443] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228), + [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169), + [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), + [453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [455] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), + [457] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), + [459] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 18), + [461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), + [463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), + [467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [469] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 39), + [471] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 44), + [473] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), + [475] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), + [478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), + [480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), + [482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 1, .production_id = 43), + [484] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), + [488] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 21), + [490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), + [492] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(143), + [495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), + [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), + [501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), + [503] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(64), + [506] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 44), + [508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), + [510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), + [512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [516] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(191), [519] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), [521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229), - [527] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), - [529] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), SHIFT_REPEAT(66), - [532] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), - [534] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), - [536] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 3, .production_id = 45), + [523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [525] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), + [527] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), SHIFT_REPEAT(64), + [530] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), + [532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), + [534] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 3, .production_id = 47), + [536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), [538] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), - [540] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), SHIFT_REPEAT(66), - [543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [547] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), - [549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), - [551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), - [553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [557] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 32), - [559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), - [561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237), - [563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), - [565] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), - [567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), - [571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [573] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 13), - [575] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), - [577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [583] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 15), - [585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 30), - [587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 25), - [591] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 18), - [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 3), - [595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 47), - [597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 3), - [599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 31), - [601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 44), - [603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 6), - [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), - [607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), - [609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 3), - [611] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 12), - [613] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5, .production_id = 24), - [615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 11), - [617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 3), - [619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1), - [621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), - [623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), - [625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), - [629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), - [631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [635] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [540] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), SHIFT_REPEAT(64), + [543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [545] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [549] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), + [551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), + [553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [559] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 19), + [561] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 34), + [563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), + [567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), + [569] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), + [571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [573] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1, .production_id = 9), + [575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), + [577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), + [579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [581] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), + [583] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 14), + [585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [591] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 31), + [593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 26), + [597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 16), + [599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 3), + [601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 12), + [603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 49), + [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 3), + [607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 33), + [609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5, .production_id = 25), + [611] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 46), + [613] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 6), + [615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), + [617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 13), + [619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), + [621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 3), + [623] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 3), + [625] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), + [627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), + [629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), + [635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [639] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), }; #ifdef __cplusplus From 898549fe5253b0981a50234bcc811812cccd0ff0 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Wed, 3 Jul 2024 14:23:10 +0200 Subject: [PATCH 37/49] Make "domain" an explicit separate statement --- grammar.js | 60 +- src/grammar.json | 299 +- src/node-types.json | 44 +- src/parser.c | 6773 +++++++++++++++++++++---------------------- 4 files changed, 3534 insertions(+), 3642 deletions(-) diff --git a/grammar.js b/grammar.js index 149df68..59ae789 100644 --- a/grammar.js +++ b/grammar.js @@ -49,27 +49,9 @@ module.exports = grammar({ 'module', field('name', $.identifier), optional(field('template_declaration_arguments', $.template_declaration_arguments)), - optional(field('interface_ports', $.interface_ports)), field('block', $.block) ), - interface_ports: $ => seq( - ':', - optional($._linebreak), - choice( - seq( - field('inputs', $.declaration_list), - optional($._interface_ports_output) - ), - $._interface_ports_output - ), - ), - _interface_ports_output: $ => seq( - '->', - optional($._linebreak), - field('outputs', $.declaration_list) - ), - // Template Declaration template_declaration_arguments: $ => seq( @@ -99,16 +81,11 @@ module.exports = grammar({ $.assign_left_side, $.if_statement, $.for_statement, + $.domain_statement, $.interface_statement )), '}' ), - - interface_statement: $ => seq( - 'interface', - field('name', $.identifier), - optional(field('interface_ports', $.interface_ports)) - ), decl_assign_statement: $ => seq( field('assign_left', $.assign_left_side), @@ -131,6 +108,7 @@ module.exports = grammar({ if_statement: $ => seq( 'if', field('condition', $._expression), + //optional(field('conditional_bindings', $.interface_ports)), field('then_block', $.block), optional(seq( 'else', @@ -150,6 +128,38 @@ module.exports = grammar({ field('block', $.block) ), + // Interfaces + + domain_statement: $ => seq( + 'domain', + field('name', $.identifier), + ), + + interface_statement: $ => seq( + //field('interface_kind', choice('action', 'query', 'trigger')), + 'interface', + field('name', $.identifier), + optional(field('interface_ports', $.interface_ports)), + optional(field('block', $.block)) + ), + + interface_ports: $ => seq( + ':', + optional($._linebreak), + choice( + seq( + field('inputs', $.declaration_list), + optional($._interface_ports_output) + ), + $._interface_ports_output + ), + ), + _interface_ports_output: $ => seq( + '->', + optional($._linebreak), + field('outputs', $.declaration_list) + ), + // Declarations declaration_list: $ => sepSeq1($.declaration, $._comma), @@ -285,7 +295,7 @@ module.exports = grammar({ sepSeq($.template_value_param, $._comma), ';', sepSeq($.template_type_param, $._comma), - prec(11, '>') + '>' ), identifier: $ => /[\p{Alphabetic}_][\p{Alphabetic}_\p{Decimal_Number}]*/, number: $ => /\d[\d_]*/, diff --git a/src/grammar.json b/src/grammar.json index a769393..6ccc045 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -103,22 +103,6 @@ } ] }, - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "interface_ports", - "content": { - "type": "SYMBOL", - "name": "interface_ports" - } - }, - { - "type": "BLANK" - } - ] - }, { "type": "FIELD", "name": "block", @@ -129,90 +113,6 @@ } ] }, - "interface_ports": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": ":" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_linebreak" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "inputs", - "content": { - "type": "SYMBOL", - "name": "declaration_list" - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_interface_ports_output" - }, - { - "type": "BLANK" - } - ] - } - ] - }, - { - "type": "SYMBOL", - "name": "_interface_ports_output" - } - ] - } - ] - }, - "_interface_ports_output": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "->" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_linebreak" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "FIELD", - "name": "outputs", - "content": { - "type": "SYMBOL", - "name": "declaration_list" - } - } - ] - }, "template_declaration_arguments": { "type": "SEQ", "members": [ @@ -359,6 +259,10 @@ "type": "SYMBOL", "name": "for_statement" }, + { + "type": "SYMBOL", + "name": "domain_statement" + }, { "type": "SYMBOL", "name": "interface_statement" @@ -401,6 +305,10 @@ "type": "SYMBOL", "name": "for_statement" }, + { + "type": "SYMBOL", + "name": "domain_statement" + }, { "type": "SYMBOL", "name": "interface_statement" @@ -438,39 +346,6 @@ } ] }, - "interface_statement": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "interface" - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "interface_ports", - "content": { - "type": "SYMBOL", - "name": "interface_ports" - } - }, - { - "type": "BLANK" - } - ] - } - ] - }, "decl_assign_statement": { "type": "SEQ", "members": [ @@ -699,6 +574,156 @@ } ] }, + "domain_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "domain" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + } + ] + }, + "interface_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "interface" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "interface_ports", + "content": { + "type": "SYMBOL", + "name": "interface_ports" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "block", + "content": { + "type": "SYMBOL", + "name": "block" + } + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "interface_ports": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": ":" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_linebreak" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "inputs", + "content": { + "type": "SYMBOL", + "name": "declaration_list" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_interface_ports_output" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "SYMBOL", + "name": "_interface_ports_output" + } + ] + } + ] + }, + "_interface_ports_output": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "->" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_linebreak" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "outputs", + "content": { + "type": "SYMBOL", + "name": "declaration_list" + } + } + ] + }, "declaration_list": { "type": "SEQ", "members": [ @@ -1618,12 +1643,8 @@ ] }, { - "type": "PREC", - "value": 11, - "content": { - "type": "STRING", - "value": ">" - } + "type": "STRING", + "value": ">" } ] }, diff --git a/src/node-types.json b/src/node-types.json index a4dc03d..8f60d0e 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -365,6 +365,10 @@ "type": "decl_assign_statement", "named": true }, + { + "type": "domain_statement", + "named": true + }, { "type": "for_statement", "named": true @@ -519,6 +523,22 @@ } } }, + { + "type": "domain_statement", + "named": true, + "fields": { + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + } + }, { "type": "field_access", "named": true, @@ -827,6 +847,16 @@ "type": "interface_statement", "named": true, "fields": { + "block": { + "multiple": false, + "required": false, + "types": [ + { + "type": "block", + "named": true + } + ] + }, "interface_ports": { "multiple": false, "required": false, @@ -907,16 +937,6 @@ } ] }, - "interface_ports": { - "multiple": false, - "required": false, - "types": [ - { - "type": "interface_ports", - "named": true - } - ] - }, "name": { "multiple": false, "required": true, @@ -1433,6 +1453,10 @@ "type": "^", "named": false }, + { + "type": "domain", + "named": false + }, { "type": "else", "named": false diff --git a/src/parser.c b/src/parser.c index 9407f5f..ba496b4 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,121 +6,120 @@ #define LANGUAGE_VERSION 14 #define STATE_COUNT 249 -#define LARGE_STATE_COUNT 2 -#define SYMBOL_COUNT 92 +#define LARGE_STATE_COUNT 10 +#define SYMBOL_COUNT 94 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 48 +#define TOKEN_COUNT 49 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 31 #define MAX_ALIAS_SEQUENCE_LENGTH 7 -#define PRODUCTION_ID_COUNT 53 +#define PRODUCTION_ID_COUNT 52 enum ts_symbol_identifiers { sym_identifier = 1, anon_sym_module = 2, - anon_sym_COLON = 3, - anon_sym_DASH_GT = 4, - anon_sym_LT = 5, - anon_sym_GT = 6, - anon_sym_EQ = 7, - anon_sym_LBRACE = 8, - anon_sym_RBRACE = 9, - anon_sym_interface = 10, - anon_sym_reg = 11, - anon_sym_initial = 12, - anon_sym_if = 13, - anon_sym_else = 14, - anon_sym_for = 15, - anon_sym_in = 16, - anon_sym_DOT_DOT = 17, - anon_sym_input = 18, - anon_sym_output = 19, - anon_sym_state = 20, - anon_sym_gen = 21, - anon_sym_SQUOTE = 22, - anon_sym_PLUS = 23, - anon_sym_DASH = 24, - anon_sym_STAR = 25, - anon_sym_BANG = 26, - anon_sym_PIPE = 27, - anon_sym_AMP = 28, - anon_sym_CARET = 29, - anon_sym_EQ_EQ = 30, - anon_sym_BANG_EQ = 31, - anon_sym_LT_EQ = 32, - anon_sym_GT_EQ = 33, - anon_sym_SLASH = 34, - anon_sym_PERCENT = 35, - anon_sym_DOT = 36, - anon_sym_LPAREN = 37, - anon_sym_RPAREN = 38, - anon_sym_LBRACK = 39, - anon_sym_RBRACK = 40, - anon_sym_COLON_COLON = 41, - anon_sym_SEMI = 42, - sym_number = 43, - anon_sym_COMMA = 44, - anon_sym_LF = 45, - sym_single_line_comment = 46, - sym_multi_line_comment = 47, - sym_source_file = 48, - sym_module = 49, - sym_interface_ports = 50, - sym__interface_ports_output = 51, - sym_template_declaration_arguments = 52, - sym_template_declaration_type = 53, - sym_block = 54, - sym_interface_statement = 55, - sym_decl_assign_statement = 56, - sym_assign_left_side = 57, - sym_assign_to = 58, - sym_write_modifiers = 59, - sym_if_statement = 60, - sym_for_statement = 61, - sym_declaration_list = 62, - sym_declaration = 63, - sym_latency_specifier = 64, - sym__type = 65, - sym_array_type = 66, - sym__expression = 67, - sym_unary_op = 68, - sym_binary_op = 69, - sym_array_op = 70, - sym_func_call = 71, - sym_field_access = 72, - sym_parenthesis_expression_list = 73, - sym_parenthesis_expression = 74, - sym_array_bracket_expression = 75, - sym_template_global = 76, - sym_template_type_param = 77, - sym_template_value_param = 78, - sym_template_params = 79, - sym__comma = 80, - aux_sym__linebreak = 81, - aux_sym_source_file_repeat1 = 82, - aux_sym_template_declaration_arguments_repeat1 = 83, - aux_sym_block_repeat1 = 84, - aux_sym_assign_left_side_repeat1 = 85, - aux_sym_write_modifiers_repeat1 = 86, - aux_sym_declaration_list_repeat1 = 87, - aux_sym_parenthesis_expression_list_repeat1 = 88, - aux_sym_template_global_repeat1 = 89, - aux_sym_template_params_repeat1 = 90, - aux_sym_template_params_repeat2 = 91, + anon_sym_LT = 3, + anon_sym_GT = 4, + anon_sym_EQ = 5, + anon_sym_LBRACE = 6, + anon_sym_RBRACE = 7, + anon_sym_reg = 8, + anon_sym_initial = 9, + anon_sym_if = 10, + anon_sym_else = 11, + anon_sym_for = 12, + anon_sym_in = 13, + anon_sym_DOT_DOT = 14, + anon_sym_domain = 15, + anon_sym_interface = 16, + anon_sym_COLON = 17, + anon_sym_DASH_GT = 18, + anon_sym_input = 19, + anon_sym_output = 20, + anon_sym_state = 21, + anon_sym_gen = 22, + anon_sym_SQUOTE = 23, + anon_sym_PLUS = 24, + anon_sym_DASH = 25, + anon_sym_STAR = 26, + anon_sym_BANG = 27, + anon_sym_PIPE = 28, + anon_sym_AMP = 29, + anon_sym_CARET = 30, + anon_sym_EQ_EQ = 31, + anon_sym_BANG_EQ = 32, + anon_sym_LT_EQ = 33, + anon_sym_GT_EQ = 34, + anon_sym_SLASH = 35, + anon_sym_PERCENT = 36, + anon_sym_DOT = 37, + anon_sym_LPAREN = 38, + anon_sym_RPAREN = 39, + anon_sym_LBRACK = 40, + anon_sym_RBRACK = 41, + anon_sym_COLON_COLON = 42, + anon_sym_SEMI = 43, + sym_number = 44, + anon_sym_COMMA = 45, + anon_sym_LF = 46, + sym_single_line_comment = 47, + sym_multi_line_comment = 48, + sym_source_file = 49, + sym_module = 50, + sym_template_declaration_arguments = 51, + sym_template_declaration_type = 52, + sym_block = 53, + sym_decl_assign_statement = 54, + sym_assign_left_side = 55, + sym_assign_to = 56, + sym_write_modifiers = 57, + sym_if_statement = 58, + sym_for_statement = 59, + sym_domain_statement = 60, + sym_interface_statement = 61, + sym_interface_ports = 62, + sym__interface_ports_output = 63, + sym_declaration_list = 64, + sym_declaration = 65, + sym_latency_specifier = 66, + sym__type = 67, + sym_array_type = 68, + sym__expression = 69, + sym_unary_op = 70, + sym_binary_op = 71, + sym_array_op = 72, + sym_func_call = 73, + sym_field_access = 74, + sym_parenthesis_expression_list = 75, + sym_parenthesis_expression = 76, + sym_array_bracket_expression = 77, + sym_template_global = 78, + sym_template_type_param = 79, + sym_template_value_param = 80, + sym_template_params = 81, + sym__comma = 82, + aux_sym__linebreak = 83, + aux_sym_source_file_repeat1 = 84, + aux_sym_template_declaration_arguments_repeat1 = 85, + aux_sym_block_repeat1 = 86, + aux_sym_assign_left_side_repeat1 = 87, + aux_sym_write_modifiers_repeat1 = 88, + aux_sym_declaration_list_repeat1 = 89, + aux_sym_parenthesis_expression_list_repeat1 = 90, + aux_sym_template_global_repeat1 = 91, + aux_sym_template_params_repeat1 = 92, + aux_sym_template_params_repeat2 = 93, }; static const char * const ts_symbol_names[] = { [ts_builtin_sym_end] = "end", [sym_identifier] = "identifier", [anon_sym_module] = "module", - [anon_sym_COLON] = ":", - [anon_sym_DASH_GT] = "->", [anon_sym_LT] = "<", [anon_sym_GT] = ">", [anon_sym_EQ] = "=", [anon_sym_LBRACE] = "{", [anon_sym_RBRACE] = "}", - [anon_sym_interface] = "interface", [anon_sym_reg] = "reg", [anon_sym_initial] = "initial", [anon_sym_if] = "if", @@ -128,6 +127,10 @@ static const char * const ts_symbol_names[] = { [anon_sym_for] = "for", [anon_sym_in] = "in", [anon_sym_DOT_DOT] = "..", + [anon_sym_domain] = "domain", + [anon_sym_interface] = "interface", + [anon_sym_COLON] = ":", + [anon_sym_DASH_GT] = "->", [anon_sym_input] = "input", [anon_sym_output] = "output", [anon_sym_state] = "state", @@ -160,18 +163,19 @@ static const char * const ts_symbol_names[] = { [sym_multi_line_comment] = "multi_line_comment", [sym_source_file] = "source_file", [sym_module] = "module", - [sym_interface_ports] = "interface_ports", - [sym__interface_ports_output] = "_interface_ports_output", [sym_template_declaration_arguments] = "template_declaration_arguments", [sym_template_declaration_type] = "template_declaration_type", [sym_block] = "block", - [sym_interface_statement] = "interface_statement", [sym_decl_assign_statement] = "decl_assign_statement", [sym_assign_left_side] = "assign_left_side", [sym_assign_to] = "assign_to", [sym_write_modifiers] = "write_modifiers", [sym_if_statement] = "if_statement", [sym_for_statement] = "for_statement", + [sym_domain_statement] = "domain_statement", + [sym_interface_statement] = "interface_statement", + [sym_interface_ports] = "interface_ports", + [sym__interface_ports_output] = "_interface_ports_output", [sym_declaration_list] = "declaration_list", [sym_declaration] = "declaration", [sym_latency_specifier] = "latency_specifier", @@ -208,14 +212,11 @@ static const TSSymbol ts_symbol_map[] = { [ts_builtin_sym_end] = ts_builtin_sym_end, [sym_identifier] = sym_identifier, [anon_sym_module] = anon_sym_module, - [anon_sym_COLON] = anon_sym_COLON, - [anon_sym_DASH_GT] = anon_sym_DASH_GT, [anon_sym_LT] = anon_sym_LT, [anon_sym_GT] = anon_sym_GT, [anon_sym_EQ] = anon_sym_EQ, [anon_sym_LBRACE] = anon_sym_LBRACE, [anon_sym_RBRACE] = anon_sym_RBRACE, - [anon_sym_interface] = anon_sym_interface, [anon_sym_reg] = anon_sym_reg, [anon_sym_initial] = anon_sym_initial, [anon_sym_if] = anon_sym_if, @@ -223,6 +224,10 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_for] = anon_sym_for, [anon_sym_in] = anon_sym_in, [anon_sym_DOT_DOT] = anon_sym_DOT_DOT, + [anon_sym_domain] = anon_sym_domain, + [anon_sym_interface] = anon_sym_interface, + [anon_sym_COLON] = anon_sym_COLON, + [anon_sym_DASH_GT] = anon_sym_DASH_GT, [anon_sym_input] = anon_sym_input, [anon_sym_output] = anon_sym_output, [anon_sym_state] = anon_sym_state, @@ -255,18 +260,19 @@ static const TSSymbol ts_symbol_map[] = { [sym_multi_line_comment] = sym_multi_line_comment, [sym_source_file] = sym_source_file, [sym_module] = sym_module, - [sym_interface_ports] = sym_interface_ports, - [sym__interface_ports_output] = sym__interface_ports_output, [sym_template_declaration_arguments] = sym_template_declaration_arguments, [sym_template_declaration_type] = sym_template_declaration_type, [sym_block] = sym_block, - [sym_interface_statement] = sym_interface_statement, [sym_decl_assign_statement] = sym_decl_assign_statement, [sym_assign_left_side] = sym_assign_left_side, [sym_assign_to] = sym_assign_to, [sym_write_modifiers] = sym_write_modifiers, [sym_if_statement] = sym_if_statement, [sym_for_statement] = sym_for_statement, + [sym_domain_statement] = sym_domain_statement, + [sym_interface_statement] = sym_interface_statement, + [sym_interface_ports] = sym_interface_ports, + [sym__interface_ports_output] = sym__interface_ports_output, [sym_declaration_list] = sym_declaration_list, [sym_declaration] = sym_declaration, [sym_latency_specifier] = sym_latency_specifier, @@ -312,14 +318,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_COLON] = { - .visible = true, - .named = false, - }, - [anon_sym_DASH_GT] = { - .visible = true, - .named = false, - }, [anon_sym_LT] = { .visible = true, .named = false, @@ -340,10 +338,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_interface] = { - .visible = true, - .named = false, - }, [anon_sym_reg] = { .visible = true, .named = false, @@ -372,6 +366,22 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_domain] = { + .visible = true, + .named = false, + }, + [anon_sym_interface] = { + .visible = true, + .named = false, + }, + [anon_sym_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_DASH_GT] = { + .visible = true, + .named = false, + }, [anon_sym_input] = { .visible = true, .named = false, @@ -500,14 +510,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_interface_ports] = { - .visible = true, - .named = true, - }, - [sym__interface_ports_output] = { - .visible = false, - .named = true, - }, [sym_template_declaration_arguments] = { .visible = true, .named = true, @@ -520,10 +522,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_interface_statement] = { - .visible = true, - .named = true, - }, [sym_decl_assign_statement] = { .visible = true, .named = true, @@ -548,6 +546,22 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_domain_statement] = { + .visible = true, + .named = true, + }, + [sym_interface_statement] = { + .visible = true, + .named = true, + }, + [sym_interface_ports] = { + .visible = true, + .named = true, + }, + [sym__interface_ports_output] = { + .visible = false, + .named = true, + }, [sym_declaration_list] = { .visible = true, .named = true, @@ -749,49 +763,48 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [7] = {.index = 10, .length = 1}, [8] = {.index = 11, .length = 1}, [9] = {.index = 12, .length = 1}, - [10] = {.index = 13, .length = 1}, - [11] = {.index = 14, .length = 1}, - [12] = {.index = 15, .length = 3}, - [13] = {.index = 18, .length = 3}, - [14] = {.index = 21, .length = 1}, - [15] = {.index = 22, .length = 2}, - [16] = {.index = 24, .length = 2}, - [17] = {.index = 26, .length = 2}, - [18] = {.index = 28, .length = 2}, - [19] = {.index = 30, .length = 1}, - [20] = {.index = 31, .length = 1}, - [21] = {.index = 32, .length = 1}, - [22] = {.index = 33, .length = 2}, - [23] = {.index = 35, .length = 2}, - [24] = {.index = 37, .length = 2}, - [25] = {.index = 39, .length = 4}, - [26] = {.index = 43, .length = 1}, - [27] = {.index = 44, .length = 3}, - [28] = {.index = 47, .length = 3}, - [29] = {.index = 50, .length = 3}, - [30] = {.index = 53, .length = 3}, - [31] = {.index = 56, .length = 2}, - [32] = {.index = 58, .length = 2}, - [33] = {.index = 60, .length = 2}, - [34] = {.index = 62, .length = 2}, - [35] = {.index = 64, .length = 1}, - [36] = {.index = 65, .length = 2}, - [37] = {.index = 67, .length = 3}, - [38] = {.index = 70, .length = 2}, - [39] = {.index = 72, .length = 1}, - [40] = {.index = 73, .length = 4}, - [41] = {.index = 77, .length = 4}, - [42] = {.index = 81, .length = 4}, - [43] = {.index = 85, .length = 1}, - [44] = {.index = 86, .length = 2}, - [45] = {.index = 88, .length = 5}, - [46] = {.index = 93, .length = 3}, - [47] = {.index = 96, .length = 2}, + [10] = {.index = 13, .length = 3}, + [11] = {.index = 16, .length = 1}, + [12] = {.index = 17, .length = 2}, + [13] = {.index = 19, .length = 2}, + [14] = {.index = 21, .length = 2}, + [15] = {.index = 23, .length = 2}, + [16] = {.index = 25, .length = 2}, + [17] = {.index = 27, .length = 2}, + [18] = {.index = 29, .length = 2}, + [19] = {.index = 31, .length = 2}, + [20] = {.index = 33, .length = 2}, + [21] = {.index = 35, .length = 3}, + [22] = {.index = 38, .length = 3}, + [23] = {.index = 41, .length = 1}, + [24] = {.index = 42, .length = 3}, + [25] = {.index = 45, .length = 2}, + [26] = {.index = 47, .length = 3}, + [27] = {.index = 50, .length = 3}, + [28] = {.index = 53, .length = 2}, + [29] = {.index = 55, .length = 1}, + [30] = {.index = 56, .length = 1}, + [31] = {.index = 57, .length = 1}, + [32] = {.index = 58, .length = 3}, + [33] = {.index = 61, .length = 4}, + [34] = {.index = 65, .length = 4}, + [35] = {.index = 69, .length = 4}, + [36] = {.index = 73, .length = 1}, + [37] = {.index = 74, .length = 2}, + [38] = {.index = 76, .length = 3}, + [39] = {.index = 79, .length = 1}, + [40] = {.index = 80, .length = 2}, + [41] = {.index = 82, .length = 1}, + [42] = {.index = 83, .length = 1}, + [43] = {.index = 84, .length = 5}, + [44] = {.index = 89, .length = 1}, + [45] = {.index = 90, .length = 2}, + [46] = {.index = 92, .length = 2}, + [47] = {.index = 94, .length = 4}, [48] = {.index = 98, .length = 2}, - [49] = {.index = 100, .length = 4}, - [50] = {.index = 104, .length = 3}, - [51] = {.index = 107, .length = 3}, - [52] = {.index = 110, .length = 4}, + [49] = {.index = 100, .length = 3}, + [50] = {.index = 103, .length = 3}, + [51] = {.index = 106, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -812,151 +825,146 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_item, 1}, {field_item, 2, .inherited = true}, [10] = - {field_outputs, 1, .inherited = true}, - [11] = - {field_inputs, 1}, - [12] = {field_name, 0}, - [13] = + [11] = {field_expr_or_decl, 0}, - [14] = + [12] = {field_item, 0, .inherited = true}, - [15] = - {field_block, 3}, - {field_interface_ports, 2}, - {field_name, 1}, - [18] = + [13] = {field_block, 3}, {field_name, 1}, {field_template_declaration_arguments, 2}, - [21] = - {field_outputs, 1}, - [22] = + [16] = + {field_name, 1}, + [17] = + {field_operator, 0}, + {field_right, 1}, + [19] = {field_is_global_path, 0}, {field_item, 1}, - [24] = - {field_inputs, 1}, - {field_outputs, 2, .inherited = true}, - [26] = + [21] = + {field_expr_or_decl, 1}, + {field_write_modifiers, 0}, + [23] = {field_name, 1}, {field_type, 0}, - [28] = + [25] = {field_arr, 0}, {field_arr_idx, 1}, - [30] = - {field_outputs, 2, .inherited = true}, - [31] = - {field_inputs, 2}, - [32] = - {field_name, 1}, - [33] = - {field_operator, 0}, - {field_right, 1}, - [35] = - {field_expr_or_decl, 1}, - {field_write_modifiers, 0}, - [37] = + [27] = {field_arguments, 1}, {field_name, 0}, - [39] = - {field_block, 4}, - {field_interface_ports, 3}, + [29] = + {field_default_value, 2}, + {field_name, 0}, + [31] = + {field_condition, 1}, + {field_then_block, 2}, + [33] = + {field_interface_ports, 2}, {field_name, 1}, - {field_template_declaration_arguments, 2}, - [43] = - {field_outputs, 2}, - [44] = + [35] = {field_io_port_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [47] = + [38] = {field_declaration_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [50] = + [41] = + {field_content, 1}, + [42] = {field_is_global_path, 0}, {field_item, 1}, {field_item, 2, .inherited = true}, - [53] = + [45] = + {field_assign_left, 0}, + {field_assign_value, 2}, + [47] = {field_latency_specifier, 2}, {field_name, 1}, {field_type, 0}, - [56] = - {field_inputs, 2}, - {field_outputs, 3, .inherited = true}, - [58] = - {field_default_value, 2}, - {field_name, 0}, - [60] = - {field_interface_ports, 2}, - {field_name, 1}, - [62] = - {field_condition, 1}, - {field_then_block, 2}, - [64] = - {field_content, 1}, - [65] = - {field_assign_left, 0}, - {field_assign_value, 2}, - [67] = + [50] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [70] = + [53] = {field_left, 0}, {field_name, 2}, - [72] = + [55] = {field_item, 2}, - [73] = + [56] = + {field_outputs, 1, .inherited = true}, + [57] = + {field_inputs, 1}, + [58] = + {field_block, 3}, + {field_interface_ports, 2}, + {field_name, 1}, + [61] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_name, 3}, {field_type, 2}, - [77] = + [65] = {field_io_port_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [81] = + [69] = {field_declaration_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [85] = + [73] = {field_arg, 0}, - [86] = + [74] = {field_item, 2}, {field_item, 3, .inherited = true}, - [88] = + [76] = + {field_condition, 1}, + {field_else_block, 4}, + {field_then_block, 2}, + [79] = + {field_outputs, 1}, + [80] = + {field_inputs, 1}, + {field_outputs, 2, .inherited = true}, + [82] = + {field_outputs, 2, .inherited = true}, + [83] = + {field_inputs, 2}, + [84] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_latency_specifier, 4}, {field_name, 3}, {field_type, 2}, - [93] = - {field_condition, 1}, - {field_else_block, 4}, - {field_then_block, 2}, - [96] = + [89] = + {field_outputs, 2}, + [90] = + {field_inputs, 2}, + {field_outputs, 3, .inherited = true}, + [92] = {field_arg, 2}, {field_name, 0}, - [98] = - {field_item, 1}, - {field_item, 3}, - [100] = + [94] = {field_block, 6}, {field_for_decl, 1}, {field_from, 3}, {field_to, 5}, - [104] = + [98] = + {field_item, 1}, + {field_item, 3}, + [100] = {field_item, 1}, {field_item, 3}, {field_item, 4, .inherited = true}, - [107] = + [103] = {field_item, 1}, {field_item, 2, .inherited = true}, {field_item, 4}, - [110] = + [106] = {field_item, 1}, {field_item, 2, .inherited = true}, {field_item, 4}, @@ -1034,10 +1042,10 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [59] = 59, [60] = 60, [61] = 61, - [62] = 62, - [63] = 60, + [62] = 61, + [63] = 63, [64] = 64, - [65] = 65, + [65] = 64, [66] = 66, [67] = 67, [68] = 68, @@ -1054,7 +1062,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [79] = 79, [80] = 80, [81] = 81, - [82] = 69, + [82] = 82, [83] = 83, [84] = 84, [85] = 85, @@ -1073,16 +1081,16 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [98] = 98, [99] = 99, [100] = 100, - [101] = 99, + [101] = 101, [102] = 102, [103] = 103, [104] = 104, - [105] = 105, - [106] = 102, - [107] = 103, + [105] = 103, + [106] = 104, + [107] = 107, [108] = 108, [109] = 109, - [110] = 110, + [110] = 100, [111] = 111, [112] = 112, [113] = 113, @@ -1092,31 +1100,31 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [117] = 117, [118] = 118, [119] = 119, - [120] = 120, + [120] = 12, [121] = 13, - [122] = 122, - [123] = 14, - [124] = 124, + [122] = 16, + [123] = 15, + [124] = 11, [125] = 125, [126] = 126, [127] = 127, - [128] = 11, - [129] = 16, + [128] = 128, + [129] = 129, [130] = 130, [131] = 131, [132] = 132, [133] = 133, [134] = 134, - [135] = 12, + [135] = 135, [136] = 136, [137] = 137, - [138] = 30, + [138] = 138, [139] = 139, - [140] = 33, + [140] = 140, [141] = 141, - [142] = 21, + [142] = 142, [143] = 143, - [144] = 31, + [144] = 136, [145] = 145, [146] = 146, [147] = 147, @@ -1125,60 +1133,60 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [150] = 150, [151] = 151, [152] = 152, - [153] = 29, + [153] = 153, [154] = 154, [155] = 155, [156] = 156, - [157] = 157, + [157] = 145, [158] = 158, [159] = 159, [160] = 160, - [161] = 161, + [161] = 23, [162] = 162, [163] = 163, [164] = 164, [165] = 165, [166] = 166, - [167] = 167, - [168] = 168, - [169] = 27, - [170] = 170, + [167] = 24, + [168] = 25, + [169] = 26, + [170] = 27, [171] = 171, - [172] = 23, - [173] = 173, - [174] = 22, + [172] = 28, + [173] = 29, + [174] = 174, [175] = 175, - [176] = 150, + [176] = 18, [177] = 177, - [178] = 178, - [179] = 179, + [178] = 156, + [179] = 20, [180] = 180, - [181] = 20, + [181] = 181, [182] = 182, - [183] = 183, + [183] = 21, [184] = 184, [185] = 185, [186] = 186, [187] = 187, [188] = 188, [189] = 189, - [190] = 157, - [191] = 44, - [192] = 192, - [193] = 158, - [194] = 18, + [190] = 190, + [191] = 191, + [192] = 150, + [193] = 42, + [194] = 194, [195] = 195, - [196] = 196, - [197] = 197, - [198] = 180, - [199] = 199, - [200] = 200, - [201] = 165, + [196] = 154, + [197] = 151, + [198] = 198, + [199] = 153, + [200] = 152, + [201] = 201, [202] = 202, - [203] = 182, + [203] = 203, [204] = 204, - [205] = 156, - [206] = 183, + [205] = 205, + [206] = 206, [207] = 207, [208] = 208, [209] = 209, @@ -1190,7 +1198,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [215] = 215, [216] = 216, [217] = 217, - [218] = 214, + [218] = 215, [219] = 219, [220] = 220, [221] = 221, @@ -1218,9 +1226,9 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [243] = 243, [244] = 244, [245] = 245, - [246] = 243, + [246] = 246, [247] = 247, - [248] = 248, + [248] = 244, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -3152,17 +3160,17 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '-') ADVANCE(21); if (lookahead == '.') ADVANCE(34); if (lookahead == '/') ADVANCE(32); - if (lookahead == ':') ADVANCE(9); + if (lookahead == ':') ADVANCE(17); if (lookahead == ';') ADVANCE(40); - if (lookahead == '<') ADVANCE(11); - if (lookahead == '=') ADVANCE(15); - if (lookahead == '>') ADVANCE(13); + if (lookahead == '<') ADVANCE(9); + if (lookahead == '=') ADVANCE(13); + if (lookahead == '>') ADVANCE(11); if (lookahead == '[') ADVANCE(37); if (lookahead == ']') ADVANCE(38); if (lookahead == '^') ADVANCE(27); - if (lookahead == '{') ADVANCE(16); + if (lookahead == '{') ADVANCE(14); if (lookahead == '|') ADVANCE(25); - if (lookahead == '}') ADVANCE(17); + if (lookahead == '}') ADVANCE(15); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(0) @@ -3182,13 +3190,13 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '/') ADVANCE(3); if (lookahead == ':') ADVANCE(6); if (lookahead == ';') ADVANCE(40); - if (lookahead == '=') ADVANCE(14); - if (lookahead == '>') ADVANCE(12); + if (lookahead == '=') ADVANCE(12); + if (lookahead == '>') ADVANCE(10); if (lookahead == '[') ADVANCE(37); if (lookahead == '^') ADVANCE(27); - if (lookahead == '{') ADVANCE(16); + if (lookahead == '{') ADVANCE(14); if (lookahead == '|') ADVANCE(25); - if (lookahead == '}') ADVANCE(17); + if (lookahead == '}') ADVANCE(15); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(1) @@ -3210,15 +3218,15 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '/') ADVANCE(32); if (lookahead == ':') ADVANCE(6); if (lookahead == ';') ADVANCE(40); - if (lookahead == '<') ADVANCE(11); - if (lookahead == '=') ADVANCE(15); - if (lookahead == '>') ADVANCE(13); + if (lookahead == '<') ADVANCE(9); + if (lookahead == '=') ADVANCE(13); + if (lookahead == '>') ADVANCE(11); if (lookahead == '[') ADVANCE(37); if (lookahead == ']') ADVANCE(38); if (lookahead == '^') ADVANCE(27); - if (lookahead == '{') ADVANCE(16); + if (lookahead == '{') ADVANCE(14); if (lookahead == '|') ADVANCE(25); - if (lookahead == '}') ADVANCE(17); + if (lookahead == '}') ADVANCE(15); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(2) @@ -3247,38 +3255,38 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); case 9: - ACCEPT_TOKEN(anon_sym_COLON); - END_STATE(); - case 10: - ACCEPT_TOKEN(anon_sym_DASH_GT); - END_STATE(); - case 11: ACCEPT_TOKEN(anon_sym_LT); if (lookahead == '=') ADVANCE(30); END_STATE(); - case 12: + case 10: ACCEPT_TOKEN(anon_sym_GT); END_STATE(); - case 13: + case 11: ACCEPT_TOKEN(anon_sym_GT); if (lookahead == '=') ADVANCE(31); END_STATE(); - case 14: + case 12: ACCEPT_TOKEN(anon_sym_EQ); END_STATE(); - case 15: + case 13: ACCEPT_TOKEN(anon_sym_EQ); if (lookahead == '=') ADVANCE(28); END_STATE(); - case 16: + case 14: ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); - case 17: + case 15: ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); - case 18: + case 16: ACCEPT_TOKEN(anon_sym_DOT_DOT); END_STATE(); + case 17: + ACCEPT_TOKEN(anon_sym_COLON); + END_STATE(); + case 18: + ACCEPT_TOKEN(anon_sym_DASH_GT); + END_STATE(); case 19: ACCEPT_TOKEN(anon_sym_SQUOTE); END_STATE(); @@ -3287,7 +3295,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 21: ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '>') ADVANCE(10); + if (lookahead == '>') ADVANCE(18); END_STATE(); case 22: ACCEPT_TOKEN(anon_sym_STAR); @@ -3330,7 +3338,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 34: ACCEPT_TOKEN(anon_sym_DOT); - if (lookahead == '.') ADVANCE(18); + if (lookahead == '.') ADVANCE(16); END_STATE(); case 35: ACCEPT_TOKEN(anon_sym_LPAREN); @@ -3383,164 +3391,183 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (lookahead == 'e') ADVANCE(1); - if (lookahead == 'f') ADVANCE(2); - if (lookahead == 'g') ADVANCE(3); - if (lookahead == 'i') ADVANCE(4); - if (lookahead == 'm') ADVANCE(5); - if (lookahead == 'o') ADVANCE(6); - if (lookahead == 'r') ADVANCE(7); - if (lookahead == 's') ADVANCE(8); + if (lookahead == 'd') ADVANCE(1); + if (lookahead == 'e') ADVANCE(2); + if (lookahead == 'f') ADVANCE(3); + if (lookahead == 'g') ADVANCE(4); + if (lookahead == 'i') ADVANCE(5); + if (lookahead == 'm') ADVANCE(6); + if (lookahead == 'o') ADVANCE(7); + if (lookahead == 'r') ADVANCE(8); + if (lookahead == 's') ADVANCE(9); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(0) END_STATE(); case 1: - if (lookahead == 'l') ADVANCE(9); + if (lookahead == 'o') ADVANCE(10); END_STATE(); case 2: - if (lookahead == 'o') ADVANCE(10); + if (lookahead == 'l') ADVANCE(11); END_STATE(); case 3: - if (lookahead == 'e') ADVANCE(11); + if (lookahead == 'o') ADVANCE(12); END_STATE(); case 4: - if (lookahead == 'f') ADVANCE(12); - if (lookahead == 'n') ADVANCE(13); + if (lookahead == 'e') ADVANCE(13); END_STATE(); case 5: - if (lookahead == 'o') ADVANCE(14); + if (lookahead == 'f') ADVANCE(14); + if (lookahead == 'n') ADVANCE(15); END_STATE(); case 6: - if (lookahead == 'u') ADVANCE(15); + if (lookahead == 'o') ADVANCE(16); END_STATE(); case 7: - if (lookahead == 'e') ADVANCE(16); + if (lookahead == 'u') ADVANCE(17); END_STATE(); case 8: - if (lookahead == 't') ADVANCE(17); + if (lookahead == 'e') ADVANCE(18); END_STATE(); case 9: - if (lookahead == 's') ADVANCE(18); + if (lookahead == 't') ADVANCE(19); END_STATE(); case 10: - if (lookahead == 'r') ADVANCE(19); + if (lookahead == 'm') ADVANCE(20); END_STATE(); case 11: - if (lookahead == 'n') ADVANCE(20); + if (lookahead == 's') ADVANCE(21); END_STATE(); case 12: - ACCEPT_TOKEN(anon_sym_if); + if (lookahead == 'r') ADVANCE(22); END_STATE(); case 13: - ACCEPT_TOKEN(anon_sym_in); - if (lookahead == 'i') ADVANCE(21); - if (lookahead == 'p') ADVANCE(22); - if (lookahead == 't') ADVANCE(23); + if (lookahead == 'n') ADVANCE(23); END_STATE(); case 14: - if (lookahead == 'd') ADVANCE(24); + ACCEPT_TOKEN(anon_sym_if); END_STATE(); case 15: - if (lookahead == 't') ADVANCE(25); + ACCEPT_TOKEN(anon_sym_in); + if (lookahead == 'i') ADVANCE(24); + if (lookahead == 'p') ADVANCE(25); + if (lookahead == 't') ADVANCE(26); END_STATE(); case 16: - if (lookahead == 'g') ADVANCE(26); + if (lookahead == 'd') ADVANCE(27); END_STATE(); case 17: - if (lookahead == 'a') ADVANCE(27); + if (lookahead == 't') ADVANCE(28); END_STATE(); case 18: - if (lookahead == 'e') ADVANCE(28); + if (lookahead == 'g') ADVANCE(29); END_STATE(); case 19: - ACCEPT_TOKEN(anon_sym_for); + if (lookahead == 'a') ADVANCE(30); END_STATE(); case 20: - ACCEPT_TOKEN(anon_sym_gen); + if (lookahead == 'a') ADVANCE(31); END_STATE(); case 21: - if (lookahead == 't') ADVANCE(29); + if (lookahead == 'e') ADVANCE(32); END_STATE(); case 22: - if (lookahead == 'u') ADVANCE(30); + ACCEPT_TOKEN(anon_sym_for); END_STATE(); case 23: - if (lookahead == 'e') ADVANCE(31); + ACCEPT_TOKEN(anon_sym_gen); END_STATE(); case 24: - if (lookahead == 'u') ADVANCE(32); + if (lookahead == 't') ADVANCE(33); END_STATE(); case 25: - if (lookahead == 'p') ADVANCE(33); + if (lookahead == 'u') ADVANCE(34); END_STATE(); case 26: - ACCEPT_TOKEN(anon_sym_reg); + if (lookahead == 'e') ADVANCE(35); END_STATE(); case 27: - if (lookahead == 't') ADVANCE(34); + if (lookahead == 'u') ADVANCE(36); END_STATE(); case 28: - ACCEPT_TOKEN(anon_sym_else); + if (lookahead == 'p') ADVANCE(37); END_STATE(); case 29: - if (lookahead == 'i') ADVANCE(35); + ACCEPT_TOKEN(anon_sym_reg); END_STATE(); case 30: - if (lookahead == 't') ADVANCE(36); + if (lookahead == 't') ADVANCE(38); END_STATE(); case 31: - if (lookahead == 'r') ADVANCE(37); + if (lookahead == 'i') ADVANCE(39); END_STATE(); case 32: - if (lookahead == 'l') ADVANCE(38); + ACCEPT_TOKEN(anon_sym_else); END_STATE(); case 33: - if (lookahead == 'u') ADVANCE(39); + if (lookahead == 'i') ADVANCE(40); END_STATE(); case 34: - if (lookahead == 'e') ADVANCE(40); + if (lookahead == 't') ADVANCE(41); END_STATE(); case 35: - if (lookahead == 'a') ADVANCE(41); + if (lookahead == 'r') ADVANCE(42); END_STATE(); case 36: - ACCEPT_TOKEN(anon_sym_input); + if (lookahead == 'l') ADVANCE(43); END_STATE(); case 37: - if (lookahead == 'f') ADVANCE(42); + if (lookahead == 'u') ADVANCE(44); END_STATE(); case 38: - if (lookahead == 'e') ADVANCE(43); + if (lookahead == 'e') ADVANCE(45); END_STATE(); case 39: - if (lookahead == 't') ADVANCE(44); + if (lookahead == 'n') ADVANCE(46); END_STATE(); case 40: - ACCEPT_TOKEN(anon_sym_state); + if (lookahead == 'a') ADVANCE(47); END_STATE(); case 41: - if (lookahead == 'l') ADVANCE(45); + ACCEPT_TOKEN(anon_sym_input); END_STATE(); case 42: - if (lookahead == 'a') ADVANCE(46); + if (lookahead == 'f') ADVANCE(48); END_STATE(); case 43: - ACCEPT_TOKEN(anon_sym_module); + if (lookahead == 'e') ADVANCE(49); END_STATE(); case 44: - ACCEPT_TOKEN(anon_sym_output); + if (lookahead == 't') ADVANCE(50); END_STATE(); case 45: - ACCEPT_TOKEN(anon_sym_initial); + ACCEPT_TOKEN(anon_sym_state); END_STATE(); case 46: - if (lookahead == 'c') ADVANCE(47); + ACCEPT_TOKEN(anon_sym_domain); END_STATE(); case 47: - if (lookahead == 'e') ADVANCE(48); + if (lookahead == 'l') ADVANCE(51); END_STATE(); case 48: + if (lookahead == 'a') ADVANCE(52); + END_STATE(); + case 49: + ACCEPT_TOKEN(anon_sym_module); + END_STATE(); + case 50: + ACCEPT_TOKEN(anon_sym_output); + END_STATE(); + case 51: + ACCEPT_TOKEN(anon_sym_initial); + END_STATE(); + case 52: + if (lookahead == 'c') ADVANCE(53); + END_STATE(); + case 53: + if (lookahead == 'e') ADVANCE(54); + END_STATE(); + case 54: ACCEPT_TOKEN(anon_sym_interface); END_STATE(); default: @@ -3563,8 +3590,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [11] = {.lex_state = 2}, [12] = {.lex_state = 2}, [13] = {.lex_state = 2}, - [14] = {.lex_state = 2}, - [15] = {.lex_state = 1}, + [14] = {.lex_state = 1}, + [15] = {.lex_state = 2}, [16] = {.lex_state = 2}, [17] = {.lex_state = 2}, [18] = {.lex_state = 2}, @@ -3591,9 +3618,9 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [39] = {.lex_state = 2}, [40] = {.lex_state = 2}, [41] = {.lex_state = 2}, - [42] = {.lex_state = 2}, + [42] = {.lex_state = 1}, [43] = {.lex_state = 1}, - [44] = {.lex_state = 1}, + [44] = {.lex_state = 2}, [45] = {.lex_state = 2}, [46] = {.lex_state = 2}, [47] = {.lex_state = 2}, @@ -3607,11 +3634,11 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [55] = {.lex_state = 1}, [56] = {.lex_state = 2}, [57] = {.lex_state = 2}, - [58] = {.lex_state = 2}, + [58] = {.lex_state = 1}, [59] = {.lex_state = 1}, [60] = {.lex_state = 2}, [61] = {.lex_state = 2}, - [62] = {.lex_state = 1}, + [62] = {.lex_state = 2}, [63] = {.lex_state = 2}, [64] = {.lex_state = 1}, [65] = {.lex_state = 1}, @@ -3649,88 +3676,88 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [97] = {.lex_state = 0}, [98] = {.lex_state = 0}, [99] = {.lex_state = 1}, - [100] = {.lex_state = 0}, - [101] = {.lex_state = 1}, - [102] = {.lex_state = 1}, + [100] = {.lex_state = 1}, + [101] = {.lex_state = 0}, + [102] = {.lex_state = 0}, [103] = {.lex_state = 1}, - [104] = {.lex_state = 0}, - [105] = {.lex_state = 0}, + [104] = {.lex_state = 1}, + [105] = {.lex_state = 1}, [106] = {.lex_state = 1}, - [107] = {.lex_state = 1}, + [107] = {.lex_state = 0}, [108] = {.lex_state = 0}, [109] = {.lex_state = 0}, [110] = {.lex_state = 1}, - [111] = {.lex_state = 0}, + [111] = {.lex_state = 1}, [112] = {.lex_state = 0}, - [113] = {.lex_state = 0}, - [114] = {.lex_state = 1}, - [115] = {.lex_state = 1}, + [113] = {.lex_state = 1}, + [114] = {.lex_state = 0}, + [115] = {.lex_state = 0}, [116] = {.lex_state = 0}, [117] = {.lex_state = 0}, - [118] = {.lex_state = 1}, + [118] = {.lex_state = 0}, [119] = {.lex_state = 0}, - [120] = {.lex_state = 0}, + [120] = {.lex_state = 1}, [121] = {.lex_state = 1}, [122] = {.lex_state = 1}, [123] = {.lex_state = 1}, - [124] = {.lex_state = 0}, + [124] = {.lex_state = 1}, [125] = {.lex_state = 0}, - [126] = {.lex_state = 0}, - [127] = {.lex_state = 1}, + [126] = {.lex_state = 1}, + [127] = {.lex_state = 0}, [128] = {.lex_state = 1}, - [129] = {.lex_state = 1}, + [129] = {.lex_state = 0}, [130] = {.lex_state = 0}, [131] = {.lex_state = 1}, [132] = {.lex_state = 0}, [133] = {.lex_state = 0}, [134] = {.lex_state = 0}, [135] = {.lex_state = 1}, - [136] = {.lex_state = 1}, + [136] = {.lex_state = 0}, [137] = {.lex_state = 1}, - [138] = {.lex_state = 1}, + [138] = {.lex_state = 0}, [139] = {.lex_state = 0}, - [140] = {.lex_state = 1}, + [140] = {.lex_state = 0}, [141] = {.lex_state = 0}, - [142] = {.lex_state = 1}, + [142] = {.lex_state = 0}, [143] = {.lex_state = 0}, - [144] = {.lex_state = 1}, + [144] = {.lex_state = 0}, [145] = {.lex_state = 0}, [146] = {.lex_state = 0}, [147] = {.lex_state = 0}, [148] = {.lex_state = 0}, [149] = {.lex_state = 0}, [150] = {.lex_state = 1}, - [151] = {.lex_state = 0}, - [152] = {.lex_state = 0}, + [151] = {.lex_state = 1}, + [152] = {.lex_state = 1}, [153] = {.lex_state = 1}, [154] = {.lex_state = 1}, - [155] = {.lex_state = 0}, - [156] = {.lex_state = 0}, - [157] = {.lex_state = 1}, - [158] = {.lex_state = 1}, + [155] = {.lex_state = 1}, + [156] = {.lex_state = 1}, + [157] = {.lex_state = 0}, + [158] = {.lex_state = 0}, [159] = {.lex_state = 0}, [160] = {.lex_state = 0}, - [161] = {.lex_state = 0}, - [162] = {.lex_state = 1}, + [161] = {.lex_state = 1}, + [162] = {.lex_state = 0}, [163] = {.lex_state = 0}, [164] = {.lex_state = 0}, - [165] = {.lex_state = 1}, + [165] = {.lex_state = 0}, [166] = {.lex_state = 0}, - [167] = {.lex_state = 0}, - [168] = {.lex_state = 0}, + [167] = {.lex_state = 1}, + [168] = {.lex_state = 1}, [169] = {.lex_state = 1}, - [170] = {.lex_state = 0}, + [170] = {.lex_state = 1}, [171] = {.lex_state = 0}, [172] = {.lex_state = 1}, - [173] = {.lex_state = 0}, - [174] = {.lex_state = 1}, - [175] = {.lex_state = 1}, + [173] = {.lex_state = 1}, + [174] = {.lex_state = 0}, + [175] = {.lex_state = 0}, [176] = {.lex_state = 1}, [177] = {.lex_state = 1}, - [178] = {.lex_state = 0}, - [179] = {.lex_state = 0}, - [180] = {.lex_state = 0}, - [181] = {.lex_state = 1}, + [178] = {.lex_state = 1}, + [179] = {.lex_state = 1}, + [180] = {.lex_state = 1}, + [181] = {.lex_state = 0}, [182] = {.lex_state = 1}, [183] = {.lex_state = 1}, [184] = {.lex_state = 0}, @@ -3739,30 +3766,30 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [187] = {.lex_state = 0}, [188] = {.lex_state = 0}, [189] = {.lex_state = 0}, - [190] = {.lex_state = 1}, + [190] = {.lex_state = 0}, [191] = {.lex_state = 0}, - [192] = {.lex_state = 0}, - [193] = {.lex_state = 1}, - [194] = {.lex_state = 1}, + [192] = {.lex_state = 1}, + [193] = {.lex_state = 0}, + [194] = {.lex_state = 0}, [195] = {.lex_state = 0}, - [196] = {.lex_state = 0}, + [196] = {.lex_state = 1}, [197] = {.lex_state = 1}, [198] = {.lex_state = 0}, [199] = {.lex_state = 1}, - [200] = {.lex_state = 0}, - [201] = {.lex_state = 1}, + [200] = {.lex_state = 1}, + [201] = {.lex_state = 0}, [202] = {.lex_state = 0}, [203] = {.lex_state = 1}, - [204] = {.lex_state = 0}, - [205] = {.lex_state = 0}, - [206] = {.lex_state = 1}, + [204] = {.lex_state = 1}, + [205] = {.lex_state = 1}, + [206] = {.lex_state = 0}, [207] = {.lex_state = 0}, [208] = {.lex_state = 0}, [209] = {.lex_state = 0}, [210] = {.lex_state = 1}, - [211] = {.lex_state = 0}, + [211] = {.lex_state = 1}, [212] = {.lex_state = 0}, - [213] = {.lex_state = 1}, + [213] = {.lex_state = 0}, [214] = {.lex_state = 0}, [215] = {.lex_state = 0}, [216] = {.lex_state = 0}, @@ -3773,21 +3800,21 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [221] = {.lex_state = 0}, [222] = {.lex_state = 0}, [223] = {.lex_state = 1}, - [224] = {.lex_state = 1}, + [224] = {.lex_state = 0}, [225] = {.lex_state = 0}, [226] = {.lex_state = 0}, [227] = {.lex_state = 0}, [228] = {.lex_state = 0}, [229] = {.lex_state = 0}, [230] = {.lex_state = 0}, - [231] = {.lex_state = 0}, + [231] = {.lex_state = 1}, [232] = {.lex_state = 0}, [233] = {.lex_state = 0}, [234] = {.lex_state = 0}, - [235] = {.lex_state = 0}, + [235] = {.lex_state = 1}, [236] = {.lex_state = 0}, [237] = {.lex_state = 0}, - [238] = {.lex_state = 1}, + [238] = {.lex_state = 0}, [239] = {.lex_state = 0}, [240] = {.lex_state = 0}, [241] = {.lex_state = 0}, @@ -3805,14 +3832,11 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [ts_builtin_sym_end] = ACTIONS(1), [sym_identifier] = ACTIONS(1), [anon_sym_module] = ACTIONS(1), - [anon_sym_COLON] = ACTIONS(1), - [anon_sym_DASH_GT] = ACTIONS(1), [anon_sym_LT] = ACTIONS(1), [anon_sym_GT] = ACTIONS(1), [anon_sym_EQ] = ACTIONS(1), [anon_sym_LBRACE] = ACTIONS(1), [anon_sym_RBRACE] = ACTIONS(1), - [anon_sym_interface] = ACTIONS(1), [anon_sym_reg] = ACTIONS(1), [anon_sym_initial] = ACTIONS(1), [anon_sym_if] = ACTIONS(1), @@ -3820,6 +3844,10 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_for] = ACTIONS(1), [anon_sym_in] = ACTIONS(1), [anon_sym_DOT_DOT] = ACTIONS(1), + [anon_sym_domain] = ACTIONS(1), + [anon_sym_interface] = ACTIONS(1), + [anon_sym_COLON] = ACTIONS(1), + [anon_sym_DASH_GT] = ACTIONS(1), [anon_sym_input] = ACTIONS(1), [anon_sym_output] = ACTIONS(1), [anon_sym_state] = ACTIONS(1), @@ -3851,658 +3879,477 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(248), - [sym_module] = STATE(204), - [aux_sym__linebreak] = STATE(120), + [sym_source_file] = STATE(238), + [sym_module] = STATE(165), + [aux_sym__linebreak] = STATE(133), [ts_builtin_sym_end] = ACTIONS(5), [anon_sym_module] = ACTIONS(7), [anon_sym_LF] = ACTIONS(9), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, -}; - -static const uint16_t ts_small_parse_table[] = { - [0] = 26, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(15), 1, - anon_sym_RBRACE, - ACTIONS(17), 1, - anon_sym_interface, - ACTIONS(19), 1, - anon_sym_reg, - ACTIONS(21), 1, - anon_sym_initial, - ACTIONS(23), 1, - anon_sym_if, - ACTIONS(25), 1, - anon_sym_for, - ACTIONS(33), 1, - anon_sym_LPAREN, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(37), 1, - sym_number, - ACTIONS(39), 1, - anon_sym_LF, - STATE(43), 1, - sym_write_modifiers, - STATE(44), 1, - aux_sym__linebreak, - STATE(48), 1, - sym_template_global, - STATE(84), 1, - aux_sym_write_modifiers_repeat1, - STATE(112), 1, - sym_assign_to, - STATE(130), 1, - sym_assign_left_side, - STATE(145), 1, - sym_declaration, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(27), 2, - anon_sym_input, - anon_sym_output, - ACTIONS(29), 2, - anon_sym_state, - anon_sym_gen, - STATE(212), 2, - sym__type, - sym_array_type, - STATE(200), 5, - sym_block, - sym_interface_statement, - sym_decl_assign_statement, - sym_if_statement, - sym_for_statement, - ACTIONS(31), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(45), 7, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - [99] = 26, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(17), 1, - anon_sym_interface, - ACTIONS(19), 1, - anon_sym_reg, - ACTIONS(21), 1, - anon_sym_initial, - ACTIONS(23), 1, - anon_sym_if, - ACTIONS(25), 1, - anon_sym_for, - ACTIONS(33), 1, - anon_sym_LPAREN, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(37), 1, - sym_number, - ACTIONS(39), 1, - anon_sym_LF, - ACTIONS(41), 1, - anon_sym_RBRACE, - STATE(43), 1, - sym_write_modifiers, - STATE(44), 1, - aux_sym__linebreak, - STATE(48), 1, - sym_template_global, - STATE(84), 1, - aux_sym_write_modifiers_repeat1, - STATE(112), 1, - sym_assign_to, - STATE(145), 1, - sym_declaration, - STATE(215), 1, - sym_assign_left_side, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(27), 2, - anon_sym_input, - anon_sym_output, - ACTIONS(29), 2, - anon_sym_state, - anon_sym_gen, - STATE(212), 2, - sym__type, - sym_array_type, - STATE(241), 5, - sym_block, - sym_interface_statement, - sym_decl_assign_statement, - sym_if_statement, - sym_for_statement, - ACTIONS(31), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(45), 7, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - [198] = 26, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(17), 1, - anon_sym_interface, - ACTIONS(19), 1, - anon_sym_reg, - ACTIONS(21), 1, - anon_sym_initial, - ACTIONS(23), 1, - anon_sym_if, - ACTIONS(25), 1, - anon_sym_for, - ACTIONS(33), 1, - anon_sym_LPAREN, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(37), 1, - sym_number, - ACTIONS(39), 1, - anon_sym_LF, - ACTIONS(43), 1, - anon_sym_RBRACE, - STATE(43), 1, - sym_write_modifiers, - STATE(44), 1, - aux_sym__linebreak, - STATE(48), 1, - sym_template_global, - STATE(84), 1, - aux_sym_write_modifiers_repeat1, - STATE(112), 1, - sym_assign_to, - STATE(145), 1, - sym_declaration, - STATE(215), 1, - sym_assign_left_side, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(27), 2, - anon_sym_input, - anon_sym_output, - ACTIONS(29), 2, - anon_sym_state, - anon_sym_gen, - STATE(212), 2, - sym__type, - sym_array_type, - STATE(241), 5, - sym_block, - sym_interface_statement, - sym_decl_assign_statement, - sym_if_statement, - sym_for_statement, - ACTIONS(31), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(45), 7, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - [297] = 26, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(17), 1, - anon_sym_interface, - ACTIONS(19), 1, - anon_sym_reg, - ACTIONS(21), 1, - anon_sym_initial, - ACTIONS(23), 1, - anon_sym_if, - ACTIONS(25), 1, - anon_sym_for, - ACTIONS(33), 1, - anon_sym_LPAREN, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(37), 1, - sym_number, - ACTIONS(39), 1, - anon_sym_LF, - ACTIONS(45), 1, - anon_sym_RBRACE, - STATE(43), 1, - sym_write_modifiers, - STATE(44), 1, - aux_sym__linebreak, - STATE(48), 1, - sym_template_global, - STATE(84), 1, - aux_sym_write_modifiers_repeat1, - STATE(112), 1, - sym_assign_to, - STATE(145), 1, - sym_declaration, - STATE(215), 1, - sym_assign_left_side, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(27), 2, - anon_sym_input, - anon_sym_output, - ACTIONS(29), 2, - anon_sym_state, - anon_sym_gen, - STATE(212), 2, - sym__type, - sym_array_type, - STATE(241), 5, - sym_block, - sym_interface_statement, - sym_decl_assign_statement, - sym_if_statement, - sym_for_statement, - ACTIONS(31), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(45), 7, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - [396] = 26, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(17), 1, - anon_sym_interface, - ACTIONS(19), 1, - anon_sym_reg, - ACTIONS(21), 1, - anon_sym_initial, - ACTIONS(23), 1, - anon_sym_if, - ACTIONS(25), 1, - anon_sym_for, - ACTIONS(33), 1, - anon_sym_LPAREN, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(37), 1, - sym_number, - ACTIONS(39), 1, - anon_sym_LF, - ACTIONS(47), 1, - anon_sym_RBRACE, - STATE(43), 1, - sym_write_modifiers, - STATE(44), 1, - aux_sym__linebreak, - STATE(48), 1, - sym_template_global, - STATE(84), 1, - aux_sym_write_modifiers_repeat1, - STATE(112), 1, - sym_assign_to, - STATE(145), 1, - sym_declaration, - STATE(215), 1, - sym_assign_left_side, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(27), 2, - anon_sym_input, - anon_sym_output, - ACTIONS(29), 2, - anon_sym_state, - anon_sym_gen, - STATE(212), 2, - sym__type, - sym_array_type, - STATE(241), 5, - sym_block, - sym_interface_statement, - sym_decl_assign_statement, - sym_if_statement, - sym_for_statement, - ACTIONS(31), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(45), 7, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - [495] = 26, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(17), 1, - anon_sym_interface, - ACTIONS(19), 1, - anon_sym_reg, - ACTIONS(21), 1, - anon_sym_initial, - ACTIONS(23), 1, - anon_sym_if, - ACTIONS(25), 1, - anon_sym_for, - ACTIONS(33), 1, - anon_sym_LPAREN, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(37), 1, - sym_number, - ACTIONS(39), 1, - anon_sym_LF, - ACTIONS(49), 1, - anon_sym_RBRACE, - STATE(43), 1, - sym_write_modifiers, - STATE(44), 1, - aux_sym__linebreak, - STATE(48), 1, - sym_template_global, - STATE(84), 1, - aux_sym_write_modifiers_repeat1, - STATE(112), 1, - sym_assign_to, - STATE(145), 1, - sym_declaration, - STATE(215), 1, - sym_assign_left_side, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(27), 2, - anon_sym_input, - anon_sym_output, - ACTIONS(29), 2, - anon_sym_state, - anon_sym_gen, - STATE(212), 2, - sym__type, - sym_array_type, - STATE(241), 5, - sym_block, - sym_interface_statement, - sym_decl_assign_statement, - sym_if_statement, - sym_for_statement, - ACTIONS(31), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(45), 7, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - [594] = 26, + [2] = { + [sym_block] = STATE(234), + [sym_decl_assign_statement] = STATE(234), + [sym_assign_left_side] = STATE(222), + [sym_assign_to] = STATE(114), + [sym_write_modifiers] = STATE(43), + [sym_if_statement] = STATE(234), + [sym_for_statement] = STATE(234), + [sym_domain_statement] = STATE(234), + [sym_interface_statement] = STATE(234), + [sym_declaration] = STATE(171), + [sym__type] = STATE(209), + [sym_array_type] = STATE(209), + [sym__expression] = STATE(47), + [sym_unary_op] = STATE(47), + [sym_binary_op] = STATE(47), + [sym_array_op] = STATE(47), + [sym_func_call] = STATE(47), + [sym_field_access] = STATE(47), + [sym_parenthesis_expression] = STATE(47), + [sym_template_global] = STATE(49), + [aux_sym__linebreak] = STATE(42), + [aux_sym_write_modifiers_repeat1] = STATE(84), + [sym_identifier] = ACTIONS(11), + [anon_sym_LBRACE] = ACTIONS(13), + [anon_sym_RBRACE] = ACTIONS(15), + [anon_sym_reg] = ACTIONS(17), + [anon_sym_initial] = ACTIONS(19), + [anon_sym_if] = ACTIONS(21), + [anon_sym_for] = ACTIONS(23), + [anon_sym_domain] = ACTIONS(25), + [anon_sym_interface] = ACTIONS(27), + [anon_sym_input] = ACTIONS(29), + [anon_sym_output] = ACTIONS(29), + [anon_sym_state] = ACTIONS(31), + [anon_sym_gen] = ACTIONS(31), + [anon_sym_PLUS] = ACTIONS(33), + [anon_sym_DASH] = ACTIONS(33), + [anon_sym_STAR] = ACTIONS(33), + [anon_sym_BANG] = ACTIONS(33), + [anon_sym_PIPE] = ACTIONS(33), + [anon_sym_AMP] = ACTIONS(33), + [anon_sym_CARET] = ACTIONS(33), + [anon_sym_LPAREN] = ACTIONS(35), + [anon_sym_COLON_COLON] = ACTIONS(37), + [sym_number] = ACTIONS(39), + [anon_sym_LF] = ACTIONS(41), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), + }, + [3] = { + [sym_block] = STATE(234), + [sym_decl_assign_statement] = STATE(234), + [sym_assign_left_side] = STATE(222), + [sym_assign_to] = STATE(114), + [sym_write_modifiers] = STATE(43), + [sym_if_statement] = STATE(234), + [sym_for_statement] = STATE(234), + [sym_domain_statement] = STATE(234), + [sym_interface_statement] = STATE(234), + [sym_declaration] = STATE(171), + [sym__type] = STATE(209), + [sym_array_type] = STATE(209), + [sym__expression] = STATE(47), + [sym_unary_op] = STATE(47), + [sym_binary_op] = STATE(47), + [sym_array_op] = STATE(47), + [sym_func_call] = STATE(47), + [sym_field_access] = STATE(47), + [sym_parenthesis_expression] = STATE(47), + [sym_template_global] = STATE(49), + [aux_sym__linebreak] = STATE(42), + [aux_sym_write_modifiers_repeat1] = STATE(84), + [sym_identifier] = ACTIONS(11), + [anon_sym_LBRACE] = ACTIONS(13), + [anon_sym_RBRACE] = ACTIONS(43), + [anon_sym_reg] = ACTIONS(17), + [anon_sym_initial] = ACTIONS(19), + [anon_sym_if] = ACTIONS(21), + [anon_sym_for] = ACTIONS(23), + [anon_sym_domain] = ACTIONS(25), + [anon_sym_interface] = ACTIONS(27), + [anon_sym_input] = ACTIONS(29), + [anon_sym_output] = ACTIONS(29), + [anon_sym_state] = ACTIONS(31), + [anon_sym_gen] = ACTIONS(31), + [anon_sym_PLUS] = ACTIONS(33), + [anon_sym_DASH] = ACTIONS(33), + [anon_sym_STAR] = ACTIONS(33), + [anon_sym_BANG] = ACTIONS(33), + [anon_sym_PIPE] = ACTIONS(33), + [anon_sym_AMP] = ACTIONS(33), + [anon_sym_CARET] = ACTIONS(33), + [anon_sym_LPAREN] = ACTIONS(35), + [anon_sym_COLON_COLON] = ACTIONS(37), + [sym_number] = ACTIONS(39), + [anon_sym_LF] = ACTIONS(41), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), + }, + [4] = { + [sym_block] = STATE(234), + [sym_decl_assign_statement] = STATE(234), + [sym_assign_left_side] = STATE(222), + [sym_assign_to] = STATE(114), + [sym_write_modifiers] = STATE(43), + [sym_if_statement] = STATE(234), + [sym_for_statement] = STATE(234), + [sym_domain_statement] = STATE(234), + [sym_interface_statement] = STATE(234), + [sym_declaration] = STATE(171), + [sym__type] = STATE(209), + [sym_array_type] = STATE(209), + [sym__expression] = STATE(47), + [sym_unary_op] = STATE(47), + [sym_binary_op] = STATE(47), + [sym_array_op] = STATE(47), + [sym_func_call] = STATE(47), + [sym_field_access] = STATE(47), + [sym_parenthesis_expression] = STATE(47), + [sym_template_global] = STATE(49), + [aux_sym__linebreak] = STATE(42), + [aux_sym_write_modifiers_repeat1] = STATE(84), + [sym_identifier] = ACTIONS(11), + [anon_sym_LBRACE] = ACTIONS(13), + [anon_sym_RBRACE] = ACTIONS(45), + [anon_sym_reg] = ACTIONS(17), + [anon_sym_initial] = ACTIONS(19), + [anon_sym_if] = ACTIONS(21), + [anon_sym_for] = ACTIONS(23), + [anon_sym_domain] = ACTIONS(25), + [anon_sym_interface] = ACTIONS(27), + [anon_sym_input] = ACTIONS(29), + [anon_sym_output] = ACTIONS(29), + [anon_sym_state] = ACTIONS(31), + [anon_sym_gen] = ACTIONS(31), + [anon_sym_PLUS] = ACTIONS(33), + [anon_sym_DASH] = ACTIONS(33), + [anon_sym_STAR] = ACTIONS(33), + [anon_sym_BANG] = ACTIONS(33), + [anon_sym_PIPE] = ACTIONS(33), + [anon_sym_AMP] = ACTIONS(33), + [anon_sym_CARET] = ACTIONS(33), + [anon_sym_LPAREN] = ACTIONS(35), + [anon_sym_COLON_COLON] = ACTIONS(37), + [sym_number] = ACTIONS(39), + [anon_sym_LF] = ACTIONS(41), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), + }, + [5] = { + [sym_block] = STATE(234), + [sym_decl_assign_statement] = STATE(234), + [sym_assign_left_side] = STATE(222), + [sym_assign_to] = STATE(114), + [sym_write_modifiers] = STATE(43), + [sym_if_statement] = STATE(234), + [sym_for_statement] = STATE(234), + [sym_domain_statement] = STATE(234), + [sym_interface_statement] = STATE(234), + [sym_declaration] = STATE(171), + [sym__type] = STATE(209), + [sym_array_type] = STATE(209), + [sym__expression] = STATE(47), + [sym_unary_op] = STATE(47), + [sym_binary_op] = STATE(47), + [sym_array_op] = STATE(47), + [sym_func_call] = STATE(47), + [sym_field_access] = STATE(47), + [sym_parenthesis_expression] = STATE(47), + [sym_template_global] = STATE(49), + [aux_sym__linebreak] = STATE(42), + [aux_sym_write_modifiers_repeat1] = STATE(84), + [sym_identifier] = ACTIONS(11), + [anon_sym_LBRACE] = ACTIONS(13), + [anon_sym_RBRACE] = ACTIONS(47), + [anon_sym_reg] = ACTIONS(17), + [anon_sym_initial] = ACTIONS(19), + [anon_sym_if] = ACTIONS(21), + [anon_sym_for] = ACTIONS(23), + [anon_sym_domain] = ACTIONS(25), + [anon_sym_interface] = ACTIONS(27), + [anon_sym_input] = ACTIONS(29), + [anon_sym_output] = ACTIONS(29), + [anon_sym_state] = ACTIONS(31), + [anon_sym_gen] = ACTIONS(31), + [anon_sym_PLUS] = ACTIONS(33), + [anon_sym_DASH] = ACTIONS(33), + [anon_sym_STAR] = ACTIONS(33), + [anon_sym_BANG] = ACTIONS(33), + [anon_sym_PIPE] = ACTIONS(33), + [anon_sym_AMP] = ACTIONS(33), + [anon_sym_CARET] = ACTIONS(33), + [anon_sym_LPAREN] = ACTIONS(35), + [anon_sym_COLON_COLON] = ACTIONS(37), + [sym_number] = ACTIONS(39), + [anon_sym_LF] = ACTIONS(41), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), + }, + [6] = { + [sym_block] = STATE(234), + [sym_decl_assign_statement] = STATE(234), + [sym_assign_left_side] = STATE(222), + [sym_assign_to] = STATE(114), + [sym_write_modifiers] = STATE(43), + [sym_if_statement] = STATE(234), + [sym_for_statement] = STATE(234), + [sym_domain_statement] = STATE(234), + [sym_interface_statement] = STATE(234), + [sym_declaration] = STATE(171), + [sym__type] = STATE(209), + [sym_array_type] = STATE(209), + [sym__expression] = STATE(47), + [sym_unary_op] = STATE(47), + [sym_binary_op] = STATE(47), + [sym_array_op] = STATE(47), + [sym_func_call] = STATE(47), + [sym_field_access] = STATE(47), + [sym_parenthesis_expression] = STATE(47), + [sym_template_global] = STATE(49), + [aux_sym__linebreak] = STATE(42), + [aux_sym_write_modifiers_repeat1] = STATE(84), + [sym_identifier] = ACTIONS(11), + [anon_sym_LBRACE] = ACTIONS(13), + [anon_sym_RBRACE] = ACTIONS(49), + [anon_sym_reg] = ACTIONS(17), + [anon_sym_initial] = ACTIONS(19), + [anon_sym_if] = ACTIONS(21), + [anon_sym_for] = ACTIONS(23), + [anon_sym_domain] = ACTIONS(25), + [anon_sym_interface] = ACTIONS(27), + [anon_sym_input] = ACTIONS(29), + [anon_sym_output] = ACTIONS(29), + [anon_sym_state] = ACTIONS(31), + [anon_sym_gen] = ACTIONS(31), + [anon_sym_PLUS] = ACTIONS(33), + [anon_sym_DASH] = ACTIONS(33), + [anon_sym_STAR] = ACTIONS(33), + [anon_sym_BANG] = ACTIONS(33), + [anon_sym_PIPE] = ACTIONS(33), + [anon_sym_AMP] = ACTIONS(33), + [anon_sym_CARET] = ACTIONS(33), + [anon_sym_LPAREN] = ACTIONS(35), + [anon_sym_COLON_COLON] = ACTIONS(37), + [sym_number] = ACTIONS(39), + [anon_sym_LF] = ACTIONS(41), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), + }, + [7] = { + [sym_block] = STATE(181), + [sym_decl_assign_statement] = STATE(181), + [sym_assign_left_side] = STATE(129), + [sym_assign_to] = STATE(114), + [sym_write_modifiers] = STATE(43), + [sym_if_statement] = STATE(181), + [sym_for_statement] = STATE(181), + [sym_domain_statement] = STATE(181), + [sym_interface_statement] = STATE(181), + [sym_declaration] = STATE(171), + [sym__type] = STATE(209), + [sym_array_type] = STATE(209), + [sym__expression] = STATE(47), + [sym_unary_op] = STATE(47), + [sym_binary_op] = STATE(47), + [sym_array_op] = STATE(47), + [sym_func_call] = STATE(47), + [sym_field_access] = STATE(47), + [sym_parenthesis_expression] = STATE(47), + [sym_template_global] = STATE(49), + [aux_sym__linebreak] = STATE(9), + [aux_sym_write_modifiers_repeat1] = STATE(84), + [sym_identifier] = ACTIONS(11), + [anon_sym_LBRACE] = ACTIONS(13), + [anon_sym_RBRACE] = ACTIONS(51), + [anon_sym_reg] = ACTIONS(17), + [anon_sym_initial] = ACTIONS(19), + [anon_sym_if] = ACTIONS(21), + [anon_sym_for] = ACTIONS(23), + [anon_sym_domain] = ACTIONS(25), + [anon_sym_interface] = ACTIONS(27), + [anon_sym_input] = ACTIONS(29), + [anon_sym_output] = ACTIONS(29), + [anon_sym_state] = ACTIONS(31), + [anon_sym_gen] = ACTIONS(31), + [anon_sym_PLUS] = ACTIONS(33), + [anon_sym_DASH] = ACTIONS(33), + [anon_sym_STAR] = ACTIONS(33), + [anon_sym_BANG] = ACTIONS(33), + [anon_sym_PIPE] = ACTIONS(33), + [anon_sym_AMP] = ACTIONS(33), + [anon_sym_CARET] = ACTIONS(33), + [anon_sym_LPAREN] = ACTIONS(35), + [anon_sym_COLON_COLON] = ACTIONS(37), + [sym_number] = ACTIONS(39), + [anon_sym_LF] = ACTIONS(53), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), + }, + [8] = { + [sym_block] = STATE(234), + [sym_decl_assign_statement] = STATE(234), + [sym_assign_left_side] = STATE(222), + [sym_assign_to] = STATE(114), + [sym_write_modifiers] = STATE(43), + [sym_if_statement] = STATE(234), + [sym_for_statement] = STATE(234), + [sym_domain_statement] = STATE(234), + [sym_interface_statement] = STATE(234), + [sym_declaration] = STATE(171), + [sym__type] = STATE(209), + [sym_array_type] = STATE(209), + [sym__expression] = STATE(47), + [sym_unary_op] = STATE(47), + [sym_binary_op] = STATE(47), + [sym_array_op] = STATE(47), + [sym_func_call] = STATE(47), + [sym_field_access] = STATE(47), + [sym_parenthesis_expression] = STATE(47), + [sym_template_global] = STATE(49), + [aux_sym__linebreak] = STATE(42), + [aux_sym_write_modifiers_repeat1] = STATE(84), + [sym_identifier] = ACTIONS(11), + [anon_sym_LBRACE] = ACTIONS(13), + [anon_sym_RBRACE] = ACTIONS(55), + [anon_sym_reg] = ACTIONS(17), + [anon_sym_initial] = ACTIONS(19), + [anon_sym_if] = ACTIONS(21), + [anon_sym_for] = ACTIONS(23), + [anon_sym_domain] = ACTIONS(25), + [anon_sym_interface] = ACTIONS(27), + [anon_sym_input] = ACTIONS(29), + [anon_sym_output] = ACTIONS(29), + [anon_sym_state] = ACTIONS(31), + [anon_sym_gen] = ACTIONS(31), + [anon_sym_PLUS] = ACTIONS(33), + [anon_sym_DASH] = ACTIONS(33), + [anon_sym_STAR] = ACTIONS(33), + [anon_sym_BANG] = ACTIONS(33), + [anon_sym_PIPE] = ACTIONS(33), + [anon_sym_AMP] = ACTIONS(33), + [anon_sym_CARET] = ACTIONS(33), + [anon_sym_LPAREN] = ACTIONS(35), + [anon_sym_COLON_COLON] = ACTIONS(37), + [sym_number] = ACTIONS(39), + [anon_sym_LF] = ACTIONS(41), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), + }, + [9] = { + [sym_block] = STATE(174), + [sym_decl_assign_statement] = STATE(174), + [sym_assign_left_side] = STATE(134), + [sym_assign_to] = STATE(114), + [sym_write_modifiers] = STATE(43), + [sym_if_statement] = STATE(174), + [sym_for_statement] = STATE(174), + [sym_domain_statement] = STATE(174), + [sym_interface_statement] = STATE(174), + [sym_declaration] = STATE(171), + [sym__type] = STATE(209), + [sym_array_type] = STATE(209), + [sym__expression] = STATE(47), + [sym_unary_op] = STATE(47), + [sym_binary_op] = STATE(47), + [sym_array_op] = STATE(47), + [sym_func_call] = STATE(47), + [sym_field_access] = STATE(47), + [sym_parenthesis_expression] = STATE(47), + [sym_template_global] = STATE(49), + [aux_sym__linebreak] = STATE(42), + [aux_sym_write_modifiers_repeat1] = STATE(84), + [sym_identifier] = ACTIONS(11), + [anon_sym_LBRACE] = ACTIONS(13), + [anon_sym_RBRACE] = ACTIONS(57), + [anon_sym_reg] = ACTIONS(17), + [anon_sym_initial] = ACTIONS(19), + [anon_sym_if] = ACTIONS(21), + [anon_sym_for] = ACTIONS(23), + [anon_sym_domain] = ACTIONS(25), + [anon_sym_interface] = ACTIONS(27), + [anon_sym_input] = ACTIONS(29), + [anon_sym_output] = ACTIONS(29), + [anon_sym_state] = ACTIONS(31), + [anon_sym_gen] = ACTIONS(31), + [anon_sym_PLUS] = ACTIONS(33), + [anon_sym_DASH] = ACTIONS(33), + [anon_sym_STAR] = ACTIONS(33), + [anon_sym_BANG] = ACTIONS(33), + [anon_sym_PIPE] = ACTIONS(33), + [anon_sym_AMP] = ACTIONS(33), + [anon_sym_CARET] = ACTIONS(33), + [anon_sym_LPAREN] = ACTIONS(35), + [anon_sym_COLON_COLON] = ACTIONS(37), + [sym_number] = ACTIONS(39), + [anon_sym_LF] = ACTIONS(41), + [sym_single_line_comment] = ACTIONS(3), + [sym_multi_line_comment] = ACTIONS(3), + }, +}; + +static const uint16_t ts_small_parse_table[] = { + [0] = 26, ACTIONS(11), 1, sym_identifier, ACTIONS(13), 1, anon_sym_LBRACE, ACTIONS(17), 1, - anon_sym_interface, - ACTIONS(19), 1, anon_sym_reg, - ACTIONS(21), 1, - anon_sym_initial, - ACTIONS(23), 1, - anon_sym_if, - ACTIONS(25), 1, - anon_sym_for, - ACTIONS(33), 1, - anon_sym_LPAREN, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(37), 1, - sym_number, - ACTIONS(39), 1, - anon_sym_LF, - ACTIONS(51), 1, - anon_sym_RBRACE, - STATE(43), 1, - sym_write_modifiers, - STATE(44), 1, - aux_sym__linebreak, - STATE(48), 1, - sym_template_global, - STATE(84), 1, - aux_sym_write_modifiers_repeat1, - STATE(112), 1, - sym_assign_to, - STATE(145), 1, - sym_declaration, - STATE(215), 1, - sym_assign_left_side, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(27), 2, - anon_sym_input, - anon_sym_output, - ACTIONS(29), 2, - anon_sym_state, - anon_sym_gen, - STATE(212), 2, - sym__type, - sym_array_type, - STATE(241), 5, - sym_block, - sym_interface_statement, - sym_decl_assign_statement, - sym_if_statement, - sym_for_statement, - ACTIONS(31), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(45), 7, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - [693] = 26, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(17), 1, - anon_sym_interface, ACTIONS(19), 1, - anon_sym_reg, - ACTIONS(21), 1, anon_sym_initial, - ACTIONS(23), 1, - anon_sym_if, - ACTIONS(25), 1, - anon_sym_for, - ACTIONS(33), 1, - anon_sym_LPAREN, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(37), 1, - sym_number, - ACTIONS(53), 1, - anon_sym_RBRACE, - ACTIONS(55), 1, - anon_sym_LF, - STATE(2), 1, - aux_sym__linebreak, - STATE(43), 1, - sym_write_modifiers, - STATE(48), 1, - sym_template_global, - STATE(84), 1, - aux_sym_write_modifiers_repeat1, - STATE(112), 1, - sym_assign_to, - STATE(134), 1, - sym_assign_left_side, - STATE(145), 1, - sym_declaration, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(27), 2, - anon_sym_input, - anon_sym_output, - ACTIONS(29), 2, - anon_sym_state, - anon_sym_gen, - STATE(212), 2, - sym__type, - sym_array_type, - STATE(147), 5, - sym_block, - sym_interface_statement, - sym_decl_assign_statement, - sym_if_statement, - sym_for_statement, - ACTIONS(31), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(45), 7, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - [792] = 25, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(17), 1, - anon_sym_interface, - ACTIONS(19), 1, - anon_sym_reg, ACTIONS(21), 1, - anon_sym_initial, - ACTIONS(23), 1, anon_sym_if, - ACTIONS(25), 1, + ACTIONS(23), 1, anon_sym_for, - ACTIONS(33), 1, - anon_sym_LPAREN, + ACTIONS(25), 1, + anon_sym_domain, + ACTIONS(27), 1, + anon_sym_interface, ACTIONS(35), 1, - anon_sym_COLON_COLON, + anon_sym_LPAREN, ACTIONS(37), 1, - sym_number, + anon_sym_COLON_COLON, ACTIONS(39), 1, + sym_number, + ACTIONS(41), 1, anon_sym_LF, + STATE(42), 1, + aux_sym__linebreak, STATE(43), 1, sym_write_modifiers, - STATE(44), 1, - aux_sym__linebreak, - STATE(48), 1, + STATE(49), 1, sym_template_global, STATE(84), 1, aux_sym_write_modifiers_repeat1, - STATE(112), 1, + STATE(114), 1, sym_assign_to, - STATE(145), 1, + STATE(171), 1, sym_declaration, - STATE(215), 1, + STATE(222), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(27), 2, + ACTIONS(29), 2, anon_sym_input, anon_sym_output, - ACTIONS(29), 2, + ACTIONS(31), 2, anon_sym_state, anon_sym_gen, - STATE(212), 2, + STATE(209), 2, sym__type, sym_array_type, - STATE(241), 5, + STATE(234), 6, sym_block, - sym_interface_statement, sym_decl_assign_statement, sym_if_statement, sym_for_statement, - ACTIONS(31), 7, + sym_domain_statement, + sym_interface_statement, + ACTIONS(33), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4510,7 +4357,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(45), 7, + STATE(47), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4518,15 +4365,15 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [888] = 5, - ACTIONS(61), 1, + [100] = 5, + ACTIONS(63), 1, anon_sym_COLON_COLON, - STATE(12), 1, + STATE(16), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(57), 8, + ACTIONS(59), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4535,11 +4382,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(59), 21, - anon_sym_DASH_GT, + ACTIONS(61), 21, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4557,15 +4404,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [932] = 5, - ACTIONS(67), 1, + [144] = 5, + ACTIONS(69), 1, anon_sym_COLON_COLON, STATE(12), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(63), 8, + ACTIONS(65), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4574,50 +4421,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(65), 21, - anon_sym_DASH_GT, + ACTIONS(67), 21, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_LF, - [976] = 5, - ACTIONS(61), 1, - anon_sym_COLON_COLON, - STATE(16), 1, - aux_sym_template_global_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(70), 8, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(72), 21, anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DOT_DOT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4635,15 +4443,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1020] = 5, - ACTIONS(61), 1, + [188] = 5, + ACTIONS(63), 1, anon_sym_COLON_COLON, - STATE(11), 1, + STATE(12), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 8, + ACTIONS(72), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4652,11 +4460,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(76), 21, - anon_sym_DASH_GT, + ACTIONS(74), 21, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4674,42 +4482,42 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1064] = 17, + [232] = 17, ACTIONS(11), 1, sym_identifier, - ACTIONS(19), 1, + ACTIONS(17), 1, anon_sym_reg, - ACTIONS(21), 1, + ACTIONS(19), 1, anon_sym_initial, - ACTIONS(33), 1, - anon_sym_LPAREN, ACTIONS(35), 1, - anon_sym_COLON_COLON, + anon_sym_LPAREN, ACTIONS(37), 1, + anon_sym_COLON_COLON, + ACTIONS(39), 1, sym_number, STATE(43), 1, sym_write_modifiers, - STATE(48), 1, + STATE(49), 1, sym_template_global, STATE(84), 1, aux_sym_write_modifiers_repeat1, - STATE(141), 1, + STATE(143), 1, sym_assign_to, - STATE(145), 1, + STATE(171), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(27), 2, + ACTIONS(29), 2, anon_sym_input, anon_sym_output, - ACTIONS(29), 2, + ACTIONS(31), 2, anon_sym_state, anon_sym_gen, - STATE(212), 2, + STATE(209), 2, sym__type, sym_array_type, - ACTIONS(31), 7, + ACTIONS(33), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4717,7 +4525,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(45), 7, + STATE(47), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4725,15 +4533,54 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [1132] = 5, - ACTIONS(61), 1, + [300] = 5, + ACTIONS(63), 1, + anon_sym_COLON_COLON, + STATE(13), 1, + aux_sym_template_global_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(76), 8, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(78), 21, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, + anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_LF, + [344] = 5, + ACTIONS(63), 1, anon_sym_COLON_COLON, STATE(12), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 8, + ACTIONS(80), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4742,11 +4589,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(80), 21, - anon_sym_DASH_GT, + ACTIONS(82), 21, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4764,34 +4611,37 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1176] = 8, - ACTIONS(86), 1, + [388] = 10, + ACTIONS(90), 1, + anon_sym_SLASH, + ACTIONS(92), 1, anon_sym_DOT, - ACTIONS(88), 1, + ACTIONS(94), 1, anon_sym_LPAREN, - ACTIONS(90), 1, + ACTIONS(96), 1, anon_sym_LBRACK, - STATE(35), 1, - sym_array_bracket_expression, - STATE(37), 1, + STATE(38), 1, sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(84), 5, + ACTIONS(88), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(84), 4, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, - anon_sym_SLASH, - ACTIONS(82), 20, - anon_sym_DASH_GT, + ACTIONS(86), 18, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, + anon_sym_DASH_GT, anon_sym_PLUS, - anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -4799,17 +4649,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1225] = 3, + [441] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(92), 8, + ACTIONS(98), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4818,11 +4667,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(94), 22, - anon_sym_DASH_GT, + ACTIONS(100), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4841,41 +4690,41 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1264] = 13, - ACTIONS(86), 1, + [480] = 13, + ACTIONS(90), 1, + anon_sym_SLASH, + ACTIONS(92), 1, anon_sym_DOT, - ACTIONS(88), 1, + ACTIONS(94), 1, anon_sym_LPAREN, - ACTIONS(90), 1, - anon_sym_LBRACK, ACTIONS(96), 1, + anon_sym_LBRACK, + ACTIONS(102), 1, anon_sym_PLUS, - ACTIONS(98), 1, + ACTIONS(104), 1, anon_sym_DASH, - ACTIONS(102), 1, + ACTIONS(106), 1, anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, - STATE(35), 1, - sym_array_bracket_expression, - STATE(37), 1, + STATE(38), 1, sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(100), 2, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(84), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(82), 16, - anon_sym_DASH_GT, + ACTIONS(86), 16, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, + anon_sym_DASH_GT, anon_sym_PIPE, anon_sym_AMP, anon_sym_EQ_EQ, @@ -4887,11 +4736,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1323] = 3, + [539] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(106), 8, + ACTIONS(108), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4900,11 +4749,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(108), 22, - anon_sym_DASH_GT, + ACTIONS(110), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4923,11 +4772,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1362] = 3, + [578] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(110), 8, + ACTIONS(112), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4936,11 +4785,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(112), 22, - anon_sym_DASH_GT, + ACTIONS(114), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -4959,43 +4808,54 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1401] = 3, + [617] = 14, + ACTIONS(90), 1, + anon_sym_SLASH, + ACTIONS(92), 1, + anon_sym_DOT, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, + anon_sym_LBRACK, + ACTIONS(102), 1, + anon_sym_PLUS, + ACTIONS(104), 1, + anon_sym_DASH, + ACTIONS(106), 1, + anon_sym_CARET, + ACTIONS(116), 1, + anon_sym_PIPE, + STATE(38), 1, + sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(114), 8, + ACTIONS(88), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(84), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(116), 22, - anon_sym_DASH_GT, + ACTIONS(86), 15, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, + anon_sym_DASH_GT, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1440] = 3, + [678] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -5009,10 +4869,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DOT, sym_identifier, ACTIONS(120), 22, - anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -5031,37 +4891,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1479] = 10, - ACTIONS(86), 1, - anon_sym_DOT, - ACTIONS(88), 1, - anon_sym_LPAREN, - ACTIONS(90), 1, - anon_sym_LBRACK, - ACTIONS(104), 1, - anon_sym_SLASH, - STATE(35), 1, - sym_array_bracket_expression, - STATE(37), 1, - sym_parenthesis_expression_list, + [717] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(100), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(84), 4, + ACTIONS(122), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, + anon_sym_in, anon_sym_DASH, - ACTIONS(82), 18, - anon_sym_DASH_GT, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(124), 22, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, + anon_sym_DASH_GT, anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -5069,91 +4918,71 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1532] = 14, - ACTIONS(86), 1, - anon_sym_DOT, - ACTIONS(88), 1, - anon_sym_LPAREN, - ACTIONS(90), 1, - anon_sym_LBRACK, - ACTIONS(96), 1, - anon_sym_PLUS, - ACTIONS(98), 1, - anon_sym_DASH, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, - ACTIONS(122), 1, - anon_sym_PIPE, - STATE(35), 1, - sym_array_bracket_expression, - STATE(37), 1, - sym_parenthesis_expression_list, + [756] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(100), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(84), 3, + ACTIONS(126), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(82), 15, - anon_sym_DASH_GT, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(128), 22, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, + anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1593] = 12, - ACTIONS(86), 1, - anon_sym_DOT, - ACTIONS(88), 1, - anon_sym_LPAREN, - ACTIONS(90), 1, - anon_sym_LBRACK, - ACTIONS(96), 1, - anon_sym_PLUS, - ACTIONS(98), 1, - anon_sym_DASH, - ACTIONS(104), 1, - anon_sym_SLASH, - STATE(35), 1, - sym_array_bracket_expression, - STATE(37), 1, - sym_parenthesis_expression_list, + [795] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(100), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(84), 3, + ACTIONS(130), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(82), 17, - anon_sym_DASH_GT, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(132), 22, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, + anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -5161,16 +4990,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1650] = 3, + [834] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(124), 8, + ACTIONS(134), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5179,11 +5012,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(126), 22, - anon_sym_DASH_GT, + ACTIONS(136), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -5202,32 +5035,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1689] = 8, - ACTIONS(86), 1, - anon_sym_DOT, - ACTIONS(88), 1, - anon_sym_LPAREN, - ACTIONS(90), 1, - anon_sym_LBRACK, - STATE(35), 1, - sym_array_bracket_expression, - STATE(37), 1, - sym_parenthesis_expression_list, + [873] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 5, + ACTIONS(138), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, + anon_sym_in, anon_sym_DASH, anon_sym_SLASH, - ACTIONS(128), 20, - anon_sym_DASH_GT, + anon_sym_DOT, + sym_identifier, + ACTIONS(140), 22, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -5238,16 +5063,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1738] = 3, + [912] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(132), 8, + ACTIONS(142), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5256,11 +5084,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(134), 22, - anon_sym_DASH_GT, + ACTIONS(144), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -5279,24 +5107,77 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1777] = 3, + [951] = 12, + ACTIONS(90), 1, + anon_sym_SLASH, + ACTIONS(92), 1, + anon_sym_DOT, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, + anon_sym_LBRACK, + ACTIONS(102), 1, + anon_sym_PLUS, + ACTIONS(104), 1, + anon_sym_DASH, + STATE(38), 1, + sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(136), 8, + ACTIONS(88), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(84), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, + ACTIONS(86), 17, + anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_in, + anon_sym_DOT_DOT, + anon_sym_DASH_GT, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_LF, + [1008] = 8, + ACTIONS(92), 1, + anon_sym_DOT, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, + anon_sym_LBRACK, + STATE(38), 1, + sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(84), 5, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(138), 22, - anon_sym_DASH_GT, + ACTIONS(86), 20, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -5307,32 +5188,37 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1816] = 3, + [1057] = 8, + ACTIONS(92), 1, + anon_sym_DOT, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, + anon_sym_LBRACK, + STATE(38), 1, + sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(140), 8, + ACTIONS(146), 5, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, anon_sym_DASH, anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(142), 22, - anon_sym_DASH_GT, + ACTIONS(148), 20, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -5343,103 +5229,64 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1855] = 15, - ACTIONS(86), 1, + [1106] = 15, + ACTIONS(90), 1, + anon_sym_SLASH, + ACTIONS(92), 1, anon_sym_DOT, - ACTIONS(88), 1, + ACTIONS(94), 1, anon_sym_LPAREN, - ACTIONS(90), 1, - anon_sym_LBRACK, ACTIONS(96), 1, + anon_sym_LBRACK, + ACTIONS(102), 1, anon_sym_PLUS, - ACTIONS(98), 1, + ACTIONS(104), 1, anon_sym_DASH, - ACTIONS(102), 1, + ACTIONS(106), 1, anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, - ACTIONS(122), 1, + ACTIONS(116), 1, anon_sym_PIPE, - ACTIONS(144), 1, + ACTIONS(150), 1, anon_sym_AMP, - STATE(35), 1, - sym_array_bracket_expression, - STATE(37), 1, + STATE(38), 1, sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(100), 2, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(84), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(82), 14, - anon_sym_DASH_GT, + ACTIONS(86), 14, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_LF, - [1918] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(146), 8, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(148), 22, anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DOT_DOT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1957] = 3, + [1169] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(150), 8, + ACTIONS(152), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5448,11 +5295,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(152), 21, - anon_sym_DASH_GT, + ACTIONS(154), 21, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -5470,7 +5317,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1995] = 3, + [1207] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -5481,12 +5328,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(154), 22, - anon_sym_DASH_GT, + ACTIONS(158), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -5504,7 +5351,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [2032] = 3, + [1244] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -5515,12 +5362,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(158), 22, - anon_sym_DASH_GT, + ACTIONS(162), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -5538,7 +5385,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [2069] = 3, + [1281] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -5549,12 +5396,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(162), 22, - anon_sym_DASH_GT, + ACTIONS(166), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -5572,7 +5419,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [2106] = 3, + [1318] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -5583,12 +5430,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(166), 22, - anon_sym_DASH_GT, + ACTIONS(170), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -5606,7 +5453,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [2143] = 3, + [1355] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -5617,12 +5464,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(170), 22, - anon_sym_DASH_GT, + ACTIONS(174), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -5640,7 +5487,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [2180] = 3, + [1392] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -5651,12 +5498,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(174), 22, - anon_sym_DASH_GT, + ACTIONS(178), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -5674,7 +5521,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [2217] = 3, + [1429] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -5685,12 +5532,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(178), 22, - anon_sym_DASH_GT, + ACTIONS(182), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, + anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -5708,78 +5555,66 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [2254] = 17, - ACTIONS(88), 1, - anon_sym_LPAREN, - ACTIONS(90), 1, - anon_sym_LBRACK, - ACTIONS(96), 1, - anon_sym_PLUS, - ACTIONS(98), 1, - anon_sym_DASH, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, - ACTIONS(122), 1, - anon_sym_PIPE, - ACTIONS(144), 1, - anon_sym_AMP, - ACTIONS(186), 1, - anon_sym_EQ, - ACTIONS(190), 1, - anon_sym_DOT, - STATE(35), 1, - sym_array_bracket_expression, - STATE(37), 1, - sym_parenthesis_expression_list, + [1466] = 5, + ACTIONS(188), 1, + anon_sym_LF, + STATE(42), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(100), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(184), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(188), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - ACTIONS(182), 6, - anon_sym_DASH_GT, + ACTIONS(184), 12, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + anon_sym_domain, + anon_sym_interface, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + anon_sym_DASH, + sym_identifier, + ACTIONS(186), 12, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, - anon_sym_COMMA, - anon_sym_LF, - [2317] = 12, + anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, + [1505] = 12, ACTIONS(11), 1, sym_identifier, - ACTIONS(33), 1, - anon_sym_LPAREN, ACTIONS(35), 1, + anon_sym_LPAREN, + ACTIONS(37), 1, anon_sym_COLON_COLON, - ACTIONS(192), 1, + ACTIONS(191), 1, sym_number, - STATE(48), 1, + STATE(49), 1, sym_template_global, - STATE(151), 1, + STATE(188), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(27), 2, + ACTIONS(29), 2, anon_sym_input, anon_sym_output, - ACTIONS(29), 2, + ACTIONS(31), 2, anon_sym_state, anon_sym_gen, - STATE(212), 2, + STATE(209), 2, sym__type, sym_array_type, - ACTIONS(31), 7, + ACTIONS(33), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5787,7 +5622,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(45), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -5795,182 +5630,195 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [2370] = 5, - ACTIONS(198), 1, - anon_sym_LF, - STATE(44), 1, - aux_sym__linebreak, + [1558] = 17, + ACTIONS(90), 1, + anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, + anon_sym_LBRACK, + ACTIONS(102), 1, + anon_sym_PLUS, + ACTIONS(104), 1, + anon_sym_DASH, + ACTIONS(106), 1, + anon_sym_CARET, + ACTIONS(116), 1, + anon_sym_PIPE, + ACTIONS(150), 1, + anon_sym_AMP, + ACTIONS(195), 1, + anon_sym_EQ, + ACTIONS(201), 1, + anon_sym_DOT, + STATE(38), 1, + sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(194), 11, - anon_sym_interface, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - anon_sym_DASH, - sym_identifier, - ACTIONS(196), 12, - anon_sym_DASH_GT, + ACTIONS(88), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(193), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(199), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(197), 6, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_COLON_COLON, - sym_number, - [2408] = 16, - ACTIONS(88), 1, - anon_sym_LPAREN, + anon_sym_in, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LF, + [1621] = 16, ACTIONS(90), 1, + anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(102), 1, + ACTIONS(106), 1, anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, - ACTIONS(122), 1, + ACTIONS(116), 1, anon_sym_PIPE, - ACTIONS(144), 1, + ACTIONS(150), 1, anon_sym_AMP, - ACTIONS(190), 1, - anon_sym_DOT, ACTIONS(201), 1, + anon_sym_DOT, + ACTIONS(203), 1, anon_sym_EQ, - STATE(35), 1, - sym_array_bracket_expression, - STATE(37), 1, + STATE(38), 1, sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(96), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(100), 2, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(184), 2, + ACTIONS(102), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(193), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(203), 3, + ACTIONS(205), 3, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, - ACTIONS(188), 4, + ACTIONS(199), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2466] = 18, - ACTIONS(88), 1, - anon_sym_LPAREN, + [1679] = 18, ACTIONS(90), 1, + anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(102), 1, + ACTIONS(106), 1, anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, - ACTIONS(122), 1, + ACTIONS(116), 1, anon_sym_PIPE, - ACTIONS(144), 1, + ACTIONS(150), 1, anon_sym_AMP, - ACTIONS(190), 1, + ACTIONS(201), 1, anon_sym_DOT, - ACTIONS(205), 1, - anon_sym_RPAREN, ACTIONS(207), 1, + anon_sym_RPAREN, + ACTIONS(209), 1, anon_sym_COMMA, - STATE(35), 1, - sym_array_bracket_expression, - STATE(37), 1, + STATE(38), 1, sym_parenthesis_expression_list, - STATE(66), 1, + STATE(39), 1, + sym_array_bracket_expression, + STATE(71), 1, sym__comma, - STATE(166), 1, + STATE(162), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(96), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(100), 2, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(184), 2, + ACTIONS(102), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(193), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(188), 4, + ACTIONS(199), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2528] = 16, - ACTIONS(88), 1, - anon_sym_LPAREN, + [1741] = 16, ACTIONS(90), 1, + anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(102), 1, + ACTIONS(106), 1, anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, - ACTIONS(122), 1, + ACTIONS(116), 1, anon_sym_PIPE, - ACTIONS(144), 1, + ACTIONS(150), 1, anon_sym_AMP, - ACTIONS(190), 1, + ACTIONS(201), 1, anon_sym_DOT, - ACTIONS(209), 1, + ACTIONS(211), 1, anon_sym_EQ, - STATE(35), 1, - sym_array_bracket_expression, - STATE(37), 1, + STATE(38), 1, sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(96), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(100), 2, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(184), 2, + ACTIONS(102), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(193), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(211), 3, + ACTIONS(213), 3, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, - ACTIONS(188), 4, + ACTIONS(199), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2586] = 5, - ACTIONS(213), 1, - sym_identifier, - ACTIONS(219), 1, - anon_sym_LBRACK, + [1799] = 6, + ACTIONS(63), 1, + anon_sym_COLON_COLON, + ACTIONS(215), 1, + anon_sym_EQ, + STATE(16), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(215), 4, + ACTIONS(59), 3, anon_sym_LT, anon_sym_GT, - anon_sym_EQ, anon_sym_SLASH, - ACTIONS(217), 16, - anon_sym_RBRACE, + ACTIONS(61), 16, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5984,23 +5832,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_DOT, anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, anon_sym_COMMA, - anon_sym_LF, - [2621] = 6, - ACTIONS(61), 1, - anon_sym_COLON_COLON, - ACTIONS(222), 1, - anon_sym_EQ, - STATE(11), 1, - aux_sym_template_global_repeat1, + [1836] = 5, + ACTIONS(217), 1, + sym_identifier, + ACTIONS(223), 1, + anon_sym_LBRACK, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 3, + ACTIONS(219), 4, anon_sym_LT, anon_sym_GT, + anon_sym_EQ, anon_sym_SLASH, - ACTIONS(76), 16, + ACTIONS(221), 16, + anon_sym_RBRACE, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6014,105 +5863,104 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_DOT, anon_sym_LPAREN, - anon_sym_LBRACK, - anon_sym_SEMI, anon_sym_COMMA, - [2658] = 15, - ACTIONS(88), 1, - anon_sym_LPAREN, + anon_sym_LF, + [1871] = 16, + ACTIONS(13), 1, + anon_sym_LBRACE, ACTIONS(90), 1, + anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(102), 1, + ACTIONS(106), 1, anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, - ACTIONS(122), 1, + ACTIONS(116), 1, anon_sym_PIPE, - ACTIONS(144), 1, + ACTIONS(150), 1, anon_sym_AMP, - ACTIONS(190), 1, + ACTIONS(201), 1, anon_sym_DOT, - STATE(35), 1, - sym_array_bracket_expression, - STATE(37), 1, + STATE(38), 1, sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, + STATE(227), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(96), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(100), 2, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(184), 2, + ACTIONS(102), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(193), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(224), 2, - anon_sym_SEMI, - anon_sym_COMMA, - ACTIONS(188), 4, + ACTIONS(199), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2712] = 16, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(88), 1, - anon_sym_LPAREN, + [1927] = 15, ACTIONS(90), 1, + anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(102), 1, + ACTIONS(106), 1, anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, - ACTIONS(122), 1, + ACTIONS(116), 1, anon_sym_PIPE, - ACTIONS(144), 1, + ACTIONS(150), 1, anon_sym_AMP, - ACTIONS(190), 1, + ACTIONS(201), 1, anon_sym_DOT, - STATE(35), 1, - sym_array_bracket_expression, - STATE(37), 1, + STATE(38), 1, sym_parenthesis_expression_list, - STATE(226), 1, - sym_block, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(96), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(100), 2, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(184), 2, + ACTIONS(102), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(193), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(188), 4, + ACTIONS(226), 2, + anon_sym_SEMI, + anon_sym_COMMA, + ACTIONS(199), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2768] = 9, - ACTIONS(33), 1, - anon_sym_LPAREN, + [1981] = 9, ACTIONS(35), 1, + anon_sym_LPAREN, + ACTIONS(37), 1, anon_sym_COLON_COLON, - ACTIONS(226), 1, - sym_identifier, ACTIONS(228), 1, - anon_sym_SEMI, + sym_identifier, ACTIONS(230), 1, + anon_sym_SEMI, + ACTIONS(232), 1, sym_number, - STATE(205), 1, + STATE(145), 1, sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(33), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6120,7 +5968,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(57), 8, + STATE(51), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6129,102 +5977,101 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2810] = 15, - ACTIONS(88), 1, - anon_sym_LPAREN, + [2023] = 15, ACTIONS(90), 1, + anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(102), 1, + ACTIONS(106), 1, anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, - ACTIONS(122), 1, + ACTIONS(116), 1, anon_sym_PIPE, - ACTIONS(144), 1, + ACTIONS(150), 1, anon_sym_AMP, - ACTIONS(190), 1, + ACTIONS(201), 1, anon_sym_DOT, - STATE(35), 1, - sym_array_bracket_expression, - STATE(37), 1, + STATE(38), 1, sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(96), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(100), 2, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(184), 2, + ACTIONS(102), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(193), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(232), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - ACTIONS(188), 4, + ACTIONS(234), 2, + anon_sym_RBRACE, + anon_sym_LF, + ACTIONS(199), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2864] = 16, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(88), 1, - anon_sym_LPAREN, + [2077] = 15, ACTIONS(90), 1, + anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(102), 1, + ACTIONS(106), 1, anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, - ACTIONS(122), 1, + ACTIONS(116), 1, anon_sym_PIPE, - ACTIONS(144), 1, + ACTIONS(150), 1, anon_sym_AMP, - ACTIONS(190), 1, + ACTIONS(201), 1, anon_sym_DOT, - STATE(35), 1, - sym_array_bracket_expression, - STATE(37), 1, + STATE(38), 1, sym_parenthesis_expression_list, - STATE(209), 1, - sym_block, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(96), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(100), 2, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(184), 2, + ACTIONS(102), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(193), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(188), 4, + ACTIONS(236), 2, + anon_sym_SEMI, + anon_sym_COMMA, + ACTIONS(199), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2920] = 9, - ACTIONS(33), 1, - anon_sym_LPAREN, + [2131] = 9, ACTIONS(35), 1, + anon_sym_LPAREN, + ACTIONS(37), 1, anon_sym_COLON_COLON, - ACTIONS(226), 1, + ACTIONS(228), 1, sym_identifier, - ACTIONS(230), 1, + ACTIONS(232), 1, sym_number, - ACTIONS(234), 1, + ACTIONS(238), 1, anon_sym_SEMI, - STATE(156), 1, + STATE(157), 1, sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(33), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6232,7 +6079,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(57), 8, + STATE(51), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6241,126 +6088,120 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2962] = 15, - ACTIONS(88), 1, - anon_sym_LPAREN, + [2173] = 16, + ACTIONS(13), 1, + anon_sym_LBRACE, ACTIONS(90), 1, + anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(102), 1, + ACTIONS(106), 1, anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, - ACTIONS(122), 1, + ACTIONS(116), 1, anon_sym_PIPE, - ACTIONS(144), 1, + ACTIONS(150), 1, anon_sym_AMP, - ACTIONS(190), 1, + ACTIONS(201), 1, anon_sym_DOT, - STATE(35), 1, - sym_array_bracket_expression, - STATE(37), 1, + STATE(38), 1, sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, + STATE(220), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(96), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(100), 2, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(184), 2, + ACTIONS(102), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(193), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(236), 2, - anon_sym_RBRACE, - anon_sym_LF, - ACTIONS(188), 4, + ACTIONS(199), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3016] = 15, - ACTIONS(88), 1, - anon_sym_LPAREN, + [2229] = 15, ACTIONS(90), 1, + anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(102), 1, + ACTIONS(106), 1, anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, - ACTIONS(122), 1, + ACTIONS(116), 1, anon_sym_PIPE, - ACTIONS(144), 1, + ACTIONS(150), 1, anon_sym_AMP, - ACTIONS(190), 1, + ACTIONS(201), 1, anon_sym_DOT, - STATE(35), 1, - sym_array_bracket_expression, - STATE(37), 1, + STATE(38), 1, sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(96), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(100), 2, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(184), 2, + ACTIONS(102), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(193), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(238), 2, - anon_sym_SEMI, + ACTIONS(240), 2, + anon_sym_RPAREN, anon_sym_COMMA, - ACTIONS(188), 4, + ACTIONS(199), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3070] = 15, - ACTIONS(86), 1, - anon_sym_DOT, - ACTIONS(88), 1, + [2283] = 8, + ACTIONS(35), 1, anon_sym_LPAREN, - ACTIONS(90), 1, - anon_sym_LBRACK, - ACTIONS(102), 1, - anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, - ACTIONS(122), 1, - anon_sym_PIPE, - ACTIONS(144), 1, - anon_sym_AMP, - ACTIONS(240), 1, - anon_sym_DOT_DOT, - STATE(35), 1, - sym_array_bracket_expression, - STATE(37), 1, - sym_parenthesis_expression_list, + ACTIONS(37), 1, + anon_sym_COLON_COLON, + ACTIONS(228), 1, + sym_identifier, + ACTIONS(232), 1, + sym_number, + STATE(229), 1, + sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(96), 2, + ACTIONS(33), 7, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(100), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(184), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(188), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [3123] = 8, - ACTIONS(33), 1, - anon_sym_LPAREN, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(51), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_template_global, + [2322] = 8, ACTIONS(35), 1, + anon_sym_LPAREN, + ACTIONS(37), 1, anon_sym_COLON_COLON, ACTIONS(242), 1, sym_identifier, @@ -6371,7 +6212,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(33), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6388,191 +6229,171 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3162] = 15, - ACTIONS(88), 1, - anon_sym_LPAREN, + [2361] = 15, ACTIONS(90), 1, + anon_sym_SLASH, + ACTIONS(92), 1, + anon_sym_DOT, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(102), 1, + ACTIONS(106), 1, anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, - ACTIONS(122), 1, + ACTIONS(116), 1, anon_sym_PIPE, - ACTIONS(144), 1, + ACTIONS(150), 1, anon_sym_AMP, - ACTIONS(190), 1, - anon_sym_DOT, ACTIONS(248), 1, - anon_sym_RBRACK, - STATE(35), 1, - sym_array_bracket_expression, - STATE(37), 1, + anon_sym_DOT_DOT, + STATE(38), 1, sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(96), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(100), 2, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(184), 2, + ACTIONS(102), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(193), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(188), 4, + ACTIONS(199), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3215] = 15, - ACTIONS(88), 1, - anon_sym_LPAREN, + [2414] = 15, ACTIONS(90), 1, + anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(102), 1, + ACTIONS(106), 1, anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, - ACTIONS(122), 1, + ACTIONS(116), 1, anon_sym_PIPE, - ACTIONS(144), 1, + ACTIONS(150), 1, anon_sym_AMP, - ACTIONS(190), 1, + ACTIONS(201), 1, anon_sym_DOT, ACTIONS(250), 1, - anon_sym_RPAREN, - STATE(35), 1, - sym_array_bracket_expression, - STATE(37), 1, + anon_sym_RBRACK, + STATE(38), 1, sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(96), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(100), 2, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(184), 2, + ACTIONS(102), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(193), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(188), 4, + ACTIONS(199), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3268] = 8, - ACTIONS(33), 1, + [2467] = 15, + ACTIONS(90), 1, + anon_sym_SLASH, + ACTIONS(94), 1, anon_sym_LPAREN, - ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(226), 1, - sym_identifier, - ACTIONS(230), 1, - sym_number, - STATE(239), 1, - sym_template_value_param, + ACTIONS(96), 1, + anon_sym_LBRACK, + ACTIONS(106), 1, + anon_sym_CARET, + ACTIONS(116), 1, + anon_sym_PIPE, + ACTIONS(150), 1, + anon_sym_AMP, + ACTIONS(201), 1, + anon_sym_DOT, + ACTIONS(252), 1, + anon_sym_RBRACK, + STATE(38), 1, + sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(88), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(102), 2, anon_sym_PLUS, anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(57), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_template_global, - [3307] = 15, - ACTIONS(88), 1, - anon_sym_LPAREN, + ACTIONS(193), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(199), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [2520] = 15, ACTIONS(90), 1, + anon_sym_SLASH, + ACTIONS(94), 1, + anon_sym_LPAREN, + ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(102), 1, + ACTIONS(106), 1, anon_sym_CARET, - ACTIONS(104), 1, - anon_sym_SLASH, - ACTIONS(122), 1, + ACTIONS(116), 1, anon_sym_PIPE, - ACTIONS(144), 1, + ACTIONS(150), 1, anon_sym_AMP, - ACTIONS(190), 1, + ACTIONS(201), 1, anon_sym_DOT, - ACTIONS(252), 1, - anon_sym_RBRACK, - STATE(35), 1, - sym_array_bracket_expression, - STATE(37), 1, + ACTIONS(254), 1, + anon_sym_RPAREN, + STATE(38), 1, sym_parenthesis_expression_list, + STATE(39), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(96), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(100), 2, + sym_multi_line_comment, + ACTIONS(88), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(184), 2, + ACTIONS(102), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(193), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(188), 4, + ACTIONS(199), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3360] = 5, - ACTIONS(258), 1, - anon_sym_LF, - STATE(74), 1, - aux_sym__linebreak, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(254), 7, - anon_sym_reg, - anon_sym_initial, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(256), 10, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_COLON_COLON, - sym_number, - [3392] = 7, - ACTIONS(33), 1, - anon_sym_LPAREN, + [2573] = 7, ACTIONS(35), 1, + anon_sym_LPAREN, + ACTIONS(37), 1, anon_sym_COLON_COLON, ACTIONS(242), 1, sym_identifier, - ACTIONS(260), 1, + ACTIONS(256), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(33), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6589,48 +6410,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3428] = 7, - ACTIONS(33), 1, - anon_sym_LPAREN, + [2609] = 7, ACTIONS(35), 1, - anon_sym_COLON_COLON, - ACTIONS(242), 1, - sym_identifier, - ACTIONS(262), 1, - sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(31), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(53), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_template_global, - [3464] = 7, - ACTIONS(33), 1, anon_sym_LPAREN, - ACTIONS(35), 1, + ACTIONS(37), 1, anon_sym_COLON_COLON, ACTIONS(242), 1, sym_identifier, - ACTIONS(264), 1, + ACTIONS(258), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(33), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6638,7 +6430,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(17), 8, + STATE(62), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6647,19 +6439,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3500] = 7, - ACTIONS(33), 1, - anon_sym_LPAREN, + [2645] = 7, ACTIONS(35), 1, + anon_sym_LPAREN, + ACTIONS(37), 1, anon_sym_COLON_COLON, ACTIONS(242), 1, sym_identifier, - ACTIONS(266), 1, + ACTIONS(260), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(33), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6667,7 +6459,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(58), 8, + STATE(54), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6676,19 +6468,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3536] = 7, - ACTIONS(33), 1, - anon_sym_LPAREN, + [2681] = 7, ACTIONS(35), 1, + anon_sym_LPAREN, + ACTIONS(37), 1, anon_sym_COLON_COLON, ACTIONS(242), 1, sym_identifier, - ACTIONS(268), 1, + ACTIONS(262), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(33), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6705,19 +6497,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3572] = 7, - ACTIONS(33), 1, - anon_sym_LPAREN, + [2717] = 7, ACTIONS(35), 1, + anon_sym_LPAREN, + ACTIONS(37), 1, anon_sym_COLON_COLON, ACTIONS(242), 1, sym_identifier, - ACTIONS(270), 1, + ACTIONS(264), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(33), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6725,7 +6517,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(24), 8, + STATE(44), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6734,19 +6526,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3608] = 7, - ACTIONS(33), 1, - anon_sym_LPAREN, + [2753] = 7, ACTIONS(35), 1, + anon_sym_LPAREN, + ACTIONS(37), 1, anon_sym_COLON_COLON, ACTIONS(242), 1, sym_identifier, - ACTIONS(272), 1, + ACTIONS(266), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(33), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6754,7 +6546,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(32), 8, + STATE(60), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6763,19 +6555,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3644] = 7, - ACTIONS(33), 1, - anon_sym_LPAREN, + [2789] = 7, ACTIONS(35), 1, + anon_sym_LPAREN, + ACTIONS(37), 1, anon_sym_COLON_COLON, ACTIONS(242), 1, sym_identifier, - ACTIONS(274), 1, + ACTIONS(268), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(33), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6783,7 +6575,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(42), 8, + STATE(53), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6792,19 +6584,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3680] = 7, - ACTIONS(33), 1, - anon_sym_LPAREN, + [2825] = 7, ACTIONS(35), 1, + anon_sym_LPAREN, + ACTIONS(37), 1, anon_sym_COLON_COLON, ACTIONS(242), 1, sym_identifier, - ACTIONS(276), 1, + ACTIONS(270), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(33), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6812,7 +6604,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(26), 8, + STATE(57), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6821,15 +6613,15 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3716] = 5, - ACTIONS(39), 1, + [2861] = 5, + ACTIONS(276), 1, anon_sym_LF, - STATE(44), 1, + STATE(75), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(278), 7, + ACTIONS(272), 7, anon_sym_reg, anon_sym_initial, anon_sym_input, @@ -6837,7 +6629,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(280), 10, + ACTIONS(274), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6848,19 +6640,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [3748] = 7, - ACTIONS(33), 1, - anon_sym_LPAREN, + [2893] = 7, ACTIONS(35), 1, + anon_sym_LPAREN, + ACTIONS(37), 1, anon_sym_COLON_COLON, ACTIONS(242), 1, sym_identifier, - ACTIONS(282), 1, + ACTIONS(278), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(33), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6868,7 +6660,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(50), 8, + STATE(56), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6877,19 +6669,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3784] = 7, - ACTIONS(33), 1, - anon_sym_LPAREN, + [2929] = 7, ACTIONS(35), 1, + anon_sym_LPAREN, + ACTIONS(37), 1, anon_sym_COLON_COLON, ACTIONS(242), 1, sym_identifier, - ACTIONS(284), 1, + ACTIONS(280), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(33), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6897,7 +6689,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(19), 8, + STATE(30), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6906,10 +6698,37 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3820] = 7, - ACTIONS(33), 1, + [2965] = 5, + ACTIONS(41), 1, + anon_sym_LF, + STATE(42), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(282), 7, + anon_sym_reg, + anon_sym_initial, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(284), 10, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, + [2997] = 7, ACTIONS(35), 1, + anon_sym_LPAREN, + ACTIONS(37), 1, anon_sym_COLON_COLON, ACTIONS(242), 1, sym_identifier, @@ -6918,7 +6737,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(33), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6926,7 +6745,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(28), 8, + STATE(32), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6935,10 +6754,10 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3856] = 7, - ACTIONS(33), 1, - anon_sym_LPAREN, + [3033] = 7, ACTIONS(35), 1, + anon_sym_LPAREN, + ACTIONS(37), 1, anon_sym_COLON_COLON, ACTIONS(242), 1, sym_identifier, @@ -6947,7 +6766,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(33), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6955,7 +6774,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(51), 8, + STATE(50), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6964,10 +6783,10 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3892] = 7, - ACTIONS(33), 1, - anon_sym_LPAREN, + [3069] = 7, ACTIONS(35), 1, + anon_sym_LPAREN, + ACTIONS(37), 1, anon_sym_COLON_COLON, ACTIONS(242), 1, sym_identifier, @@ -6976,7 +6795,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(33), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6984,7 +6803,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(25), 8, + STATE(33), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6993,10 +6812,10 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3928] = 7, - ACTIONS(33), 1, - anon_sym_LPAREN, + [3105] = 7, ACTIONS(35), 1, + anon_sym_LPAREN, + ACTIONS(37), 1, anon_sym_COLON_COLON, ACTIONS(242), 1, sym_identifier, @@ -7005,7 +6824,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(33), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7013,7 +6832,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(56), 8, + STATE(17), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7022,10 +6841,10 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3964] = 7, - ACTIONS(33), 1, - anon_sym_LPAREN, + [3141] = 7, ACTIONS(35), 1, + anon_sym_LPAREN, + ACTIONS(37), 1, anon_sym_COLON_COLON, ACTIONS(242), 1, sym_identifier, @@ -7034,7 +6853,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(33), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7042,7 +6861,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(54), 8, + STATE(31), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7051,10 +6870,10 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [4000] = 7, - ACTIONS(33), 1, - anon_sym_LPAREN, + [3177] = 7, ACTIONS(35), 1, + anon_sym_LPAREN, + ACTIONS(37), 1, anon_sym_COLON_COLON, ACTIONS(242), 1, sym_identifier, @@ -7063,7 +6882,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 7, + ACTIONS(33), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7071,7 +6890,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(60), 8, + STATE(19), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7080,21 +6899,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [4036] = 5, - ACTIONS(300), 1, - anon_sym_reg, - STATE(83), 1, - aux_sym_write_modifiers_repeat1, + [3213] = 7, + ACTIONS(35), 1, + anon_sym_LPAREN, + ACTIONS(37), 1, + anon_sym_COLON_COLON, + ACTIONS(242), 1, + sym_identifier, + ACTIONS(298), 1, + sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(298), 5, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(303), 10, + ACTIONS(33), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7102,24 +6919,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_COLON_COLON, - sym_number, - [4066] = 5, - ACTIONS(19), 1, + STATE(22), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_template_global, + [3249] = 5, + ACTIONS(302), 1, anon_sym_reg, STATE(83), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(305), 5, + ACTIONS(300), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(307), 10, + ACTIONS(305), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7130,18 +6953,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [4096] = 3, + [3279] = 5, + ACTIONS(17), 1, + anon_sym_reg, + STATE(83), 1, + aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(309), 6, - anon_sym_reg, + ACTIONS(307), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(311), 10, + ACTIONS(309), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7152,17 +6978,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [4121] = 3, + [3309] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(313), 5, + ACTIONS(311), 6, + anon_sym_reg, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(315), 10, + ACTIONS(313), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7173,236 +7000,257 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [4145] = 12, + [3334] = 12, ACTIONS(11), 1, sym_identifier, - ACTIONS(35), 1, + ACTIONS(37), 1, anon_sym_COLON_COLON, - ACTIONS(317), 1, + ACTIONS(315), 1, anon_sym_DASH_GT, - ACTIONS(319), 1, + ACTIONS(317), 1, anon_sym_LF, STATE(88), 1, aux_sym__linebreak, - STATE(105), 1, + STATE(108), 1, sym_declaration, - STATE(125), 1, + STATE(132), 1, sym_declaration_list, - STATE(211), 1, + STATE(212), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(27), 2, + ACTIONS(29), 2, anon_sym_input, anon_sym_output, - ACTIONS(29), 2, + ACTIONS(31), 2, anon_sym_state, anon_sym_gen, - STATE(212), 3, + STATE(209), 3, sym__type, sym_array_type, sym_template_global, - [4187] = 12, + [3376] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(319), 5, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(321), 10, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, + [3400] = 12, ACTIONS(11), 1, sym_identifier, - ACTIONS(35), 1, + ACTIONS(37), 1, anon_sym_COLON_COLON, - ACTIONS(39), 1, + ACTIONS(41), 1, anon_sym_LF, - ACTIONS(317), 1, + ACTIONS(315), 1, anon_sym_DASH_GT, - STATE(44), 1, + STATE(42), 1, aux_sym__linebreak, - STATE(105), 1, + STATE(108), 1, sym_declaration, - STATE(119), 1, + STATE(130), 1, sym_declaration_list, - STATE(208), 1, + STATE(221), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(27), 2, + ACTIONS(29), 2, anon_sym_input, anon_sym_output, - ACTIONS(29), 2, + ACTIONS(31), 2, anon_sym_state, anon_sym_gen, - STATE(212), 3, + STATE(209), 3, sym__type, sym_array_type, sym_template_global, - [4229] = 10, + [3442] = 10, ACTIONS(11), 1, sym_identifier, - ACTIONS(35), 1, + ACTIONS(37), 1, anon_sym_COLON_COLON, - ACTIONS(39), 1, + ACTIONS(41), 1, anon_sym_LF, - STATE(44), 1, + STATE(42), 1, aux_sym__linebreak, - STATE(105), 1, + STATE(108), 1, sym_declaration, - STATE(221), 1, + STATE(216), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(27), 2, + ACTIONS(29), 2, anon_sym_input, anon_sym_output, - ACTIONS(29), 2, + ACTIONS(31), 2, anon_sym_state, anon_sym_gen, - STATE(212), 3, + STATE(209), 3, sym__type, sym_array_type, sym_template_global, - [4265] = 10, + [3478] = 10, ACTIONS(11), 1, sym_identifier, - ACTIONS(35), 1, + ACTIONS(37), 1, anon_sym_COLON_COLON, - ACTIONS(321), 1, + ACTIONS(323), 1, anon_sym_LF, STATE(89), 1, aux_sym__linebreak, - STATE(105), 1, + STATE(108), 1, sym_declaration, - STATE(216), 1, + STATE(219), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(27), 2, + ACTIONS(29), 2, anon_sym_input, anon_sym_output, - ACTIONS(29), 2, + ACTIONS(31), 2, anon_sym_state, anon_sym_gen, - STATE(212), 3, + STATE(209), 3, sym__type, sym_array_type, sym_template_global, - [4301] = 7, + [3514] = 7, ACTIONS(11), 1, sym_identifier, - ACTIONS(35), 1, + ACTIONS(37), 1, anon_sym_COLON_COLON, - STATE(247), 1, + STATE(240), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(27), 2, + ACTIONS(29), 2, anon_sym_input, anon_sym_output, - ACTIONS(29), 2, + ACTIONS(31), 2, anon_sym_state, anon_sym_gen, - STATE(212), 3, + STATE(209), 3, sym__type, sym_array_type, sym_template_global, - [4328] = 7, + [3541] = 7, ACTIONS(11), 1, sym_identifier, - ACTIONS(35), 1, + ACTIONS(37), 1, anon_sym_COLON_COLON, - STATE(117), 1, + STATE(127), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(27), 2, + ACTIONS(29), 2, anon_sym_input, anon_sym_output, - ACTIONS(29), 2, + ACTIONS(31), 2, anon_sym_state, anon_sym_gen, - STATE(212), 3, + STATE(209), 3, sym__type, sym_array_type, sym_template_global, - [4355] = 4, - ACTIONS(325), 1, + [3568] = 4, + ACTIONS(327), 1, anon_sym_SQUOTE, - STATE(97), 1, + STATE(107), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(323), 7, - anon_sym_DASH_GT, + ACTIONS(325), 7, anon_sym_EQ, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, + anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4375] = 4, - ACTIONS(325), 1, + [3588] = 4, + ACTIONS(327), 1, anon_sym_SQUOTE, - STATE(100), 1, + STATE(97), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(327), 7, - anon_sym_DASH_GT, + ACTIONS(329), 7, anon_sym_EQ, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, + anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4395] = 4, - ACTIONS(325), 1, + [3608] = 4, + ACTIONS(327), 1, anon_sym_SQUOTE, - STATE(108), 1, + STATE(109), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(329), 7, - anon_sym_DASH_GT, + ACTIONS(331), 7, anon_sym_EQ, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, + anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4415] = 4, - ACTIONS(325), 1, + [3628] = 4, + ACTIONS(327), 1, anon_sym_SQUOTE, - STATE(109), 1, + STATE(101), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(331), 7, - anon_sym_DASH_GT, + ACTIONS(333), 7, anon_sym_EQ, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, + anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4435] = 2, + [3648] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(333), 7, - anon_sym_DASH_GT, + ACTIONS(335), 7, anon_sym_EQ, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, + anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4449] = 5, - ACTIONS(337), 1, + [3662] = 5, + ACTIONS(339), 1, anon_sym_COMMA, STATE(92), 1, sym__comma, @@ -7411,208 +7259,208 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(335), 4, - anon_sym_DASH_GT, + ACTIONS(337), 4, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_DASH_GT, anon_sym_LF, - [4469] = 6, - ACTIONS(340), 1, + [3682] = 5, + ACTIONS(11), 1, sym_identifier, - ACTIONS(342), 1, - anon_sym_GT, + ACTIONS(37), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(342), 2, + anon_sym_state, + anon_sym_gen, + STATE(213), 3, + sym__type, + sym_array_type, + sym_template_global, + [3702] = 6, ACTIONS(344), 1, + sym_identifier, + ACTIONS(346), 1, + anon_sym_GT, + ACTIONS(348), 1, anon_sym_COLON_COLON, - STATE(150), 1, + STATE(199), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(175), 3, + STATE(177), 3, sym__type, sym_array_type, sym_template_global, - [4491] = 2, + [3724] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(346), 7, - anon_sym_DASH_GT, + ACTIONS(350), 7, anon_sym_EQ, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, + anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4505] = 6, - ACTIONS(340), 1, - sym_identifier, - ACTIONS(344), 1, - anon_sym_COLON_COLON, - ACTIONS(348), 1, - anon_sym_GT, - STATE(176), 1, - sym_template_type_param, + [3738] = 5, + ACTIONS(209), 1, + anon_sym_COMMA, + STATE(92), 1, + sym__comma, + STATE(98), 1, + aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(175), 3, - sym__type, - sym_array_type, - sym_template_global, - [4527] = 6, - ACTIONS(340), 1, - sym_identifier, + ACTIONS(352), 4, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DASH_GT, + anon_sym_LF, + [3758] = 6, ACTIONS(344), 1, + sym_identifier, + ACTIONS(348), 1, anon_sym_COLON_COLON, - ACTIONS(350), 1, + ACTIONS(354), 1, anon_sym_GT, - STATE(203), 1, + STATE(151), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(175), 3, + STATE(177), 3, sym__type, sym_array_type, sym_template_global, - [4549] = 6, - ACTIONS(340), 1, - sym_identifier, + [3780] = 6, ACTIONS(344), 1, + sym_identifier, + ACTIONS(348), 1, anon_sym_COLON_COLON, - ACTIONS(352), 1, + ACTIONS(356), 1, anon_sym_GT, - STATE(158), 1, + STATE(178), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(175), 3, + STATE(177), 3, sym__type, sym_array_type, sym_template_global, - [4571] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - STATE(92), 1, - sym__comma, - STATE(98), 1, - aux_sym_declaration_list_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(354), 4, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_LF, - [4591] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - STATE(92), 1, - sym__comma, - STATE(104), 1, - aux_sym_declaration_list_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(356), 4, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_LF, - [4611] = 6, - ACTIONS(340), 1, - sym_identifier, + [3802] = 6, ACTIONS(344), 1, + sym_identifier, + ACTIONS(348), 1, anon_sym_COLON_COLON, ACTIONS(358), 1, anon_sym_GT, - STATE(182), 1, + STATE(197), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(175), 3, + STATE(177), 3, sym__type, sym_array_type, sym_template_global, - [4633] = 6, - ACTIONS(340), 1, - sym_identifier, + [3824] = 6, ACTIONS(344), 1, + sym_identifier, + ACTIONS(348), 1, anon_sym_COLON_COLON, ACTIONS(360), 1, anon_sym_GT, - STATE(193), 1, + STATE(156), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(175), 3, + STATE(177), 3, sym__type, sym_array_type, sym_template_global, - [4655] = 2, + [3846] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(362), 7, - anon_sym_DASH_GT, anon_sym_EQ, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, + anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4669] = 2, + [3860] = 5, + ACTIONS(209), 1, + anon_sym_COMMA, + STATE(92), 1, + sym__comma, + STATE(102), 1, + aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(364), 7, + ACTIONS(364), 4, + anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_DASH_GT, + anon_sym_LF, + [3880] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(366), 7, anon_sym_EQ, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, + anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4683] = 5, - ACTIONS(11), 1, + [3894] = 6, + ACTIONS(344), 1, sym_identifier, - ACTIONS(35), 1, + ACTIONS(348), 1, anon_sym_COLON_COLON, + ACTIONS(368), 1, + anon_sym_GT, + STATE(153), 1, + sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(366), 2, - anon_sym_state, - anon_sym_gen, - STATE(217), 3, + STATE(177), 3, sym__type, sym_array_type, sym_template_global, - [4703] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - STATE(15), 1, - sym__comma, - STATE(116), 1, - aux_sym_assign_left_side_repeat1, + [3916] = 5, + ACTIONS(344), 1, + sym_identifier, + ACTIONS(348), 1, + anon_sym_COLON_COLON, + STATE(231), 1, + sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(368), 3, - anon_sym_EQ, - anon_sym_RBRACE, - anon_sym_LF, - [4722] = 5, - ACTIONS(207), 1, + STATE(177), 3, + sym__type, + sym_array_type, + sym_template_global, + [3935] = 5, + ACTIONS(209), 1, anon_sym_COMMA, - STATE(15), 1, + STATE(14), 1, sym__comma, - STATE(111), 1, + STATE(115), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, @@ -7621,337 +7469,328 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_RBRACE, anon_sym_LF, - [4741] = 7, - ACTIONS(13), 1, - anon_sym_LBRACE, + [3954] = 5, ACTIONS(372), 1, - anon_sym_COLON, - ACTIONS(374), 1, - anon_sym_LT, - STATE(188), 1, - sym_template_declaration_arguments, - STATE(233), 1, - sym_interface_ports, - STATE(234), 1, - sym_block, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4764] = 5, - ACTIONS(340), 1, - sym_identifier, - ACTIONS(344), 1, - anon_sym_COLON_COLON, - STATE(238), 1, - sym_template_type_param, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(175), 3, - sym__type, - sym_array_type, - sym_template_global, - [4783] = 5, - ACTIONS(376), 1, anon_sym_EQ, - ACTIONS(378), 1, + ACTIONS(374), 1, anon_sym_COLON_COLON, - STATE(128), 1, + STATE(122), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(76), 3, + ACTIONS(61), 3, anon_sym_GT, anon_sym_LBRACK, anon_sym_COMMA, - [4802] = 5, - ACTIONS(382), 1, + [3973] = 5, + ACTIONS(209), 1, anon_sym_COMMA, - STATE(15), 1, + STATE(14), 1, sym__comma, - STATE(116), 1, + STATE(112), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(380), 3, + ACTIONS(376), 3, anon_sym_EQ, anon_sym_RBRACE, anon_sym_LF, - [4821] = 2, + [3992] = 5, + ACTIONS(380), 1, + anon_sym_COMMA, + STATE(14), 1, + sym__comma, + STATE(115), 1, + aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(385), 5, - anon_sym_DASH_GT, - anon_sym_LBRACE, + ACTIONS(378), 3, + anon_sym_EQ, anon_sym_RBRACE, - anon_sym_COMMA, anon_sym_LF, - [4833] = 4, - ACTIONS(344), 1, - anon_sym_COLON_COLON, - ACTIONS(387), 1, - sym_identifier, + [4011] = 6, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(385), 1, + anon_sym_COLON, + STATE(184), 1, + sym_interface_ports, + STATE(228), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(137), 3, - sym__type, - sym_array_type, - sym_template_global, - [4849] = 4, - ACTIONS(317), 1, - anon_sym_DASH_GT, - STATE(219), 1, - sym__interface_ports_output, + ACTIONS(383), 2, + anon_sym_RBRACE, + anon_sym_LF, + [4032] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(387), 1, + ts_builtin_sym_end, + ACTIONS(389), 1, + anon_sym_LF, + STATE(193), 1, + aux_sym__linebreak, + STATE(224), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(389), 3, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_LF, - [4865] = 6, + [4052] = 6, ACTIONS(7), 1, anon_sym_module, + ACTIONS(389), 1, + anon_sym_LF, ACTIONS(391), 1, ts_builtin_sym_end, - ACTIONS(393), 1, + STATE(193), 1, + aux_sym__linebreak, + STATE(224), 1, + sym_module, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [4072] = 6, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(389), 1, anon_sym_LF, - STATE(191), 1, + ACTIONS(393), 1, + ts_builtin_sym_end, + STATE(193), 1, aux_sym__linebreak, - STATE(192), 1, + STATE(224), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4885] = 4, - ACTIONS(378), 1, + [4092] = 4, + ACTIONS(395), 1, anon_sym_COLON_COLON, - STATE(129), 1, + STATE(120), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(72), 3, + ACTIONS(67), 3, anon_sym_GT, anon_sym_LBRACK, anon_sym_COMMA, - [4901] = 4, - ACTIONS(35), 1, + [4108] = 4, + ACTIONS(374), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, - sym_identifier, + STATE(120), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(207), 3, - sym__type, - sym_array_type, - sym_template_global, - [4917] = 4, - ACTIONS(378), 1, + ACTIONS(74), 3, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + [4124] = 4, + ACTIONS(374), 1, anon_sym_COLON_COLON, - STATE(128), 1, + STATE(120), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(76), 3, + ACTIONS(82), 3, anon_sym_GT, anon_sym_LBRACK, anon_sym_COMMA, - [4933] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(393), 1, - anon_sym_LF, - ACTIONS(395), 1, - ts_builtin_sym_end, - STATE(191), 1, - aux_sym__linebreak, - STATE(237), 1, - sym_module, + [4140] = 4, + ACTIONS(374), 1, + anon_sym_COLON_COLON, + STATE(121), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4953] = 4, - ACTIONS(317), 1, - anon_sym_DASH_GT, - STATE(222), 1, - sym__interface_ports_output, + ACTIONS(78), 3, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + [4156] = 4, + ACTIONS(374), 1, + anon_sym_COLON_COLON, + STATE(122), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(397), 3, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_LF, - [4969] = 6, + ACTIONS(61), 3, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + [4172] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(393), 1, + ACTIONS(389), 1, anon_sym_LF, - ACTIONS(399), 1, + ACTIONS(398), 1, ts_builtin_sym_end, - STATE(191), 1, + STATE(193), 1, aux_sym__linebreak, - STATE(237), 1, + STATE(224), 1, sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4989] = 4, - ACTIONS(344), 1, + [4192] = 4, + ACTIONS(348), 1, anon_sym_COLON_COLON, - ACTIONS(387), 1, + ACTIONS(400), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(197), 3, + STATE(204), 3, sym__type, sym_array_type, sym_template_global, - [5005] = 4, - ACTIONS(378), 1, - anon_sym_COLON_COLON, - STATE(135), 1, - aux_sym_template_global_repeat1, + [4208] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(59), 3, - anon_sym_GT, - anon_sym_LBRACK, + ACTIONS(402), 5, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DASH_GT, anon_sym_COMMA, - [5021] = 4, - ACTIONS(378), 1, + anon_sym_LF, + [4220] = 4, + ACTIONS(37), 1, anon_sym_COLON_COLON, - STATE(135), 1, - aux_sym_template_global_repeat1, + ACTIONS(242), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 3, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COMMA, - [5037] = 6, - ACTIONS(401), 1, + STATE(208), 3, + sym__type, + sym_array_type, + sym_template_global, + [4236] = 6, + ACTIONS(404), 1, anon_sym_EQ, - ACTIONS(403), 1, + ACTIONS(406), 1, anon_sym_RBRACE, - ACTIONS(405), 1, + ACTIONS(408), 1, anon_sym_LF, - STATE(3), 1, + STATE(8), 1, aux_sym__linebreak, - STATE(149), 1, + STATE(191), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5057] = 4, - ACTIONS(35), 1, + [4256] = 4, + ACTIONS(315), 1, + anon_sym_DASH_GT, + STATE(214), 1, + sym__interface_ports_output, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(410), 3, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_LF, + [4272] = 4, + ACTIONS(37), 1, anon_sym_COLON_COLON, ACTIONS(242), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(220), 3, + STATE(217), 3, sym__type, sym_array_type, sym_template_global, - [5073] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(393), 1, - anon_sym_LF, - ACTIONS(407), 1, - ts_builtin_sym_end, - STATE(191), 1, - aux_sym__linebreak, - STATE(237), 1, - sym_module, + [4288] = 4, + ACTIONS(315), 1, + anon_sym_DASH_GT, + STATE(207), 1, + sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5093] = 6, + ACTIONS(412), 3, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_LF, + [4304] = 6, ACTIONS(7), 1, anon_sym_module, - ACTIONS(393), 1, + ACTIONS(389), 1, anon_sym_LF, - ACTIONS(409), 1, + ACTIONS(414), 1, ts_builtin_sym_end, - STATE(191), 1, - aux_sym__linebreak, - STATE(237), 1, + STATE(139), 1, sym_module, + STATE(193), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5113] = 6, - ACTIONS(401), 1, + [4324] = 6, + ACTIONS(404), 1, anon_sym_EQ, - ACTIONS(411), 1, + ACTIONS(416), 1, anon_sym_RBRACE, - ACTIONS(413), 1, + ACTIONS(418), 1, anon_sym_LF, - STATE(8), 1, + STATE(4), 1, aux_sym__linebreak, - STATE(164), 1, + STATE(148), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5133] = 4, - ACTIONS(415), 1, + [4344] = 4, + ACTIONS(348), 1, anon_sym_COLON_COLON, - STATE(135), 1, - aux_sym_template_global_repeat1, + ACTIONS(400), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(65), 3, - anon_sym_GT, - anon_sym_LBRACK, + STATE(182), 3, + sym__type, + sym_array_type, + sym_template_global, + [4360] = 5, + ACTIONS(209), 1, anon_sym_COMMA, - [5149] = 5, - ACTIONS(418), 1, - anon_sym_GT, ACTIONS(420), 1, - anon_sym_COMMA, - STATE(136), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(227), 1, + anon_sym_SEMI, + STATE(58), 1, sym__comma, + STATE(202), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5166] = 4, - ACTIONS(425), 1, - anon_sym_LBRACK, - STATE(162), 1, - sym_array_bracket_expression, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(423), 2, + [4377] = 5, + ACTIONS(422), 1, anon_sym_GT, + ACTIONS(424), 1, anon_sym_COMMA, - [5181] = 2, + STATE(137), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(226), 1, + sym__comma, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(138), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5192] = 2, + [4394] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -7960,1301 +7799,1296 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5203] = 2, + [4405] = 5, + ACTIONS(429), 1, + ts_builtin_sym_end, + ACTIONS(431), 1, + anon_sym_LF, + STATE(125), 1, + aux_sym__linebreak, + STATE(194), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(148), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5214] = 2, + [4422] = 5, + ACTIONS(433), 1, + anon_sym_RBRACE, + ACTIONS(435), 1, + anon_sym_LF, + STATE(10), 1, + aux_sym__linebreak, + STATE(140), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(429), 4, - anon_sym_EQ, - anon_sym_RBRACE, - anon_sym_COMMA, - anon_sym_LF, - [5225] = 2, + [4439] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(112), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5236] = 5, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(393), 1, + ACTIONS(427), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, anon_sym_LF, - STATE(191), 1, + [4450] = 5, + ACTIONS(438), 1, + ts_builtin_sym_end, + ACTIONS(440), 1, + anon_sym_LF, + STATE(119), 1, aux_sym__linebreak, - STATE(237), 1, - sym_module, + STATE(189), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5253] = 2, + [4467] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(142), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, + ACTIONS(442), 4, + anon_sym_EQ, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LF, + [4478] = 5, + ACTIONS(209), 1, anon_sym_COMMA, - [5264] = 2, + ACTIONS(444), 1, + anon_sym_SEMI, + STATE(58), 1, + sym__comma, + STATE(202), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(203), 4, - anon_sym_EQ, - anon_sym_RBRACE, + [4495] = 5, + ACTIONS(209), 1, anon_sym_COMMA, - anon_sym_LF, - [5275] = 2, + ACTIONS(446), 1, + anon_sym_SEMI, + STATE(58), 1, + sym__comma, + STATE(144), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(431), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5286] = 5, - ACTIONS(411), 1, - anon_sym_RBRACE, - ACTIONS(413), 1, - anon_sym_LF, - STATE(8), 1, - aux_sym__linebreak, - STATE(189), 1, - aux_sym_block_repeat1, + [4512] = 5, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(448), 1, + anon_sym_LT, + STATE(233), 1, + sym_block, + STATE(236), 1, + sym_template_declaration_arguments, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5303] = 5, - ACTIONS(433), 1, + [4529] = 5, + ACTIONS(450), 1, anon_sym_RBRACE, - ACTIONS(435), 1, + ACTIONS(452), 1, anon_sym_LF, - STATE(6), 1, + STATE(3), 1, aux_sym__linebreak, - STATE(171), 1, + STATE(140), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5320] = 5, - ACTIONS(437), 1, + [4546] = 5, + ACTIONS(454), 1, anon_sym_RBRACE, - ACTIONS(439), 1, + ACTIONS(456), 1, anon_sym_LF, - STATE(7), 1, + STATE(2), 1, aux_sym__linebreak, - STATE(171), 1, + STATE(140), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5337] = 5, - ACTIONS(207), 1, + [4563] = 4, + ACTIONS(13), 1, + anon_sym_LBRACE, + ACTIONS(458), 1, + anon_sym_if, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(230), 2, + sym_block, + sym_if_statement, + [4578] = 5, + ACTIONS(209), 1, anon_sym_COMMA, - ACTIONS(441), 1, + ACTIONS(460), 1, anon_sym_GT, - STATE(114), 1, + STATE(111), 1, sym__comma, - STATE(157), 1, + STATE(205), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5354] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(211), 4, - anon_sym_EQ, - anon_sym_RBRACE, + [4595] = 5, + ACTIONS(209), 1, anon_sym_COMMA, - anon_sym_LF, - [5365] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(443), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5376] = 2, + ACTIONS(462), 1, + anon_sym_GT, + STATE(111), 1, + sym__comma, + STATE(150), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(134), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5387] = 5, - ACTIONS(207), 1, + [4612] = 5, + ACTIONS(209), 1, anon_sym_COMMA, - ACTIONS(445), 1, + ACTIONS(464), 1, anon_sym_GT, - STATE(177), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(227), 1, + STATE(111), 1, sym__comma, + STATE(205), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5404] = 2, + [4629] = 5, + ACTIONS(209), 1, + anon_sym_COMMA, + ACTIONS(466), 1, + anon_sym_GT, + STATE(111), 1, + sym__comma, + STATE(152), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(427), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5415] = 5, - ACTIONS(207), 1, + [4646] = 5, + ACTIONS(209), 1, anon_sym_COMMA, - ACTIONS(447), 1, - anon_sym_SEMI, - STATE(62), 1, + ACTIONS(468), 1, + anon_sym_GT, + STATE(111), 1, sym__comma, - STATE(180), 1, - aux_sym_template_params_repeat1, + STATE(205), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5432] = 5, - ACTIONS(207), 1, + [4663] = 5, + ACTIONS(209), 1, anon_sym_COMMA, - ACTIONS(449), 1, + ACTIONS(470), 1, anon_sym_GT, - STATE(114), 1, + STATE(137), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(226), 1, sym__comma, - STATE(199), 1, - aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5449] = 5, - ACTIONS(207), 1, + [4680] = 5, + ACTIONS(209), 1, anon_sym_COMMA, - ACTIONS(451), 1, + ACTIONS(472), 1, anon_sym_GT, - STATE(114), 1, + STATE(111), 1, sym__comma, - STATE(165), 1, + STATE(154), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5466] = 4, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(453), 1, - anon_sym_if, + [4697] = 5, + ACTIONS(209), 1, + anon_sym_COMMA, + ACTIONS(474), 1, + anon_sym_SEMI, + STATE(58), 1, + sym__comma, + STATE(136), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(231), 2, - sym_block, - sym_if_statement, - [5481] = 2, + [4714] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(455), 4, + ACTIONS(476), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5492] = 2, + [4725] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(457), 4, + ACTIONS(476), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5503] = 2, + [4736] = 5, + ACTIONS(7), 1, + anon_sym_module, + ACTIONS(389), 1, + anon_sym_LF, + STATE(193), 1, + aux_sym__linebreak, + STATE(224), 1, + sym_module, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [4753] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(459), 4, + ACTIONS(120), 4, anon_sym_GT, anon_sym_LBRACK, - sym_identifier, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [4764] = 5, + ACTIONS(209), 1, anon_sym_COMMA, - [5514] = 2, + ACTIONS(478), 1, + anon_sym_RPAREN, + STATE(71), 1, + sym__comma, + STATE(185), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(457), 4, + [4781] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(480), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5525] = 5, - ACTIONS(461), 1, + [4792] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(482), 4, + ts_builtin_sym_end, anon_sym_RBRACE, - ACTIONS(463), 1, + anon_sym_else, anon_sym_LF, - STATE(4), 1, + [4803] = 5, + ACTIONS(484), 1, + ts_builtin_sym_end, + ACTIONS(486), 1, + anon_sym_LF, + STATE(117), 1, aux_sym__linebreak, - STATE(171), 1, - aux_sym_block_repeat1, + STATE(142), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5542] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - ACTIONS(465), 1, - anon_sym_GT, - STATE(114), 1, - sym__comma, - STATE(199), 1, - aux_sym_template_params_repeat2, + [4820] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5559] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - ACTIONS(467), 1, - anon_sym_RPAREN, - STATE(66), 1, - sym__comma, - STATE(184), 1, - aux_sym_parenthesis_expression_list_repeat1, + ACTIONS(482), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [4831] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5576] = 2, + ACTIONS(124), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [4842] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(469), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5587] = 2, + ACTIONS(128), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [4853] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(471), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5598] = 2, + ACTIONS(132), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [4864] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(126), 4, + ACTIONS(136), 4, anon_sym_GT, anon_sym_LBRACK, anon_sym_COLON_COLON, anon_sym_COMMA, - [5609] = 2, + [4875] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(471), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5620] = 5, - ACTIONS(473), 1, + ACTIONS(213), 4, + anon_sym_EQ, anon_sym_RBRACE, - ACTIONS(475), 1, + anon_sym_COMMA, anon_sym_LF, - STATE(10), 1, - aux_sym__linebreak, - STATE(171), 1, - aux_sym_block_repeat1, + [4886] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5637] = 2, + ACTIONS(140), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [4897] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(120), 4, + ACTIONS(144), 4, anon_sym_GT, anon_sym_LBRACK, anon_sym_COLON_COLON, anon_sym_COMMA, - [5648] = 5, - ACTIONS(478), 1, - ts_builtin_sym_end, - ACTIONS(480), 1, + [4908] = 5, + ACTIONS(416), 1, + anon_sym_RBRACE, + ACTIONS(418), 1, anon_sym_LF, - STATE(133), 1, + STATE(4), 1, aux_sym__linebreak, - STATE(179), 1, - aux_sym_source_file_repeat1, + STATE(147), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5665] = 2, + [4925] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(488), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [4936] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(116), 4, + ACTIONS(100), 4, anon_sym_GT, anon_sym_LBRACK, anon_sym_COLON_COLON, anon_sym_COMMA, - [5676] = 4, - ACTIONS(425), 1, + [4947] = 4, + ACTIONS(492), 1, anon_sym_LBRACK, - STATE(162), 1, + STATE(180), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(482), 2, + ACTIONS(490), 2, anon_sym_GT, anon_sym_COMMA, - [5691] = 5, - ACTIONS(207), 1, + [4962] = 5, + ACTIONS(209), 1, anon_sym_COMMA, - ACTIONS(484), 1, + ACTIONS(494), 1, anon_sym_GT, - STATE(114), 1, + STATE(111), 1, sym__comma, - STATE(190), 1, + STATE(196), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5708] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - ACTIONS(486), 1, - anon_sym_GT, - STATE(136), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(227), 1, - sym__comma, + [4979] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5725] = 4, - ACTIONS(372), 1, - anon_sym_COLON, - STATE(229), 1, - sym_interface_ports, + ACTIONS(110), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [4990] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(488), 2, + ACTIONS(496), 4, + anon_sym_GT, + anon_sym_LBRACK, + sym_identifier, + anon_sym_COMMA, + [5001] = 5, + ACTIONS(406), 1, anon_sym_RBRACE, + ACTIONS(408), 1, anon_sym_LF, - [5740] = 5, - ACTIONS(490), 1, - ts_builtin_sym_end, - ACTIONS(492), 1, - anon_sym_LF, - STATE(143), 1, + STATE(8), 1, aux_sym__linebreak, - STATE(179), 1, - aux_sym_source_file_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5757] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - ACTIONS(495), 1, - anon_sym_SEMI, - STATE(62), 1, - sym__comma, STATE(195), 1, - aux_sym_template_params_repeat1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5774] = 2, + [5018] = 4, + ACTIONS(492), 1, + anon_sym_LBRACK, + STATE(180), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(108), 4, + ACTIONS(498), 2, anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5785] = 5, - ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(497), 1, - anon_sym_GT, - STATE(114), 1, - sym__comma, - STATE(183), 1, - aux_sym_template_params_repeat2, + [5033] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5802] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - ACTIONS(499), 1, + ACTIONS(114), 4, anon_sym_GT, - STATE(114), 1, - sym__comma, - STATE(199), 1, - aux_sym_template_params_repeat2, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5044] = 4, + ACTIONS(13), 1, + anon_sym_LBRACE, + STATE(237), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5819] = 5, - ACTIONS(501), 1, + ACTIONS(500), 2, + anon_sym_RBRACE, + anon_sym_LF, + [5059] = 5, + ACTIONS(502), 1, anon_sym_RPAREN, - ACTIONS(503), 1, + ACTIONS(504), 1, anon_sym_COMMA, - STATE(66), 1, + STATE(71), 1, sym__comma, - STATE(184), 1, + STATE(185), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5836] = 2, + [5076] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(506), 4, + ACTIONS(507), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5847] = 2, + [5087] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(506), 4, + ACTIONS(507), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5858] = 2, + [5098] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(508), 4, - ts_builtin_sym_end, + ACTIONS(205), 4, + anon_sym_EQ, anon_sym_RBRACE, - anon_sym_else, + anon_sym_COMMA, anon_sym_LF, - [5869] = 5, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(372), 1, - anon_sym_COLON, - STATE(235), 1, - sym_block, - STATE(236), 1, - sym_interface_ports, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5886] = 5, - ACTIONS(510), 1, - anon_sym_RBRACE, - ACTIONS(512), 1, + [5109] = 5, + ACTIONS(509), 1, + ts_builtin_sym_end, + ACTIONS(511), 1, anon_sym_LF, - STATE(5), 1, + STATE(160), 1, aux_sym__linebreak, - STATE(171), 1, - aux_sym_block_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5903] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - ACTIONS(514), 1, - anon_sym_GT, - STATE(114), 1, - sym__comma, - STATE(199), 1, - aux_sym_template_params_repeat2, + STATE(189), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5920] = 4, - ACTIONS(516), 1, - anon_sym_LF, - STATE(191), 1, - aux_sym__linebreak, + [5126] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(196), 2, - ts_builtin_sym_end, - anon_sym_module, - [5935] = 5, - ACTIONS(519), 1, + ACTIONS(514), 4, ts_builtin_sym_end, - ACTIONS(521), 1, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [5137] = 5, + ACTIONS(516), 1, + anon_sym_RBRACE, + ACTIONS(518), 1, anon_sym_LF, - STATE(124), 1, + STATE(5), 1, aux_sym__linebreak, - STATE(173), 1, - aux_sym_source_file_repeat1, + STATE(140), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5952] = 5, - ACTIONS(207), 1, + [5154] = 5, + ACTIONS(209), 1, anon_sym_COMMA, - ACTIONS(523), 1, + ACTIONS(520), 1, anon_sym_GT, - STATE(114), 1, + STATE(111), 1, sym__comma, - STATE(201), 1, + STATE(205), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5969] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(94), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5980] = 5, - ACTIONS(525), 1, - anon_sym_SEMI, - ACTIONS(527), 1, - anon_sym_COMMA, - STATE(62), 1, - sym__comma, - STATE(195), 1, - aux_sym_template_params_repeat1, + sym_single_line_comment, + sym_multi_line_comment, + [5171] = 4, + ACTIONS(522), 1, + anon_sym_LF, + STATE(193), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5997] = 5, - ACTIONS(530), 1, + ACTIONS(186), 2, + ts_builtin_sym_end, + anon_sym_module, + [5186] = 5, + ACTIONS(525), 1, ts_builtin_sym_end, - ACTIONS(532), 1, + ACTIONS(527), 1, anon_sym_LF, - STATE(126), 1, + STATE(118), 1, aux_sym__linebreak, - STATE(179), 1, + STATE(189), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6014] = 4, - ACTIONS(425), 1, - anon_sym_LBRACK, - STATE(162), 1, - sym_array_bracket_expression, + [5203] = 5, + ACTIONS(529), 1, + anon_sym_RBRACE, + ACTIONS(531), 1, + anon_sym_LF, + STATE(6), 1, + aux_sym__linebreak, + STATE(140), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(534), 2, - anon_sym_GT, - anon_sym_COMMA, - [6029] = 5, - ACTIONS(207), 1, + [5220] = 5, + ACTIONS(209), 1, anon_sym_COMMA, - ACTIONS(536), 1, - anon_sym_SEMI, - STATE(62), 1, + ACTIONS(533), 1, + anon_sym_GT, + STATE(111), 1, sym__comma, - STATE(195), 1, - aux_sym_template_params_repeat1, + STATE(205), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6046] = 5, - ACTIONS(538), 1, - anon_sym_GT, - ACTIONS(540), 1, + [5237] = 5, + ACTIONS(209), 1, anon_sym_COMMA, - STATE(114), 1, + ACTIONS(535), 1, + anon_sym_GT, + STATE(111), 1, sym__comma, - STATE(199), 1, + STATE(192), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6063] = 5, - ACTIONS(403), 1, + [5254] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(537), 4, + ts_builtin_sym_end, anon_sym_RBRACE, - ACTIONS(405), 1, + anon_sym_else, anon_sym_LF, - STATE(3), 1, - aux_sym__linebreak, - STATE(148), 1, - aux_sym_block_repeat1, + [5265] = 5, + ACTIONS(209), 1, + anon_sym_COMMA, + ACTIONS(539), 1, + anon_sym_GT, + STATE(111), 1, + sym__comma, + STATE(200), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6080] = 5, - ACTIONS(207), 1, + [5282] = 5, + ACTIONS(209), 1, anon_sym_COMMA, - ACTIONS(543), 1, + ACTIONS(541), 1, anon_sym_GT, - STATE(114), 1, + STATE(111), 1, sym__comma, - STATE(199), 1, + STATE(205), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6097] = 2, + [5299] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(545), 4, + ACTIONS(543), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [6108] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, + [5310] = 5, + ACTIONS(545), 1, + anon_sym_SEMI, ACTIONS(547), 1, - anon_sym_GT, - STATE(114), 1, + anon_sym_COMMA, + STATE(58), 1, sym__comma, - STATE(206), 1, - aux_sym_template_params_repeat2, + STATE(202), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6125] = 5, - ACTIONS(549), 1, - ts_builtin_sym_end, - ACTIONS(551), 1, - anon_sym_LF, - STATE(132), 1, - aux_sym__linebreak, - STATE(196), 1, - aux_sym_source_file_repeat1, + [5327] = 5, + ACTIONS(209), 1, + anon_sym_COMMA, + ACTIONS(550), 1, + anon_sym_GT, + STATE(155), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(226), 1, + sym__comma, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6142] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - ACTIONS(553), 1, - anon_sym_SEMI, - STATE(62), 1, - sym__comma, - STATE(198), 1, - aux_sym_template_params_repeat1, + [5344] = 4, + ACTIONS(492), 1, + anon_sym_LBRACK, + STATE(180), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6159] = 5, - ACTIONS(207), 1, + ACTIONS(552), 2, + anon_sym_GT, anon_sym_COMMA, - ACTIONS(555), 1, + [5359] = 5, + ACTIONS(554), 1, anon_sym_GT, - STATE(114), 1, + ACTIONS(556), 1, + anon_sym_COMMA, + STATE(111), 1, sym__comma, - STATE(199), 1, + STATE(205), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6176] = 4, - ACTIONS(90), 1, - anon_sym_LBRACK, - ACTIONS(557), 1, - sym_identifier, - STATE(162), 1, - sym_array_bracket_expression, + [5376] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6190] = 2, + ACTIONS(559), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [5387] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(559), 3, + ACTIONS(561), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [6200] = 3, + [5397] = 4, + ACTIONS(96), 1, + anon_sym_LBRACK, ACTIONS(563), 1, - anon_sym_else, + sym_identifier, + STATE(180), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(561), 2, - anon_sym_RBRACE, - anon_sym_LF, - [6212] = 4, + [5411] = 4, + ACTIONS(96), 1, + anon_sym_LBRACK, ACTIONS(565), 1, sym_identifier, - ACTIONS(567), 1, + STATE(180), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5425] = 3, + ACTIONS(569), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(567), 2, + anon_sym_GT, + anon_sym_COMMA, + [5437] = 4, + ACTIONS(571), 1, + sym_identifier, + ACTIONS(573), 1, anon_sym_GT, - STATE(154), 1, + STATE(203), 1, sym_template_declaration_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6226] = 2, + [5451] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(569), 3, + ACTIONS(575), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [6236] = 4, - ACTIONS(90), 1, + [5461] = 4, + ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(571), 1, + ACTIONS(577), 1, sym_identifier, - STATE(162), 1, + STATE(180), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6250] = 3, - ACTIONS(575), 1, - anon_sym_EQ, + [5475] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(573), 2, - anon_sym_GT, - anon_sym_COMMA, - [6262] = 4, - ACTIONS(577), 1, + ACTIONS(579), 3, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_LF, + [5485] = 4, + ACTIONS(581), 1, sym_identifier, - ACTIONS(579), 1, + ACTIONS(583), 1, anon_sym_LT, - STATE(194), 1, + STATE(21), 1, sym_template_params, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6276] = 3, - ACTIONS(401), 1, - anon_sym_EQ, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(581), 2, - anon_sym_RBRACE, - anon_sym_LF, - [6288] = 2, + [5499] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(583), 3, + ACTIONS(585), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [6298] = 4, - ACTIONS(90), 1, + [5509] = 4, + ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(585), 1, + ACTIONS(587), 1, sym_identifier, - STATE(162), 1, + STATE(180), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6312] = 4, - ACTIONS(587), 1, - sym_identifier, + [5523] = 4, ACTIONS(589), 1, + sym_identifier, + ACTIONS(591), 1, anon_sym_LT, - STATE(18), 1, + STATE(183), 1, sym_template_params, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6326] = 2, + [5537] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(591), 3, + ACTIONS(593), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [6336] = 4, - ACTIONS(90), 1, - anon_sym_LBRACK, - ACTIONS(593), 1, - sym_identifier, - STATE(162), 1, - sym_array_bracket_expression, + [5547] = 3, + ACTIONS(597), 1, + anon_sym_else, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6350] = 2, + ACTIONS(595), 2, + anon_sym_RBRACE, + anon_sym_LF, + [5559] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(595), 3, + ACTIONS(599), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [6360] = 2, + [5569] = 3, + ACTIONS(404), 1, + anon_sym_EQ, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(597), 3, - anon_sym_LBRACE, + ACTIONS(601), 2, anon_sym_RBRACE, anon_sym_LF, - [6370] = 2, + [5581] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(152), 3, + ACTIONS(154), 3, anon_sym_GT, anon_sym_LBRACK, anon_sym_COMMA, - [6380] = 2, + [5591] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(599), 2, - anon_sym_GT, - anon_sym_COMMA, - [6389] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(601), 2, + ACTIONS(603), 2, ts_builtin_sym_end, anon_sym_LF, - [6398] = 2, + [5600] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(603), 2, + ACTIONS(605), 2, anon_sym_RBRACE, anon_sym_LF, - [6407] = 3, - ACTIONS(565), 1, + [5609] = 3, + ACTIONS(571), 1, sym_identifier, - STATE(224), 1, + STATE(235), 1, sym_template_declaration_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6418] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(605), 2, - anon_sym_COLON, - anon_sym_LBRACE, - [6427] = 2, + [5620] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(607), 2, anon_sym_RBRACE, anon_sym_LF, - [6436] = 2, + [5629] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(609), 2, - ts_builtin_sym_end, + anon_sym_RBRACE, anon_sym_LF, - [6445] = 2, + [5638] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(611), 2, - anon_sym_RBRACE, - anon_sym_LF, - [6454] = 2, + anon_sym_SEMI, + anon_sym_COMMA, + [5647] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(613), 2, - anon_sym_COLON, - anon_sym_LBRACE, - [6463] = 3, - ACTIONS(13), 1, - anon_sym_LBRACE, - STATE(225), 1, - sym_block, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [6474] = 2, + anon_sym_RBRACE, + anon_sym_LF, + [5656] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(615), 2, - ts_builtin_sym_end, - anon_sym_LF, - [6483] = 2, + anon_sym_GT, + anon_sym_COMMA, + [5665] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(617), 2, ts_builtin_sym_end, anon_sym_LF, - [6492] = 3, - ACTIONS(13), 1, - anon_sym_LBRACE, - STATE(230), 1, - sym_block, + [5674] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6503] = 2, + ACTIONS(619), 2, + ts_builtin_sym_end, + anon_sym_LF, + [5683] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(619), 2, - ts_builtin_sym_end, + ACTIONS(601), 2, + anon_sym_RBRACE, anon_sym_LF, - [6512] = 2, + [5692] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(621), 2, anon_sym_GT, anon_sym_COMMA, - [6521] = 2, + [5701] = 3, + ACTIONS(13), 1, + anon_sym_LBRACE, + STATE(232), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(623), 2, - anon_sym_SEMI, - anon_sym_COMMA, - [6530] = 2, + [5712] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(625), 2, - anon_sym_COLON, - anon_sym_LBRACE, - [6539] = 2, + ACTIONS(623), 2, + anon_sym_RBRACE, + anon_sym_LF, + [5721] = 2, + ACTIONS(625), 1, + ts_builtin_sym_end, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(581), 2, - anon_sym_RBRACE, - anon_sym_LF, - [6548] = 2, + [5729] = 2, ACTIONS(627), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6556] = 2, + [5737] = 2, ACTIONS(629), 1, - sym_identifier, + anon_sym_in, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6564] = 2, + [5745] = 2, ACTIONS(631), 1, - sym_identifier, + anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6572] = 2, + [5753] = 2, ACTIONS(633), 1, - sym_identifier, + anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6580] = 2, + [5761] = 2, ACTIONS(635), 1, - sym_identifier, + anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6588] = 2, + [5769] = 2, ACTIONS(637), 1, - anon_sym_in, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6596] = 2, + [5777] = 2, ACTIONS(639), 1, - ts_builtin_sym_end, + sym_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5785] = 2, + ACTIONS(641), 1, + sym_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5793] = 2, + ACTIONS(643), 1, + sym_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5801] = 2, + ACTIONS(645), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, }; static const uint32_t ts_small_parse_table_map[] = { - [SMALL_STATE(2)] = 0, - [SMALL_STATE(3)] = 99, - [SMALL_STATE(4)] = 198, - [SMALL_STATE(5)] = 297, - [SMALL_STATE(6)] = 396, - [SMALL_STATE(7)] = 495, - [SMALL_STATE(8)] = 594, - [SMALL_STATE(9)] = 693, - [SMALL_STATE(10)] = 792, - [SMALL_STATE(11)] = 888, - [SMALL_STATE(12)] = 932, - [SMALL_STATE(13)] = 976, - [SMALL_STATE(14)] = 1020, - [SMALL_STATE(15)] = 1064, - [SMALL_STATE(16)] = 1132, - [SMALL_STATE(17)] = 1176, - [SMALL_STATE(18)] = 1225, - [SMALL_STATE(19)] = 1264, - [SMALL_STATE(20)] = 1323, - [SMALL_STATE(21)] = 1362, - [SMALL_STATE(22)] = 1401, - [SMALL_STATE(23)] = 1440, - [SMALL_STATE(24)] = 1479, - [SMALL_STATE(25)] = 1532, - [SMALL_STATE(26)] = 1593, - [SMALL_STATE(27)] = 1650, - [SMALL_STATE(28)] = 1689, - [SMALL_STATE(29)] = 1738, - [SMALL_STATE(30)] = 1777, - [SMALL_STATE(31)] = 1816, - [SMALL_STATE(32)] = 1855, - [SMALL_STATE(33)] = 1918, - [SMALL_STATE(34)] = 1957, - [SMALL_STATE(35)] = 1995, - [SMALL_STATE(36)] = 2032, - [SMALL_STATE(37)] = 2069, - [SMALL_STATE(38)] = 2106, - [SMALL_STATE(39)] = 2143, - [SMALL_STATE(40)] = 2180, - [SMALL_STATE(41)] = 2217, - [SMALL_STATE(42)] = 2254, - [SMALL_STATE(43)] = 2317, - [SMALL_STATE(44)] = 2370, - [SMALL_STATE(45)] = 2408, - [SMALL_STATE(46)] = 2466, - [SMALL_STATE(47)] = 2528, - [SMALL_STATE(48)] = 2586, - [SMALL_STATE(49)] = 2621, - [SMALL_STATE(50)] = 2658, - [SMALL_STATE(51)] = 2712, - [SMALL_STATE(52)] = 2768, - [SMALL_STATE(53)] = 2810, - [SMALL_STATE(54)] = 2864, - [SMALL_STATE(55)] = 2920, - [SMALL_STATE(56)] = 2962, - [SMALL_STATE(57)] = 3016, - [SMALL_STATE(58)] = 3070, - [SMALL_STATE(59)] = 3123, - [SMALL_STATE(60)] = 3162, - [SMALL_STATE(61)] = 3215, - [SMALL_STATE(62)] = 3268, - [SMALL_STATE(63)] = 3307, - [SMALL_STATE(64)] = 3360, - [SMALL_STATE(65)] = 3392, - [SMALL_STATE(66)] = 3428, - [SMALL_STATE(67)] = 3464, - [SMALL_STATE(68)] = 3500, - [SMALL_STATE(69)] = 3536, - [SMALL_STATE(70)] = 3572, - [SMALL_STATE(71)] = 3608, - [SMALL_STATE(72)] = 3644, - [SMALL_STATE(73)] = 3680, - [SMALL_STATE(74)] = 3716, - [SMALL_STATE(75)] = 3748, - [SMALL_STATE(76)] = 3784, - [SMALL_STATE(77)] = 3820, - [SMALL_STATE(78)] = 3856, - [SMALL_STATE(79)] = 3892, - [SMALL_STATE(80)] = 3928, - [SMALL_STATE(81)] = 3964, - [SMALL_STATE(82)] = 4000, - [SMALL_STATE(83)] = 4036, - [SMALL_STATE(84)] = 4066, - [SMALL_STATE(85)] = 4096, - [SMALL_STATE(86)] = 4121, - [SMALL_STATE(87)] = 4145, - [SMALL_STATE(88)] = 4187, - [SMALL_STATE(89)] = 4229, - [SMALL_STATE(90)] = 4265, - [SMALL_STATE(91)] = 4301, - [SMALL_STATE(92)] = 4328, - [SMALL_STATE(93)] = 4355, - [SMALL_STATE(94)] = 4375, - [SMALL_STATE(95)] = 4395, - [SMALL_STATE(96)] = 4415, - [SMALL_STATE(97)] = 4435, - [SMALL_STATE(98)] = 4449, - [SMALL_STATE(99)] = 4469, - [SMALL_STATE(100)] = 4491, - [SMALL_STATE(101)] = 4505, - [SMALL_STATE(102)] = 4527, - [SMALL_STATE(103)] = 4549, - [SMALL_STATE(104)] = 4571, - [SMALL_STATE(105)] = 4591, - [SMALL_STATE(106)] = 4611, - [SMALL_STATE(107)] = 4633, - [SMALL_STATE(108)] = 4655, - [SMALL_STATE(109)] = 4669, - [SMALL_STATE(110)] = 4683, - [SMALL_STATE(111)] = 4703, - [SMALL_STATE(112)] = 4722, - [SMALL_STATE(113)] = 4741, - [SMALL_STATE(114)] = 4764, - [SMALL_STATE(115)] = 4783, - [SMALL_STATE(116)] = 4802, - [SMALL_STATE(117)] = 4821, - [SMALL_STATE(118)] = 4833, - [SMALL_STATE(119)] = 4849, - [SMALL_STATE(120)] = 4865, - [SMALL_STATE(121)] = 4885, - [SMALL_STATE(122)] = 4901, - [SMALL_STATE(123)] = 4917, - [SMALL_STATE(124)] = 4933, - [SMALL_STATE(125)] = 4953, - [SMALL_STATE(126)] = 4969, - [SMALL_STATE(127)] = 4989, - [SMALL_STATE(128)] = 5005, - [SMALL_STATE(129)] = 5021, - [SMALL_STATE(130)] = 5037, - [SMALL_STATE(131)] = 5057, - [SMALL_STATE(132)] = 5073, - [SMALL_STATE(133)] = 5093, - [SMALL_STATE(134)] = 5113, - [SMALL_STATE(135)] = 5133, - [SMALL_STATE(136)] = 5149, - [SMALL_STATE(137)] = 5166, - [SMALL_STATE(138)] = 5181, - [SMALL_STATE(139)] = 5192, - [SMALL_STATE(140)] = 5203, - [SMALL_STATE(141)] = 5214, - [SMALL_STATE(142)] = 5225, - [SMALL_STATE(143)] = 5236, - [SMALL_STATE(144)] = 5253, - [SMALL_STATE(145)] = 5264, - [SMALL_STATE(146)] = 5275, - [SMALL_STATE(147)] = 5286, - [SMALL_STATE(148)] = 5303, - [SMALL_STATE(149)] = 5320, - [SMALL_STATE(150)] = 5337, - [SMALL_STATE(151)] = 5354, - [SMALL_STATE(152)] = 5365, - [SMALL_STATE(153)] = 5376, - [SMALL_STATE(154)] = 5387, - [SMALL_STATE(155)] = 5404, - [SMALL_STATE(156)] = 5415, - [SMALL_STATE(157)] = 5432, - [SMALL_STATE(158)] = 5449, - [SMALL_STATE(159)] = 5466, - [SMALL_STATE(160)] = 5481, - [SMALL_STATE(161)] = 5492, - [SMALL_STATE(162)] = 5503, - [SMALL_STATE(163)] = 5514, - [SMALL_STATE(164)] = 5525, - [SMALL_STATE(165)] = 5542, - [SMALL_STATE(166)] = 5559, - [SMALL_STATE(167)] = 5576, - [SMALL_STATE(168)] = 5587, - [SMALL_STATE(169)] = 5598, - [SMALL_STATE(170)] = 5609, - [SMALL_STATE(171)] = 5620, - [SMALL_STATE(172)] = 5637, - [SMALL_STATE(173)] = 5648, - [SMALL_STATE(174)] = 5665, - [SMALL_STATE(175)] = 5676, - [SMALL_STATE(176)] = 5691, - [SMALL_STATE(177)] = 5708, - [SMALL_STATE(178)] = 5725, - [SMALL_STATE(179)] = 5740, - [SMALL_STATE(180)] = 5757, - [SMALL_STATE(181)] = 5774, - [SMALL_STATE(182)] = 5785, - [SMALL_STATE(183)] = 5802, - [SMALL_STATE(184)] = 5819, - [SMALL_STATE(185)] = 5836, - [SMALL_STATE(186)] = 5847, - [SMALL_STATE(187)] = 5858, - [SMALL_STATE(188)] = 5869, - [SMALL_STATE(189)] = 5886, - [SMALL_STATE(190)] = 5903, - [SMALL_STATE(191)] = 5920, - [SMALL_STATE(192)] = 5935, - [SMALL_STATE(193)] = 5952, - [SMALL_STATE(194)] = 5969, - [SMALL_STATE(195)] = 5980, - [SMALL_STATE(196)] = 5997, - [SMALL_STATE(197)] = 6014, - [SMALL_STATE(198)] = 6029, - [SMALL_STATE(199)] = 6046, - [SMALL_STATE(200)] = 6063, - [SMALL_STATE(201)] = 6080, - [SMALL_STATE(202)] = 6097, - [SMALL_STATE(203)] = 6108, - [SMALL_STATE(204)] = 6125, - [SMALL_STATE(205)] = 6142, - [SMALL_STATE(206)] = 6159, - [SMALL_STATE(207)] = 6176, - [SMALL_STATE(208)] = 6190, - [SMALL_STATE(209)] = 6200, - [SMALL_STATE(210)] = 6212, - [SMALL_STATE(211)] = 6226, - [SMALL_STATE(212)] = 6236, - [SMALL_STATE(213)] = 6250, - [SMALL_STATE(214)] = 6262, - [SMALL_STATE(215)] = 6276, - [SMALL_STATE(216)] = 6288, - [SMALL_STATE(217)] = 6298, - [SMALL_STATE(218)] = 6312, - [SMALL_STATE(219)] = 6326, - [SMALL_STATE(220)] = 6336, - [SMALL_STATE(221)] = 6350, - [SMALL_STATE(222)] = 6360, - [SMALL_STATE(223)] = 6370, - [SMALL_STATE(224)] = 6380, - [SMALL_STATE(225)] = 6389, - [SMALL_STATE(226)] = 6398, - [SMALL_STATE(227)] = 6407, - [SMALL_STATE(228)] = 6418, - [SMALL_STATE(229)] = 6427, - [SMALL_STATE(230)] = 6436, - [SMALL_STATE(231)] = 6445, - [SMALL_STATE(232)] = 6454, - [SMALL_STATE(233)] = 6463, - [SMALL_STATE(234)] = 6474, - [SMALL_STATE(235)] = 6483, - [SMALL_STATE(236)] = 6492, - [SMALL_STATE(237)] = 6503, - [SMALL_STATE(238)] = 6512, - [SMALL_STATE(239)] = 6521, - [SMALL_STATE(240)] = 6530, - [SMALL_STATE(241)] = 6539, - [SMALL_STATE(242)] = 6548, - [SMALL_STATE(243)] = 6556, - [SMALL_STATE(244)] = 6564, - [SMALL_STATE(245)] = 6572, - [SMALL_STATE(246)] = 6580, - [SMALL_STATE(247)] = 6588, - [SMALL_STATE(248)] = 6596, + [SMALL_STATE(10)] = 0, + [SMALL_STATE(11)] = 100, + [SMALL_STATE(12)] = 144, + [SMALL_STATE(13)] = 188, + [SMALL_STATE(14)] = 232, + [SMALL_STATE(15)] = 300, + [SMALL_STATE(16)] = 344, + [SMALL_STATE(17)] = 388, + [SMALL_STATE(18)] = 441, + [SMALL_STATE(19)] = 480, + [SMALL_STATE(20)] = 539, + [SMALL_STATE(21)] = 578, + [SMALL_STATE(22)] = 617, + [SMALL_STATE(23)] = 678, + [SMALL_STATE(24)] = 717, + [SMALL_STATE(25)] = 756, + [SMALL_STATE(26)] = 795, + [SMALL_STATE(27)] = 834, + [SMALL_STATE(28)] = 873, + [SMALL_STATE(29)] = 912, + [SMALL_STATE(30)] = 951, + [SMALL_STATE(31)] = 1008, + [SMALL_STATE(32)] = 1057, + [SMALL_STATE(33)] = 1106, + [SMALL_STATE(34)] = 1169, + [SMALL_STATE(35)] = 1207, + [SMALL_STATE(36)] = 1244, + [SMALL_STATE(37)] = 1281, + [SMALL_STATE(38)] = 1318, + [SMALL_STATE(39)] = 1355, + [SMALL_STATE(40)] = 1392, + [SMALL_STATE(41)] = 1429, + [SMALL_STATE(42)] = 1466, + [SMALL_STATE(43)] = 1505, + [SMALL_STATE(44)] = 1558, + [SMALL_STATE(45)] = 1621, + [SMALL_STATE(46)] = 1679, + [SMALL_STATE(47)] = 1741, + [SMALL_STATE(48)] = 1799, + [SMALL_STATE(49)] = 1836, + [SMALL_STATE(50)] = 1871, + [SMALL_STATE(51)] = 1927, + [SMALL_STATE(52)] = 1981, + [SMALL_STATE(53)] = 2023, + [SMALL_STATE(54)] = 2077, + [SMALL_STATE(55)] = 2131, + [SMALL_STATE(56)] = 2173, + [SMALL_STATE(57)] = 2229, + [SMALL_STATE(58)] = 2283, + [SMALL_STATE(59)] = 2322, + [SMALL_STATE(60)] = 2361, + [SMALL_STATE(61)] = 2414, + [SMALL_STATE(62)] = 2467, + [SMALL_STATE(63)] = 2520, + [SMALL_STATE(64)] = 2573, + [SMALL_STATE(65)] = 2609, + [SMALL_STATE(66)] = 2645, + [SMALL_STATE(67)] = 2681, + [SMALL_STATE(68)] = 2717, + [SMALL_STATE(69)] = 2753, + [SMALL_STATE(70)] = 2789, + [SMALL_STATE(71)] = 2825, + [SMALL_STATE(72)] = 2861, + [SMALL_STATE(73)] = 2893, + [SMALL_STATE(74)] = 2929, + [SMALL_STATE(75)] = 2965, + [SMALL_STATE(76)] = 2997, + [SMALL_STATE(77)] = 3033, + [SMALL_STATE(78)] = 3069, + [SMALL_STATE(79)] = 3105, + [SMALL_STATE(80)] = 3141, + [SMALL_STATE(81)] = 3177, + [SMALL_STATE(82)] = 3213, + [SMALL_STATE(83)] = 3249, + [SMALL_STATE(84)] = 3279, + [SMALL_STATE(85)] = 3309, + [SMALL_STATE(86)] = 3334, + [SMALL_STATE(87)] = 3376, + [SMALL_STATE(88)] = 3400, + [SMALL_STATE(89)] = 3442, + [SMALL_STATE(90)] = 3478, + [SMALL_STATE(91)] = 3514, + [SMALL_STATE(92)] = 3541, + [SMALL_STATE(93)] = 3568, + [SMALL_STATE(94)] = 3588, + [SMALL_STATE(95)] = 3608, + [SMALL_STATE(96)] = 3628, + [SMALL_STATE(97)] = 3648, + [SMALL_STATE(98)] = 3662, + [SMALL_STATE(99)] = 3682, + [SMALL_STATE(100)] = 3702, + [SMALL_STATE(101)] = 3724, + [SMALL_STATE(102)] = 3738, + [SMALL_STATE(103)] = 3758, + [SMALL_STATE(104)] = 3780, + [SMALL_STATE(105)] = 3802, + [SMALL_STATE(106)] = 3824, + [SMALL_STATE(107)] = 3846, + [SMALL_STATE(108)] = 3860, + [SMALL_STATE(109)] = 3880, + [SMALL_STATE(110)] = 3894, + [SMALL_STATE(111)] = 3916, + [SMALL_STATE(112)] = 3935, + [SMALL_STATE(113)] = 3954, + [SMALL_STATE(114)] = 3973, + [SMALL_STATE(115)] = 3992, + [SMALL_STATE(116)] = 4011, + [SMALL_STATE(117)] = 4032, + [SMALL_STATE(118)] = 4052, + [SMALL_STATE(119)] = 4072, + [SMALL_STATE(120)] = 4092, + [SMALL_STATE(121)] = 4108, + [SMALL_STATE(122)] = 4124, + [SMALL_STATE(123)] = 4140, + [SMALL_STATE(124)] = 4156, + [SMALL_STATE(125)] = 4172, + [SMALL_STATE(126)] = 4192, + [SMALL_STATE(127)] = 4208, + [SMALL_STATE(128)] = 4220, + [SMALL_STATE(129)] = 4236, + [SMALL_STATE(130)] = 4256, + [SMALL_STATE(131)] = 4272, + [SMALL_STATE(132)] = 4288, + [SMALL_STATE(133)] = 4304, + [SMALL_STATE(134)] = 4324, + [SMALL_STATE(135)] = 4344, + [SMALL_STATE(136)] = 4360, + [SMALL_STATE(137)] = 4377, + [SMALL_STATE(138)] = 4394, + [SMALL_STATE(139)] = 4405, + [SMALL_STATE(140)] = 4422, + [SMALL_STATE(141)] = 4439, + [SMALL_STATE(142)] = 4450, + [SMALL_STATE(143)] = 4467, + [SMALL_STATE(144)] = 4478, + [SMALL_STATE(145)] = 4495, + [SMALL_STATE(146)] = 4512, + [SMALL_STATE(147)] = 4529, + [SMALL_STATE(148)] = 4546, + [SMALL_STATE(149)] = 4563, + [SMALL_STATE(150)] = 4578, + [SMALL_STATE(151)] = 4595, + [SMALL_STATE(152)] = 4612, + [SMALL_STATE(153)] = 4629, + [SMALL_STATE(154)] = 4646, + [SMALL_STATE(155)] = 4663, + [SMALL_STATE(156)] = 4680, + [SMALL_STATE(157)] = 4697, + [SMALL_STATE(158)] = 4714, + [SMALL_STATE(159)] = 4725, + [SMALL_STATE(160)] = 4736, + [SMALL_STATE(161)] = 4753, + [SMALL_STATE(162)] = 4764, + [SMALL_STATE(163)] = 4781, + [SMALL_STATE(164)] = 4792, + [SMALL_STATE(165)] = 4803, + [SMALL_STATE(166)] = 4820, + [SMALL_STATE(167)] = 4831, + [SMALL_STATE(168)] = 4842, + [SMALL_STATE(169)] = 4853, + [SMALL_STATE(170)] = 4864, + [SMALL_STATE(171)] = 4875, + [SMALL_STATE(172)] = 4886, + [SMALL_STATE(173)] = 4897, + [SMALL_STATE(174)] = 4908, + [SMALL_STATE(175)] = 4925, + [SMALL_STATE(176)] = 4936, + [SMALL_STATE(177)] = 4947, + [SMALL_STATE(178)] = 4962, + [SMALL_STATE(179)] = 4979, + [SMALL_STATE(180)] = 4990, + [SMALL_STATE(181)] = 5001, + [SMALL_STATE(182)] = 5018, + [SMALL_STATE(183)] = 5033, + [SMALL_STATE(184)] = 5044, + [SMALL_STATE(185)] = 5059, + [SMALL_STATE(186)] = 5076, + [SMALL_STATE(187)] = 5087, + [SMALL_STATE(188)] = 5098, + [SMALL_STATE(189)] = 5109, + [SMALL_STATE(190)] = 5126, + [SMALL_STATE(191)] = 5137, + [SMALL_STATE(192)] = 5154, + [SMALL_STATE(193)] = 5171, + [SMALL_STATE(194)] = 5186, + [SMALL_STATE(195)] = 5203, + [SMALL_STATE(196)] = 5220, + [SMALL_STATE(197)] = 5237, + [SMALL_STATE(198)] = 5254, + [SMALL_STATE(199)] = 5265, + [SMALL_STATE(200)] = 5282, + [SMALL_STATE(201)] = 5299, + [SMALL_STATE(202)] = 5310, + [SMALL_STATE(203)] = 5327, + [SMALL_STATE(204)] = 5344, + [SMALL_STATE(205)] = 5359, + [SMALL_STATE(206)] = 5376, + [SMALL_STATE(207)] = 5387, + [SMALL_STATE(208)] = 5397, + [SMALL_STATE(209)] = 5411, + [SMALL_STATE(210)] = 5425, + [SMALL_STATE(211)] = 5437, + [SMALL_STATE(212)] = 5451, + [SMALL_STATE(213)] = 5461, + [SMALL_STATE(214)] = 5475, + [SMALL_STATE(215)] = 5485, + [SMALL_STATE(216)] = 5499, + [SMALL_STATE(217)] = 5509, + [SMALL_STATE(218)] = 5523, + [SMALL_STATE(219)] = 5537, + [SMALL_STATE(220)] = 5547, + [SMALL_STATE(221)] = 5559, + [SMALL_STATE(222)] = 5569, + [SMALL_STATE(223)] = 5581, + [SMALL_STATE(224)] = 5591, + [SMALL_STATE(225)] = 5600, + [SMALL_STATE(226)] = 5609, + [SMALL_STATE(227)] = 5620, + [SMALL_STATE(228)] = 5629, + [SMALL_STATE(229)] = 5638, + [SMALL_STATE(230)] = 5647, + [SMALL_STATE(231)] = 5656, + [SMALL_STATE(232)] = 5665, + [SMALL_STATE(233)] = 5674, + [SMALL_STATE(234)] = 5683, + [SMALL_STATE(235)] = 5692, + [SMALL_STATE(236)] = 5701, + [SMALL_STATE(237)] = 5712, + [SMALL_STATE(238)] = 5721, + [SMALL_STATE(239)] = 5729, + [SMALL_STATE(240)] = 5737, + [SMALL_STATE(241)] = 5745, + [SMALL_STATE(242)] = 5753, + [SMALL_STATE(243)] = 5761, + [SMALL_STATE(244)] = 5769, + [SMALL_STATE(245)] = 5777, + [SMALL_STATE(246)] = 5785, + [SMALL_STATE(247)] = 5793, + [SMALL_STATE(248)] = 5801, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -9262,316 +9096,319 @@ static const TSParseActionEntry ts_parse_actions[] = { [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 = true}}, SHIFT(245), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), - [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(242), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(86), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(91), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(110), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(122), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), - [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), - [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), - [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), - [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 2), - [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 2), - [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), - [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), - [65] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), - [67] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(218), - [70] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 15), - [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 15), - [74] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1, .production_id = 1), - [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1, .production_id = 1), - [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 29), - [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 29), - [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 37), - [84] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 37), - [86] = {.entry = {.count = 1, .reusable = false}}, SHIFT(244), - [88] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [90] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), - [94] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), - [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [98] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), - [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [104] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), - [106] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 3), - [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3), - [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 51), - [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 51), - [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 39), - [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 39), - [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 3), - [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 3), - [122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 44), - [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 44), - [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 22), - [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 22), - [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 48), - [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 48), - [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 6), - [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 6), - [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 7, .production_id = 52), - [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 7, .production_id = 52), - [144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 50), - [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 50), - [150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 35), - [152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 35), - [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 18), - [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 18), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(239), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(91), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(247), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(245), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(99), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(128), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), + [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), + [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), + [59] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1, .production_id = 1), + [61] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1, .production_id = 1), + [63] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), + [65] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), + [67] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), + [69] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(215), + [72] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 24), + [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 24), + [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 13), + [78] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 13), + [80] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 2), + [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 2), + [84] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 27), + [86] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 27), + [88] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [90] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80), + [92] = {.entry = {.count = 1, .reusable = false}}, SHIFT(246), + [94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [98] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 29), + [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 29), + [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [104] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), + [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 3), + [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3), + [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), + [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), + [116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 7, .production_id = 51), + [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 7, .production_id = 51), + [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 50), + [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 50), + [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 49), + [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 49), + [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 6), + [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 6), + [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 48), + [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 48), + [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 37), + [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 37), + [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 3), + [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 3), + [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 12), + [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 12), + [150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [152] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 23), + [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 23), + [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), [158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [160] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 24), - [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 24), - [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 35), - [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 35), - [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 38), - [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 38), - [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [160] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 28), + [162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 28), + [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 17), + [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 17), + [172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 16), + [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 16), + [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 23), + [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 23), [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 35), - [184] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), - [186] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 35), - [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244), - [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), - [196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), - [198] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(44), - [201] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 10), - [203] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 10), - [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [209] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 23), - [211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 23), - [213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), - [215] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [219] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [222] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), - [224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 3, .production_id = 47), - [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), - [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 36), - [238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 1, .production_id = 43), - [240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [184] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), + [186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), + [188] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(42), + [191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [193] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), + [195] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 23), + [197] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 23), + [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246), + [203] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 14), + [205] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 14), + [207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [211] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 8), + [213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 8), + [215] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), + [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), + [219] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [223] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), + [226] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 1, .production_id = 36), + [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), + [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 25), + [236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 3, .production_id = 46), + [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), + [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), - [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [254] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), - [256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), - [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [278] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), - [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), - [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [298] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [300] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(85), - [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [305] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 11), - [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 11), - [309] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [313] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 28), - [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 27), - [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 17), - [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 40), - [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 42), - [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), - [337] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(64), - [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), - [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246), - [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 41), - [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), - [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), - [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), - [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), - [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 30), - [364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 45), - [366] = {.entry = {.count = 1, .reusable = false}}, SHIFT(131), - [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), - [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), - [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), - [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), - [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214), - [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), - [382] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(64), - [385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), - [387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), - [389] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 20), - [391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), - [395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), - [397] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 8), - [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), - [401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), - [405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [407] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), - [409] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), - [411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), - [413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [415] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(214), - [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), - [420] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), SHIFT_REPEAT(64), - [423] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 3, .production_id = 32), - [425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [272] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), + [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), + [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [282] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), + [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), + [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [300] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [302] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(85), + [305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [307] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 9), + [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 9), + [311] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [319] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 15), + [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 21), + [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 22), + [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 33), + [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 34), + [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), + [339] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(72), + [342] = {.entry = {.count = 1, .reusable = false}}, SHIFT(131), + [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), + [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248), + [350] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 43), + [352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), + [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169), + [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), + [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 26), + [364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), + [366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 35), + [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), + [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), + [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), + [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), + [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), + [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), + [380] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(72), + [383] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 11), + [385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), + [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), + [391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), + [393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), + [395] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(218), + [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), + [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), + [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), + [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 42), + [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 31), + [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), + [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), + [424] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), SHIFT_REPEAT(72), [427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), - [429] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), - [431] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 39), - [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), - [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), - [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), - [443] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228), - [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169), - [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), - [453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [455] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), - [457] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), - [459] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 18), - [461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), - [463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), - [467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [469] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 39), - [471] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 44), - [473] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), - [475] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), - [478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), - [480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), - [482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 1, .production_id = 43), - [484] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), - [488] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 21), - [490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), - [492] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(143), - [495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), - [497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), - [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), - [501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), - [503] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(64), - [506] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 44), - [508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), - [510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), - [512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [516] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(191), - [519] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), - [521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [525] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), - [527] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), SHIFT_REPEAT(64), - [530] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), - [532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), - [534] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 3, .production_id = 47), - [536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), - [538] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), - [540] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), SHIFT_REPEAT(64), - [543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [545] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [549] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), - [551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), - [553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [559] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 19), - [561] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 34), - [563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), - [565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), - [567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), - [569] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 7), - [571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [573] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1, .production_id = 9), - [575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), - [577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), - [579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [581] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), - [583] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 14), - [585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [591] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 31), - [593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 26), - [597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 16), - [599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 3), - [601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 12), - [603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 49), - [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 3), - [607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 33), - [609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 5, .production_id = 25), - [611] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 46), - [613] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 6), - [615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), - [617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 13), - [619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), - [621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 3), - [623] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 3), - [625] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), - [627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), - [629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), - [635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), - [637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [639] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [429] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), + [431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), + [433] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), + [435] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), + [438] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), + [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), + [442] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), + [444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), + [450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), + [452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), + [456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), + [462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), + [464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), + [466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), + [468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), + [470] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), + [472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), + [474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [476] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), + [478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [480] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 29), + [482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 37), + [484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), + [486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [488] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 1, .production_id = 36), + [492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [496] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 16), + [498] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 3, .production_id = 18), + [500] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 20), + [502] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), + [504] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(72), + [507] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 37), + [509] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), + [511] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(160), + [514] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), + [516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), + [518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [522] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(193), + [525] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), + [527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), + [529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), + [531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [537] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 29), + [539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [543] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), + [545] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), + [547] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), SHIFT_REPEAT(72), + [550] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), + [552] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 3, .production_id = 46), + [554] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), + [556] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), SHIFT_REPEAT(72), + [559] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [561] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 40), + [563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [567] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1, .production_id = 7), + [569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), + [571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), + [573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), + [575] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 30), + [577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [579] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 45), + [581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 44), + [587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), + [591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 39), + [595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 19), + [597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), + [599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 41), + [601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), + [603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), + [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_domain_statement, 2, .production_id = 11), + [607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 47), + [609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 4), + [611] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 3), + [613] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 38), + [615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 3), + [617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 10), + [619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), + [621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 3), + [623] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 4, .production_id = 32), + [625] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), + [629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [631] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 3), + [633] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), + [635] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 6), + [637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), + [641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), + [645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), }; #ifdef __cplusplus From da2bc416b97ee66fd3c21937222891fb1bd0da5e Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Thu, 18 Jul 2024 00:24:26 +0200 Subject: [PATCH 38/49] Add extern & __builtin__ --- grammar.js | 7 +- src/grammar.json | 42 +- src/node-types.json | 38 + src/parser.c | 6741 +++++++++++++++++++++++-------------------- 4 files changed, 3639 insertions(+), 3189 deletions(-) diff --git a/grammar.js b/grammar.js index 59ae789..425e1e9 100644 --- a/grammar.js +++ b/grammar.js @@ -43,7 +43,12 @@ module.exports = grammar({ rules: { // Top level structure - source_file: $ => newlineSepSeq($, $.module), + source_file: $ => newlineSepSeq($, $.source_obj), + + source_obj: $ => seq( + optional(field('extern_marker', choice('__builtin__', 'extern'))), + field('object', $.module) + ), module: $ => seq( 'module', diff --git a/src/grammar.json b/src/grammar.json index 6ccc045..1c4ec85 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -28,7 +28,7 @@ "name": "item", "content": { "type": "SYMBOL", - "name": "module" + "name": "source_obj" } }, { @@ -45,7 +45,7 @@ "name": "item", "content": { "type": "SYMBOL", - "name": "module" + "name": "source_obj" } } ] @@ -72,6 +72,44 @@ } ] }, + "source_obj": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "extern_marker", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "__builtin__" + }, + { + "type": "STRING", + "value": "extern" + } + ] + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "object", + "content": { + "type": "SYMBOL", + "name": "module" + } + } + ] + }, "module": { "type": "SEQ", "members": [ diff --git a/src/node-types.json b/src/node-types.json index 8f60d0e..9686c1e 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -1054,6 +1054,36 @@ "item": { "multiple": true, "required": false, + "types": [ + { + "type": "source_obj", + "named": true + } + ] + } + } + }, + { + "type": "source_obj", + "named": true, + "fields": { + "extern_marker": { + "multiple": false, + "required": false, + "types": [ + { + "type": "__builtin__", + "named": false + }, + { + "type": "extern", + "named": false + } + ] + }, + "object": { + "multiple": false, + "required": true, "types": [ { "type": "module", @@ -1453,6 +1483,10 @@ "type": "^", "named": false }, + { + "type": "__builtin__", + "named": false + }, { "type": "domain", "named": false @@ -1461,6 +1495,10 @@ "type": "else", "named": false }, + { + "type": "extern", + "named": false + }, { "type": "for", "named": false diff --git a/src/parser.c b/src/parser.c index ba496b4..0b81c34 100644 --- a/src/parser.c +++ b/src/parser.c @@ -5,115 +5,120 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 249 -#define LARGE_STATE_COUNT 10 -#define SYMBOL_COUNT 94 +#define STATE_COUNT 252 +#define LARGE_STATE_COUNT 2 +#define SYMBOL_COUNT 97 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 49 +#define TOKEN_COUNT 51 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 31 +#define FIELD_COUNT 33 #define MAX_ALIAS_SEQUENCE_LENGTH 7 -#define PRODUCTION_ID_COUNT 52 +#define PRODUCTION_ID_COUNT 54 enum ts_symbol_identifiers { sym_identifier = 1, - anon_sym_module = 2, - anon_sym_LT = 3, - anon_sym_GT = 4, - anon_sym_EQ = 5, - anon_sym_LBRACE = 6, - anon_sym_RBRACE = 7, - anon_sym_reg = 8, - anon_sym_initial = 9, - anon_sym_if = 10, - anon_sym_else = 11, - anon_sym_for = 12, - anon_sym_in = 13, - anon_sym_DOT_DOT = 14, - anon_sym_domain = 15, - anon_sym_interface = 16, - anon_sym_COLON = 17, - anon_sym_DASH_GT = 18, - anon_sym_input = 19, - anon_sym_output = 20, - anon_sym_state = 21, - anon_sym_gen = 22, - anon_sym_SQUOTE = 23, - anon_sym_PLUS = 24, - anon_sym_DASH = 25, - anon_sym_STAR = 26, - anon_sym_BANG = 27, - anon_sym_PIPE = 28, - anon_sym_AMP = 29, - anon_sym_CARET = 30, - anon_sym_EQ_EQ = 31, - anon_sym_BANG_EQ = 32, - anon_sym_LT_EQ = 33, - anon_sym_GT_EQ = 34, - anon_sym_SLASH = 35, - anon_sym_PERCENT = 36, - anon_sym_DOT = 37, - anon_sym_LPAREN = 38, - anon_sym_RPAREN = 39, - anon_sym_LBRACK = 40, - anon_sym_RBRACK = 41, - anon_sym_COLON_COLON = 42, - anon_sym_SEMI = 43, - sym_number = 44, - anon_sym_COMMA = 45, - anon_sym_LF = 46, - sym_single_line_comment = 47, - sym_multi_line_comment = 48, - sym_source_file = 49, - sym_module = 50, - sym_template_declaration_arguments = 51, - sym_template_declaration_type = 52, - sym_block = 53, - sym_decl_assign_statement = 54, - sym_assign_left_side = 55, - sym_assign_to = 56, - sym_write_modifiers = 57, - sym_if_statement = 58, - sym_for_statement = 59, - sym_domain_statement = 60, - sym_interface_statement = 61, - sym_interface_ports = 62, - sym__interface_ports_output = 63, - sym_declaration_list = 64, - sym_declaration = 65, - sym_latency_specifier = 66, - sym__type = 67, - sym_array_type = 68, - sym__expression = 69, - sym_unary_op = 70, - sym_binary_op = 71, - sym_array_op = 72, - sym_func_call = 73, - sym_field_access = 74, - sym_parenthesis_expression_list = 75, - sym_parenthesis_expression = 76, - sym_array_bracket_expression = 77, - sym_template_global = 78, - sym_template_type_param = 79, - sym_template_value_param = 80, - sym_template_params = 81, - sym__comma = 82, - aux_sym__linebreak = 83, - aux_sym_source_file_repeat1 = 84, - aux_sym_template_declaration_arguments_repeat1 = 85, - aux_sym_block_repeat1 = 86, - aux_sym_assign_left_side_repeat1 = 87, - aux_sym_write_modifiers_repeat1 = 88, - aux_sym_declaration_list_repeat1 = 89, - aux_sym_parenthesis_expression_list_repeat1 = 90, - aux_sym_template_global_repeat1 = 91, - aux_sym_template_params_repeat1 = 92, - aux_sym_template_params_repeat2 = 93, + anon_sym___builtin__ = 2, + anon_sym_extern = 3, + anon_sym_module = 4, + anon_sym_LT = 5, + anon_sym_GT = 6, + anon_sym_EQ = 7, + anon_sym_LBRACE = 8, + anon_sym_RBRACE = 9, + anon_sym_reg = 10, + anon_sym_initial = 11, + anon_sym_if = 12, + anon_sym_else = 13, + anon_sym_for = 14, + anon_sym_in = 15, + anon_sym_DOT_DOT = 16, + anon_sym_domain = 17, + anon_sym_interface = 18, + anon_sym_COLON = 19, + anon_sym_DASH_GT = 20, + anon_sym_input = 21, + anon_sym_output = 22, + anon_sym_state = 23, + anon_sym_gen = 24, + anon_sym_SQUOTE = 25, + anon_sym_PLUS = 26, + anon_sym_DASH = 27, + anon_sym_STAR = 28, + anon_sym_BANG = 29, + anon_sym_PIPE = 30, + anon_sym_AMP = 31, + anon_sym_CARET = 32, + anon_sym_EQ_EQ = 33, + anon_sym_BANG_EQ = 34, + anon_sym_LT_EQ = 35, + anon_sym_GT_EQ = 36, + anon_sym_SLASH = 37, + anon_sym_PERCENT = 38, + anon_sym_DOT = 39, + anon_sym_LPAREN = 40, + anon_sym_RPAREN = 41, + anon_sym_LBRACK = 42, + anon_sym_RBRACK = 43, + anon_sym_COLON_COLON = 44, + anon_sym_SEMI = 45, + sym_number = 46, + anon_sym_COMMA = 47, + anon_sym_LF = 48, + sym_single_line_comment = 49, + sym_multi_line_comment = 50, + sym_source_file = 51, + sym_source_obj = 52, + sym_module = 53, + sym_template_declaration_arguments = 54, + sym_template_declaration_type = 55, + sym_block = 56, + sym_decl_assign_statement = 57, + sym_assign_left_side = 58, + sym_assign_to = 59, + sym_write_modifiers = 60, + sym_if_statement = 61, + sym_for_statement = 62, + sym_domain_statement = 63, + sym_interface_statement = 64, + sym_interface_ports = 65, + sym__interface_ports_output = 66, + sym_declaration_list = 67, + sym_declaration = 68, + sym_latency_specifier = 69, + sym__type = 70, + sym_array_type = 71, + sym__expression = 72, + sym_unary_op = 73, + sym_binary_op = 74, + sym_array_op = 75, + sym_func_call = 76, + sym_field_access = 77, + sym_parenthesis_expression_list = 78, + sym_parenthesis_expression = 79, + sym_array_bracket_expression = 80, + sym_template_global = 81, + sym_template_type_param = 82, + sym_template_value_param = 83, + sym_template_params = 84, + sym__comma = 85, + aux_sym__linebreak = 86, + aux_sym_source_file_repeat1 = 87, + aux_sym_template_declaration_arguments_repeat1 = 88, + aux_sym_block_repeat1 = 89, + aux_sym_assign_left_side_repeat1 = 90, + aux_sym_write_modifiers_repeat1 = 91, + aux_sym_declaration_list_repeat1 = 92, + aux_sym_parenthesis_expression_list_repeat1 = 93, + aux_sym_template_global_repeat1 = 94, + aux_sym_template_params_repeat1 = 95, + aux_sym_template_params_repeat2 = 96, }; static const char * const ts_symbol_names[] = { [ts_builtin_sym_end] = "end", [sym_identifier] = "identifier", + [anon_sym___builtin__] = "__builtin__", + [anon_sym_extern] = "extern", [anon_sym_module] = "module", [anon_sym_LT] = "<", [anon_sym_GT] = ">", @@ -162,6 +167,7 @@ static const char * const ts_symbol_names[] = { [sym_single_line_comment] = "single_line_comment", [sym_multi_line_comment] = "multi_line_comment", [sym_source_file] = "source_file", + [sym_source_obj] = "source_obj", [sym_module] = "module", [sym_template_declaration_arguments] = "template_declaration_arguments", [sym_template_declaration_type] = "template_declaration_type", @@ -211,6 +217,8 @@ static const char * const ts_symbol_names[] = { static const TSSymbol ts_symbol_map[] = { [ts_builtin_sym_end] = ts_builtin_sym_end, [sym_identifier] = sym_identifier, + [anon_sym___builtin__] = anon_sym___builtin__, + [anon_sym_extern] = anon_sym_extern, [anon_sym_module] = anon_sym_module, [anon_sym_LT] = anon_sym_LT, [anon_sym_GT] = anon_sym_GT, @@ -259,6 +267,7 @@ static const TSSymbol ts_symbol_map[] = { [sym_single_line_comment] = sym_single_line_comment, [sym_multi_line_comment] = sym_multi_line_comment, [sym_source_file] = sym_source_file, + [sym_source_obj] = sym_source_obj, [sym_module] = sym_module, [sym_template_declaration_arguments] = sym_template_declaration_arguments, [sym_template_declaration_type] = sym_template_declaration_type, @@ -314,6 +323,14 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [anon_sym___builtin__] = { + .visible = true, + .named = false, + }, + [anon_sym_extern] = { + .visible = true, + .named = false, + }, [anon_sym_module] = { .visible = true, .named = false, @@ -506,6 +523,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_source_obj] = { + .visible = true, + .named = true, + }, [sym_module] = { .visible = true, .named = true, @@ -698,24 +719,26 @@ enum ts_field_identifiers { field_default_value = 11, field_else_block = 12, field_expr_or_decl = 13, - field_for_decl = 14, - field_from = 15, - field_inputs = 16, - field_interface_ports = 17, - field_io_port_modifiers = 18, - field_is_global_path = 19, - field_item = 20, - field_latency_specifier = 21, - field_left = 22, - field_name = 23, - field_operator = 24, - field_outputs = 25, - field_right = 26, - field_template_declaration_arguments = 27, - field_then_block = 28, - field_to = 29, - field_type = 30, - field_write_modifiers = 31, + field_extern_marker = 14, + field_for_decl = 15, + field_from = 16, + field_inputs = 17, + field_interface_ports = 18, + field_io_port_modifiers = 19, + field_is_global_path = 20, + field_item = 21, + field_latency_specifier = 22, + field_left = 23, + field_name = 24, + field_object = 25, + field_operator = 26, + field_outputs = 27, + field_right = 28, + field_template_declaration_arguments = 29, + field_then_block = 30, + field_to = 31, + field_type = 32, + field_write_modifiers = 33, }; static const char * const ts_field_names[] = { @@ -733,6 +756,7 @@ static const char * const ts_field_names[] = { [field_default_value] = "default_value", [field_else_block] = "else_block", [field_expr_or_decl] = "expr_or_decl", + [field_extern_marker] = "extern_marker", [field_for_decl] = "for_decl", [field_from] = "from", [field_inputs] = "inputs", @@ -743,6 +767,7 @@ static const char * const ts_field_names[] = { [field_latency_specifier] = "latency_specifier", [field_left] = "left", [field_name] = "name", + [field_object] = "object", [field_operator] = "operator", [field_outputs] = "outputs", [field_right] = "right", @@ -755,216 +780,223 @@ static const char * const ts_field_names[] = { static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [1] = {.index = 0, .length = 1}, - [2] = {.index = 1, .length = 2}, - [3] = {.index = 3, .length = 1}, + [2] = {.index = 1, .length = 1}, + [3] = {.index = 2, .length = 2}, [4] = {.index = 4, .length = 2}, - [5] = {.index = 6, .length = 2}, - [6] = {.index = 8, .length = 2}, - [7] = {.index = 10, .length = 1}, - [8] = {.index = 11, .length = 1}, - [9] = {.index = 12, .length = 1}, - [10] = {.index = 13, .length = 3}, - [11] = {.index = 16, .length = 1}, - [12] = {.index = 17, .length = 2}, - [13] = {.index = 19, .length = 2}, - [14] = {.index = 21, .length = 2}, - [15] = {.index = 23, .length = 2}, - [16] = {.index = 25, .length = 2}, - [17] = {.index = 27, .length = 2}, - [18] = {.index = 29, .length = 2}, - [19] = {.index = 31, .length = 2}, - [20] = {.index = 33, .length = 2}, - [21] = {.index = 35, .length = 3}, - [22] = {.index = 38, .length = 3}, - [23] = {.index = 41, .length = 1}, - [24] = {.index = 42, .length = 3}, - [25] = {.index = 45, .length = 2}, - [26] = {.index = 47, .length = 3}, - [27] = {.index = 50, .length = 3}, - [28] = {.index = 53, .length = 2}, - [29] = {.index = 55, .length = 1}, - [30] = {.index = 56, .length = 1}, - [31] = {.index = 57, .length = 1}, - [32] = {.index = 58, .length = 3}, - [33] = {.index = 61, .length = 4}, - [34] = {.index = 65, .length = 4}, - [35] = {.index = 69, .length = 4}, - [36] = {.index = 73, .length = 1}, - [37] = {.index = 74, .length = 2}, - [38] = {.index = 76, .length = 3}, - [39] = {.index = 79, .length = 1}, - [40] = {.index = 80, .length = 2}, + [5] = {.index = 6, .length = 1}, + [6] = {.index = 7, .length = 2}, + [7] = {.index = 9, .length = 2}, + [8] = {.index = 11, .length = 2}, + [9] = {.index = 13, .length = 1}, + [10] = {.index = 14, .length = 1}, + [11] = {.index = 15, .length = 1}, + [12] = {.index = 16, .length = 3}, + [13] = {.index = 19, .length = 1}, + [14] = {.index = 20, .length = 2}, + [15] = {.index = 22, .length = 2}, + [16] = {.index = 24, .length = 2}, + [17] = {.index = 26, .length = 2}, + [18] = {.index = 28, .length = 2}, + [19] = {.index = 30, .length = 2}, + [20] = {.index = 32, .length = 2}, + [21] = {.index = 34, .length = 2}, + [22] = {.index = 36, .length = 2}, + [23] = {.index = 38, .length = 3}, + [24] = {.index = 41, .length = 3}, + [25] = {.index = 44, .length = 1}, + [26] = {.index = 45, .length = 3}, + [27] = {.index = 48, .length = 2}, + [28] = {.index = 50, .length = 3}, + [29] = {.index = 53, .length = 3}, + [30] = {.index = 56, .length = 2}, + [31] = {.index = 58, .length = 1}, + [32] = {.index = 59, .length = 1}, + [33] = {.index = 60, .length = 1}, + [34] = {.index = 61, .length = 3}, + [35] = {.index = 64, .length = 4}, + [36] = {.index = 68, .length = 4}, + [37] = {.index = 72, .length = 4}, + [38] = {.index = 76, .length = 1}, + [39] = {.index = 77, .length = 2}, + [40] = {.index = 79, .length = 3}, [41] = {.index = 82, .length = 1}, - [42] = {.index = 83, .length = 1}, - [43] = {.index = 84, .length = 5}, - [44] = {.index = 89, .length = 1}, - [45] = {.index = 90, .length = 2}, - [46] = {.index = 92, .length = 2}, - [47] = {.index = 94, .length = 4}, - [48] = {.index = 98, .length = 2}, - [49] = {.index = 100, .length = 3}, - [50] = {.index = 103, .length = 3}, - [51] = {.index = 106, .length = 4}, + [42] = {.index = 83, .length = 2}, + [43] = {.index = 85, .length = 1}, + [44] = {.index = 86, .length = 1}, + [45] = {.index = 87, .length = 5}, + [46] = {.index = 92, .length = 1}, + [47] = {.index = 93, .length = 2}, + [48] = {.index = 95, .length = 2}, + [49] = {.index = 97, .length = 4}, + [50] = {.index = 101, .length = 2}, + [51] = {.index = 103, .length = 3}, + [52] = {.index = 106, .length = 3}, + [53] = {.index = 109, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { [0] = {field_item, 0}, [1] = + {field_object, 0}, + [2] = + {field_extern_marker, 0}, + {field_object, 1}, + [4] = {field_item, 0}, {field_item, 1, .inherited = true}, - [3] = + [6] = {field_item, 1}, - [4] = + [7] = {field_block, 2}, {field_name, 1}, - [6] = + [9] = {field_item, 0, .inherited = true}, {field_item, 1, .inherited = true}, - [8] = + [11] = {field_item, 1}, {field_item, 2, .inherited = true}, - [10] = + [13] = {field_name, 0}, - [11] = + [14] = {field_expr_or_decl, 0}, - [12] = + [15] = {field_item, 0, .inherited = true}, - [13] = + [16] = {field_block, 3}, {field_name, 1}, {field_template_declaration_arguments, 2}, - [16] = + [19] = {field_name, 1}, - [17] = + [20] = {field_operator, 0}, {field_right, 1}, - [19] = + [22] = {field_is_global_path, 0}, {field_item, 1}, - [21] = + [24] = {field_expr_or_decl, 1}, {field_write_modifiers, 0}, - [23] = + [26] = {field_name, 1}, {field_type, 0}, - [25] = + [28] = {field_arr, 0}, {field_arr_idx, 1}, - [27] = + [30] = {field_arguments, 1}, {field_name, 0}, - [29] = + [32] = {field_default_value, 2}, {field_name, 0}, - [31] = + [34] = {field_condition, 1}, {field_then_block, 2}, - [33] = + [36] = {field_interface_ports, 2}, {field_name, 1}, - [35] = + [38] = {field_io_port_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [38] = + [41] = {field_declaration_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [41] = + [44] = {field_content, 1}, - [42] = + [45] = {field_is_global_path, 0}, {field_item, 1}, {field_item, 2, .inherited = true}, - [45] = + [48] = {field_assign_left, 0}, {field_assign_value, 2}, - [47] = + [50] = {field_latency_specifier, 2}, {field_name, 1}, {field_type, 0}, - [50] = + [53] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [53] = + [56] = {field_left, 0}, {field_name, 2}, - [55] = + [58] = {field_item, 2}, - [56] = + [59] = {field_outputs, 1, .inherited = true}, - [57] = + [60] = {field_inputs, 1}, - [58] = + [61] = {field_block, 3}, {field_interface_ports, 2}, {field_name, 1}, - [61] = + [64] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_name, 3}, {field_type, 2}, - [65] = + [68] = {field_io_port_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [69] = + [72] = {field_declaration_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [73] = + [76] = {field_arg, 0}, - [74] = + [77] = {field_item, 2}, {field_item, 3, .inherited = true}, - [76] = + [79] = {field_condition, 1}, {field_else_block, 4}, {field_then_block, 2}, - [79] = + [82] = {field_outputs, 1}, - [80] = + [83] = {field_inputs, 1}, {field_outputs, 2, .inherited = true}, - [82] = + [85] = {field_outputs, 2, .inherited = true}, - [83] = + [86] = {field_inputs, 2}, - [84] = + [87] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_latency_specifier, 4}, {field_name, 3}, {field_type, 2}, - [89] = + [92] = {field_outputs, 2}, - [90] = + [93] = {field_inputs, 2}, {field_outputs, 3, .inherited = true}, - [92] = + [95] = {field_arg, 2}, {field_name, 0}, - [94] = + [97] = {field_block, 6}, {field_for_decl, 1}, {field_from, 3}, {field_to, 5}, - [98] = + [101] = {field_item, 1}, {field_item, 3}, - [100] = + [103] = {field_item, 1}, {field_item, 3}, {field_item, 4, .inherited = true}, - [103] = + [106] = {field_item, 1}, {field_item, 2, .inherited = true}, {field_item, 4}, - [106] = + [109] = {field_item, 1}, {field_item, 2, .inherited = true}, {field_item, 4}, @@ -1035,17 +1067,17 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [52] = 52, [53] = 53, [54] = 54, - [55] = 52, + [55] = 55, [56] = 56, - [57] = 57, + [57] = 54, [58] = 58, [59] = 59, - [60] = 60, + [60] = 59, [61] = 61, - [62] = 61, + [62] = 62, [63] = 63, [64] = 64, - [65] = 64, + [65] = 65, [66] = 66, [67] = 67, [68] = 68, @@ -1058,7 +1090,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [75] = 75, [76] = 76, [77] = 77, - [78] = 78, + [78] = 70, [79] = 79, [80] = 80, [81] = 81, @@ -1085,46 +1117,46 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [102] = 102, [103] = 103, [104] = 104, - [105] = 103, - [106] = 104, + [105] = 105, + [106] = 106, [107] = 107, [108] = 108, - [109] = 109, - [110] = 100, + [109] = 105, + [110] = 110, [111] = 111, [112] = 112, - [113] = 113, + [113] = 106, [114] = 114, [115] = 115, - [116] = 116, + [116] = 104, [117] = 117, [118] = 118, [119] = 119, - [120] = 12, - [121] = 13, - [122] = 16, - [123] = 15, - [124] = 11, + [120] = 120, + [121] = 44, + [122] = 122, + [123] = 123, + [124] = 124, [125] = 125, [126] = 126, [127] = 127, [128] = 128, [129] = 129, - [130] = 130, - [131] = 131, - [132] = 132, - [133] = 133, + [130] = 16, + [131] = 12, + [132] = 11, + [133] = 14, [134] = 134, - [135] = 135, + [135] = 15, [136] = 136, [137] = 137, [138] = 138, - [139] = 139, + [139] = 28, [140] = 140, [141] = 141, [142] = 142, [143] = 143, - [144] = 136, + [144] = 144, [145] = 145, [146] = 146, [147] = 147, @@ -1134,55 +1166,55 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [151] = 151, [152] = 152, [153] = 153, - [154] = 154, + [154] = 144, [155] = 155, [156] = 156, - [157] = 145, + [157] = 157, [158] = 158, [159] = 159, [160] = 160, - [161] = 23, + [161] = 161, [162] = 162, [163] = 163, [164] = 164, [165] = 165, [166] = 166, - [167] = 24, - [168] = 25, - [169] = 26, - [170] = 27, + [167] = 167, + [168] = 18, + [169] = 169, + [170] = 20, [171] = 171, - [172] = 28, - [173] = 29, + [172] = 22, + [173] = 23, [174] = 174, - [175] = 175, - [176] = 18, + [175] = 24, + [176] = 176, [177] = 177, - [178] = 156, - [179] = 20, + [178] = 178, + [179] = 179, [180] = 180, - [181] = 181, - [182] = 182, - [183] = 21, - [184] = 184, - [185] = 185, - [186] = 186, + [181] = 161, + [182] = 25, + [183] = 31, + [184] = 32, + [185] = 143, + [186] = 19, [187] = 187, [188] = 188, [189] = 189, [190] = 190, [191] = 191, - [192] = 150, - [193] = 42, - [194] = 194, + [192] = 192, + [193] = 193, + [194] = 147, [195] = 195, - [196] = 154, - [197] = 151, + [196] = 150, + [197] = 197, [198] = 198, - [199] = 153, - [200] = 152, + [199] = 159, + [200] = 151, [201] = 201, - [202] = 202, + [202] = 158, [203] = 203, [204] = 204, [205] = 205, @@ -1198,8 +1230,8 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [215] = 215, [216] = 216, [217] = 217, - [218] = 215, - [219] = 219, + [218] = 218, + [219] = 211, [220] = 220, [221] = 221, [222] = 222, @@ -1228,7 +1260,10 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [245] = 245, [246] = 246, [247] = 247, - [248] = 244, + [248] = 248, + [249] = 249, + [250] = 244, + [251] = 251, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -3391,185 +3426,235 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (lookahead == 'd') ADVANCE(1); - if (lookahead == 'e') ADVANCE(2); - if (lookahead == 'f') ADVANCE(3); - if (lookahead == 'g') ADVANCE(4); - if (lookahead == 'i') ADVANCE(5); - if (lookahead == 'm') ADVANCE(6); - if (lookahead == 'o') ADVANCE(7); - if (lookahead == 'r') ADVANCE(8); - if (lookahead == 's') ADVANCE(9); + if (lookahead == '_') ADVANCE(1); + if (lookahead == 'd') ADVANCE(2); + if (lookahead == 'e') ADVANCE(3); + if (lookahead == 'f') ADVANCE(4); + if (lookahead == 'g') ADVANCE(5); + if (lookahead == 'i') ADVANCE(6); + if (lookahead == 'm') ADVANCE(7); + if (lookahead == 'o') ADVANCE(8); + if (lookahead == 'r') ADVANCE(9); + if (lookahead == 's') ADVANCE(10); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(0) END_STATE(); case 1: - if (lookahead == 'o') ADVANCE(10); + if (lookahead == '_') ADVANCE(11); END_STATE(); case 2: - if (lookahead == 'l') ADVANCE(11); + if (lookahead == 'o') ADVANCE(12); END_STATE(); case 3: - if (lookahead == 'o') ADVANCE(12); + if (lookahead == 'l') ADVANCE(13); + if (lookahead == 'x') ADVANCE(14); END_STATE(); case 4: - if (lookahead == 'e') ADVANCE(13); + if (lookahead == 'o') ADVANCE(15); END_STATE(); case 5: - if (lookahead == 'f') ADVANCE(14); - if (lookahead == 'n') ADVANCE(15); + if (lookahead == 'e') ADVANCE(16); END_STATE(); case 6: - if (lookahead == 'o') ADVANCE(16); + if (lookahead == 'f') ADVANCE(17); + if (lookahead == 'n') ADVANCE(18); END_STATE(); case 7: - if (lookahead == 'u') ADVANCE(17); + if (lookahead == 'o') ADVANCE(19); END_STATE(); case 8: - if (lookahead == 'e') ADVANCE(18); + if (lookahead == 'u') ADVANCE(20); END_STATE(); case 9: - if (lookahead == 't') ADVANCE(19); + if (lookahead == 'e') ADVANCE(21); END_STATE(); case 10: - if (lookahead == 'm') ADVANCE(20); + if (lookahead == 't') ADVANCE(22); END_STATE(); case 11: - if (lookahead == 's') ADVANCE(21); + if (lookahead == 'b') ADVANCE(23); END_STATE(); case 12: - if (lookahead == 'r') ADVANCE(22); + if (lookahead == 'm') ADVANCE(24); END_STATE(); case 13: - if (lookahead == 'n') ADVANCE(23); + if (lookahead == 's') ADVANCE(25); END_STATE(); case 14: - ACCEPT_TOKEN(anon_sym_if); + if (lookahead == 't') ADVANCE(26); END_STATE(); case 15: - ACCEPT_TOKEN(anon_sym_in); - if (lookahead == 'i') ADVANCE(24); - if (lookahead == 'p') ADVANCE(25); - if (lookahead == 't') ADVANCE(26); + if (lookahead == 'r') ADVANCE(27); END_STATE(); case 16: - if (lookahead == 'd') ADVANCE(27); + if (lookahead == 'n') ADVANCE(28); END_STATE(); case 17: - if (lookahead == 't') ADVANCE(28); + ACCEPT_TOKEN(anon_sym_if); END_STATE(); case 18: - if (lookahead == 'g') ADVANCE(29); + ACCEPT_TOKEN(anon_sym_in); + if (lookahead == 'i') ADVANCE(29); + if (lookahead == 'p') ADVANCE(30); + if (lookahead == 't') ADVANCE(31); END_STATE(); case 19: - if (lookahead == 'a') ADVANCE(30); + if (lookahead == 'd') ADVANCE(32); END_STATE(); case 20: - if (lookahead == 'a') ADVANCE(31); + if (lookahead == 't') ADVANCE(33); END_STATE(); case 21: - if (lookahead == 'e') ADVANCE(32); + if (lookahead == 'g') ADVANCE(34); END_STATE(); case 22: - ACCEPT_TOKEN(anon_sym_for); + if (lookahead == 'a') ADVANCE(35); END_STATE(); case 23: - ACCEPT_TOKEN(anon_sym_gen); + if (lookahead == 'u') ADVANCE(36); END_STATE(); case 24: - if (lookahead == 't') ADVANCE(33); + if (lookahead == 'a') ADVANCE(37); END_STATE(); case 25: - if (lookahead == 'u') ADVANCE(34); + if (lookahead == 'e') ADVANCE(38); END_STATE(); case 26: - if (lookahead == 'e') ADVANCE(35); + if (lookahead == 'e') ADVANCE(39); END_STATE(); case 27: - if (lookahead == 'u') ADVANCE(36); + ACCEPT_TOKEN(anon_sym_for); END_STATE(); case 28: - if (lookahead == 'p') ADVANCE(37); + ACCEPT_TOKEN(anon_sym_gen); END_STATE(); case 29: - ACCEPT_TOKEN(anon_sym_reg); + if (lookahead == 't') ADVANCE(40); END_STATE(); case 30: - if (lookahead == 't') ADVANCE(38); + if (lookahead == 'u') ADVANCE(41); END_STATE(); case 31: - if (lookahead == 'i') ADVANCE(39); + if (lookahead == 'e') ADVANCE(42); END_STATE(); case 32: - ACCEPT_TOKEN(anon_sym_else); + if (lookahead == 'u') ADVANCE(43); END_STATE(); case 33: - if (lookahead == 'i') ADVANCE(40); + if (lookahead == 'p') ADVANCE(44); END_STATE(); case 34: - if (lookahead == 't') ADVANCE(41); + ACCEPT_TOKEN(anon_sym_reg); END_STATE(); case 35: - if (lookahead == 'r') ADVANCE(42); + if (lookahead == 't') ADVANCE(45); END_STATE(); case 36: - if (lookahead == 'l') ADVANCE(43); + if (lookahead == 'i') ADVANCE(46); END_STATE(); case 37: - if (lookahead == 'u') ADVANCE(44); + if (lookahead == 'i') ADVANCE(47); END_STATE(); case 38: - if (lookahead == 'e') ADVANCE(45); + ACCEPT_TOKEN(anon_sym_else); END_STATE(); case 39: - if (lookahead == 'n') ADVANCE(46); + if (lookahead == 'r') ADVANCE(48); END_STATE(); case 40: - if (lookahead == 'a') ADVANCE(47); + if (lookahead == 'i') ADVANCE(49); END_STATE(); case 41: - ACCEPT_TOKEN(anon_sym_input); + if (lookahead == 't') ADVANCE(50); END_STATE(); case 42: - if (lookahead == 'f') ADVANCE(48); + if (lookahead == 'r') ADVANCE(51); END_STATE(); case 43: - if (lookahead == 'e') ADVANCE(49); + if (lookahead == 'l') ADVANCE(52); END_STATE(); case 44: - if (lookahead == 't') ADVANCE(50); + if (lookahead == 'u') ADVANCE(53); END_STATE(); case 45: - ACCEPT_TOKEN(anon_sym_state); + if (lookahead == 'e') ADVANCE(54); END_STATE(); case 46: - ACCEPT_TOKEN(anon_sym_domain); + if (lookahead == 'l') ADVANCE(55); END_STATE(); case 47: - if (lookahead == 'l') ADVANCE(51); + if (lookahead == 'n') ADVANCE(56); END_STATE(); case 48: - if (lookahead == 'a') ADVANCE(52); + if (lookahead == 'n') ADVANCE(57); END_STATE(); case 49: - ACCEPT_TOKEN(anon_sym_module); + if (lookahead == 'a') ADVANCE(58); END_STATE(); case 50: - ACCEPT_TOKEN(anon_sym_output); + ACCEPT_TOKEN(anon_sym_input); END_STATE(); case 51: - ACCEPT_TOKEN(anon_sym_initial); + if (lookahead == 'f') ADVANCE(59); END_STATE(); case 52: - if (lookahead == 'c') ADVANCE(53); + if (lookahead == 'e') ADVANCE(60); END_STATE(); case 53: - if (lookahead == 'e') ADVANCE(54); + if (lookahead == 't') ADVANCE(61); END_STATE(); case 54: + ACCEPT_TOKEN(anon_sym_state); + END_STATE(); + case 55: + if (lookahead == 't') ADVANCE(62); + END_STATE(); + case 56: + ACCEPT_TOKEN(anon_sym_domain); + END_STATE(); + case 57: + ACCEPT_TOKEN(anon_sym_extern); + END_STATE(); + case 58: + if (lookahead == 'l') ADVANCE(63); + END_STATE(); + case 59: + if (lookahead == 'a') ADVANCE(64); + END_STATE(); + case 60: + ACCEPT_TOKEN(anon_sym_module); + END_STATE(); + case 61: + ACCEPT_TOKEN(anon_sym_output); + END_STATE(); + case 62: + if (lookahead == 'i') ADVANCE(65); + END_STATE(); + case 63: + ACCEPT_TOKEN(anon_sym_initial); + END_STATE(); + case 64: + if (lookahead == 'c') ADVANCE(66); + END_STATE(); + case 65: + if (lookahead == 'n') ADVANCE(67); + END_STATE(); + case 66: + if (lookahead == 'e') ADVANCE(68); + END_STATE(); + case 67: + if (lookahead == '_') ADVANCE(69); + END_STATE(); + case 68: ACCEPT_TOKEN(anon_sym_interface); END_STATE(); + case 69: + if (lookahead == '_') ADVANCE(70); + END_STATE(); + case 70: + ACCEPT_TOKEN(anon_sym___builtin__); + END_STATE(); default: return false; } @@ -3589,8 +3674,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [10] = {.lex_state = 1}, [11] = {.lex_state = 2}, [12] = {.lex_state = 2}, - [13] = {.lex_state = 2}, - [14] = {.lex_state = 1}, + [13] = {.lex_state = 1}, + [14] = {.lex_state = 2}, [15] = {.lex_state = 2}, [16] = {.lex_state = 2}, [17] = {.lex_state = 2}, @@ -3618,9 +3703,9 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [39] = {.lex_state = 2}, [40] = {.lex_state = 2}, [41] = {.lex_state = 2}, - [42] = {.lex_state = 1}, + [42] = {.lex_state = 2}, [43] = {.lex_state = 1}, - [44] = {.lex_state = 2}, + [44] = {.lex_state = 1}, [45] = {.lex_state = 2}, [46] = {.lex_state = 2}, [47] = {.lex_state = 2}, @@ -3628,16 +3713,16 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [49] = {.lex_state = 2}, [50] = {.lex_state = 2}, [51] = {.lex_state = 2}, - [52] = {.lex_state = 1}, + [52] = {.lex_state = 2}, [53] = {.lex_state = 2}, - [54] = {.lex_state = 2}, - [55] = {.lex_state = 1}, + [54] = {.lex_state = 1}, + [55] = {.lex_state = 2}, [56] = {.lex_state = 2}, - [57] = {.lex_state = 2}, + [57] = {.lex_state = 1}, [58] = {.lex_state = 1}, - [59] = {.lex_state = 1}, + [59] = {.lex_state = 2}, [60] = {.lex_state = 2}, - [61] = {.lex_state = 2}, + [61] = {.lex_state = 1}, [62] = {.lex_state = 2}, [63] = {.lex_state = 2}, [64] = {.lex_state = 1}, @@ -3675,47 +3760,47 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [96] = {.lex_state = 0}, [97] = {.lex_state = 0}, [98] = {.lex_state = 0}, - [99] = {.lex_state = 1}, - [100] = {.lex_state = 1}, + [99] = {.lex_state = 0}, + [100] = {.lex_state = 0}, [101] = {.lex_state = 0}, [102] = {.lex_state = 0}, - [103] = {.lex_state = 1}, + [103] = {.lex_state = 0}, [104] = {.lex_state = 1}, [105] = {.lex_state = 1}, [106] = {.lex_state = 1}, [107] = {.lex_state = 0}, [108] = {.lex_state = 0}, - [109] = {.lex_state = 0}, + [109] = {.lex_state = 1}, [110] = {.lex_state = 1}, - [111] = {.lex_state = 1}, + [111] = {.lex_state = 0}, [112] = {.lex_state = 0}, [113] = {.lex_state = 1}, [114] = {.lex_state = 0}, [115] = {.lex_state = 0}, - [116] = {.lex_state = 0}, + [116] = {.lex_state = 1}, [117] = {.lex_state = 0}, - [118] = {.lex_state = 0}, + [118] = {.lex_state = 1}, [119] = {.lex_state = 0}, - [120] = {.lex_state = 1}, - [121] = {.lex_state = 1}, + [120] = {.lex_state = 0}, + [121] = {.lex_state = 0}, [122] = {.lex_state = 1}, - [123] = {.lex_state = 1}, - [124] = {.lex_state = 1}, - [125] = {.lex_state = 0}, + [123] = {.lex_state = 0}, + [124] = {.lex_state = 0}, + [125] = {.lex_state = 1}, [126] = {.lex_state = 1}, [127] = {.lex_state = 0}, - [128] = {.lex_state = 1}, - [129] = {.lex_state = 0}, - [130] = {.lex_state = 0}, + [128] = {.lex_state = 0}, + [129] = {.lex_state = 1}, + [130] = {.lex_state = 1}, [131] = {.lex_state = 1}, - [132] = {.lex_state = 0}, - [133] = {.lex_state = 0}, + [132] = {.lex_state = 1}, + [133] = {.lex_state = 1}, [134] = {.lex_state = 0}, [135] = {.lex_state = 1}, [136] = {.lex_state = 0}, [137] = {.lex_state = 1}, [138] = {.lex_state = 0}, - [139] = {.lex_state = 0}, + [139] = {.lex_state = 1}, [140] = {.lex_state = 0}, [141] = {.lex_state = 0}, [142] = {.lex_state = 0}, @@ -3723,20 +3808,20 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [144] = {.lex_state = 0}, [145] = {.lex_state = 0}, [146] = {.lex_state = 0}, - [147] = {.lex_state = 0}, + [147] = {.lex_state = 1}, [148] = {.lex_state = 0}, [149] = {.lex_state = 0}, [150] = {.lex_state = 1}, [151] = {.lex_state = 1}, - [152] = {.lex_state = 1}, - [153] = {.lex_state = 1}, - [154] = {.lex_state = 1}, - [155] = {.lex_state = 1}, - [156] = {.lex_state = 1}, + [152] = {.lex_state = 0}, + [153] = {.lex_state = 0}, + [154] = {.lex_state = 0}, + [155] = {.lex_state = 0}, + [156] = {.lex_state = 0}, [157] = {.lex_state = 0}, - [158] = {.lex_state = 0}, - [159] = {.lex_state = 0}, - [160] = {.lex_state = 0}, + [158] = {.lex_state = 1}, + [159] = {.lex_state = 1}, + [160] = {.lex_state = 1}, [161] = {.lex_state = 1}, [162] = {.lex_state = 0}, [163] = {.lex_state = 0}, @@ -3745,51 +3830,51 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [166] = {.lex_state = 0}, [167] = {.lex_state = 1}, [168] = {.lex_state = 1}, - [169] = {.lex_state = 1}, + [169] = {.lex_state = 0}, [170] = {.lex_state = 1}, [171] = {.lex_state = 0}, [172] = {.lex_state = 1}, [173] = {.lex_state = 1}, - [174] = {.lex_state = 0}, - [175] = {.lex_state = 0}, - [176] = {.lex_state = 1}, - [177] = {.lex_state = 1}, - [178] = {.lex_state = 1}, - [179] = {.lex_state = 1}, + [174] = {.lex_state = 1}, + [175] = {.lex_state = 1}, + [176] = {.lex_state = 0}, + [177] = {.lex_state = 0}, + [178] = {.lex_state = 0}, + [179] = {.lex_state = 0}, [180] = {.lex_state = 1}, - [181] = {.lex_state = 0}, + [181] = {.lex_state = 1}, [182] = {.lex_state = 1}, [183] = {.lex_state = 1}, - [184] = {.lex_state = 0}, + [184] = {.lex_state = 1}, [185] = {.lex_state = 0}, - [186] = {.lex_state = 0}, + [186] = {.lex_state = 1}, [187] = {.lex_state = 0}, [188] = {.lex_state = 0}, - [189] = {.lex_state = 0}, + [189] = {.lex_state = 1}, [190] = {.lex_state = 0}, [191] = {.lex_state = 0}, - [192] = {.lex_state = 1}, + [192] = {.lex_state = 0}, [193] = {.lex_state = 0}, - [194] = {.lex_state = 0}, + [194] = {.lex_state = 1}, [195] = {.lex_state = 0}, [196] = {.lex_state = 1}, - [197] = {.lex_state = 1}, + [197] = {.lex_state = 0}, [198] = {.lex_state = 0}, [199] = {.lex_state = 1}, [200] = {.lex_state = 1}, - [201] = {.lex_state = 0}, - [202] = {.lex_state = 0}, + [201] = {.lex_state = 1}, + [202] = {.lex_state = 1}, [203] = {.lex_state = 1}, - [204] = {.lex_state = 1}, - [205] = {.lex_state = 1}, - [206] = {.lex_state = 0}, + [204] = {.lex_state = 0}, + [205] = {.lex_state = 0}, + [206] = {.lex_state = 1}, [207] = {.lex_state = 0}, [208] = {.lex_state = 0}, [209] = {.lex_state = 0}, - [210] = {.lex_state = 1}, - [211] = {.lex_state = 1}, + [210] = {.lex_state = 0}, + [211] = {.lex_state = 0}, [212] = {.lex_state = 0}, - [213] = {.lex_state = 0}, + [213] = {.lex_state = 1}, [214] = {.lex_state = 0}, [215] = {.lex_state = 0}, [216] = {.lex_state = 0}, @@ -3798,21 +3883,21 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [219] = {.lex_state = 0}, [220] = {.lex_state = 0}, [221] = {.lex_state = 0}, - [222] = {.lex_state = 0}, + [222] = {.lex_state = 1}, [223] = {.lex_state = 1}, [224] = {.lex_state = 0}, [225] = {.lex_state = 0}, - [226] = {.lex_state = 0}, + [226] = {.lex_state = 1}, [227] = {.lex_state = 0}, [228] = {.lex_state = 0}, [229] = {.lex_state = 0}, [230] = {.lex_state = 0}, - [231] = {.lex_state = 1}, + [231] = {.lex_state = 0}, [232] = {.lex_state = 0}, [233] = {.lex_state = 0}, [234] = {.lex_state = 0}, - [235] = {.lex_state = 1}, - [236] = {.lex_state = 0}, + [235] = {.lex_state = 0}, + [236] = {.lex_state = 1}, [237] = {.lex_state = 0}, [238] = {.lex_state = 0}, [239] = {.lex_state = 0}, @@ -3825,12 +3910,17 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [246] = {.lex_state = 0}, [247] = {.lex_state = 0}, [248] = {.lex_state = 0}, + [249] = {.lex_state = 0}, + [250] = {.lex_state = 0}, + [251] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [0] = { [ts_builtin_sym_end] = ACTIONS(1), [sym_identifier] = ACTIONS(1), + [anon_sym___builtin__] = ACTIONS(1), + [anon_sym_extern] = ACTIONS(1), [anon_sym_module] = ACTIONS(1), [anon_sym_LT] = ACTIONS(1), [anon_sym_GT] = ACTIONS(1), @@ -3879,477 +3969,82 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(238), - [sym_module] = STATE(165), - [aux_sym__linebreak] = STATE(133), + [sym_source_file] = STATE(248), + [sym_source_obj] = STATE(153), + [sym_module] = STATE(238), + [aux_sym__linebreak] = STATE(98), [ts_builtin_sym_end] = ACTIONS(5), - [anon_sym_module] = ACTIONS(7), - [anon_sym_LF] = ACTIONS(9), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), - }, - [2] = { - [sym_block] = STATE(234), - [sym_decl_assign_statement] = STATE(234), - [sym_assign_left_side] = STATE(222), - [sym_assign_to] = STATE(114), - [sym_write_modifiers] = STATE(43), - [sym_if_statement] = STATE(234), - [sym_for_statement] = STATE(234), - [sym_domain_statement] = STATE(234), - [sym_interface_statement] = STATE(234), - [sym_declaration] = STATE(171), - [sym__type] = STATE(209), - [sym_array_type] = STATE(209), - [sym__expression] = STATE(47), - [sym_unary_op] = STATE(47), - [sym_binary_op] = STATE(47), - [sym_array_op] = STATE(47), - [sym_func_call] = STATE(47), - [sym_field_access] = STATE(47), - [sym_parenthesis_expression] = STATE(47), - [sym_template_global] = STATE(49), - [aux_sym__linebreak] = STATE(42), - [aux_sym_write_modifiers_repeat1] = STATE(84), - [sym_identifier] = ACTIONS(11), - [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(15), - [anon_sym_reg] = ACTIONS(17), - [anon_sym_initial] = ACTIONS(19), - [anon_sym_if] = ACTIONS(21), - [anon_sym_for] = ACTIONS(23), - [anon_sym_domain] = ACTIONS(25), - [anon_sym_interface] = ACTIONS(27), - [anon_sym_input] = ACTIONS(29), - [anon_sym_output] = ACTIONS(29), - [anon_sym_state] = ACTIONS(31), - [anon_sym_gen] = ACTIONS(31), - [anon_sym_PLUS] = ACTIONS(33), - [anon_sym_DASH] = ACTIONS(33), - [anon_sym_STAR] = ACTIONS(33), - [anon_sym_BANG] = ACTIONS(33), - [anon_sym_PIPE] = ACTIONS(33), - [anon_sym_AMP] = ACTIONS(33), - [anon_sym_CARET] = ACTIONS(33), - [anon_sym_LPAREN] = ACTIONS(35), - [anon_sym_COLON_COLON] = ACTIONS(37), - [sym_number] = ACTIONS(39), - [anon_sym_LF] = ACTIONS(41), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), - }, - [3] = { - [sym_block] = STATE(234), - [sym_decl_assign_statement] = STATE(234), - [sym_assign_left_side] = STATE(222), - [sym_assign_to] = STATE(114), - [sym_write_modifiers] = STATE(43), - [sym_if_statement] = STATE(234), - [sym_for_statement] = STATE(234), - [sym_domain_statement] = STATE(234), - [sym_interface_statement] = STATE(234), - [sym_declaration] = STATE(171), - [sym__type] = STATE(209), - [sym_array_type] = STATE(209), - [sym__expression] = STATE(47), - [sym_unary_op] = STATE(47), - [sym_binary_op] = STATE(47), - [sym_array_op] = STATE(47), - [sym_func_call] = STATE(47), - [sym_field_access] = STATE(47), - [sym_parenthesis_expression] = STATE(47), - [sym_template_global] = STATE(49), - [aux_sym__linebreak] = STATE(42), - [aux_sym_write_modifiers_repeat1] = STATE(84), - [sym_identifier] = ACTIONS(11), - [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(43), - [anon_sym_reg] = ACTIONS(17), - [anon_sym_initial] = ACTIONS(19), - [anon_sym_if] = ACTIONS(21), - [anon_sym_for] = ACTIONS(23), - [anon_sym_domain] = ACTIONS(25), - [anon_sym_interface] = ACTIONS(27), - [anon_sym_input] = ACTIONS(29), - [anon_sym_output] = ACTIONS(29), - [anon_sym_state] = ACTIONS(31), - [anon_sym_gen] = ACTIONS(31), - [anon_sym_PLUS] = ACTIONS(33), - [anon_sym_DASH] = ACTIONS(33), - [anon_sym_STAR] = ACTIONS(33), - [anon_sym_BANG] = ACTIONS(33), - [anon_sym_PIPE] = ACTIONS(33), - [anon_sym_AMP] = ACTIONS(33), - [anon_sym_CARET] = ACTIONS(33), - [anon_sym_LPAREN] = ACTIONS(35), - [anon_sym_COLON_COLON] = ACTIONS(37), - [sym_number] = ACTIONS(39), - [anon_sym_LF] = ACTIONS(41), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), - }, - [4] = { - [sym_block] = STATE(234), - [sym_decl_assign_statement] = STATE(234), - [sym_assign_left_side] = STATE(222), - [sym_assign_to] = STATE(114), - [sym_write_modifiers] = STATE(43), - [sym_if_statement] = STATE(234), - [sym_for_statement] = STATE(234), - [sym_domain_statement] = STATE(234), - [sym_interface_statement] = STATE(234), - [sym_declaration] = STATE(171), - [sym__type] = STATE(209), - [sym_array_type] = STATE(209), - [sym__expression] = STATE(47), - [sym_unary_op] = STATE(47), - [sym_binary_op] = STATE(47), - [sym_array_op] = STATE(47), - [sym_func_call] = STATE(47), - [sym_field_access] = STATE(47), - [sym_parenthesis_expression] = STATE(47), - [sym_template_global] = STATE(49), - [aux_sym__linebreak] = STATE(42), - [aux_sym_write_modifiers_repeat1] = STATE(84), - [sym_identifier] = ACTIONS(11), - [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(45), - [anon_sym_reg] = ACTIONS(17), - [anon_sym_initial] = ACTIONS(19), - [anon_sym_if] = ACTIONS(21), - [anon_sym_for] = ACTIONS(23), - [anon_sym_domain] = ACTIONS(25), - [anon_sym_interface] = ACTIONS(27), - [anon_sym_input] = ACTIONS(29), - [anon_sym_output] = ACTIONS(29), - [anon_sym_state] = ACTIONS(31), - [anon_sym_gen] = ACTIONS(31), - [anon_sym_PLUS] = ACTIONS(33), - [anon_sym_DASH] = ACTIONS(33), - [anon_sym_STAR] = ACTIONS(33), - [anon_sym_BANG] = ACTIONS(33), - [anon_sym_PIPE] = ACTIONS(33), - [anon_sym_AMP] = ACTIONS(33), - [anon_sym_CARET] = ACTIONS(33), - [anon_sym_LPAREN] = ACTIONS(35), - [anon_sym_COLON_COLON] = ACTIONS(37), - [sym_number] = ACTIONS(39), - [anon_sym_LF] = ACTIONS(41), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), - }, - [5] = { - [sym_block] = STATE(234), - [sym_decl_assign_statement] = STATE(234), - [sym_assign_left_side] = STATE(222), - [sym_assign_to] = STATE(114), - [sym_write_modifiers] = STATE(43), - [sym_if_statement] = STATE(234), - [sym_for_statement] = STATE(234), - [sym_domain_statement] = STATE(234), - [sym_interface_statement] = STATE(234), - [sym_declaration] = STATE(171), - [sym__type] = STATE(209), - [sym_array_type] = STATE(209), - [sym__expression] = STATE(47), - [sym_unary_op] = STATE(47), - [sym_binary_op] = STATE(47), - [sym_array_op] = STATE(47), - [sym_func_call] = STATE(47), - [sym_field_access] = STATE(47), - [sym_parenthesis_expression] = STATE(47), - [sym_template_global] = STATE(49), - [aux_sym__linebreak] = STATE(42), - [aux_sym_write_modifiers_repeat1] = STATE(84), - [sym_identifier] = ACTIONS(11), - [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(47), - [anon_sym_reg] = ACTIONS(17), - [anon_sym_initial] = ACTIONS(19), - [anon_sym_if] = ACTIONS(21), - [anon_sym_for] = ACTIONS(23), - [anon_sym_domain] = ACTIONS(25), - [anon_sym_interface] = ACTIONS(27), - [anon_sym_input] = ACTIONS(29), - [anon_sym_output] = ACTIONS(29), - [anon_sym_state] = ACTIONS(31), - [anon_sym_gen] = ACTIONS(31), - [anon_sym_PLUS] = ACTIONS(33), - [anon_sym_DASH] = ACTIONS(33), - [anon_sym_STAR] = ACTIONS(33), - [anon_sym_BANG] = ACTIONS(33), - [anon_sym_PIPE] = ACTIONS(33), - [anon_sym_AMP] = ACTIONS(33), - [anon_sym_CARET] = ACTIONS(33), - [anon_sym_LPAREN] = ACTIONS(35), - [anon_sym_COLON_COLON] = ACTIONS(37), - [sym_number] = ACTIONS(39), - [anon_sym_LF] = ACTIONS(41), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), - }, - [6] = { - [sym_block] = STATE(234), - [sym_decl_assign_statement] = STATE(234), - [sym_assign_left_side] = STATE(222), - [sym_assign_to] = STATE(114), - [sym_write_modifiers] = STATE(43), - [sym_if_statement] = STATE(234), - [sym_for_statement] = STATE(234), - [sym_domain_statement] = STATE(234), - [sym_interface_statement] = STATE(234), - [sym_declaration] = STATE(171), - [sym__type] = STATE(209), - [sym_array_type] = STATE(209), - [sym__expression] = STATE(47), - [sym_unary_op] = STATE(47), - [sym_binary_op] = STATE(47), - [sym_array_op] = STATE(47), - [sym_func_call] = STATE(47), - [sym_field_access] = STATE(47), - [sym_parenthesis_expression] = STATE(47), - [sym_template_global] = STATE(49), - [aux_sym__linebreak] = STATE(42), - [aux_sym_write_modifiers_repeat1] = STATE(84), - [sym_identifier] = ACTIONS(11), - [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(49), - [anon_sym_reg] = ACTIONS(17), - [anon_sym_initial] = ACTIONS(19), - [anon_sym_if] = ACTIONS(21), - [anon_sym_for] = ACTIONS(23), - [anon_sym_domain] = ACTIONS(25), - [anon_sym_interface] = ACTIONS(27), - [anon_sym_input] = ACTIONS(29), - [anon_sym_output] = ACTIONS(29), - [anon_sym_state] = ACTIONS(31), - [anon_sym_gen] = ACTIONS(31), - [anon_sym_PLUS] = ACTIONS(33), - [anon_sym_DASH] = ACTIONS(33), - [anon_sym_STAR] = ACTIONS(33), - [anon_sym_BANG] = ACTIONS(33), - [anon_sym_PIPE] = ACTIONS(33), - [anon_sym_AMP] = ACTIONS(33), - [anon_sym_CARET] = ACTIONS(33), - [anon_sym_LPAREN] = ACTIONS(35), - [anon_sym_COLON_COLON] = ACTIONS(37), - [sym_number] = ACTIONS(39), - [anon_sym_LF] = ACTIONS(41), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), - }, - [7] = { - [sym_block] = STATE(181), - [sym_decl_assign_statement] = STATE(181), - [sym_assign_left_side] = STATE(129), - [sym_assign_to] = STATE(114), - [sym_write_modifiers] = STATE(43), - [sym_if_statement] = STATE(181), - [sym_for_statement] = STATE(181), - [sym_domain_statement] = STATE(181), - [sym_interface_statement] = STATE(181), - [sym_declaration] = STATE(171), - [sym__type] = STATE(209), - [sym_array_type] = STATE(209), - [sym__expression] = STATE(47), - [sym_unary_op] = STATE(47), - [sym_binary_op] = STATE(47), - [sym_array_op] = STATE(47), - [sym_func_call] = STATE(47), - [sym_field_access] = STATE(47), - [sym_parenthesis_expression] = STATE(47), - [sym_template_global] = STATE(49), - [aux_sym__linebreak] = STATE(9), - [aux_sym_write_modifiers_repeat1] = STATE(84), - [sym_identifier] = ACTIONS(11), - [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(51), - [anon_sym_reg] = ACTIONS(17), - [anon_sym_initial] = ACTIONS(19), - [anon_sym_if] = ACTIONS(21), - [anon_sym_for] = ACTIONS(23), - [anon_sym_domain] = ACTIONS(25), - [anon_sym_interface] = ACTIONS(27), - [anon_sym_input] = ACTIONS(29), - [anon_sym_output] = ACTIONS(29), - [anon_sym_state] = ACTIONS(31), - [anon_sym_gen] = ACTIONS(31), - [anon_sym_PLUS] = ACTIONS(33), - [anon_sym_DASH] = ACTIONS(33), - [anon_sym_STAR] = ACTIONS(33), - [anon_sym_BANG] = ACTIONS(33), - [anon_sym_PIPE] = ACTIONS(33), - [anon_sym_AMP] = ACTIONS(33), - [anon_sym_CARET] = ACTIONS(33), - [anon_sym_LPAREN] = ACTIONS(35), - [anon_sym_COLON_COLON] = ACTIONS(37), - [sym_number] = ACTIONS(39), - [anon_sym_LF] = ACTIONS(53), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), - }, - [8] = { - [sym_block] = STATE(234), - [sym_decl_assign_statement] = STATE(234), - [sym_assign_left_side] = STATE(222), - [sym_assign_to] = STATE(114), - [sym_write_modifiers] = STATE(43), - [sym_if_statement] = STATE(234), - [sym_for_statement] = STATE(234), - [sym_domain_statement] = STATE(234), - [sym_interface_statement] = STATE(234), - [sym_declaration] = STATE(171), - [sym__type] = STATE(209), - [sym_array_type] = STATE(209), - [sym__expression] = STATE(47), - [sym_unary_op] = STATE(47), - [sym_binary_op] = STATE(47), - [sym_array_op] = STATE(47), - [sym_func_call] = STATE(47), - [sym_field_access] = STATE(47), - [sym_parenthesis_expression] = STATE(47), - [sym_template_global] = STATE(49), - [aux_sym__linebreak] = STATE(42), - [aux_sym_write_modifiers_repeat1] = STATE(84), - [sym_identifier] = ACTIONS(11), - [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(55), - [anon_sym_reg] = ACTIONS(17), - [anon_sym_initial] = ACTIONS(19), - [anon_sym_if] = ACTIONS(21), - [anon_sym_for] = ACTIONS(23), - [anon_sym_domain] = ACTIONS(25), - [anon_sym_interface] = ACTIONS(27), - [anon_sym_input] = ACTIONS(29), - [anon_sym_output] = ACTIONS(29), - [anon_sym_state] = ACTIONS(31), - [anon_sym_gen] = ACTIONS(31), - [anon_sym_PLUS] = ACTIONS(33), - [anon_sym_DASH] = ACTIONS(33), - [anon_sym_STAR] = ACTIONS(33), - [anon_sym_BANG] = ACTIONS(33), - [anon_sym_PIPE] = ACTIONS(33), - [anon_sym_AMP] = ACTIONS(33), - [anon_sym_CARET] = ACTIONS(33), - [anon_sym_LPAREN] = ACTIONS(35), - [anon_sym_COLON_COLON] = ACTIONS(37), - [sym_number] = ACTIONS(39), - [anon_sym_LF] = ACTIONS(41), - [sym_single_line_comment] = ACTIONS(3), - [sym_multi_line_comment] = ACTIONS(3), - }, - [9] = { - [sym_block] = STATE(174), - [sym_decl_assign_statement] = STATE(174), - [sym_assign_left_side] = STATE(134), - [sym_assign_to] = STATE(114), - [sym_write_modifiers] = STATE(43), - [sym_if_statement] = STATE(174), - [sym_for_statement] = STATE(174), - [sym_domain_statement] = STATE(174), - [sym_interface_statement] = STATE(174), - [sym_declaration] = STATE(171), - [sym__type] = STATE(209), - [sym_array_type] = STATE(209), - [sym__expression] = STATE(47), - [sym_unary_op] = STATE(47), - [sym_binary_op] = STATE(47), - [sym_array_op] = STATE(47), - [sym_func_call] = STATE(47), - [sym_field_access] = STATE(47), - [sym_parenthesis_expression] = STATE(47), - [sym_template_global] = STATE(49), - [aux_sym__linebreak] = STATE(42), - [aux_sym_write_modifiers_repeat1] = STATE(84), - [sym_identifier] = ACTIONS(11), - [anon_sym_LBRACE] = ACTIONS(13), - [anon_sym_RBRACE] = ACTIONS(57), - [anon_sym_reg] = ACTIONS(17), - [anon_sym_initial] = ACTIONS(19), - [anon_sym_if] = ACTIONS(21), - [anon_sym_for] = ACTIONS(23), - [anon_sym_domain] = ACTIONS(25), - [anon_sym_interface] = ACTIONS(27), - [anon_sym_input] = ACTIONS(29), - [anon_sym_output] = ACTIONS(29), - [anon_sym_state] = ACTIONS(31), - [anon_sym_gen] = ACTIONS(31), - [anon_sym_PLUS] = ACTIONS(33), - [anon_sym_DASH] = ACTIONS(33), - [anon_sym_STAR] = ACTIONS(33), - [anon_sym_BANG] = ACTIONS(33), - [anon_sym_PIPE] = ACTIONS(33), - [anon_sym_AMP] = ACTIONS(33), - [anon_sym_CARET] = ACTIONS(33), - [anon_sym_LPAREN] = ACTIONS(35), - [anon_sym_COLON_COLON] = ACTIONS(37), - [sym_number] = ACTIONS(39), - [anon_sym_LF] = ACTIONS(41), + [anon_sym___builtin__] = ACTIONS(7), + [anon_sym_extern] = ACTIONS(7), + [anon_sym_module] = ACTIONS(9), + [anon_sym_LF] = ACTIONS(11), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, }; static const uint16_t ts_small_parse_table[] = { - [0] = 26, - ACTIONS(11), 1, - sym_identifier, + [0] = 27, ACTIONS(13), 1, + sym_identifier, + ACTIONS(15), 1, anon_sym_LBRACE, ACTIONS(17), 1, - anon_sym_reg, + anon_sym_RBRACE, ACTIONS(19), 1, - anon_sym_initial, + anon_sym_reg, ACTIONS(21), 1, - anon_sym_if, + anon_sym_initial, ACTIONS(23), 1, - anon_sym_for, + anon_sym_if, ACTIONS(25), 1, - anon_sym_domain, + anon_sym_for, ACTIONS(27), 1, + anon_sym_domain, + ACTIONS(29), 1, anon_sym_interface, - ACTIONS(35), 1, - anon_sym_LPAREN, ACTIONS(37), 1, - anon_sym_COLON_COLON, + anon_sym_LPAREN, ACTIONS(39), 1, - sym_number, + anon_sym_COLON_COLON, ACTIONS(41), 1, + sym_number, + ACTIONS(43), 1, anon_sym_LF, - STATE(42), 1, - aux_sym__linebreak, STATE(43), 1, sym_write_modifiers, + STATE(44), 1, + aux_sym__linebreak, STATE(49), 1, sym_template_global, STATE(84), 1, aux_sym_write_modifiers_repeat1, - STATE(114), 1, + STATE(120), 1, sym_assign_to, - STATE(171), 1, - sym_declaration, - STATE(222), 1, + STATE(134), 1, sym_assign_left_side, + STATE(197), 1, + sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(29), 2, + ACTIONS(31), 2, anon_sym_input, anon_sym_output, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(209), 2, + STATE(214), 2, sym__type, sym_array_type, - STATE(234), 6, + STATE(169), 6, sym_block, sym_decl_assign_statement, sym_if_statement, sym_for_statement, sym_domain_statement, sym_interface_statement, - ACTIONS(33), 7, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4365,93 +4060,621 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [100] = 5, - ACTIONS(63), 1, - anon_sym_COLON_COLON, - STATE(16), 1, - aux_sym_template_global_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(59), 8, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, + [103] = 27, + ACTIONS(13), 1, sym_identifier, - ACTIONS(61), 21, + ACTIONS(15), 1, anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DOT_DOT, - anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_PERCENT, + ACTIONS(19), 1, + anon_sym_reg, + ACTIONS(21), 1, + anon_sym_initial, + ACTIONS(23), 1, + anon_sym_if, + ACTIONS(25), 1, + anon_sym_for, + ACTIONS(27), 1, + anon_sym_domain, + ACTIONS(29), 1, + anon_sym_interface, + ACTIONS(37), 1, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_LF, - [144] = 5, - ACTIONS(69), 1, + ACTIONS(39), 1, anon_sym_COLON_COLON, - STATE(12), 1, - aux_sym_template_global_repeat1, + ACTIONS(41), 1, + sym_number, + ACTIONS(43), 1, + anon_sym_LF, + ACTIONS(45), 1, + anon_sym_RBRACE, + STATE(43), 1, + sym_write_modifiers, + STATE(44), 1, + aux_sym__linebreak, + STATE(49), 1, + sym_template_global, + STATE(84), 1, + aux_sym_write_modifiers_repeat1, + STATE(120), 1, + sym_assign_to, + STATE(197), 1, + sym_declaration, + STATE(215), 1, + sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(65), 8, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(67), 21, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DOT_DOT, - anon_sym_DASH_GT, + ACTIONS(31), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(33), 2, + anon_sym_state, + anon_sym_gen, + STATE(214), 2, + sym__type, + sym_array_type, + STATE(232), 6, + sym_block, + sym_decl_assign_statement, + sym_if_statement, + sym_for_statement, + sym_domain_statement, + sym_interface_statement, + ACTIONS(35), 7, anon_sym_PLUS, + anon_sym_DASH, anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_LF, - [188] = 5, - ACTIONS(63), 1, + STATE(47), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + [206] = 27, + ACTIONS(13), 1, + sym_identifier, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(19), 1, + anon_sym_reg, + ACTIONS(21), 1, + anon_sym_initial, + ACTIONS(23), 1, + anon_sym_if, + ACTIONS(25), 1, + anon_sym_for, + ACTIONS(27), 1, + anon_sym_domain, + ACTIONS(29), 1, + anon_sym_interface, + ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + ACTIONS(41), 1, + sym_number, + ACTIONS(43), 1, + anon_sym_LF, + ACTIONS(47), 1, + anon_sym_RBRACE, + STATE(43), 1, + sym_write_modifiers, + STATE(44), 1, + aux_sym__linebreak, + STATE(49), 1, + sym_template_global, + STATE(84), 1, + aux_sym_write_modifiers_repeat1, + STATE(120), 1, + sym_assign_to, + STATE(197), 1, + sym_declaration, + STATE(215), 1, + sym_assign_left_side, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(31), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(33), 2, + anon_sym_state, + anon_sym_gen, + STATE(214), 2, + sym__type, + sym_array_type, + STATE(232), 6, + sym_block, + sym_decl_assign_statement, + sym_if_statement, + sym_for_statement, + sym_domain_statement, + sym_interface_statement, + ACTIONS(35), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(47), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + [309] = 27, + ACTIONS(13), 1, + sym_identifier, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(19), 1, + anon_sym_reg, + ACTIONS(21), 1, + anon_sym_initial, + ACTIONS(23), 1, + anon_sym_if, + ACTIONS(25), 1, + anon_sym_for, + ACTIONS(27), 1, + anon_sym_domain, + ACTIONS(29), 1, + anon_sym_interface, + ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + ACTIONS(41), 1, + sym_number, + ACTIONS(43), 1, + anon_sym_LF, + ACTIONS(49), 1, + anon_sym_RBRACE, + STATE(43), 1, + sym_write_modifiers, + STATE(44), 1, + aux_sym__linebreak, + STATE(49), 1, + sym_template_global, + STATE(84), 1, + aux_sym_write_modifiers_repeat1, + STATE(120), 1, + sym_assign_to, + STATE(197), 1, + sym_declaration, + STATE(215), 1, + sym_assign_left_side, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(31), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(33), 2, + anon_sym_state, + anon_sym_gen, + STATE(214), 2, + sym__type, + sym_array_type, + STATE(232), 6, + sym_block, + sym_decl_assign_statement, + sym_if_statement, + sym_for_statement, + sym_domain_statement, + sym_interface_statement, + ACTIONS(35), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(47), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + [412] = 27, + ACTIONS(13), 1, + sym_identifier, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(19), 1, + anon_sym_reg, + ACTIONS(21), 1, + anon_sym_initial, + ACTIONS(23), 1, + anon_sym_if, + ACTIONS(25), 1, + anon_sym_for, + ACTIONS(27), 1, + anon_sym_domain, + ACTIONS(29), 1, + anon_sym_interface, + ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + ACTIONS(41), 1, + sym_number, + ACTIONS(43), 1, + anon_sym_LF, + ACTIONS(51), 1, + anon_sym_RBRACE, + STATE(43), 1, + sym_write_modifiers, + STATE(44), 1, + aux_sym__linebreak, + STATE(49), 1, + sym_template_global, + STATE(84), 1, + aux_sym_write_modifiers_repeat1, + STATE(120), 1, + sym_assign_to, + STATE(197), 1, + sym_declaration, + STATE(215), 1, + sym_assign_left_side, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(31), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(33), 2, + anon_sym_state, + anon_sym_gen, + STATE(214), 2, + sym__type, + sym_array_type, + STATE(232), 6, + sym_block, + sym_decl_assign_statement, + sym_if_statement, + sym_for_statement, + sym_domain_statement, + sym_interface_statement, + ACTIONS(35), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(47), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + [515] = 27, + ACTIONS(13), 1, + sym_identifier, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(19), 1, + anon_sym_reg, + ACTIONS(21), 1, + anon_sym_initial, + ACTIONS(23), 1, + anon_sym_if, + ACTIONS(25), 1, + anon_sym_for, + ACTIONS(27), 1, + anon_sym_domain, + ACTIONS(29), 1, + anon_sym_interface, + ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + ACTIONS(41), 1, + sym_number, + ACTIONS(43), 1, + anon_sym_LF, + ACTIONS(53), 1, + anon_sym_RBRACE, + STATE(43), 1, + sym_write_modifiers, + STATE(44), 1, + aux_sym__linebreak, + STATE(49), 1, + sym_template_global, + STATE(84), 1, + aux_sym_write_modifiers_repeat1, + STATE(120), 1, + sym_assign_to, + STATE(197), 1, + sym_declaration, + STATE(215), 1, + sym_assign_left_side, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(31), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(33), 2, + anon_sym_state, + anon_sym_gen, + STATE(214), 2, + sym__type, + sym_array_type, + STATE(232), 6, + sym_block, + sym_decl_assign_statement, + sym_if_statement, + sym_for_statement, + sym_domain_statement, + sym_interface_statement, + ACTIONS(35), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(47), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + [618] = 27, + ACTIONS(13), 1, + sym_identifier, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(19), 1, + anon_sym_reg, + ACTIONS(21), 1, + anon_sym_initial, + ACTIONS(23), 1, + anon_sym_if, + ACTIONS(25), 1, + anon_sym_for, + ACTIONS(27), 1, + anon_sym_domain, + ACTIONS(29), 1, + anon_sym_interface, + ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + ACTIONS(41), 1, + sym_number, + ACTIONS(43), 1, + anon_sym_LF, + ACTIONS(55), 1, + anon_sym_RBRACE, + STATE(43), 1, + sym_write_modifiers, + STATE(44), 1, + aux_sym__linebreak, + STATE(49), 1, + sym_template_global, + STATE(84), 1, + aux_sym_write_modifiers_repeat1, + STATE(120), 1, + sym_assign_to, + STATE(197), 1, + sym_declaration, + STATE(215), 1, + sym_assign_left_side, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(31), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(33), 2, + anon_sym_state, + anon_sym_gen, + STATE(214), 2, + sym__type, + sym_array_type, + STATE(232), 6, + sym_block, + sym_decl_assign_statement, + sym_if_statement, + sym_for_statement, + sym_domain_statement, + sym_interface_statement, + ACTIONS(35), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(47), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + [721] = 27, + ACTIONS(13), 1, + sym_identifier, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(19), 1, + anon_sym_reg, + ACTIONS(21), 1, + anon_sym_initial, + ACTIONS(23), 1, + anon_sym_if, + ACTIONS(25), 1, + anon_sym_for, + ACTIONS(27), 1, + anon_sym_domain, + ACTIONS(29), 1, + anon_sym_interface, + ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + ACTIONS(41), 1, + sym_number, + ACTIONS(57), 1, + anon_sym_RBRACE, + ACTIONS(59), 1, + anon_sym_LF, + STATE(2), 1, + aux_sym__linebreak, + STATE(43), 1, + sym_write_modifiers, + STATE(49), 1, + sym_template_global, + STATE(84), 1, + aux_sym_write_modifiers_repeat1, + STATE(120), 1, + sym_assign_to, + STATE(128), 1, + sym_assign_left_side, + STATE(197), 1, + sym_declaration, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(31), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(33), 2, + anon_sym_state, + anon_sym_gen, + STATE(214), 2, + sym__type, + sym_array_type, + STATE(198), 6, + sym_block, + sym_decl_assign_statement, + sym_if_statement, + sym_for_statement, + sym_domain_statement, + sym_interface_statement, + ACTIONS(35), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(47), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + [824] = 26, + ACTIONS(13), 1, + sym_identifier, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(19), 1, + anon_sym_reg, + ACTIONS(21), 1, + anon_sym_initial, + ACTIONS(23), 1, + anon_sym_if, + ACTIONS(25), 1, + anon_sym_for, + ACTIONS(27), 1, + anon_sym_domain, + ACTIONS(29), 1, + anon_sym_interface, + ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + ACTIONS(41), 1, + sym_number, + ACTIONS(43), 1, + anon_sym_LF, + STATE(43), 1, + sym_write_modifiers, + STATE(44), 1, + aux_sym__linebreak, + STATE(49), 1, + sym_template_global, + STATE(84), 1, + aux_sym_write_modifiers_repeat1, + STATE(120), 1, + sym_assign_to, + STATE(197), 1, + sym_declaration, + STATE(215), 1, + sym_assign_left_side, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(31), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(33), 2, + anon_sym_state, + anon_sym_gen, + STATE(214), 2, + sym__type, + sym_array_type, + STATE(232), 6, + sym_block, + sym_decl_assign_statement, + sym_if_statement, + sym_for_statement, + sym_domain_statement, + sym_interface_statement, + ACTIONS(35), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(47), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + [924] = 5, + ACTIONS(65), 1, anon_sym_COLON_COLON, - STATE(12), 1, + STATE(15), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(72), 8, + ACTIONS(61), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4460,7 +4683,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(74), 21, + ACTIONS(63), 21, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4482,18 +4705,57 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [232] = 17, - ACTIONS(11), 1, + [968] = 5, + ACTIONS(65), 1, + anon_sym_COLON_COLON, + STATE(14), 1, + aux_sym_template_global_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(67), 8, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(69), 21, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, + anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_LF, + [1012] = 17, + ACTIONS(13), 1, sym_identifier, - ACTIONS(17), 1, - anon_sym_reg, ACTIONS(19), 1, + anon_sym_reg, + ACTIONS(21), 1, anon_sym_initial, - ACTIONS(35), 1, - anon_sym_LPAREN, ACTIONS(37), 1, - anon_sym_COLON_COLON, + anon_sym_LPAREN, ACTIONS(39), 1, + anon_sym_COLON_COLON, + ACTIONS(41), 1, sym_number, STATE(43), 1, sym_write_modifiers, @@ -4501,23 +4763,23 @@ static const uint16_t ts_small_parse_table[] = { sym_template_global, STATE(84), 1, aux_sym_write_modifiers_repeat1, - STATE(143), 1, + STATE(145), 1, sym_assign_to, - STATE(171), 1, + STATE(197), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(29), 2, + ACTIONS(31), 2, anon_sym_input, anon_sym_output, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(209), 2, + STATE(214), 2, sym__type, sym_array_type, - ACTIONS(33), 7, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4533,15 +4795,15 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [300] = 5, - ACTIONS(63), 1, + [1080] = 5, + ACTIONS(65), 1, anon_sym_COLON_COLON, - STATE(13), 1, + STATE(15), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(76), 8, + ACTIONS(71), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4550,7 +4812,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(78), 21, + ACTIONS(73), 21, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4572,15 +4834,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [344] = 5, - ACTIONS(63), 1, + [1124] = 5, + ACTIONS(79), 1, anon_sym_COLON_COLON, - STATE(12), 1, + STATE(15), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 8, + ACTIONS(75), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4589,7 +4851,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(82), 21, + ACTIONS(77), 21, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4611,37 +4873,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [388] = 10, - ACTIONS(90), 1, - anon_sym_SLASH, - ACTIONS(92), 1, - anon_sym_DOT, - ACTIONS(94), 1, - anon_sym_LPAREN, - ACTIONS(96), 1, - anon_sym_LBRACK, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(39), 1, - sym_array_bracket_expression, + [1168] = 5, + ACTIONS(65), 1, + anon_sym_COLON_COLON, + STATE(11), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(84), 4, + ACTIONS(82), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, + anon_sym_in, anon_sym_DASH, - ACTIONS(86), 18, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(84), 21, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -4649,27 +4904,38 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [441] = 3, + [1212] = 8, + ACTIONS(90), 1, + anon_sym_DOT, + ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, + anon_sym_LBRACK, + STATE(35), 1, + sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(98), 8, + ACTIONS(86), 5, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, anon_sym_DASH, anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(100), 22, + ACTIONS(88), 20, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4682,65 +4948,52 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [480] = 13, - ACTIONS(90), 1, - anon_sym_SLASH, - ACTIONS(92), 1, - anon_sym_DOT, - ACTIONS(94), 1, - anon_sym_LPAREN, - ACTIONS(96), 1, - anon_sym_LBRACK, - ACTIONS(102), 1, - anon_sym_PLUS, - ACTIONS(104), 1, - anon_sym_DASH, - ACTIONS(106), 1, - anon_sym_CARET, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(39), 1, - sym_array_bracket_expression, + [1261] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(84), 3, + ACTIONS(96), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(86), 16, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(98), 22, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [539] = 3, + [1300] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(108), 8, + ACTIONS(100), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4749,7 +5002,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(110), 22, + ACTIONS(102), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4772,11 +5025,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [578] = 3, + [1339] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(112), 8, + ACTIONS(104), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4785,7 +5038,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(114), 22, + ACTIONS(106), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4808,44 +5061,45 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [617] = 14, + [1378] = 15, ACTIONS(90), 1, - anon_sym_SLASH, - ACTIONS(92), 1, anon_sym_DOT, - ACTIONS(94), 1, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(102), 1, + ACTIONS(112), 1, anon_sym_PLUS, - ACTIONS(104), 1, + ACTIONS(114), 1, anon_sym_DASH, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(116), 1, + ACTIONS(118), 1, anon_sym_PIPE, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + ACTIONS(120), 1, + anon_sym_AMP, + ACTIONS(122), 1, + anon_sym_CARET, + ACTIONS(124), 1, + anon_sym_SLASH, + STATE(35), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 2, + ACTIONS(116), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(84), 3, + ACTIONS(108), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(86), 15, + ACTIONS(110), 14, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, - anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -4855,11 +5109,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [678] = 3, + [1441] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(118), 8, + ACTIONS(126), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4868,7 +5122,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(120), 22, + ACTIONS(128), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4891,11 +5145,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [717] = 3, + [1480] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(122), 8, + ACTIONS(130), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4904,7 +5158,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(124), 22, + ACTIONS(132), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4927,11 +5181,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [756] = 3, + [1519] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(126), 8, + ACTIONS(134), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4940,7 +5194,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(128), 22, + ACTIONS(136), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4963,11 +5217,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [795] = 3, + [1558] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 8, + ACTIONS(138), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4976,13 +5230,60 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(132), 22, + ACTIONS(140), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, + anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COLON_COLON, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_LF, + [1597] = 10, + ACTIONS(90), 1, + anon_sym_DOT, + ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, + anon_sym_LBRACK, + ACTIONS(124), 1, + anon_sym_SLASH, + STATE(35), 1, + sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(116), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(108), 4, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + anon_sym_DASH, + ACTIONS(110), 18, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, anon_sym_PLUS, - anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -4990,31 +5291,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [834] = 3, + [1650] = 8, + ACTIONS(90), 1, + anon_sym_DOT, + ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, + anon_sym_LBRACK, + STATE(35), 1, + sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(134), 8, + ACTIONS(108), 5, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, anon_sym_DASH, anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(136), 22, + ACTIONS(110), 20, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, anon_sym_PLUS, @@ -5027,19 +5332,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [873] = 3, + [1699] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(138), 8, + ACTIONS(142), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5048,7 +5350,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(140), 22, + ACTIONS(144), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5071,78 +5373,90 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [912] = 3, + [1738] = 13, + ACTIONS(90), 1, + anon_sym_DOT, + ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, + anon_sym_LBRACK, + ACTIONS(112), 1, + anon_sym_PLUS, + ACTIONS(114), 1, + anon_sym_DASH, + ACTIONS(122), 1, + anon_sym_CARET, + ACTIONS(124), 1, + anon_sym_SLASH, + STATE(35), 1, + sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(142), 8, + ACTIONS(116), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(108), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(144), 22, + ACTIONS(110), 16, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [951] = 12, + [1797] = 14, ACTIONS(90), 1, - anon_sym_SLASH, - ACTIONS(92), 1, anon_sym_DOT, - ACTIONS(94), 1, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(102), 1, + ACTIONS(112), 1, anon_sym_PLUS, - ACTIONS(104), 1, + ACTIONS(114), 1, anon_sym_DASH, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + ACTIONS(118), 1, + anon_sym_PIPE, + ACTIONS(122), 1, + anon_sym_CARET, + ACTIONS(124), 1, + anon_sym_SLASH, + STATE(35), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 2, + ACTIONS(116), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(84), 3, + ACTIONS(108), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(86), 17, + ACTIONS(110), 15, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, - anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -5152,30 +5466,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1008] = 8, - ACTIONS(92), 1, - anon_sym_DOT, - ACTIONS(94), 1, - anon_sym_LPAREN, - ACTIONS(96), 1, - anon_sym_LBRACK, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(39), 1, - sym_array_bracket_expression, + [1858] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(84), 5, + ACTIONS(146), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, + anon_sym_in, anon_sym_DASH, anon_sym_SLASH, - ACTIONS(86), 20, + anon_sym_DOT, + sym_identifier, + ACTIONS(148), 22, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, anon_sym_PLUS, @@ -5188,35 +5494,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1057] = 8, - ACTIONS(92), 1, - anon_sym_DOT, - ACTIONS(94), 1, - anon_sym_LPAREN, - ACTIONS(96), 1, - anon_sym_LBRACK, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(39), 1, - sym_array_bracket_expression, + [1897] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(146), 5, + ACTIONS(150), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, + anon_sym_in, anon_sym_DASH, anon_sym_SLASH, - ACTIONS(148), 20, + anon_sym_DOT, + sym_identifier, + ACTIONS(152), 22, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, anon_sym_PLUS, @@ -5229,50 +5530,50 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1106] = 15, + [1936] = 12, ACTIONS(90), 1, - anon_sym_SLASH, - ACTIONS(92), 1, anon_sym_DOT, - ACTIONS(94), 1, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(102), 1, + ACTIONS(112), 1, anon_sym_PLUS, - ACTIONS(104), 1, + ACTIONS(114), 1, anon_sym_DASH, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(116), 1, - anon_sym_PIPE, - ACTIONS(150), 1, - anon_sym_AMP, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + ACTIONS(124), 1, + anon_sym_SLASH, + STATE(35), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 2, + ACTIONS(116), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(84), 3, + ACTIONS(108), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(86), 14, + ACTIONS(110), 17, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -5282,11 +5583,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1169] = 3, + [1993] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(152), 8, + ACTIONS(154), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5295,7 +5596,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(154), 21, + ACTIONS(156), 21, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5317,18 +5618,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1207] = 3, + [2031] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(156), 6, + ACTIONS(158), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(158), 22, + ACTIONS(160), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, @@ -5351,18 +5652,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1244] = 3, + [2068] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(160), 6, + ACTIONS(162), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(162), 22, + ACTIONS(164), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, @@ -5385,18 +5686,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1281] = 3, + [2105] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(164), 6, + ACTIONS(166), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(166), 22, + ACTIONS(168), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, @@ -5419,18 +5720,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1318] = 3, + [2142] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(168), 6, + ACTIONS(170), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(170), 22, + ACTIONS(172), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, @@ -5453,18 +5754,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1355] = 3, + [2179] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(172), 6, + ACTIONS(174), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(174), 22, + ACTIONS(176), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, @@ -5487,18 +5788,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1392] = 3, + [2216] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(176), 6, + ACTIONS(178), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(178), 22, + ACTIONS(180), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, @@ -5521,18 +5822,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1429] = 3, + [2253] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(180), 6, + ACTIONS(182), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(182), 22, + ACTIONS(184), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, @@ -5555,66 +5856,78 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1466] = 5, + [2290] = 17, + ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, + anon_sym_LBRACK, + ACTIONS(112), 1, + anon_sym_PLUS, + ACTIONS(114), 1, + anon_sym_DASH, + ACTIONS(118), 1, + anon_sym_PIPE, + ACTIONS(120), 1, + anon_sym_AMP, + ACTIONS(122), 1, + anon_sym_CARET, + ACTIONS(124), 1, + anon_sym_SLASH, ACTIONS(188), 1, - anon_sym_LF, - STATE(42), 1, - aux_sym__linebreak, + anon_sym_EQ, + ACTIONS(194), 1, + anon_sym_DOT, + STATE(35), 1, + sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(184), 12, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - anon_sym_domain, - anon_sym_interface, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - anon_sym_DASH, - sym_identifier, - ACTIONS(186), 12, + ACTIONS(116), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(186), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(192), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(190), 6, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_COLON_COLON, - sym_number, - [1505] = 12, - ACTIONS(11), 1, + anon_sym_COMMA, + anon_sym_LF, + [2353] = 12, + ACTIONS(13), 1, sym_identifier, - ACTIONS(35), 1, - anon_sym_LPAREN, ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(191), 1, + ACTIONS(196), 1, sym_number, STATE(49), 1, sym_template_global, - STATE(188), 1, + STATE(176), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(29), 2, + ACTIONS(31), 2, anon_sym_input, anon_sym_output, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(209), 2, + STATE(214), 2, sym__type, sym_array_type, - ACTIONS(33), 7, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5630,195 +5943,183 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [1558] = 17, - ACTIONS(90), 1, - anon_sym_SLASH, - ACTIONS(94), 1, - anon_sym_LPAREN, - ACTIONS(96), 1, - anon_sym_LBRACK, - ACTIONS(102), 1, - anon_sym_PLUS, - ACTIONS(104), 1, - anon_sym_DASH, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(116), 1, - anon_sym_PIPE, - ACTIONS(150), 1, - anon_sym_AMP, - ACTIONS(195), 1, - anon_sym_EQ, - ACTIONS(201), 1, - anon_sym_DOT, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(39), 1, - sym_array_bracket_expression, + [2406] = 5, + ACTIONS(202), 1, + anon_sym_LF, + STATE(44), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(193), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(199), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - ACTIONS(197), 6, + ACTIONS(198), 12, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + anon_sym_domain, + anon_sym_interface, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + anon_sym_DASH, + sym_identifier, + ACTIONS(200), 12, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LF, - [1621] = 16, - ACTIONS(90), 1, - anon_sym_SLASH, - ACTIONS(94), 1, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, + [2445] = 16, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(116), 1, + ACTIONS(118), 1, anon_sym_PIPE, - ACTIONS(150), 1, + ACTIONS(120), 1, anon_sym_AMP, - ACTIONS(201), 1, + ACTIONS(122), 1, + anon_sym_CARET, + ACTIONS(124), 1, + anon_sym_SLASH, + ACTIONS(194), 1, anon_sym_DOT, - ACTIONS(203), 1, + ACTIONS(205), 1, anon_sym_EQ, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + STATE(35), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(102), 2, + ACTIONS(112), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(193), 2, + ACTIONS(116), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(186), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(205), 3, + ACTIONS(207), 3, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, - ACTIONS(199), 4, + ACTIONS(192), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1679] = 18, - ACTIONS(90), 1, - anon_sym_SLASH, - ACTIONS(94), 1, + [2503] = 18, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(116), 1, + ACTIONS(118), 1, anon_sym_PIPE, - ACTIONS(150), 1, + ACTIONS(120), 1, anon_sym_AMP, - ACTIONS(201), 1, + ACTIONS(122), 1, + anon_sym_CARET, + ACTIONS(124), 1, + anon_sym_SLASH, + ACTIONS(194), 1, anon_sym_DOT, - ACTIONS(207), 1, - anon_sym_RPAREN, ACTIONS(209), 1, + anon_sym_RPAREN, + ACTIONS(211), 1, anon_sym_COMMA, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + STATE(35), 1, sym_array_bracket_expression, - STATE(71), 1, + STATE(41), 1, + sym_parenthesis_expression_list, + STATE(79), 1, sym__comma, STATE(162), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(102), 2, + ACTIONS(112), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(193), 2, + ACTIONS(116), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(186), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(199), 4, + ACTIONS(192), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, - anon_sym_GT_EQ, - [1741] = 16, - ACTIONS(90), 1, - anon_sym_SLASH, - ACTIONS(94), 1, + anon_sym_GT_EQ, + [2565] = 16, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(116), 1, + ACTIONS(118), 1, anon_sym_PIPE, - ACTIONS(150), 1, + ACTIONS(120), 1, anon_sym_AMP, - ACTIONS(201), 1, + ACTIONS(122), 1, + anon_sym_CARET, + ACTIONS(124), 1, + anon_sym_SLASH, + ACTIONS(194), 1, anon_sym_DOT, - ACTIONS(211), 1, + ACTIONS(213), 1, anon_sym_EQ, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + STATE(35), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(102), 2, + ACTIONS(112), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(193), 2, + ACTIONS(116), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(186), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(213), 3, + ACTIONS(215), 3, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, - ACTIONS(199), 4, + ACTIONS(192), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1799] = 6, - ACTIONS(63), 1, + [2623] = 6, + ACTIONS(65), 1, anon_sym_COLON_COLON, - ACTIONS(215), 1, + ACTIONS(217), 1, anon_sym_EQ, - STATE(16), 1, + STATE(11), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(59), 3, + ACTIONS(82), 3, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - ACTIONS(61), 16, + ACTIONS(84), 16, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -5835,20 +6136,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_SEMI, anon_sym_COMMA, - [1836] = 5, - ACTIONS(217), 1, + [2660] = 5, + ACTIONS(219), 1, sym_identifier, - ACTIONS(223), 1, + ACTIONS(225), 1, anon_sym_LBRACK, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(219), 4, + ACTIONS(221), 4, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_SLASH, - ACTIONS(221), 16, + ACTIONS(223), 16, anon_sym_RBRACE, anon_sym_PLUS, anon_sym_DASH, @@ -5865,213 +6166,181 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COMMA, anon_sym_LF, - [1871] = 16, - ACTIONS(13), 1, + [2695] = 16, + ACTIONS(15), 1, anon_sym_LBRACE, - ACTIONS(90), 1, - anon_sym_SLASH, - ACTIONS(94), 1, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(116), 1, + ACTIONS(118), 1, anon_sym_PIPE, - ACTIONS(150), 1, + ACTIONS(120), 1, anon_sym_AMP, - ACTIONS(201), 1, + ACTIONS(122), 1, + anon_sym_CARET, + ACTIONS(124), 1, + anon_sym_SLASH, + ACTIONS(194), 1, anon_sym_DOT, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + STATE(35), 1, sym_array_bracket_expression, - STATE(227), 1, + STATE(41), 1, + sym_parenthesis_expression_list, + STATE(210), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(102), 2, + ACTIONS(112), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(193), 2, + ACTIONS(116), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(186), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(199), 4, + ACTIONS(192), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1927] = 15, - ACTIONS(90), 1, - anon_sym_SLASH, - ACTIONS(94), 1, + [2751] = 16, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(116), 1, + ACTIONS(118), 1, anon_sym_PIPE, - ACTIONS(150), 1, + ACTIONS(120), 1, anon_sym_AMP, - ACTIONS(201), 1, + ACTIONS(122), 1, + anon_sym_CARET, + ACTIONS(124), 1, + anon_sym_SLASH, + ACTIONS(194), 1, anon_sym_DOT, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + STATE(35), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, + STATE(231), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(102), 2, + ACTIONS(112), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(193), 2, + ACTIONS(116), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(186), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(226), 2, - anon_sym_SEMI, - anon_sym_COMMA, - ACTIONS(199), 4, + ACTIONS(192), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [1981] = 9, - ACTIONS(35), 1, + [2807] = 15, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(37), 1, - anon_sym_COLON_COLON, - ACTIONS(228), 1, - sym_identifier, - ACTIONS(230), 1, - anon_sym_SEMI, - ACTIONS(232), 1, - sym_number, - STATE(145), 1, - sym_template_value_param, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(33), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(51), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_template_global, - [2023] = 15, - ACTIONS(90), 1, - anon_sym_SLASH, ACTIONS(94), 1, - anon_sym_LPAREN, - ACTIONS(96), 1, anon_sym_LBRACK, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(116), 1, + ACTIONS(118), 1, anon_sym_PIPE, - ACTIONS(150), 1, + ACTIONS(120), 1, anon_sym_AMP, - ACTIONS(201), 1, + ACTIONS(122), 1, + anon_sym_CARET, + ACTIONS(124), 1, + anon_sym_SLASH, + ACTIONS(194), 1, anon_sym_DOT, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + STATE(35), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(102), 2, + ACTIONS(112), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(193), 2, + ACTIONS(116), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(186), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(234), 2, - anon_sym_RBRACE, - anon_sym_LF, - ACTIONS(199), 4, + ACTIONS(228), 2, + anon_sym_SEMI, + anon_sym_COMMA, + ACTIONS(192), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2077] = 15, - ACTIONS(90), 1, - anon_sym_SLASH, - ACTIONS(94), 1, + [2861] = 15, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(116), 1, + ACTIONS(118), 1, anon_sym_PIPE, - ACTIONS(150), 1, + ACTIONS(120), 1, anon_sym_AMP, - ACTIONS(201), 1, + ACTIONS(122), 1, + anon_sym_CARET, + ACTIONS(124), 1, + anon_sym_SLASH, + ACTIONS(194), 1, anon_sym_DOT, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + STATE(35), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(102), 2, + ACTIONS(112), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(193), 2, + ACTIONS(116), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(186), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(236), 2, - anon_sym_SEMI, - anon_sym_COMMA, - ACTIONS(199), 4, + ACTIONS(230), 2, + anon_sym_RBRACE, + anon_sym_LF, + ACTIONS(192), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2131] = 9, - ACTIONS(35), 1, - anon_sym_LPAREN, + [2915] = 9, ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(228), 1, - sym_identifier, ACTIONS(232), 1, - sym_number, - ACTIONS(238), 1, + sym_identifier, + ACTIONS(234), 1, anon_sym_SEMI, - STATE(157), 1, + ACTIONS(236), 1, + sym_number, + STATE(154), 1, sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(33), 7, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6079,7 +6348,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(51), 8, + STATE(52), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6088,100 +6357,101 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2173] = 16, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(90), 1, - anon_sym_SLASH, - ACTIONS(94), 1, + [2957] = 15, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(116), 1, + ACTIONS(118), 1, anon_sym_PIPE, - ACTIONS(150), 1, + ACTIONS(120), 1, anon_sym_AMP, - ACTIONS(201), 1, + ACTIONS(122), 1, + anon_sym_CARET, + ACTIONS(124), 1, + anon_sym_SLASH, + ACTIONS(194), 1, anon_sym_DOT, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + STATE(35), 1, sym_array_bracket_expression, - STATE(220), 1, - sym_block, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(102), 2, + ACTIONS(112), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(193), 2, + ACTIONS(116), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(186), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(199), 4, + ACTIONS(238), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + ACTIONS(192), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2229] = 15, - ACTIONS(90), 1, - anon_sym_SLASH, - ACTIONS(94), 1, + [3011] = 15, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(116), 1, + ACTIONS(118), 1, anon_sym_PIPE, - ACTIONS(150), 1, + ACTIONS(120), 1, anon_sym_AMP, - ACTIONS(201), 1, + ACTIONS(122), 1, + anon_sym_CARET, + ACTIONS(124), 1, + anon_sym_SLASH, + ACTIONS(194), 1, anon_sym_DOT, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + STATE(35), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(102), 2, + ACTIONS(112), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(193), 2, + ACTIONS(116), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(186), 2, anon_sym_LT, anon_sym_GT, ACTIONS(240), 2, - anon_sym_RPAREN, + anon_sym_SEMI, anon_sym_COMMA, - ACTIONS(199), 4, + ACTIONS(192), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2283] = 8, - ACTIONS(35), 1, - anon_sym_LPAREN, + [3065] = 9, ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(228), 1, - sym_identifier, ACTIONS(232), 1, + sym_identifier, + ACTIONS(236), 1, sym_number, - STATE(229), 1, + ACTIONS(242), 1, + anon_sym_SEMI, + STATE(144), 1, sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(33), 7, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6189,7 +6459,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(51), 8, + STATE(52), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6198,21 +6468,21 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2322] = 8, - ACTIONS(35), 1, - anon_sym_LPAREN, + [3107] = 8, ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, - sym_identifier, ACTIONS(244), 1, - anon_sym_RPAREN, + sym_identifier, ACTIONS(246), 1, + anon_sym_RPAREN, + ACTIONS(248), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(33), 7, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6229,171 +6499,202 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2361] = 15, - ACTIONS(90), 1, - anon_sym_SLASH, + [3146] = 15, ACTIONS(92), 1, - anon_sym_DOT, - ACTIONS(94), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(116), 1, + ACTIONS(118), 1, anon_sym_PIPE, - ACTIONS(150), 1, + ACTIONS(120), 1, anon_sym_AMP, - ACTIONS(248), 1, - anon_sym_DOT_DOT, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + ACTIONS(122), 1, + anon_sym_CARET, + ACTIONS(124), 1, + anon_sym_SLASH, + ACTIONS(194), 1, + anon_sym_DOT, + ACTIONS(250), 1, + anon_sym_RBRACK, + STATE(35), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(102), 2, + ACTIONS(112), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(193), 2, + ACTIONS(116), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(186), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(199), 4, + ACTIONS(192), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2414] = 15, - ACTIONS(90), 1, - anon_sym_SLASH, - ACTIONS(94), 1, + [3199] = 15, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(116), 1, + ACTIONS(118), 1, anon_sym_PIPE, - ACTIONS(150), 1, + ACTIONS(120), 1, anon_sym_AMP, - ACTIONS(201), 1, + ACTIONS(122), 1, + anon_sym_CARET, + ACTIONS(124), 1, + anon_sym_SLASH, + ACTIONS(194), 1, anon_sym_DOT, - ACTIONS(250), 1, + ACTIONS(252), 1, anon_sym_RBRACK, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + STATE(35), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(102), 2, + ACTIONS(112), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(193), 2, + ACTIONS(116), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(186), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(199), 4, + ACTIONS(192), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2467] = 15, - ACTIONS(90), 1, - anon_sym_SLASH, - ACTIONS(94), 1, + [3252] = 8, + ACTIONS(37), 1, anon_sym_LPAREN, - ACTIONS(96), 1, - anon_sym_LBRACK, - ACTIONS(106), 1, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + ACTIONS(232), 1, + sym_identifier, + ACTIONS(236), 1, + sym_number, + STATE(239), 1, + sym_template_value_param, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(35), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, anon_sym_CARET, - ACTIONS(116), 1, + STATE(52), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_template_global, + [3291] = 15, + ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, + anon_sym_LBRACK, + ACTIONS(118), 1, anon_sym_PIPE, - ACTIONS(150), 1, + ACTIONS(120), 1, anon_sym_AMP, - ACTIONS(201), 1, + ACTIONS(122), 1, + anon_sym_CARET, + ACTIONS(124), 1, + anon_sym_SLASH, + ACTIONS(194), 1, anon_sym_DOT, - ACTIONS(252), 1, - anon_sym_RBRACK, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + ACTIONS(254), 1, + anon_sym_RPAREN, + STATE(35), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(102), 2, + ACTIONS(112), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(193), 2, + ACTIONS(116), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(186), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(199), 4, + ACTIONS(192), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2520] = 15, + [3344] = 15, ACTIONS(90), 1, - anon_sym_SLASH, - ACTIONS(94), 1, + anon_sym_DOT, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(96), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(106), 1, - anon_sym_CARET, - ACTIONS(116), 1, + ACTIONS(118), 1, anon_sym_PIPE, - ACTIONS(150), 1, + ACTIONS(120), 1, anon_sym_AMP, - ACTIONS(201), 1, - anon_sym_DOT, - ACTIONS(254), 1, - anon_sym_RPAREN, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(39), 1, + ACTIONS(122), 1, + anon_sym_CARET, + ACTIONS(124), 1, + anon_sym_SLASH, + ACTIONS(256), 1, + anon_sym_DOT_DOT, + STATE(35), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(102), 2, + ACTIONS(112), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(193), 2, + ACTIONS(116), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(186), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(199), 4, + ACTIONS(192), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2573] = 7, - ACTIONS(35), 1, - anon_sym_LPAREN, + [3397] = 7, ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(244), 1, sym_identifier, - ACTIONS(256), 1, + ACTIONS(258), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(33), 7, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6401,7 +6702,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(61), 8, + STATE(63), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6410,19 +6711,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2609] = 7, - ACTIONS(35), 1, - anon_sym_LPAREN, + [3433] = 7, ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(244), 1, sym_identifier, - ACTIONS(258), 1, + ACTIONS(260), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(33), 7, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6430,7 +6731,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(62), 8, + STATE(17), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6439,19 +6740,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2645] = 7, - ACTIONS(35), 1, - anon_sym_LPAREN, + [3469] = 7, ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(244), 1, sym_identifier, - ACTIONS(260), 1, + ACTIONS(262), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(33), 7, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6459,7 +6760,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(54), 8, + STATE(42), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6468,19 +6769,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2681] = 7, - ACTIONS(35), 1, - anon_sym_LPAREN, + [3505] = 7, ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(244), 1, sym_identifier, - ACTIONS(262), 1, + ACTIONS(264), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(33), 7, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6488,7 +6789,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(63), 8, + STATE(51), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6497,19 +6798,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2717] = 7, - ACTIONS(35), 1, - anon_sym_LPAREN, + [3541] = 7, ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(244), 1, sym_identifier, - ACTIONS(264), 1, + ACTIONS(266), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(33), 7, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6517,7 +6818,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(44), 8, + STATE(56), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6526,19 +6827,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2753] = 7, - ACTIONS(35), 1, - anon_sym_LPAREN, + [3577] = 7, ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(244), 1, sym_identifier, - ACTIONS(266), 1, + ACTIONS(268), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(33), 7, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6546,7 +6847,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(60), 8, + STATE(30), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6555,19 +6856,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2789] = 7, - ACTIONS(35), 1, - anon_sym_LPAREN, + [3613] = 7, ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(244), 1, sym_identifier, - ACTIONS(268), 1, + ACTIONS(270), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(33), 7, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6575,7 +6876,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(53), 8, + STATE(60), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6584,19 +6885,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2825] = 7, - ACTIONS(35), 1, - anon_sym_LPAREN, + [3649] = 7, ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(244), 1, sym_identifier, - ACTIONS(270), 1, + ACTIONS(272), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(33), 7, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6604,7 +6905,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(57), 8, + STATE(29), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6613,46 +6914,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2861] = 5, - ACTIONS(276), 1, - anon_sym_LF, - STATE(75), 1, - aux_sym__linebreak, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(272), 7, - anon_sym_reg, - anon_sym_initial, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(274), 10, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_COLON_COLON, - sym_number, - [2893] = 7, - ACTIONS(35), 1, - anon_sym_LPAREN, + [3685] = 7, ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(244), 1, sym_identifier, - ACTIONS(278), 1, + ACTIONS(274), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(33), 7, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6660,7 +6934,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(56), 8, + STATE(53), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6669,19 +6943,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2929] = 7, - ACTIONS(35), 1, - anon_sym_LPAREN, + [3721] = 7, ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(244), 1, sym_identifier, - ACTIONS(280), 1, + ACTIONS(276), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(33), 7, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6689,7 +6963,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(30), 8, + STATE(50), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6698,15 +6972,15 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2965] = 5, - ACTIONS(41), 1, + [3757] = 5, + ACTIONS(282), 1, anon_sym_LF, - STATE(42), 1, + STATE(80), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(282), 7, + ACTIONS(278), 7, anon_sym_reg, anon_sym_initial, anon_sym_input, @@ -6714,7 +6988,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(284), 10, + ACTIONS(280), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6725,19 +6999,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [2997] = 7, - ACTIONS(35), 1, - anon_sym_LPAREN, + [3789] = 7, ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(244), 1, sym_identifier, - ACTIONS(286), 1, + ACTIONS(284), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(33), 7, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6745,7 +7019,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(32), 8, + STATE(33), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6754,19 +7028,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3033] = 7, - ACTIONS(35), 1, - anon_sym_LPAREN, + [3825] = 7, ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(244), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(286), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(33), 7, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6774,7 +7048,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(50), 8, + STATE(62), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6783,19 +7057,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3069] = 7, - ACTIONS(35), 1, - anon_sym_LPAREN, + [3861] = 7, ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(244), 1, sym_identifier, - ACTIONS(290), 1, + ACTIONS(288), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(33), 7, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6803,7 +7077,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(33), 8, + STATE(27), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6812,19 +7086,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3105] = 7, - ACTIONS(35), 1, - anon_sym_LPAREN, + [3897] = 7, ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(244), 1, sym_identifier, - ACTIONS(292), 1, + ACTIONS(290), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(33), 7, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6832,7 +7106,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(17), 8, + STATE(59), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6841,19 +7115,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3141] = 7, - ACTIONS(35), 1, - anon_sym_LPAREN, + [3933] = 7, ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(244), 1, sym_identifier, - ACTIONS(294), 1, + ACTIONS(292), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(33), 7, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6861,7 +7135,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(31), 8, + STATE(55), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6870,19 +7144,46 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3177] = 7, - ACTIONS(35), 1, + [3969] = 5, + ACTIONS(43), 1, + anon_sym_LF, + STATE(44), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(294), 7, + anon_sym_reg, + anon_sym_initial, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(296), 10, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, + [4001] = 7, ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(244), 1, sym_identifier, - ACTIONS(296), 1, + ACTIONS(298), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(33), 7, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6890,7 +7191,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(19), 8, + STATE(21), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6899,19 +7200,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3213] = 7, - ACTIONS(35), 1, - anon_sym_LPAREN, + [4037] = 7, ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(244), 1, sym_identifier, - ACTIONS(298), 1, + ACTIONS(300), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(33), 7, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6919,7 +7220,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(22), 8, + STATE(26), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6928,21 +7229,21 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3249] = 5, - ACTIONS(302), 1, + [4073] = 5, + ACTIONS(304), 1, anon_sym_reg, STATE(83), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(300), 5, + ACTIONS(302), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(305), 10, + ACTIONS(307), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6953,21 +7254,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [3279] = 5, - ACTIONS(17), 1, + [4103] = 5, + ACTIONS(19), 1, anon_sym_reg, STATE(83), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(307), 5, + ACTIONS(309), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(309), 10, + ACTIONS(311), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6978,18 +7279,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [3309] = 3, + [4133] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(311), 6, + ACTIONS(313), 6, anon_sym_reg, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(313), 10, + ACTIONS(315), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7000,47 +7301,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [3334] = 12, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(37), 1, - anon_sym_COLON_COLON, - ACTIONS(315), 1, - anon_sym_DASH_GT, - ACTIONS(317), 1, - anon_sym_LF, - STATE(88), 1, - aux_sym__linebreak, - STATE(108), 1, - sym_declaration, - STATE(132), 1, - sym_declaration_list, - STATE(212), 1, - sym__interface_ports_output, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(29), 2, - anon_sym_input, - anon_sym_output, - ACTIONS(31), 2, - anon_sym_state, - anon_sym_gen, - STATE(209), 3, - sym__type, - sym_array_type, - sym_template_global, - [3376] = 3, + [4158] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(319), 5, + ACTIONS(317), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(321), 10, + ACTIONS(319), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7051,137 +7322,167 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [3400] = 12, - ACTIONS(11), 1, + [4182] = 12, + ACTIONS(13), 1, sym_identifier, - ACTIONS(37), 1, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(41), 1, + ACTIONS(43), 1, + anon_sym_LF, + ACTIONS(321), 1, + anon_sym_DASH_GT, + STATE(44), 1, + aux_sym__linebreak, + STATE(112), 1, + sym_declaration, + STATE(124), 1, + sym_declaration_list, + STATE(218), 1, + sym__interface_ports_output, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(31), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(33), 2, + anon_sym_state, + anon_sym_gen, + STATE(214), 3, + sym__type, + sym_array_type, + sym_template_global, + [4224] = 12, + ACTIONS(13), 1, + sym_identifier, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + ACTIONS(321), 1, + anon_sym_DASH_GT, + ACTIONS(323), 1, anon_sym_LF, - ACTIONS(315), 1, - anon_sym_DASH_GT, - STATE(42), 1, + STATE(87), 1, aux_sym__linebreak, - STATE(108), 1, + STATE(112), 1, sym_declaration, - STATE(130), 1, + STATE(127), 1, sym_declaration_list, - STATE(221), 1, + STATE(209), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(29), 2, + ACTIONS(31), 2, anon_sym_input, anon_sym_output, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(209), 3, + STATE(214), 3, sym__type, sym_array_type, sym_template_global, - [3442] = 10, - ACTIONS(11), 1, + [4266] = 10, + ACTIONS(13), 1, sym_identifier, - ACTIONS(37), 1, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(41), 1, + ACTIONS(325), 1, anon_sym_LF, - STATE(42), 1, + STATE(90), 1, aux_sym__linebreak, - STATE(108), 1, + STATE(112), 1, sym_declaration, - STATE(216), 1, + STATE(212), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(29), 2, + ACTIONS(31), 2, anon_sym_input, anon_sym_output, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(209), 3, + STATE(214), 3, sym__type, sym_array_type, sym_template_global, - [3478] = 10, - ACTIONS(11), 1, + [4302] = 10, + ACTIONS(13), 1, sym_identifier, - ACTIONS(37), 1, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(323), 1, + ACTIONS(43), 1, anon_sym_LF, - STATE(89), 1, + STATE(44), 1, aux_sym__linebreak, - STATE(108), 1, + STATE(112), 1, sym_declaration, - STATE(219), 1, + STATE(207), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(29), 2, + ACTIONS(31), 2, anon_sym_input, anon_sym_output, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(209), 3, + STATE(214), 3, sym__type, sym_array_type, sym_template_global, - [3514] = 7, - ACTIONS(11), 1, + [4338] = 7, + ACTIONS(13), 1, sym_identifier, - ACTIONS(37), 1, + ACTIONS(39), 1, anon_sym_COLON_COLON, - STATE(240), 1, + STATE(136), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(29), 2, + ACTIONS(31), 2, anon_sym_input, anon_sym_output, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(209), 3, + STATE(214), 3, sym__type, sym_array_type, sym_template_global, - [3541] = 7, - ACTIONS(11), 1, + [4365] = 7, + ACTIONS(13), 1, sym_identifier, - ACTIONS(37), 1, + ACTIONS(39), 1, anon_sym_COLON_COLON, - STATE(127), 1, + STATE(246), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(29), 2, + ACTIONS(31), 2, anon_sym_input, anon_sym_output, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(209), 3, + STATE(214), 3, sym__type, sym_array_type, sym_template_global, - [3568] = 4, - ACTIONS(327), 1, + [4392] = 4, + ACTIONS(329), 1, anon_sym_SQUOTE, STATE(107), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(325), 7, + ACTIONS(327), 7, anon_sym_EQ, anon_sym_LBRACE, anon_sym_RBRACE, @@ -7189,15 +7490,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [3588] = 4, - ACTIONS(327), 1, + [4412] = 4, + ACTIONS(329), 1, anon_sym_SQUOTE, - STATE(97), 1, + STATE(103), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(329), 7, + ACTIONS(331), 7, anon_sym_EQ, anon_sym_LBRACE, anon_sym_RBRACE, @@ -7205,15 +7506,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [3608] = 4, - ACTIONS(327), 1, + [4432] = 4, + ACTIONS(329), 1, anon_sym_SQUOTE, - STATE(109), 1, + STATE(115), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(331), 7, + ACTIONS(333), 7, anon_sym_EQ, anon_sym_LBRACE, anon_sym_RBRACE, @@ -7221,15 +7522,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [3628] = 4, - ACTIONS(327), 1, + [4452] = 4, + ACTIONS(329), 1, anon_sym_SQUOTE, - STATE(101), 1, + STATE(102), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(333), 7, + ACTIONS(335), 7, anon_sym_EQ, anon_sym_LBRACE, anon_sym_RBRACE, @@ -7237,69 +7538,106 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [3648] = 2, + [4472] = 8, + ACTIONS(9), 1, + anon_sym_module, + ACTIONS(337), 1, + ts_builtin_sym_end, + ACTIONS(339), 1, + anon_sym_LF, + STATE(121), 1, + aux_sym__linebreak, + STATE(230), 1, + sym_source_obj, + STATE(238), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(335), 7, - anon_sym_EQ, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DASH_GT, - anon_sym_COMMA, + ACTIONS(7), 2, + anon_sym___builtin__, + anon_sym_extern, + [4499] = 8, + ACTIONS(9), 1, + anon_sym_module, + ACTIONS(339), 1, anon_sym_LF, - [3662] = 5, + ACTIONS(341), 1, + ts_builtin_sym_end, + STATE(121), 1, + aux_sym__linebreak, + STATE(192), 1, + sym_source_obj, + STATE(238), 1, + sym_module, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(7), 2, + anon_sym___builtin__, + anon_sym_extern, + [4526] = 8, + ACTIONS(9), 1, + anon_sym_module, ACTIONS(339), 1, - anon_sym_COMMA, - STATE(92), 1, - sym__comma, - STATE(98), 1, - aux_sym_declaration_list_repeat1, + anon_sym_LF, + ACTIONS(343), 1, + ts_builtin_sym_end, + STATE(121), 1, + aux_sym__linebreak, + STATE(230), 1, + sym_source_obj, + STATE(238), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(337), 4, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DASH_GT, + ACTIONS(7), 2, + anon_sym___builtin__, + anon_sym_extern, + [4553] = 8, + ACTIONS(9), 1, + anon_sym_module, + ACTIONS(339), 1, anon_sym_LF, - [3682] = 5, - ACTIONS(11), 1, - sym_identifier, - ACTIONS(37), 1, - anon_sym_COLON_COLON, + ACTIONS(345), 1, + ts_builtin_sym_end, + STATE(121), 1, + aux_sym__linebreak, + STATE(230), 1, + sym_source_obj, + STATE(238), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(342), 2, - anon_sym_state, - anon_sym_gen, - STATE(213), 3, - sym__type, - sym_array_type, - sym_template_global, - [3702] = 6, - ACTIONS(344), 1, - sym_identifier, - ACTIONS(346), 1, - anon_sym_GT, - ACTIONS(348), 1, - anon_sym_COLON_COLON, - STATE(199), 1, - sym_template_type_param, + ACTIONS(7), 2, + anon_sym___builtin__, + anon_sym_extern, + [4580] = 8, + ACTIONS(9), 1, + anon_sym_module, + ACTIONS(339), 1, + anon_sym_LF, + ACTIONS(347), 1, + ts_builtin_sym_end, + STATE(121), 1, + aux_sym__linebreak, + STATE(230), 1, + sym_source_obj, + STATE(238), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(177), 3, - sym__type, - sym_array_type, - sym_template_global, - [3724] = 2, + ACTIONS(7), 2, + anon_sym___builtin__, + anon_sym_extern, + [4607] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(350), 7, + ACTIONS(349), 7, anon_sym_EQ, anon_sym_LBRACE, anon_sym_RBRACE, @@ -7307,837 +7645,871 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [3738] = 5, - ACTIONS(209), 1, - anon_sym_COMMA, - STATE(92), 1, - sym__comma, - STATE(98), 1, - aux_sym_declaration_list_repeat1, + [4621] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(352), 4, + ACTIONS(351), 7, + anon_sym_EQ, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_LF, - [3758] = 6, - ACTIONS(344), 1, + [4635] = 6, + ACTIONS(353), 1, sym_identifier, - ACTIONS(348), 1, - anon_sym_COLON_COLON, - ACTIONS(354), 1, + ACTIONS(355), 1, anon_sym_GT, - STATE(151), 1, + ACTIONS(357), 1, + anon_sym_COLON_COLON, + STATE(150), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(177), 3, + STATE(180), 3, sym__type, sym_array_type, sym_template_global, - [3780] = 6, - ACTIONS(344), 1, + [4657] = 6, + ACTIONS(353), 1, sym_identifier, - ACTIONS(348), 1, + ACTIONS(357), 1, anon_sym_COLON_COLON, - ACTIONS(356), 1, + ACTIONS(359), 1, anon_sym_GT, - STATE(178), 1, + STATE(158), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(177), 3, + STATE(180), 3, sym__type, sym_array_type, sym_template_global, - [3802] = 6, - ACTIONS(344), 1, + [4679] = 6, + ACTIONS(353), 1, sym_identifier, - ACTIONS(348), 1, + ACTIONS(357), 1, anon_sym_COLON_COLON, - ACTIONS(358), 1, + ACTIONS(361), 1, anon_sym_GT, - STATE(197), 1, + STATE(161), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(177), 3, + STATE(180), 3, sym__type, sym_array_type, sym_template_global, - [3824] = 6, - ACTIONS(344), 1, + [4701] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(363), 7, + anon_sym_EQ, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LF, + [4715] = 5, + ACTIONS(211), 1, + anon_sym_COMMA, + STATE(91), 1, + sym__comma, + STATE(111), 1, + aux_sym_declaration_list_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(365), 4, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DASH_GT, + anon_sym_LF, + [4735] = 6, + ACTIONS(353), 1, sym_identifier, - ACTIONS(348), 1, + ACTIONS(357), 1, anon_sym_COLON_COLON, - ACTIONS(360), 1, + ACTIONS(367), 1, anon_sym_GT, - STATE(156), 1, + STATE(202), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(177), 3, + STATE(180), 3, sym__type, sym_array_type, sym_template_global, - [3846] = 2, + [4757] = 5, + ACTIONS(13), 1, + sym_identifier, + ACTIONS(39), 1, + anon_sym_COLON_COLON, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(362), 7, - anon_sym_EQ, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LF, - [3860] = 5, - ACTIONS(209), 1, + ACTIONS(369), 2, + anon_sym_state, + anon_sym_gen, + STATE(221), 3, + sym__type, + sym_array_type, + sym_template_global, + [4777] = 5, + ACTIONS(373), 1, anon_sym_COMMA, - STATE(92), 1, + STATE(91), 1, sym__comma, - STATE(102), 1, + STATE(111), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(364), 4, + ACTIONS(371), 4, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DASH_GT, anon_sym_LF, - [3880] = 2, + [4797] = 5, + ACTIONS(211), 1, + anon_sym_COMMA, + STATE(91), 1, + sym__comma, + STATE(108), 1, + aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(366), 7, - anon_sym_EQ, + ACTIONS(376), 4, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DASH_GT, - anon_sym_COMMA, anon_sym_LF, - [3894] = 6, - ACTIONS(344), 1, + [4817] = 6, + ACTIONS(353), 1, sym_identifier, - ACTIONS(348), 1, + ACTIONS(357), 1, anon_sym_COLON_COLON, - ACTIONS(368), 1, + ACTIONS(378), 1, anon_sym_GT, - STATE(153), 1, + STATE(181), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(177), 3, + STATE(180), 3, sym__type, sym_array_type, sym_template_global, - [3916] = 5, - ACTIONS(344), 1, + [4839] = 7, + ACTIONS(9), 1, + anon_sym_module, + ACTIONS(339), 1, + anon_sym_LF, + STATE(121), 1, + aux_sym__linebreak, + STATE(230), 1, + sym_source_obj, + STATE(238), 1, + sym_module, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(7), 2, + anon_sym___builtin__, + anon_sym_extern, + [4863] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(380), 7, + anon_sym_EQ, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LF, + [4877] = 6, + ACTIONS(353), 1, sym_identifier, - ACTIONS(348), 1, + ACTIONS(357), 1, anon_sym_COLON_COLON, - STATE(231), 1, + ACTIONS(382), 1, + anon_sym_GT, + STATE(196), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(177), 3, + STATE(180), 3, sym__type, sym_array_type, sym_template_global, - [3935] = 5, - ACTIONS(209), 1, + [4899] = 5, + ACTIONS(211), 1, anon_sym_COMMA, - STATE(14), 1, + STATE(13), 1, sym__comma, - STATE(115), 1, + STATE(119), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(370), 3, + ACTIONS(384), 3, anon_sym_EQ, anon_sym_RBRACE, anon_sym_LF, - [3954] = 5, - ACTIONS(372), 1, + [4918] = 5, + ACTIONS(386), 1, anon_sym_EQ, - ACTIONS(374), 1, + ACTIONS(388), 1, anon_sym_COLON_COLON, - STATE(122), 1, + STATE(132), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(61), 3, + ACTIONS(84), 3, anon_sym_GT, anon_sym_LBRACK, anon_sym_COMMA, - [3973] = 5, - ACTIONS(209), 1, + [4937] = 5, + ACTIONS(392), 1, anon_sym_COMMA, - STATE(14), 1, + STATE(13), 1, sym__comma, - STATE(112), 1, + STATE(119), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(376), 3, + ACTIONS(390), 3, anon_sym_EQ, anon_sym_RBRACE, anon_sym_LF, - [3992] = 5, - ACTIONS(380), 1, + [4956] = 5, + ACTIONS(211), 1, anon_sym_COMMA, - STATE(14), 1, + STATE(13), 1, sym__comma, - STATE(115), 1, + STATE(117), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(378), 3, + ACTIONS(395), 3, anon_sym_EQ, anon_sym_RBRACE, anon_sym_LF, - [4011] = 6, - ACTIONS(13), 1, + [4975] = 4, + ACTIONS(397), 1, + anon_sym_LF, + STATE(121), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(200), 4, + ts_builtin_sym_end, + anon_sym___builtin__, + anon_sym_extern, + anon_sym_module, + [4992] = 5, + ACTIONS(353), 1, + sym_identifier, + ACTIONS(357), 1, + anon_sym_COLON_COLON, + STATE(226), 1, + sym_template_type_param, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(180), 3, + sym__type, + sym_array_type, + sym_template_global, + [5011] = 6, + ACTIONS(15), 1, anon_sym_LBRACE, - ACTIONS(385), 1, + ACTIONS(402), 1, anon_sym_COLON, - STATE(184), 1, + STATE(156), 1, sym_interface_ports, - STATE(228), 1, + STATE(240), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(383), 2, - anon_sym_RBRACE, - anon_sym_LF, - [4032] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(387), 1, - ts_builtin_sym_end, - ACTIONS(389), 1, - anon_sym_LF, - STATE(193), 1, - aux_sym__linebreak, - STATE(224), 1, - sym_module, + ACTIONS(400), 2, + anon_sym_RBRACE, + anon_sym_LF, + [5032] = 4, + ACTIONS(321), 1, + anon_sym_DASH_GT, + STATE(216), 1, + sym__interface_ports_output, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(404), 3, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_LF, + [5048] = 4, + ACTIONS(357), 1, + anon_sym_COLON_COLON, + ACTIONS(406), 1, + sym_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(206), 3, + sym__type, + sym_array_type, + sym_template_global, + [5064] = 4, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + ACTIONS(244), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4052] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(389), 1, - anon_sym_LF, - ACTIONS(391), 1, - ts_builtin_sym_end, - STATE(193), 1, - aux_sym__linebreak, - STATE(224), 1, - sym_module, + STATE(217), 3, + sym__type, + sym_array_type, + sym_template_global, + [5080] = 4, + ACTIONS(321), 1, + anon_sym_DASH_GT, + STATE(208), 1, + sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4072] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(389), 1, + ACTIONS(408), 3, + anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_LF, - ACTIONS(393), 1, - ts_builtin_sym_end, - STATE(193), 1, + [5096] = 6, + ACTIONS(410), 1, + anon_sym_EQ, + ACTIONS(412), 1, + anon_sym_RBRACE, + ACTIONS(414), 1, + anon_sym_LF, + STATE(4), 1, aux_sym__linebreak, - STATE(224), 1, - sym_module, + STATE(177), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4092] = 4, - ACTIONS(395), 1, + [5116] = 4, + ACTIONS(39), 1, anon_sym_COLON_COLON, - STATE(120), 1, - aux_sym_template_global_repeat1, + ACTIONS(244), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(67), 3, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COMMA, - [4108] = 4, - ACTIONS(374), 1, + STATE(220), 3, + sym__type, + sym_array_type, + sym_template_global, + [5132] = 4, + ACTIONS(388), 1, anon_sym_COLON_COLON, - STATE(120), 1, + STATE(132), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 3, + ACTIONS(84), 3, anon_sym_GT, anon_sym_LBRACK, anon_sym_COMMA, - [4124] = 4, - ACTIONS(374), 1, + [5148] = 4, + ACTIONS(388), 1, anon_sym_COLON_COLON, - STATE(120), 1, + STATE(133), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(82), 3, + ACTIONS(69), 3, anon_sym_GT, anon_sym_LBRACK, anon_sym_COMMA, - [4140] = 4, - ACTIONS(374), 1, + [5164] = 4, + ACTIONS(388), 1, anon_sym_COLON_COLON, - STATE(121), 1, + STATE(135), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 3, + ACTIONS(63), 3, anon_sym_GT, anon_sym_LBRACK, anon_sym_COMMA, - [4156] = 4, - ACTIONS(374), 1, + [5180] = 4, + ACTIONS(388), 1, anon_sym_COLON_COLON, - STATE(122), 1, + STATE(135), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(61), 3, + ACTIONS(73), 3, anon_sym_GT, anon_sym_LBRACK, anon_sym_COMMA, - [4172] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(389), 1, + [5196] = 6, + ACTIONS(410), 1, + anon_sym_EQ, + ACTIONS(416), 1, + anon_sym_RBRACE, + ACTIONS(418), 1, anon_sym_LF, - ACTIONS(398), 1, - ts_builtin_sym_end, - STATE(193), 1, + STATE(3), 1, aux_sym__linebreak, - STATE(224), 1, - sym_module, + STATE(191), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4192] = 4, - ACTIONS(348), 1, + [5216] = 4, + ACTIONS(420), 1, anon_sym_COLON_COLON, - ACTIONS(400), 1, - sym_identifier, + STATE(135), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(204), 3, - sym__type, - sym_array_type, - sym_template_global, - [4208] = 2, + ACTIONS(77), 3, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + [5232] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(402), 5, + ACTIONS(423), 5, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4220] = 4, - ACTIONS(37), 1, + [5244] = 4, + ACTIONS(357), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, + ACTIONS(406), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(208), 3, + STATE(167), 3, sym__type, sym_array_type, sym_template_global, - [4236] = 6, - ACTIONS(404), 1, - anon_sym_EQ, - ACTIONS(406), 1, - anon_sym_RBRACE, - ACTIONS(408), 1, - anon_sym_LF, - STATE(8), 1, - aux_sym__linebreak, - STATE(191), 1, - aux_sym_block_repeat1, + [5260] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4256] = 4, - ACTIONS(315), 1, - anon_sym_DASH_GT, - STATE(214), 1, - sym__interface_ports_output, + ACTIONS(425), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [5271] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(410), 3, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_LF, - [4272] = 4, - ACTIONS(37), 1, + ACTIONS(144), 4, + anon_sym_GT, + anon_sym_LBRACK, anon_sym_COLON_COLON, - ACTIONS(242), 1, - sym_identifier, + anon_sym_COMMA, + [5282] = 4, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(427), 1, + anon_sym_if, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(217), 3, - sym__type, - sym_array_type, - sym_template_global, - [4288] = 4, - ACTIONS(315), 1, - anon_sym_DASH_GT, - STATE(207), 1, - sym__interface_ports_output, + STATE(234), 2, + sym_block, + sym_if_statement, + [5297] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(412), 3, - anon_sym_LBRACE, + ACTIONS(429), 4, + ts_builtin_sym_end, anon_sym_RBRACE, + anon_sym_else, anon_sym_LF, - [4304] = 6, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(389), 1, - anon_sym_LF, - ACTIONS(414), 1, - ts_builtin_sym_end, - STATE(139), 1, - sym_module, - STATE(193), 1, - aux_sym__linebreak, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4324] = 6, - ACTIONS(404), 1, - anon_sym_EQ, - ACTIONS(416), 1, + [5308] = 5, + ACTIONS(431), 1, anon_sym_RBRACE, - ACTIONS(418), 1, + ACTIONS(433), 1, anon_sym_LF, - STATE(4), 1, + STATE(5), 1, aux_sym__linebreak, STATE(148), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4344] = 4, - ACTIONS(348), 1, - anon_sym_COLON_COLON, - ACTIONS(400), 1, - sym_identifier, + [5325] = 5, + ACTIONS(211), 1, + anon_sym_COMMA, + ACTIONS(435), 1, + anon_sym_SEMI, + STATE(61), 1, + sym__comma, + STATE(205), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(182), 3, - sym__type, - sym_array_type, - sym_template_global, - [4360] = 5, - ACTIONS(209), 1, + [5342] = 5, + ACTIONS(211), 1, anon_sym_COMMA, - ACTIONS(420), 1, + ACTIONS(437), 1, anon_sym_SEMI, - STATE(58), 1, + STATE(61), 1, sym__comma, - STATE(202), 1, + STATE(143), 1, aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4377] = 5, - ACTIONS(422), 1, - anon_sym_GT, - ACTIONS(424), 1, - anon_sym_COMMA, - STATE(137), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(226), 1, - sym__comma, + [5359] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4394] = 2, + ACTIONS(439), 4, + anon_sym_EQ, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LF, + [5370] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(427), 4, + ACTIONS(441), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [4405] = 5, - ACTIONS(429), 1, - ts_builtin_sym_end, - ACTIONS(431), 1, - anon_sym_LF, - STATE(125), 1, - aux_sym__linebreak, - STATE(194), 1, - aux_sym_source_file_repeat1, + [5381] = 5, + ACTIONS(211), 1, + anon_sym_COMMA, + ACTIONS(443), 1, + anon_sym_GT, + STATE(122), 1, + sym__comma, + STATE(203), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4422] = 5, - ACTIONS(433), 1, + [5398] = 5, + ACTIONS(445), 1, anon_sym_RBRACE, - ACTIONS(435), 1, + ACTIONS(447), 1, anon_sym_LF, STATE(10), 1, aux_sym__linebreak, - STATE(140), 1, + STATE(148), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4439] = 2, + [5415] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(427), 4, + ACTIONS(441), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [4450] = 5, - ACTIONS(438), 1, - ts_builtin_sym_end, - ACTIONS(440), 1, - anon_sym_LF, - STATE(119), 1, - aux_sym__linebreak, - STATE(189), 1, - aux_sym_source_file_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4467] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(442), 4, - anon_sym_EQ, - anon_sym_RBRACE, - anon_sym_COMMA, - anon_sym_LF, - [4478] = 5, - ACTIONS(209), 1, + [5426] = 5, + ACTIONS(211), 1, anon_sym_COMMA, - ACTIONS(444), 1, - anon_sym_SEMI, - STATE(58), 1, + ACTIONS(450), 1, + anon_sym_GT, + STATE(122), 1, sym__comma, - STATE(202), 1, - aux_sym_template_params_repeat1, + STATE(147), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4495] = 5, - ACTIONS(209), 1, + [5443] = 5, + ACTIONS(211), 1, anon_sym_COMMA, - ACTIONS(446), 1, - anon_sym_SEMI, - STATE(58), 1, + ACTIONS(452), 1, + anon_sym_GT, + STATE(122), 1, sym__comma, - STATE(144), 1, - aux_sym_template_params_repeat1, + STATE(203), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4512] = 5, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(448), 1, - anon_sym_LT, - STATE(233), 1, - sym_block, - STATE(236), 1, - sym_template_declaration_arguments, + [5460] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4529] = 5, - ACTIONS(450), 1, + ACTIONS(454), 4, + ts_builtin_sym_end, anon_sym_RBRACE, - ACTIONS(452), 1, + anon_sym_else, anon_sym_LF, - STATE(3), 1, - aux_sym__linebreak, - STATE(140), 1, - aux_sym_block_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4546] = 5, - ACTIONS(454), 1, - anon_sym_RBRACE, + [5471] = 5, ACTIONS(456), 1, + ts_builtin_sym_end, + ACTIONS(458), 1, anon_sym_LF, - STATE(2), 1, + STATE(99), 1, aux_sym__linebreak, - STATE(140), 1, - aux_sym_block_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4563] = 4, - ACTIONS(13), 1, - anon_sym_LBRACE, - ACTIONS(458), 1, - anon_sym_if, + STATE(187), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(230), 2, - sym_block, - sym_if_statement, - [4578] = 5, - ACTIONS(209), 1, + [5488] = 5, + ACTIONS(211), 1, anon_sym_COMMA, ACTIONS(460), 1, - anon_sym_GT, - STATE(111), 1, + anon_sym_SEMI, + STATE(61), 1, sym__comma, - STATE(205), 1, - aux_sym_template_params_repeat2, + STATE(185), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4595] = 5, - ACTIONS(209), 1, - anon_sym_COMMA, - ACTIONS(462), 1, - anon_sym_GT, - STATE(111), 1, - sym__comma, - STATE(150), 1, - aux_sym_template_params_repeat2, + [5505] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4612] = 5, - ACTIONS(209), 1, - anon_sym_COMMA, - ACTIONS(464), 1, - anon_sym_GT, - STATE(111), 1, - sym__comma, - STATE(205), 1, - aux_sym_template_params_repeat2, + ACTIONS(462), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [5516] = 4, + ACTIONS(15), 1, + anon_sym_LBRACE, + STATE(233), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4629] = 5, - ACTIONS(209), 1, + ACTIONS(464), 2, + anon_sym_RBRACE, + anon_sym_LF, + [5531] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(462), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [5542] = 5, + ACTIONS(211), 1, anon_sym_COMMA, ACTIONS(466), 1, anon_sym_GT, - STATE(111), 1, + STATE(122), 1, sym__comma, - STATE(152), 1, + STATE(151), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4646] = 5, - ACTIONS(209), 1, + [5559] = 5, + ACTIONS(211), 1, anon_sym_COMMA, ACTIONS(468), 1, anon_sym_GT, - STATE(111), 1, + STATE(122), 1, sym__comma, - STATE(205), 1, + STATE(203), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4663] = 5, - ACTIONS(209), 1, - anon_sym_COMMA, + [5576] = 5, ACTIONS(470), 1, anon_sym_GT, - STATE(137), 1, + ACTIONS(472), 1, + anon_sym_COMMA, + STATE(160), 1, aux_sym_template_declaration_arguments_repeat1, - STATE(226), 1, + STATE(224), 1, sym__comma, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4680] = 5, - ACTIONS(209), 1, + [5593] = 5, + ACTIONS(211), 1, anon_sym_COMMA, - ACTIONS(472), 1, + ACTIONS(475), 1, anon_sym_GT, - STATE(111), 1, + STATE(122), 1, sym__comma, - STATE(154), 1, + STATE(159), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4697] = 5, - ACTIONS(209), 1, + [5610] = 5, + ACTIONS(211), 1, anon_sym_COMMA, - ACTIONS(474), 1, - anon_sym_SEMI, - STATE(58), 1, + ACTIONS(477), 1, + anon_sym_RPAREN, + STATE(79), 1, sym__comma, - STATE(136), 1, - aux_sym_template_params_repeat1, + STATE(188), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4714] = 2, + [5627] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(476), 4, + ACTIONS(479), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [4725] = 2, + [5638] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(476), 4, + ACTIONS(481), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [4736] = 5, - ACTIONS(7), 1, - anon_sym_module, - ACTIONS(389), 1, - anon_sym_LF, - STATE(193), 1, - aux_sym__linebreak, - STATE(224), 1, - sym_module, + [5649] = 5, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(483), 1, + anon_sym_LT, + STATE(228), 1, + sym_template_declaration_arguments, + STATE(229), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4753] = 2, + [5666] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(120), 4, - anon_sym_GT, + ACTIONS(481), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [5677] = 4, + ACTIONS(487), 1, anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [4764] = 5, - ACTIONS(209), 1, - anon_sym_COMMA, - ACTIONS(478), 1, - anon_sym_RPAREN, - STATE(71), 1, - sym__comma, - STATE(185), 1, - aux_sym_parenthesis_expression_list_repeat1, + STATE(174), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4781] = 2, + ACTIONS(485), 2, + anon_sym_GT, + anon_sym_COMMA, + [5692] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(480), 4, - ts_builtin_sym_end, + ACTIONS(98), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5703] = 5, + ACTIONS(416), 1, anon_sym_RBRACE, - anon_sym_else, + ACTIONS(418), 1, anon_sym_LF, - [4792] = 2, + STATE(3), 1, + aux_sym__linebreak, + STATE(142), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(482), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [4803] = 5, - ACTIONS(484), 1, - ts_builtin_sym_end, - ACTIONS(486), 1, - anon_sym_LF, - STATE(117), 1, - aux_sym__linebreak, - STATE(142), 1, - aux_sym_source_file_repeat1, + [5720] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4820] = 2, + ACTIONS(106), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5731] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(482), 4, + ACTIONS(489), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [4831] = 2, + [5742] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(124), 4, + ACTIONS(128), 4, anon_sym_GT, anon_sym_LBRACK, anon_sym_COLON_COLON, anon_sym_COMMA, - [4842] = 2, + [5753] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 4, + ACTIONS(132), 4, anon_sym_GT, anon_sym_LBRACK, anon_sym_COLON_COLON, anon_sym_COMMA, - [4853] = 2, + [5764] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(132), 4, + ACTIONS(491), 4, anon_sym_GT, anon_sym_LBRACK, - anon_sym_COLON_COLON, + sym_identifier, anon_sym_COMMA, - [4864] = 2, + [5775] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -8146,703 +8518,686 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, anon_sym_COLON_COLON, anon_sym_COMMA, - [4875] = 2, + [5786] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(213), 4, + ACTIONS(207), 4, anon_sym_EQ, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, - [4886] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(140), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [4897] = 2, + [5797] = 5, + ACTIONS(493), 1, + anon_sym_RBRACE, + ACTIONS(495), 1, + anon_sym_LF, + STATE(8), 1, + aux_sym__linebreak, + STATE(148), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(144), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [4908] = 5, - ACTIONS(416), 1, + [5814] = 5, + ACTIONS(497), 1, anon_sym_RBRACE, - ACTIONS(418), 1, + ACTIONS(499), 1, anon_sym_LF, - STATE(4), 1, + STATE(6), 1, aux_sym__linebreak, - STATE(147), 1, + STATE(148), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4925] = 2, + [5831] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(488), 4, + ACTIONS(501), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [4936] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(100), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [4947] = 4, - ACTIONS(492), 1, + [5842] = 4, + ACTIONS(487), 1, anon_sym_LBRACK, - STATE(180), 1, + STATE(174), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(490), 2, + ACTIONS(503), 2, anon_sym_GT, anon_sym_COMMA, - [4962] = 5, - ACTIONS(209), 1, + [5857] = 5, + ACTIONS(211), 1, anon_sym_COMMA, - ACTIONS(494), 1, + ACTIONS(505), 1, anon_sym_GT, - STATE(111), 1, + STATE(122), 1, sym__comma, - STATE(196), 1, + STATE(199), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4979] = 2, + [5874] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(110), 4, + ACTIONS(140), 4, anon_sym_GT, anon_sym_LBRACK, anon_sym_COLON_COLON, anon_sym_COMMA, - [4990] = 2, + [5885] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(496), 4, + ACTIONS(148), 4, anon_sym_GT, anon_sym_LBRACK, - sym_identifier, + anon_sym_COLON_COLON, anon_sym_COMMA, - [5001] = 5, - ACTIONS(406), 1, - anon_sym_RBRACE, - ACTIONS(408), 1, - anon_sym_LF, - STATE(8), 1, - aux_sym__linebreak, - STATE(195), 1, - aux_sym_block_repeat1, + [5896] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5018] = 4, - ACTIONS(492), 1, + ACTIONS(152), 4, + anon_sym_GT, anon_sym_LBRACK, - STATE(180), 1, - sym_array_bracket_expression, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5907] = 5, + ACTIONS(211), 1, + anon_sym_COMMA, + ACTIONS(507), 1, + anon_sym_SEMI, + STATE(61), 1, + sym__comma, + STATE(205), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(498), 2, - anon_sym_GT, - anon_sym_COMMA, - [5033] = 2, + [5924] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(114), 4, + ACTIONS(102), 4, anon_sym_GT, anon_sym_LBRACK, anon_sym_COLON_COLON, anon_sym_COMMA, - [5044] = 4, - ACTIONS(13), 1, - anon_sym_LBRACE, - STATE(237), 1, - sym_block, + [5935] = 5, + ACTIONS(509), 1, + ts_builtin_sym_end, + ACTIONS(511), 1, + anon_sym_LF, + STATE(100), 1, + aux_sym__linebreak, + STATE(193), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(500), 2, - anon_sym_RBRACE, - anon_sym_LF, - [5059] = 5, - ACTIONS(502), 1, + [5952] = 5, + ACTIONS(513), 1, anon_sym_RPAREN, - ACTIONS(504), 1, + ACTIONS(515), 1, anon_sym_COMMA, - STATE(71), 1, + STATE(79), 1, sym__comma, - STATE(185), 1, + STATE(188), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5076] = 2, + [5969] = 5, + ACTIONS(211), 1, + anon_sym_COMMA, + ACTIONS(518), 1, + anon_sym_GT, + STATE(160), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(224), 1, + sym__comma, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5986] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(507), 4, + ACTIONS(425), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5087] = 2, + [5997] = 5, + ACTIONS(520), 1, + anon_sym_RBRACE, + ACTIONS(522), 1, + anon_sym_LF, + STATE(7), 1, + aux_sym__linebreak, + STATE(148), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(507), 4, + [6014] = 5, + ACTIONS(524), 1, ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, + ACTIONS(526), 1, anon_sym_LF, - [5098] = 2, + STATE(101), 1, + aux_sym__linebreak, + STATE(195), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(205), 4, - anon_sym_EQ, - anon_sym_RBRACE, - anon_sym_COMMA, - anon_sym_LF, - [5109] = 5, - ACTIONS(509), 1, + [6031] = 5, + ACTIONS(528), 1, ts_builtin_sym_end, - ACTIONS(511), 1, + ACTIONS(530), 1, anon_sym_LF, - STATE(160), 1, + STATE(114), 1, aux_sym__linebreak, - STATE(189), 1, + STATE(193), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5126] = 2, + [6048] = 5, + ACTIONS(211), 1, + anon_sym_COMMA, + ACTIONS(533), 1, + anon_sym_GT, + STATE(122), 1, + sym__comma, + STATE(203), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(514), 4, + [6065] = 5, + ACTIONS(535), 1, ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5137] = 5, - ACTIONS(516), 1, - anon_sym_RBRACE, - ACTIONS(518), 1, + ACTIONS(537), 1, anon_sym_LF, - STATE(5), 1, + STATE(97), 1, aux_sym__linebreak, - STATE(140), 1, - aux_sym_block_repeat1, + STATE(193), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5154] = 5, - ACTIONS(209), 1, + [6082] = 5, + ACTIONS(211), 1, anon_sym_COMMA, - ACTIONS(520), 1, + ACTIONS(539), 1, anon_sym_GT, - STATE(111), 1, + STATE(122), 1, sym__comma, - STATE(205), 1, + STATE(194), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5171] = 4, - ACTIONS(522), 1, - anon_sym_LF, - STATE(193), 1, - aux_sym__linebreak, + [6099] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(186), 2, - ts_builtin_sym_end, - anon_sym_module, - [5186] = 5, - ACTIONS(525), 1, - ts_builtin_sym_end, - ACTIONS(527), 1, + ACTIONS(215), 4, + anon_sym_EQ, + anon_sym_RBRACE, + anon_sym_COMMA, anon_sym_LF, - STATE(118), 1, - aux_sym__linebreak, - STATE(189), 1, - aux_sym_source_file_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5203] = 5, - ACTIONS(529), 1, + [6110] = 5, + ACTIONS(412), 1, anon_sym_RBRACE, - ACTIONS(531), 1, + ACTIONS(414), 1, anon_sym_LF, - STATE(6), 1, + STATE(4), 1, aux_sym__linebreak, - STATE(140), 1, + STATE(178), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5220] = 5, - ACTIONS(209), 1, + [6127] = 5, + ACTIONS(211), 1, anon_sym_COMMA, - ACTIONS(533), 1, + ACTIONS(541), 1, anon_sym_GT, - STATE(111), 1, + STATE(122), 1, sym__comma, - STATE(205), 1, + STATE(203), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5237] = 5, - ACTIONS(209), 1, + [6144] = 5, + ACTIONS(211), 1, anon_sym_COMMA, - ACTIONS(535), 1, + ACTIONS(543), 1, anon_sym_GT, - STATE(111), 1, + STATE(122), 1, sym__comma, - STATE(192), 1, + STATE(203), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5254] = 2, + [6161] = 5, + ACTIONS(211), 1, + anon_sym_COMMA, + ACTIONS(545), 1, + anon_sym_GT, + STATE(189), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(224), 1, + sym__comma, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(537), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5265] = 5, - ACTIONS(209), 1, + [6178] = 5, + ACTIONS(211), 1, anon_sym_COMMA, - ACTIONS(539), 1, + ACTIONS(547), 1, anon_sym_GT, - STATE(111), 1, + STATE(122), 1, sym__comma, STATE(200), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5282] = 5, - ACTIONS(209), 1, - anon_sym_COMMA, - ACTIONS(541), 1, + [6195] = 5, + ACTIONS(549), 1, anon_sym_GT, - STATE(111), 1, + ACTIONS(551), 1, + anon_sym_COMMA, + STATE(122), 1, sym__comma, - STATE(205), 1, + STATE(203), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5299] = 2, + [6212] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(543), 4, + ACTIONS(554), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5310] = 5, - ACTIONS(545), 1, + [6223] = 5, + ACTIONS(556), 1, anon_sym_SEMI, - ACTIONS(547), 1, + ACTIONS(558), 1, anon_sym_COMMA, - STATE(58), 1, + STATE(61), 1, sym__comma, - STATE(202), 1, + STATE(205), 1, aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5327] = 5, - ACTIONS(209), 1, - anon_sym_COMMA, - ACTIONS(550), 1, - anon_sym_GT, - STATE(155), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(226), 1, - sym__comma, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5344] = 4, - ACTIONS(492), 1, + [6240] = 4, + ACTIONS(487), 1, anon_sym_LBRACK, - STATE(180), 1, + STATE(174), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(552), 2, - anon_sym_GT, - anon_sym_COMMA, - [5359] = 5, - ACTIONS(554), 1, + ACTIONS(561), 2, anon_sym_GT, - ACTIONS(556), 1, anon_sym_COMMA, - STATE(111), 1, - sym__comma, - STATE(205), 1, - aux_sym_template_params_repeat2, + [6255] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5376] = 2, + ACTIONS(563), 3, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_LF, + [6265] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(559), 4, - ts_builtin_sym_end, + ACTIONS(565), 3, + anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_else, anon_sym_LF, - [5387] = 2, + [6275] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(561), 3, + ACTIONS(567), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [5397] = 4, - ACTIONS(96), 1, - anon_sym_LBRACK, - ACTIONS(563), 1, - sym_identifier, - STATE(180), 1, - sym_array_bracket_expression, + [6285] = 3, + ACTIONS(571), 1, + anon_sym_else, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5411] = 4, - ACTIONS(96), 1, - anon_sym_LBRACK, - ACTIONS(565), 1, + ACTIONS(569), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6297] = 4, + ACTIONS(573), 1, sym_identifier, - STATE(180), 1, - sym_array_bracket_expression, + ACTIONS(575), 1, + anon_sym_LT, + STATE(139), 1, + sym_template_params, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6311] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5425] = 3, - ACTIONS(569), 1, + ACTIONS(577), 3, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_LF, + [6321] = 3, + ACTIONS(581), 1, anon_sym_EQ, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(567), 2, + ACTIONS(579), 2, anon_sym_GT, anon_sym_COMMA, - [5437] = 4, - ACTIONS(571), 1, + [6333] = 4, + ACTIONS(94), 1, + anon_sym_LBRACK, + ACTIONS(583), 1, sym_identifier, - ACTIONS(573), 1, - anon_sym_GT, - STATE(203), 1, - sym_template_declaration_type, + STATE(174), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6347] = 3, + ACTIONS(410), 1, + anon_sym_EQ, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5451] = 2, + ACTIONS(585), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6359] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(575), 3, + ACTIONS(587), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [5461] = 4, - ACTIONS(96), 1, + [6369] = 4, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(577), 1, + ACTIONS(589), 1, sym_identifier, - STATE(180), 1, + STATE(174), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5475] = 2, + [6383] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(579), 3, + ACTIONS(591), 3, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LF, - [5485] = 4, - ACTIONS(581), 1, + [6393] = 4, + ACTIONS(593), 1, sym_identifier, - ACTIONS(583), 1, + ACTIONS(595), 1, anon_sym_LT, - STATE(21), 1, + STATE(28), 1, sym_template_params, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5499] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(585), 3, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_LF, - [5509] = 4, - ACTIONS(96), 1, + [6407] = 4, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(587), 1, + ACTIONS(597), 1, sym_identifier, - STATE(180), 1, + STATE(174), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5523] = 4, - ACTIONS(589), 1, + [6421] = 4, + ACTIONS(94), 1, + anon_sym_LBRACK, + ACTIONS(599), 1, sym_identifier, - ACTIONS(591), 1, - anon_sym_LT, - STATE(183), 1, - sym_template_params, + STATE(174), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5537] = 2, + [6435] = 4, + ACTIONS(601), 1, + sym_identifier, + ACTIONS(603), 1, + anon_sym_GT, + STATE(201), 1, + sym_template_declaration_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(593), 3, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_LF, - [5547] = 3, - ACTIONS(597), 1, - anon_sym_else, + [6449] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(595), 2, - anon_sym_RBRACE, - anon_sym_LF, - [5559] = 2, + ACTIONS(156), 3, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + [6459] = 3, + ACTIONS(601), 1, + sym_identifier, + STATE(236), 1, + sym_template_declaration_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(599), 3, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_LF, - [5569] = 3, - ACTIONS(404), 1, - anon_sym_EQ, + [6470] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(601), 2, - anon_sym_RBRACE, + ACTIONS(605), 2, + ts_builtin_sym_end, anon_sym_LF, - [5581] = 2, + [6479] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(154), 3, + ACTIONS(607), 2, anon_sym_GT, - anon_sym_LBRACK, anon_sym_COMMA, - [5591] = 2, + [6488] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(603), 2, - ts_builtin_sym_end, - anon_sym_LF, - [5600] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(605), 2, + ACTIONS(609), 2, anon_sym_RBRACE, anon_sym_LF, - [5609] = 3, - ACTIONS(571), 1, - sym_identifier, - STATE(235), 1, - sym_template_declaration_type, + [6497] = 3, + ACTIONS(15), 1, + anon_sym_LBRACE, + STATE(225), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5620] = 2, + [6508] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(607), 2, - anon_sym_RBRACE, + ACTIONS(611), 2, + ts_builtin_sym_end, anon_sym_LF, - [5629] = 2, + [6517] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(609), 2, - anon_sym_RBRACE, + ACTIONS(613), 2, + ts_builtin_sym_end, anon_sym_LF, - [5638] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(611), 2, - anon_sym_SEMI, - anon_sym_COMMA, - [5647] = 2, + [6526] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(613), 2, + ACTIONS(615), 2, anon_sym_RBRACE, anon_sym_LF, - [5656] = 2, + [6535] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(615), 2, - anon_sym_GT, - anon_sym_COMMA, - [5665] = 2, + ACTIONS(585), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6544] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(617), 2, - ts_builtin_sym_end, + anon_sym_RBRACE, anon_sym_LF, - [5674] = 2, + [6553] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(619), 2, - ts_builtin_sym_end, + anon_sym_RBRACE, anon_sym_LF, - [5683] = 2, + [6562] = 3, + ACTIONS(9), 1, + anon_sym_module, + STATE(237), 1, + sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(601), 2, - anon_sym_RBRACE, - anon_sym_LF, - [5692] = 2, + [6573] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(621), 2, anon_sym_GT, anon_sym_COMMA, - [5701] = 3, - ACTIONS(13), 1, - anon_sym_LBRACE, - STATE(232), 1, - sym_block, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5712] = 2, + [6582] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(623), 2, - anon_sym_RBRACE, - anon_sym_LF, - [5721] = 2, - ACTIONS(625), 1, ts_builtin_sym_end, + anon_sym_LF, + [6591] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5729] = 2, - ACTIONS(627), 1, - sym_identifier, + ACTIONS(625), 2, + ts_builtin_sym_end, + anon_sym_LF, + [6600] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5737] = 2, - ACTIONS(629), 1, - anon_sym_in, + ACTIONS(627), 2, + anon_sym_SEMI, + anon_sym_COMMA, + [6609] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5745] = 2, + ACTIONS(629), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6618] = 2, ACTIONS(631), 1, anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5753] = 2, + [6626] = 2, ACTIONS(633), 1, - anon_sym_LBRACE, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5761] = 2, + [6634] = 2, ACTIONS(635), 1, anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5769] = 2, + [6642] = 2, ACTIONS(637), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5777] = 2, + [6650] = 2, ACTIONS(639), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5785] = 2, + [6658] = 2, ACTIONS(641), 1, - sym_identifier, + anon_sym_in, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5793] = 2, + [6666] = 2, ACTIONS(643), 1, - sym_identifier, + anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5801] = 2, + [6674] = 2, ACTIONS(645), 1, + ts_builtin_sym_end, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6682] = 2, + ACTIONS(647), 1, + sym_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6690] = 2, + ACTIONS(649), 1, + sym_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6698] = 2, + ACTIONS(651), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, @@ -8850,245 +9205,256 @@ static const uint16_t ts_small_parse_table[] = { }; static const uint32_t ts_small_parse_table_map[] = { - [SMALL_STATE(10)] = 0, - [SMALL_STATE(11)] = 100, - [SMALL_STATE(12)] = 144, - [SMALL_STATE(13)] = 188, - [SMALL_STATE(14)] = 232, - [SMALL_STATE(15)] = 300, - [SMALL_STATE(16)] = 344, - [SMALL_STATE(17)] = 388, - [SMALL_STATE(18)] = 441, - [SMALL_STATE(19)] = 480, - [SMALL_STATE(20)] = 539, - [SMALL_STATE(21)] = 578, - [SMALL_STATE(22)] = 617, - [SMALL_STATE(23)] = 678, - [SMALL_STATE(24)] = 717, - [SMALL_STATE(25)] = 756, - [SMALL_STATE(26)] = 795, - [SMALL_STATE(27)] = 834, - [SMALL_STATE(28)] = 873, - [SMALL_STATE(29)] = 912, - [SMALL_STATE(30)] = 951, - [SMALL_STATE(31)] = 1008, - [SMALL_STATE(32)] = 1057, - [SMALL_STATE(33)] = 1106, - [SMALL_STATE(34)] = 1169, - [SMALL_STATE(35)] = 1207, - [SMALL_STATE(36)] = 1244, - [SMALL_STATE(37)] = 1281, - [SMALL_STATE(38)] = 1318, - [SMALL_STATE(39)] = 1355, - [SMALL_STATE(40)] = 1392, - [SMALL_STATE(41)] = 1429, - [SMALL_STATE(42)] = 1466, - [SMALL_STATE(43)] = 1505, - [SMALL_STATE(44)] = 1558, - [SMALL_STATE(45)] = 1621, - [SMALL_STATE(46)] = 1679, - [SMALL_STATE(47)] = 1741, - [SMALL_STATE(48)] = 1799, - [SMALL_STATE(49)] = 1836, - [SMALL_STATE(50)] = 1871, - [SMALL_STATE(51)] = 1927, - [SMALL_STATE(52)] = 1981, - [SMALL_STATE(53)] = 2023, - [SMALL_STATE(54)] = 2077, - [SMALL_STATE(55)] = 2131, - [SMALL_STATE(56)] = 2173, - [SMALL_STATE(57)] = 2229, - [SMALL_STATE(58)] = 2283, - [SMALL_STATE(59)] = 2322, - [SMALL_STATE(60)] = 2361, - [SMALL_STATE(61)] = 2414, - [SMALL_STATE(62)] = 2467, - [SMALL_STATE(63)] = 2520, - [SMALL_STATE(64)] = 2573, - [SMALL_STATE(65)] = 2609, - [SMALL_STATE(66)] = 2645, - [SMALL_STATE(67)] = 2681, - [SMALL_STATE(68)] = 2717, - [SMALL_STATE(69)] = 2753, - [SMALL_STATE(70)] = 2789, - [SMALL_STATE(71)] = 2825, - [SMALL_STATE(72)] = 2861, - [SMALL_STATE(73)] = 2893, - [SMALL_STATE(74)] = 2929, - [SMALL_STATE(75)] = 2965, - [SMALL_STATE(76)] = 2997, - [SMALL_STATE(77)] = 3033, - [SMALL_STATE(78)] = 3069, - [SMALL_STATE(79)] = 3105, - [SMALL_STATE(80)] = 3141, - [SMALL_STATE(81)] = 3177, - [SMALL_STATE(82)] = 3213, - [SMALL_STATE(83)] = 3249, - [SMALL_STATE(84)] = 3279, - [SMALL_STATE(85)] = 3309, - [SMALL_STATE(86)] = 3334, - [SMALL_STATE(87)] = 3376, - [SMALL_STATE(88)] = 3400, - [SMALL_STATE(89)] = 3442, - [SMALL_STATE(90)] = 3478, - [SMALL_STATE(91)] = 3514, - [SMALL_STATE(92)] = 3541, - [SMALL_STATE(93)] = 3568, - [SMALL_STATE(94)] = 3588, - [SMALL_STATE(95)] = 3608, - [SMALL_STATE(96)] = 3628, - [SMALL_STATE(97)] = 3648, - [SMALL_STATE(98)] = 3662, - [SMALL_STATE(99)] = 3682, - [SMALL_STATE(100)] = 3702, - [SMALL_STATE(101)] = 3724, - [SMALL_STATE(102)] = 3738, - [SMALL_STATE(103)] = 3758, - [SMALL_STATE(104)] = 3780, - [SMALL_STATE(105)] = 3802, - [SMALL_STATE(106)] = 3824, - [SMALL_STATE(107)] = 3846, - [SMALL_STATE(108)] = 3860, - [SMALL_STATE(109)] = 3880, - [SMALL_STATE(110)] = 3894, - [SMALL_STATE(111)] = 3916, - [SMALL_STATE(112)] = 3935, - [SMALL_STATE(113)] = 3954, - [SMALL_STATE(114)] = 3973, - [SMALL_STATE(115)] = 3992, - [SMALL_STATE(116)] = 4011, - [SMALL_STATE(117)] = 4032, - [SMALL_STATE(118)] = 4052, - [SMALL_STATE(119)] = 4072, - [SMALL_STATE(120)] = 4092, - [SMALL_STATE(121)] = 4108, - [SMALL_STATE(122)] = 4124, - [SMALL_STATE(123)] = 4140, - [SMALL_STATE(124)] = 4156, - [SMALL_STATE(125)] = 4172, - [SMALL_STATE(126)] = 4192, - [SMALL_STATE(127)] = 4208, - [SMALL_STATE(128)] = 4220, - [SMALL_STATE(129)] = 4236, - [SMALL_STATE(130)] = 4256, - [SMALL_STATE(131)] = 4272, - [SMALL_STATE(132)] = 4288, - [SMALL_STATE(133)] = 4304, - [SMALL_STATE(134)] = 4324, - [SMALL_STATE(135)] = 4344, - [SMALL_STATE(136)] = 4360, - [SMALL_STATE(137)] = 4377, - [SMALL_STATE(138)] = 4394, - [SMALL_STATE(139)] = 4405, - [SMALL_STATE(140)] = 4422, - [SMALL_STATE(141)] = 4439, - [SMALL_STATE(142)] = 4450, - [SMALL_STATE(143)] = 4467, - [SMALL_STATE(144)] = 4478, - [SMALL_STATE(145)] = 4495, - [SMALL_STATE(146)] = 4512, - [SMALL_STATE(147)] = 4529, - [SMALL_STATE(148)] = 4546, - [SMALL_STATE(149)] = 4563, - [SMALL_STATE(150)] = 4578, - [SMALL_STATE(151)] = 4595, - [SMALL_STATE(152)] = 4612, - [SMALL_STATE(153)] = 4629, - [SMALL_STATE(154)] = 4646, - [SMALL_STATE(155)] = 4663, - [SMALL_STATE(156)] = 4680, - [SMALL_STATE(157)] = 4697, - [SMALL_STATE(158)] = 4714, - [SMALL_STATE(159)] = 4725, - [SMALL_STATE(160)] = 4736, - [SMALL_STATE(161)] = 4753, - [SMALL_STATE(162)] = 4764, - [SMALL_STATE(163)] = 4781, - [SMALL_STATE(164)] = 4792, - [SMALL_STATE(165)] = 4803, - [SMALL_STATE(166)] = 4820, - [SMALL_STATE(167)] = 4831, - [SMALL_STATE(168)] = 4842, - [SMALL_STATE(169)] = 4853, - [SMALL_STATE(170)] = 4864, - [SMALL_STATE(171)] = 4875, - [SMALL_STATE(172)] = 4886, - [SMALL_STATE(173)] = 4897, - [SMALL_STATE(174)] = 4908, - [SMALL_STATE(175)] = 4925, - [SMALL_STATE(176)] = 4936, - [SMALL_STATE(177)] = 4947, - [SMALL_STATE(178)] = 4962, - [SMALL_STATE(179)] = 4979, - [SMALL_STATE(180)] = 4990, - [SMALL_STATE(181)] = 5001, - [SMALL_STATE(182)] = 5018, - [SMALL_STATE(183)] = 5033, - [SMALL_STATE(184)] = 5044, - [SMALL_STATE(185)] = 5059, - [SMALL_STATE(186)] = 5076, - [SMALL_STATE(187)] = 5087, - [SMALL_STATE(188)] = 5098, - [SMALL_STATE(189)] = 5109, - [SMALL_STATE(190)] = 5126, - [SMALL_STATE(191)] = 5137, - [SMALL_STATE(192)] = 5154, - [SMALL_STATE(193)] = 5171, - [SMALL_STATE(194)] = 5186, - [SMALL_STATE(195)] = 5203, - [SMALL_STATE(196)] = 5220, - [SMALL_STATE(197)] = 5237, - [SMALL_STATE(198)] = 5254, - [SMALL_STATE(199)] = 5265, - [SMALL_STATE(200)] = 5282, - [SMALL_STATE(201)] = 5299, - [SMALL_STATE(202)] = 5310, - [SMALL_STATE(203)] = 5327, - [SMALL_STATE(204)] = 5344, - [SMALL_STATE(205)] = 5359, - [SMALL_STATE(206)] = 5376, - [SMALL_STATE(207)] = 5387, - [SMALL_STATE(208)] = 5397, - [SMALL_STATE(209)] = 5411, - [SMALL_STATE(210)] = 5425, - [SMALL_STATE(211)] = 5437, - [SMALL_STATE(212)] = 5451, - [SMALL_STATE(213)] = 5461, - [SMALL_STATE(214)] = 5475, - [SMALL_STATE(215)] = 5485, - [SMALL_STATE(216)] = 5499, - [SMALL_STATE(217)] = 5509, - [SMALL_STATE(218)] = 5523, - [SMALL_STATE(219)] = 5537, - [SMALL_STATE(220)] = 5547, - [SMALL_STATE(221)] = 5559, - [SMALL_STATE(222)] = 5569, - [SMALL_STATE(223)] = 5581, - [SMALL_STATE(224)] = 5591, - [SMALL_STATE(225)] = 5600, - [SMALL_STATE(226)] = 5609, - [SMALL_STATE(227)] = 5620, - [SMALL_STATE(228)] = 5629, - [SMALL_STATE(229)] = 5638, - [SMALL_STATE(230)] = 5647, - [SMALL_STATE(231)] = 5656, - [SMALL_STATE(232)] = 5665, - [SMALL_STATE(233)] = 5674, - [SMALL_STATE(234)] = 5683, - [SMALL_STATE(235)] = 5692, - [SMALL_STATE(236)] = 5701, - [SMALL_STATE(237)] = 5712, - [SMALL_STATE(238)] = 5721, - [SMALL_STATE(239)] = 5729, - [SMALL_STATE(240)] = 5737, - [SMALL_STATE(241)] = 5745, - [SMALL_STATE(242)] = 5753, - [SMALL_STATE(243)] = 5761, - [SMALL_STATE(244)] = 5769, - [SMALL_STATE(245)] = 5777, - [SMALL_STATE(246)] = 5785, - [SMALL_STATE(247)] = 5793, - [SMALL_STATE(248)] = 5801, + [SMALL_STATE(2)] = 0, + [SMALL_STATE(3)] = 103, + [SMALL_STATE(4)] = 206, + [SMALL_STATE(5)] = 309, + [SMALL_STATE(6)] = 412, + [SMALL_STATE(7)] = 515, + [SMALL_STATE(8)] = 618, + [SMALL_STATE(9)] = 721, + [SMALL_STATE(10)] = 824, + [SMALL_STATE(11)] = 924, + [SMALL_STATE(12)] = 968, + [SMALL_STATE(13)] = 1012, + [SMALL_STATE(14)] = 1080, + [SMALL_STATE(15)] = 1124, + [SMALL_STATE(16)] = 1168, + [SMALL_STATE(17)] = 1212, + [SMALL_STATE(18)] = 1261, + [SMALL_STATE(19)] = 1300, + [SMALL_STATE(20)] = 1339, + [SMALL_STATE(21)] = 1378, + [SMALL_STATE(22)] = 1441, + [SMALL_STATE(23)] = 1480, + [SMALL_STATE(24)] = 1519, + [SMALL_STATE(25)] = 1558, + [SMALL_STATE(26)] = 1597, + [SMALL_STATE(27)] = 1650, + [SMALL_STATE(28)] = 1699, + [SMALL_STATE(29)] = 1738, + [SMALL_STATE(30)] = 1797, + [SMALL_STATE(31)] = 1858, + [SMALL_STATE(32)] = 1897, + [SMALL_STATE(33)] = 1936, + [SMALL_STATE(34)] = 1993, + [SMALL_STATE(35)] = 2031, + [SMALL_STATE(36)] = 2068, + [SMALL_STATE(37)] = 2105, + [SMALL_STATE(38)] = 2142, + [SMALL_STATE(39)] = 2179, + [SMALL_STATE(40)] = 2216, + [SMALL_STATE(41)] = 2253, + [SMALL_STATE(42)] = 2290, + [SMALL_STATE(43)] = 2353, + [SMALL_STATE(44)] = 2406, + [SMALL_STATE(45)] = 2445, + [SMALL_STATE(46)] = 2503, + [SMALL_STATE(47)] = 2565, + [SMALL_STATE(48)] = 2623, + [SMALL_STATE(49)] = 2660, + [SMALL_STATE(50)] = 2695, + [SMALL_STATE(51)] = 2751, + [SMALL_STATE(52)] = 2807, + [SMALL_STATE(53)] = 2861, + [SMALL_STATE(54)] = 2915, + [SMALL_STATE(55)] = 2957, + [SMALL_STATE(56)] = 3011, + [SMALL_STATE(57)] = 3065, + [SMALL_STATE(58)] = 3107, + [SMALL_STATE(59)] = 3146, + [SMALL_STATE(60)] = 3199, + [SMALL_STATE(61)] = 3252, + [SMALL_STATE(62)] = 3291, + [SMALL_STATE(63)] = 3344, + [SMALL_STATE(64)] = 3397, + [SMALL_STATE(65)] = 3433, + [SMALL_STATE(66)] = 3469, + [SMALL_STATE(67)] = 3505, + [SMALL_STATE(68)] = 3541, + [SMALL_STATE(69)] = 3577, + [SMALL_STATE(70)] = 3613, + [SMALL_STATE(71)] = 3649, + [SMALL_STATE(72)] = 3685, + [SMALL_STATE(73)] = 3721, + [SMALL_STATE(74)] = 3757, + [SMALL_STATE(75)] = 3789, + [SMALL_STATE(76)] = 3825, + [SMALL_STATE(77)] = 3861, + [SMALL_STATE(78)] = 3897, + [SMALL_STATE(79)] = 3933, + [SMALL_STATE(80)] = 3969, + [SMALL_STATE(81)] = 4001, + [SMALL_STATE(82)] = 4037, + [SMALL_STATE(83)] = 4073, + [SMALL_STATE(84)] = 4103, + [SMALL_STATE(85)] = 4133, + [SMALL_STATE(86)] = 4158, + [SMALL_STATE(87)] = 4182, + [SMALL_STATE(88)] = 4224, + [SMALL_STATE(89)] = 4266, + [SMALL_STATE(90)] = 4302, + [SMALL_STATE(91)] = 4338, + [SMALL_STATE(92)] = 4365, + [SMALL_STATE(93)] = 4392, + [SMALL_STATE(94)] = 4412, + [SMALL_STATE(95)] = 4432, + [SMALL_STATE(96)] = 4452, + [SMALL_STATE(97)] = 4472, + [SMALL_STATE(98)] = 4499, + [SMALL_STATE(99)] = 4526, + [SMALL_STATE(100)] = 4553, + [SMALL_STATE(101)] = 4580, + [SMALL_STATE(102)] = 4607, + [SMALL_STATE(103)] = 4621, + [SMALL_STATE(104)] = 4635, + [SMALL_STATE(105)] = 4657, + [SMALL_STATE(106)] = 4679, + [SMALL_STATE(107)] = 4701, + [SMALL_STATE(108)] = 4715, + [SMALL_STATE(109)] = 4735, + [SMALL_STATE(110)] = 4757, + [SMALL_STATE(111)] = 4777, + [SMALL_STATE(112)] = 4797, + [SMALL_STATE(113)] = 4817, + [SMALL_STATE(114)] = 4839, + [SMALL_STATE(115)] = 4863, + [SMALL_STATE(116)] = 4877, + [SMALL_STATE(117)] = 4899, + [SMALL_STATE(118)] = 4918, + [SMALL_STATE(119)] = 4937, + [SMALL_STATE(120)] = 4956, + [SMALL_STATE(121)] = 4975, + [SMALL_STATE(122)] = 4992, + [SMALL_STATE(123)] = 5011, + [SMALL_STATE(124)] = 5032, + [SMALL_STATE(125)] = 5048, + [SMALL_STATE(126)] = 5064, + [SMALL_STATE(127)] = 5080, + [SMALL_STATE(128)] = 5096, + [SMALL_STATE(129)] = 5116, + [SMALL_STATE(130)] = 5132, + [SMALL_STATE(131)] = 5148, + [SMALL_STATE(132)] = 5164, + [SMALL_STATE(133)] = 5180, + [SMALL_STATE(134)] = 5196, + [SMALL_STATE(135)] = 5216, + [SMALL_STATE(136)] = 5232, + [SMALL_STATE(137)] = 5244, + [SMALL_STATE(138)] = 5260, + [SMALL_STATE(139)] = 5271, + [SMALL_STATE(140)] = 5282, + [SMALL_STATE(141)] = 5297, + [SMALL_STATE(142)] = 5308, + [SMALL_STATE(143)] = 5325, + [SMALL_STATE(144)] = 5342, + [SMALL_STATE(145)] = 5359, + [SMALL_STATE(146)] = 5370, + [SMALL_STATE(147)] = 5381, + [SMALL_STATE(148)] = 5398, + [SMALL_STATE(149)] = 5415, + [SMALL_STATE(150)] = 5426, + [SMALL_STATE(151)] = 5443, + [SMALL_STATE(152)] = 5460, + [SMALL_STATE(153)] = 5471, + [SMALL_STATE(154)] = 5488, + [SMALL_STATE(155)] = 5505, + [SMALL_STATE(156)] = 5516, + [SMALL_STATE(157)] = 5531, + [SMALL_STATE(158)] = 5542, + [SMALL_STATE(159)] = 5559, + [SMALL_STATE(160)] = 5576, + [SMALL_STATE(161)] = 5593, + [SMALL_STATE(162)] = 5610, + [SMALL_STATE(163)] = 5627, + [SMALL_STATE(164)] = 5638, + [SMALL_STATE(165)] = 5649, + [SMALL_STATE(166)] = 5666, + [SMALL_STATE(167)] = 5677, + [SMALL_STATE(168)] = 5692, + [SMALL_STATE(169)] = 5703, + [SMALL_STATE(170)] = 5720, + [SMALL_STATE(171)] = 5731, + [SMALL_STATE(172)] = 5742, + [SMALL_STATE(173)] = 5753, + [SMALL_STATE(174)] = 5764, + [SMALL_STATE(175)] = 5775, + [SMALL_STATE(176)] = 5786, + [SMALL_STATE(177)] = 5797, + [SMALL_STATE(178)] = 5814, + [SMALL_STATE(179)] = 5831, + [SMALL_STATE(180)] = 5842, + [SMALL_STATE(181)] = 5857, + [SMALL_STATE(182)] = 5874, + [SMALL_STATE(183)] = 5885, + [SMALL_STATE(184)] = 5896, + [SMALL_STATE(185)] = 5907, + [SMALL_STATE(186)] = 5924, + [SMALL_STATE(187)] = 5935, + [SMALL_STATE(188)] = 5952, + [SMALL_STATE(189)] = 5969, + [SMALL_STATE(190)] = 5986, + [SMALL_STATE(191)] = 5997, + [SMALL_STATE(192)] = 6014, + [SMALL_STATE(193)] = 6031, + [SMALL_STATE(194)] = 6048, + [SMALL_STATE(195)] = 6065, + [SMALL_STATE(196)] = 6082, + [SMALL_STATE(197)] = 6099, + [SMALL_STATE(198)] = 6110, + [SMALL_STATE(199)] = 6127, + [SMALL_STATE(200)] = 6144, + [SMALL_STATE(201)] = 6161, + [SMALL_STATE(202)] = 6178, + [SMALL_STATE(203)] = 6195, + [SMALL_STATE(204)] = 6212, + [SMALL_STATE(205)] = 6223, + [SMALL_STATE(206)] = 6240, + [SMALL_STATE(207)] = 6255, + [SMALL_STATE(208)] = 6265, + [SMALL_STATE(209)] = 6275, + [SMALL_STATE(210)] = 6285, + [SMALL_STATE(211)] = 6297, + [SMALL_STATE(212)] = 6311, + [SMALL_STATE(213)] = 6321, + [SMALL_STATE(214)] = 6333, + [SMALL_STATE(215)] = 6347, + [SMALL_STATE(216)] = 6359, + [SMALL_STATE(217)] = 6369, + [SMALL_STATE(218)] = 6383, + [SMALL_STATE(219)] = 6393, + [SMALL_STATE(220)] = 6407, + [SMALL_STATE(221)] = 6421, + [SMALL_STATE(222)] = 6435, + [SMALL_STATE(223)] = 6449, + [SMALL_STATE(224)] = 6459, + [SMALL_STATE(225)] = 6470, + [SMALL_STATE(226)] = 6479, + [SMALL_STATE(227)] = 6488, + [SMALL_STATE(228)] = 6497, + [SMALL_STATE(229)] = 6508, + [SMALL_STATE(230)] = 6517, + [SMALL_STATE(231)] = 6526, + [SMALL_STATE(232)] = 6535, + [SMALL_STATE(233)] = 6544, + [SMALL_STATE(234)] = 6553, + [SMALL_STATE(235)] = 6562, + [SMALL_STATE(236)] = 6573, + [SMALL_STATE(237)] = 6582, + [SMALL_STATE(238)] = 6591, + [SMALL_STATE(239)] = 6600, + [SMALL_STATE(240)] = 6609, + [SMALL_STATE(241)] = 6618, + [SMALL_STATE(242)] = 6626, + [SMALL_STATE(243)] = 6634, + [SMALL_STATE(244)] = 6642, + [SMALL_STATE(245)] = 6650, + [SMALL_STATE(246)] = 6658, + [SMALL_STATE(247)] = 6666, + [SMALL_STATE(248)] = 6674, + [SMALL_STATE(249)] = 6682, + [SMALL_STATE(250)] = 6690, + [SMALL_STATE(251)] = 6698, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -9096,319 +9462,322 @@ static const TSParseActionEntry ts_parse_actions[] = { [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 = true}}, SHIFT(239), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), - [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(91), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(247), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(235), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(86), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(92), [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(245), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(99), - [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(128), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244), - [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(251), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(110), + [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(129), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(250), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), - [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), - [59] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1, .production_id = 1), - [61] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1, .production_id = 1), - [63] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), - [65] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), - [67] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), - [69] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(215), - [72] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 24), - [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 24), - [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 13), - [78] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 13), - [80] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 2), - [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 2), - [84] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 27), - [86] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 27), - [88] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [90] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80), - [92] = {.entry = {.count = 1, .reusable = false}}, SHIFT(246), - [94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [98] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 29), - [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 29), - [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [104] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), - [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 3), - [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3), - [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), - [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), - [116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 7, .production_id = 51), - [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 7, .production_id = 51), - [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 50), - [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 50), - [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 49), - [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 49), - [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 6), - [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 6), - [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 48), - [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 48), - [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 37), - [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 37), - [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 3), - [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 3), - [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 12), - [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 12), - [150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [152] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 23), - [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 23), - [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [160] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 28), - [162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 28), - [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 17), - [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 17), - [172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 16), - [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 16), - [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 23), - [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 23), - [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), - [184] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), - [186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), - [188] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(42), - [191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [193] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), - [195] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 23), - [197] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 23), - [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246), - [203] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 14), - [205] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 14), - [207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [211] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 8), - [213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 8), - [215] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), - [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), - [219] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [223] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [226] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 1, .production_id = 36), - [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), - [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 25), - [236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 3, .production_id = 46), - [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), - [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), - [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [272] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), - [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), - [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [282] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), - [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), - [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [300] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [302] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(85), - [305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [307] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 9), - [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 9), - [311] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [319] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 15), - [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 21), - [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 22), - [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 33), - [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 34), - [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), - [339] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(72), - [342] = {.entry = {.count = 1, .reusable = false}}, SHIFT(131), - [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), - [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248), - [350] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 43), - [352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), - [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169), - [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), - [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 26), - [364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), - [366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 35), - [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), - [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), - [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), - [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), - [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), - [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), - [380] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(72), - [383] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 11), - [385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), - [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), - [391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), - [393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), - [395] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(218), - [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), - [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), - [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), - [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 42), - [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 31), - [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), - [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), - [424] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), SHIFT_REPEAT(72), - [427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), - [429] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), - [431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), - [433] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), - [435] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), - [438] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), - [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), - [442] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), - [444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), - [448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), - [450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), - [452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), - [456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), - [462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), - [464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), - [466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), - [468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), - [470] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), - [472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), - [474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [476] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), - [478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [480] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 29), - [482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 37), - [484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), - [486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), - [488] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 1, .production_id = 36), - [492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [496] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 16), - [498] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 3, .production_id = 18), - [500] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 20), - [502] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), - [504] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(72), - [507] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 37), - [509] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), - [511] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(160), - [514] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), - [516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), - [518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [522] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(193), - [525] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), - [527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), - [529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), - [531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [537] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 29), - [539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), + [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), + [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204), + [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 4), + [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 4), + [65] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), + [67] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 15), + [69] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 15), + [71] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 26), + [73] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 26), + [75] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 7), + [77] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 7), + [79] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 7), SHIFT_REPEAT(219), + [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1, .production_id = 1), + [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1, .production_id = 1), + [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 14), + [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 14), + [90] = {.entry = {.count = 1, .reusable = false}}, SHIFT(242), + [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [96] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 7, .production_id = 53), + [98] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 7, .production_id = 53), + [100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 3), + [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3), + [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 52), + [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 52), + [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 29), + [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 29), + [112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [114] = {.entry = {.count = 1, .reusable = false}}, SHIFT(82), + [116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [124] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), + [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 51), + [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 51), + [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 8), + [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 8), + [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 50), + [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 50), + [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 39), + [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 39), + [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), + [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), + [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 5), + [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 5), + [150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 31), + [152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 31), + [154] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 25), + [156] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 25), + [158] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 18), + [160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 18), + [162] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), + [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [166] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 5), + [168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 5), + [170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 25), + [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 25), + [174] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 8), + [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 8), + [178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 30), + [180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 30), + [182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 19), + [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 19), + [186] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), + [188] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 25), + [190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 25), + [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), + [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), + [200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), + [202] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(44), + [205] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 16), + [207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 16), + [209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [213] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 10), + [215] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 10), + [217] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), + [219] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), + [221] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [223] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [225] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), + [228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 1, .production_id = 38), + [230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 27), + [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), + [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), + [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 3, .production_id = 48), + [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), + [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), + [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [278] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), + [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), + [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [294] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), + [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), + [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [302] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 7), + [304] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 7), SHIFT_REPEAT(85), + [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 7), + [309] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 11), + [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 11), + [313] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [317] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 17), + [329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 35), + [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 23), + [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 24), + [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 8), + [339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), + [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 4), + [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 5), + [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 37), + [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 45), + [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), + [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), + [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244), + [359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), + [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), + [363] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 28), + [365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 4), + [367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [369] = {.entry = {.count = 1, .reusable = false}}, SHIFT(126), + [371] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 7), + [373] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 7), SHIFT_REPEAT(74), + [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), + [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 36), + [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 4), + [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), + [388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), + [390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 7), + [392] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 7), SHIFT_REPEAT(74), + [395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), + [397] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(121), + [400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 13), + [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 44), + [406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 33), + [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), + [414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), + [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [420] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 7), SHIFT_REPEAT(211), + [423] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), + [425] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 39), + [427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [429] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 31), + [431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), + [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [439] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), + [441] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 8), + [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), + [445] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 7), + [447] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 7), SHIFT_REPEAT(10), + [450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), + [452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), + [454] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 5), + [456] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), + [458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 8), + [464] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 22), + [466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), + [468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), + [470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 7), + [472] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 7), SHIFT_REPEAT(74), + [475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), + [477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [479] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 31), + [481] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 39), + [483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), + [485] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 3, .production_id = 20), + [487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [491] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 18), + [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), + [495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), + [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 5), + [503] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 1, .production_id = 38), + [505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), + [509] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 4), + [511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [513] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 7), + [515] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 7), SHIFT_REPEAT(74), + [518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), + [520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), + [522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [524] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 5), + [526] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [528] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 7), + [530] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 7), SHIFT_REPEAT(114), + [533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [535] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 8), + [537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), [541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [543] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), - [545] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), - [547] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), SHIFT_REPEAT(72), - [550] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), - [552] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 3, .production_id = 46), - [554] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), - [556] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), SHIFT_REPEAT(72), - [559] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [561] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 40), - [563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [567] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1, .production_id = 7), - [569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), - [571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), - [573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), - [575] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 30), - [577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [579] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 45), - [581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 44), - [587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), - [591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 39), - [595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 19), - [597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), - [599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 41), - [601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), - [603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), - [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_domain_statement, 2, .production_id = 11), - [607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 47), - [609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 4), - [611] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 3), - [613] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 38), - [615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 3), - [617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 10), - [619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 4), - [621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 3), - [623] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 4, .production_id = 32), - [625] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), - [629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [631] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 3), - [633] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), - [635] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 6), - [637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), - [641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), - [645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), + [543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), + [547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [549] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 7), + [551] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 7), SHIFT_REPEAT(74), + [554] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [556] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 7), + [558] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 7), SHIFT_REPEAT(74), + [561] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 3, .production_id = 48), + [563] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 46), + [565] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 42), + [567] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 32), + [569] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 21), + [571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), + [573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), + [575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [577] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 41), + [579] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1, .production_id = 9), + [581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), + [583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), + [587] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 47), + [589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [591] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 43), + [593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [599] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), + [603] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), + [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 12), + [607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), + [609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_domain_statement, 2, .production_id = 13), + [611] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 6), + [613] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), + [615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 49), + [617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 4, .production_id = 34), + [619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 40), + [621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), + [623] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_obj, 2, .production_id = 3), + [625] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_obj, 1, .production_id = 2), + [627] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), + [629] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 6), + [631] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 5), + [633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [635] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 8), + [637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), + [639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), + [641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [643] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), + [645] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), + [649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [651] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), }; #ifdef __cplusplus From f9e3ca920a44974684d99261ee829fdfa6708041 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Sat, 27 Jul 2024 16:51:10 +0200 Subject: [PATCH 39/49] Prepare for publishing --- Cargo.toml | 3 +++ README.md | 10 ++++++++++ 2 files changed, 13 insertions(+) create mode 100644 README.md diff --git a/Cargo.toml b/Cargo.toml index b2e0d16..07099ef 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,6 @@ [package] name = "tree-sitter-sus" +authors = ["Lennart Van Hirtum "] description = "sus grammar for the tree-sitter parsing library" version = "0.0.1" keywords = ["incremental", "parsing", "sus"] @@ -7,6 +8,8 @@ categories = ["parsing", "text-editors"] repository = "https://github.com/tree-sitter/tree-sitter-sus" edition = "2021" license = "GPL-3.0-or-later" +homepage = "https://github.com/pc2/sus-compiler" +readme = "README.md" build = "bindings/rust/build.rs" include = [ diff --git a/README.md b/README.md new file mode 100644 index 0000000..b4bdc97 --- /dev/null +++ b/README.md @@ -0,0 +1,10 @@ +# Tree-Sitter grammar for the SUS Language + +Generated using [tree-sitter](https://tree-sitter.github.io/tree-sitter/). Used as the parsing front-end of the [sus-compiler](https://crates.io/crates/sus-compiler). + +The SUS compiler repository is [here](https://github.com/pc2/sus-compiler). + +This package provides bindings for C, C++, and Rust. (And tree-sitter implemented a few more but who's counting. ) + +The language definition is in [grammar.js](grammar.js). For examples, see the SUS compiler repository. + From cec8bf7105e40e82f7e7ddf10586f201701ff84d Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Sat, 27 Jul 2024 17:11:37 +0200 Subject: [PATCH 40/49] Bump cc to fix warning --- Cargo.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 07099ef..fc8f820 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,7 @@ name = "tree-sitter-sus" authors = ["Lennart Van Hirtum "] description = "sus grammar for the tree-sitter parsing library" -version = "0.0.1" +version = "0.0.2" keywords = ["incremental", "parsing", "sus"] categories = ["parsing", "text-editors"] repository = "https://github.com/tree-sitter/tree-sitter-sus" @@ -26,4 +26,4 @@ path = "bindings/rust/lib.rs" tree-sitter = "~0.22.2" [build-dependencies] -cc = "1.0" +cc = "1.1" From 0f3f2e4f5998e9ef0d036c5a4604ddd5486ad127 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Mon, 5 Aug 2024 19:36:11 +0200 Subject: [PATCH 41/49] First steps towards structs --- grammar.js | 16 +- src/grammar.json | 41 +- src/node-types.json | 110 +- src/parser.c | 5539 ++++++++++++++++++++++--------------------- 4 files changed, 2872 insertions(+), 2834 deletions(-) diff --git a/grammar.js b/grammar.js index 425e1e9..d1c79a1 100644 --- a/grammar.js +++ b/grammar.js @@ -47,11 +47,16 @@ module.exports = grammar({ source_obj: $ => seq( optional(field('extern_marker', choice('__builtin__', 'extern'))), - field('object', $.module) + field('object', $.global_object) ), - module: $ => seq( - 'module', + global_object: $ => seq( + // Because we want to reuse our "generative code", we parse them under the same umbrella. + // Their differences are their semantic meaning, and therefore what constructs are allowed in each + // For instance, modules have no restrictions + // Functions cannot contain state or modules + // Struct defines types, and cannot contain non-generative operations. (Only non-generative declarations are allowed, these define the fields) + field('object_type', choice('module', 'function', 'struct')), field('name', $.identifier), optional(field('template_declaration_arguments', $.template_declaration_arguments)), field('block', $.block) @@ -141,11 +146,10 @@ module.exports = grammar({ ), interface_statement: $ => seq( - //field('interface_kind', choice('action', 'query', 'trigger')), - 'interface', + 'interface',//field('interface_kind', choice('action', 'query', 'trigger')), field('name', $.identifier), optional(field('interface_ports', $.interface_ports)), - optional(field('block', $.block)) + //optional(field('block', $.block)) ), interface_ports: $ => seq( diff --git a/src/grammar.json b/src/grammar.json index 1c4ec85..ada67f2 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -105,17 +105,34 @@ "name": "object", "content": { "type": "SYMBOL", - "name": "module" + "name": "global_object" } } ] }, - "module": { + "global_object": { "type": "SEQ", "members": [ { - "type": "STRING", - "value": "module" + "type": "FIELD", + "name": "object_type", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "module" + }, + { + "type": "STRING", + "value": "function" + }, + { + "type": "STRING", + "value": "struct" + } + ] + } }, { "type": "FIELD", @@ -659,22 +676,6 @@ "type": "BLANK" } ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "block", - "content": { - "type": "SYMBOL", - "name": "block" - } - }, - { - "type": "BLANK" - } - ] } ] }, diff --git a/src/node-types.json b/src/node-types.json index 9686c1e..3c7d72b 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -749,6 +749,60 @@ } } }, + { + "type": "global_object", + "named": true, + "fields": { + "block": { + "multiple": false, + "required": true, + "types": [ + { + "type": "block", + "named": true + } + ] + }, + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + }, + "object_type": { + "multiple": false, + "required": true, + "types": [ + { + "type": "function", + "named": false + }, + { + "type": "module", + "named": false + }, + { + "type": "struct", + "named": false + } + ] + }, + "template_declaration_arguments": { + "multiple": false, + "required": false, + "types": [ + { + "type": "template_declaration_arguments", + "named": true + } + ] + } + } + }, { "type": "if_statement", "named": true, @@ -847,16 +901,6 @@ "type": "interface_statement", "named": true, "fields": { - "block": { - "multiple": false, - "required": false, - "types": [ - { - "type": "block", - "named": true - } - ] - }, "interface_ports": { "multiple": false, "required": false, @@ -923,42 +967,6 @@ } } }, - { - "type": "module", - "named": true, - "fields": { - "block": { - "multiple": false, - "required": true, - "types": [ - { - "type": "block", - "named": true - } - ] - }, - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - } - ] - }, - "template_declaration_arguments": { - "multiple": false, - "required": false, - "types": [ - { - "type": "template_declaration_arguments", - "named": true - } - ] - } - } - }, { "type": "parenthesis_expression", "named": true, @@ -1086,7 +1094,7 @@ "required": true, "types": [ { - "type": "module", + "type": "global_object", "named": true } ] @@ -1503,6 +1511,10 @@ "type": "for", "named": false }, + { + "type": "function", + "named": false + }, { "type": "gen", "named": false @@ -1559,6 +1571,10 @@ "type": "state", "named": false }, + { + "type": "struct", + "named": false + }, { "type": "{", "named": false diff --git a/src/parser.c b/src/parser.c index 0b81c34..66b4a60 100644 --- a/src/parser.c +++ b/src/parser.c @@ -5,113 +5,115 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 252 +#define STATE_COUNT 250 #define LARGE_STATE_COUNT 2 -#define SYMBOL_COUNT 97 +#define SYMBOL_COUNT 99 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 51 +#define TOKEN_COUNT 53 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 33 +#define FIELD_COUNT 34 #define MAX_ALIAS_SEQUENCE_LENGTH 7 -#define PRODUCTION_ID_COUNT 54 +#define PRODUCTION_ID_COUNT 53 enum ts_symbol_identifiers { sym_identifier = 1, anon_sym___builtin__ = 2, anon_sym_extern = 3, anon_sym_module = 4, - anon_sym_LT = 5, - anon_sym_GT = 6, - anon_sym_EQ = 7, - anon_sym_LBRACE = 8, - anon_sym_RBRACE = 9, - anon_sym_reg = 10, - anon_sym_initial = 11, - anon_sym_if = 12, - anon_sym_else = 13, - anon_sym_for = 14, - anon_sym_in = 15, - anon_sym_DOT_DOT = 16, - anon_sym_domain = 17, - anon_sym_interface = 18, - anon_sym_COLON = 19, - anon_sym_DASH_GT = 20, - anon_sym_input = 21, - anon_sym_output = 22, - anon_sym_state = 23, - anon_sym_gen = 24, - anon_sym_SQUOTE = 25, - anon_sym_PLUS = 26, - anon_sym_DASH = 27, - anon_sym_STAR = 28, - anon_sym_BANG = 29, - anon_sym_PIPE = 30, - anon_sym_AMP = 31, - anon_sym_CARET = 32, - anon_sym_EQ_EQ = 33, - anon_sym_BANG_EQ = 34, - anon_sym_LT_EQ = 35, - anon_sym_GT_EQ = 36, - anon_sym_SLASH = 37, - anon_sym_PERCENT = 38, - anon_sym_DOT = 39, - anon_sym_LPAREN = 40, - anon_sym_RPAREN = 41, - anon_sym_LBRACK = 42, - anon_sym_RBRACK = 43, - anon_sym_COLON_COLON = 44, - anon_sym_SEMI = 45, - sym_number = 46, - anon_sym_COMMA = 47, - anon_sym_LF = 48, - sym_single_line_comment = 49, - sym_multi_line_comment = 50, - sym_source_file = 51, - sym_source_obj = 52, - sym_module = 53, - sym_template_declaration_arguments = 54, - sym_template_declaration_type = 55, - sym_block = 56, - sym_decl_assign_statement = 57, - sym_assign_left_side = 58, - sym_assign_to = 59, - sym_write_modifiers = 60, - sym_if_statement = 61, - sym_for_statement = 62, - sym_domain_statement = 63, - sym_interface_statement = 64, - sym_interface_ports = 65, - sym__interface_ports_output = 66, - sym_declaration_list = 67, - sym_declaration = 68, - sym_latency_specifier = 69, - sym__type = 70, - sym_array_type = 71, - sym__expression = 72, - sym_unary_op = 73, - sym_binary_op = 74, - sym_array_op = 75, - sym_func_call = 76, - sym_field_access = 77, - sym_parenthesis_expression_list = 78, - sym_parenthesis_expression = 79, - sym_array_bracket_expression = 80, - sym_template_global = 81, - sym_template_type_param = 82, - sym_template_value_param = 83, - sym_template_params = 84, - sym__comma = 85, - aux_sym__linebreak = 86, - aux_sym_source_file_repeat1 = 87, - aux_sym_template_declaration_arguments_repeat1 = 88, - aux_sym_block_repeat1 = 89, - aux_sym_assign_left_side_repeat1 = 90, - aux_sym_write_modifiers_repeat1 = 91, - aux_sym_declaration_list_repeat1 = 92, - aux_sym_parenthesis_expression_list_repeat1 = 93, - aux_sym_template_global_repeat1 = 94, - aux_sym_template_params_repeat1 = 95, - aux_sym_template_params_repeat2 = 96, + anon_sym_function = 5, + anon_sym_struct = 6, + anon_sym_LT = 7, + anon_sym_GT = 8, + anon_sym_EQ = 9, + anon_sym_LBRACE = 10, + anon_sym_RBRACE = 11, + anon_sym_reg = 12, + anon_sym_initial = 13, + anon_sym_if = 14, + anon_sym_else = 15, + anon_sym_for = 16, + anon_sym_in = 17, + anon_sym_DOT_DOT = 18, + anon_sym_domain = 19, + anon_sym_interface = 20, + anon_sym_COLON = 21, + anon_sym_DASH_GT = 22, + anon_sym_input = 23, + anon_sym_output = 24, + anon_sym_state = 25, + anon_sym_gen = 26, + anon_sym_SQUOTE = 27, + anon_sym_PLUS = 28, + anon_sym_DASH = 29, + anon_sym_STAR = 30, + anon_sym_BANG = 31, + anon_sym_PIPE = 32, + anon_sym_AMP = 33, + anon_sym_CARET = 34, + anon_sym_EQ_EQ = 35, + anon_sym_BANG_EQ = 36, + anon_sym_LT_EQ = 37, + anon_sym_GT_EQ = 38, + anon_sym_SLASH = 39, + anon_sym_PERCENT = 40, + anon_sym_DOT = 41, + anon_sym_LPAREN = 42, + anon_sym_RPAREN = 43, + anon_sym_LBRACK = 44, + anon_sym_RBRACK = 45, + anon_sym_COLON_COLON = 46, + anon_sym_SEMI = 47, + sym_number = 48, + anon_sym_COMMA = 49, + anon_sym_LF = 50, + sym_single_line_comment = 51, + sym_multi_line_comment = 52, + sym_source_file = 53, + sym_source_obj = 54, + sym_global_object = 55, + sym_template_declaration_arguments = 56, + sym_template_declaration_type = 57, + sym_block = 58, + sym_decl_assign_statement = 59, + sym_assign_left_side = 60, + sym_assign_to = 61, + sym_write_modifiers = 62, + sym_if_statement = 63, + sym_for_statement = 64, + sym_domain_statement = 65, + sym_interface_statement = 66, + sym_interface_ports = 67, + sym__interface_ports_output = 68, + sym_declaration_list = 69, + sym_declaration = 70, + sym_latency_specifier = 71, + sym__type = 72, + sym_array_type = 73, + sym__expression = 74, + sym_unary_op = 75, + sym_binary_op = 76, + sym_array_op = 77, + sym_func_call = 78, + sym_field_access = 79, + sym_parenthesis_expression_list = 80, + sym_parenthesis_expression = 81, + sym_array_bracket_expression = 82, + sym_template_global = 83, + sym_template_type_param = 84, + sym_template_value_param = 85, + sym_template_params = 86, + sym__comma = 87, + aux_sym__linebreak = 88, + aux_sym_source_file_repeat1 = 89, + aux_sym_template_declaration_arguments_repeat1 = 90, + aux_sym_block_repeat1 = 91, + aux_sym_assign_left_side_repeat1 = 92, + aux_sym_write_modifiers_repeat1 = 93, + aux_sym_declaration_list_repeat1 = 94, + aux_sym_parenthesis_expression_list_repeat1 = 95, + aux_sym_template_global_repeat1 = 96, + aux_sym_template_params_repeat1 = 97, + aux_sym_template_params_repeat2 = 98, }; static const char * const ts_symbol_names[] = { @@ -120,6 +122,8 @@ static const char * const ts_symbol_names[] = { [anon_sym___builtin__] = "__builtin__", [anon_sym_extern] = "extern", [anon_sym_module] = "module", + [anon_sym_function] = "function", + [anon_sym_struct] = "struct", [anon_sym_LT] = "<", [anon_sym_GT] = ">", [anon_sym_EQ] = "=", @@ -168,7 +172,7 @@ static const char * const ts_symbol_names[] = { [sym_multi_line_comment] = "multi_line_comment", [sym_source_file] = "source_file", [sym_source_obj] = "source_obj", - [sym_module] = "module", + [sym_global_object] = "global_object", [sym_template_declaration_arguments] = "template_declaration_arguments", [sym_template_declaration_type] = "template_declaration_type", [sym_block] = "block", @@ -220,6 +224,8 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym___builtin__] = anon_sym___builtin__, [anon_sym_extern] = anon_sym_extern, [anon_sym_module] = anon_sym_module, + [anon_sym_function] = anon_sym_function, + [anon_sym_struct] = anon_sym_struct, [anon_sym_LT] = anon_sym_LT, [anon_sym_GT] = anon_sym_GT, [anon_sym_EQ] = anon_sym_EQ, @@ -268,7 +274,7 @@ static const TSSymbol ts_symbol_map[] = { [sym_multi_line_comment] = sym_multi_line_comment, [sym_source_file] = sym_source_file, [sym_source_obj] = sym_source_obj, - [sym_module] = sym_module, + [sym_global_object] = sym_global_object, [sym_template_declaration_arguments] = sym_template_declaration_arguments, [sym_template_declaration_type] = sym_template_declaration_type, [sym_block] = sym_block, @@ -335,6 +341,14 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_function] = { + .visible = true, + .named = false, + }, + [anon_sym_struct] = { + .visible = true, + .named = false, + }, [anon_sym_LT] = { .visible = true, .named = false, @@ -527,7 +541,7 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_module] = { + [sym_global_object] = { .visible = true, .named = true, }, @@ -731,14 +745,15 @@ enum ts_field_identifiers { field_left = 23, field_name = 24, field_object = 25, - field_operator = 26, - field_outputs = 27, - field_right = 28, - field_template_declaration_arguments = 29, - field_then_block = 30, - field_to = 31, - field_type = 32, - field_write_modifiers = 33, + field_object_type = 26, + field_operator = 27, + field_outputs = 28, + field_right = 29, + field_template_declaration_arguments = 30, + field_then_block = 31, + field_to = 32, + field_type = 33, + field_write_modifiers = 34, }; static const char * const ts_field_names[] = { @@ -768,6 +783,7 @@ static const char * const ts_field_names[] = { [field_left] = "left", [field_name] = "name", [field_object] = "object", + [field_object_type] = "object_type", [field_operator] = "operator", [field_outputs] = "outputs", [field_right] = "right", @@ -784,54 +800,53 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [3] = {.index = 2, .length = 2}, [4] = {.index = 4, .length = 2}, [5] = {.index = 6, .length = 1}, - [6] = {.index = 7, .length = 2}, - [7] = {.index = 9, .length = 2}, - [8] = {.index = 11, .length = 2}, - [9] = {.index = 13, .length = 1}, - [10] = {.index = 14, .length = 1}, - [11] = {.index = 15, .length = 1}, - [12] = {.index = 16, .length = 3}, - [13] = {.index = 19, .length = 1}, - [14] = {.index = 20, .length = 2}, - [15] = {.index = 22, .length = 2}, - [16] = {.index = 24, .length = 2}, - [17] = {.index = 26, .length = 2}, - [18] = {.index = 28, .length = 2}, - [19] = {.index = 30, .length = 2}, - [20] = {.index = 32, .length = 2}, - [21] = {.index = 34, .length = 2}, - [22] = {.index = 36, .length = 2}, - [23] = {.index = 38, .length = 3}, - [24] = {.index = 41, .length = 3}, - [25] = {.index = 44, .length = 1}, - [26] = {.index = 45, .length = 3}, - [27] = {.index = 48, .length = 2}, - [28] = {.index = 50, .length = 3}, - [29] = {.index = 53, .length = 3}, - [30] = {.index = 56, .length = 2}, - [31] = {.index = 58, .length = 1}, - [32] = {.index = 59, .length = 1}, - [33] = {.index = 60, .length = 1}, - [34] = {.index = 61, .length = 3}, - [35] = {.index = 64, .length = 4}, - [36] = {.index = 68, .length = 4}, - [37] = {.index = 72, .length = 4}, - [38] = {.index = 76, .length = 1}, - [39] = {.index = 77, .length = 2}, - [40] = {.index = 79, .length = 3}, - [41] = {.index = 82, .length = 1}, - [42] = {.index = 83, .length = 2}, + [6] = {.index = 7, .length = 3}, + [7] = {.index = 10, .length = 2}, + [8] = {.index = 12, .length = 2}, + [9] = {.index = 14, .length = 1}, + [10] = {.index = 15, .length = 1}, + [11] = {.index = 16, .length = 1}, + [12] = {.index = 17, .length = 4}, + [13] = {.index = 21, .length = 1}, + [14] = {.index = 22, .length = 2}, + [15] = {.index = 24, .length = 2}, + [16] = {.index = 26, .length = 2}, + [17] = {.index = 28, .length = 2}, + [18] = {.index = 30, .length = 2}, + [19] = {.index = 32, .length = 2}, + [20] = {.index = 34, .length = 2}, + [21] = {.index = 36, .length = 2}, + [22] = {.index = 38, .length = 2}, + [23] = {.index = 40, .length = 3}, + [24] = {.index = 43, .length = 3}, + [25] = {.index = 46, .length = 1}, + [26] = {.index = 47, .length = 3}, + [27] = {.index = 50, .length = 2}, + [28] = {.index = 52, .length = 3}, + [29] = {.index = 55, .length = 3}, + [30] = {.index = 58, .length = 2}, + [31] = {.index = 60, .length = 1}, + [32] = {.index = 61, .length = 1}, + [33] = {.index = 62, .length = 1}, + [34] = {.index = 63, .length = 4}, + [35] = {.index = 67, .length = 4}, + [36] = {.index = 71, .length = 4}, + [37] = {.index = 75, .length = 1}, + [38] = {.index = 76, .length = 2}, + [39] = {.index = 78, .length = 3}, + [40] = {.index = 81, .length = 1}, + [41] = {.index = 82, .length = 2}, + [42] = {.index = 84, .length = 1}, [43] = {.index = 85, .length = 1}, - [44] = {.index = 86, .length = 1}, - [45] = {.index = 87, .length = 5}, - [46] = {.index = 92, .length = 1}, - [47] = {.index = 93, .length = 2}, - [48] = {.index = 95, .length = 2}, - [49] = {.index = 97, .length = 4}, - [50] = {.index = 101, .length = 2}, - [51] = {.index = 103, .length = 3}, - [52] = {.index = 106, .length = 3}, - [53] = {.index = 109, .length = 4}, + [44] = {.index = 86, .length = 5}, + [45] = {.index = 91, .length = 1}, + [46] = {.index = 92, .length = 2}, + [47] = {.index = 94, .length = 2}, + [48] = {.index = 96, .length = 4}, + [49] = {.index = 100, .length = 2}, + [50] = {.index = 102, .length = 3}, + [51] = {.index = 105, .length = 3}, + [52] = {.index = 108, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -850,153 +865,151 @@ static const TSFieldMapEntry ts_field_map_entries[] = { [7] = {field_block, 2}, {field_name, 1}, - [9] = + {field_object_type, 0}, + [10] = {field_item, 0, .inherited = true}, {field_item, 1, .inherited = true}, - [11] = + [12] = {field_item, 1}, {field_item, 2, .inherited = true}, - [13] = - {field_name, 0}, [14] = - {field_expr_or_decl, 0}, + {field_name, 0}, [15] = - {field_item, 0, .inherited = true}, + {field_expr_or_decl, 0}, [16] = + {field_item, 0, .inherited = true}, + [17] = {field_block, 3}, {field_name, 1}, + {field_object_type, 0}, {field_template_declaration_arguments, 2}, - [19] = + [21] = {field_name, 1}, - [20] = + [22] = {field_operator, 0}, {field_right, 1}, - [22] = + [24] = {field_is_global_path, 0}, {field_item, 1}, - [24] = + [26] = {field_expr_or_decl, 1}, {field_write_modifiers, 0}, - [26] = + [28] = {field_name, 1}, {field_type, 0}, - [28] = + [30] = {field_arr, 0}, {field_arr_idx, 1}, - [30] = + [32] = {field_arguments, 1}, {field_name, 0}, - [32] = + [34] = {field_default_value, 2}, {field_name, 0}, - [34] = + [36] = {field_condition, 1}, {field_then_block, 2}, - [36] = + [38] = {field_interface_ports, 2}, {field_name, 1}, - [38] = + [40] = {field_io_port_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [41] = + [43] = {field_declaration_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [44] = + [46] = {field_content, 1}, - [45] = + [47] = {field_is_global_path, 0}, {field_item, 1}, {field_item, 2, .inherited = true}, - [48] = + [50] = {field_assign_left, 0}, {field_assign_value, 2}, - [50] = + [52] = {field_latency_specifier, 2}, {field_name, 1}, {field_type, 0}, - [53] = + [55] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [56] = + [58] = {field_left, 0}, {field_name, 2}, - [58] = + [60] = {field_item, 2}, - [59] = + [61] = {field_outputs, 1, .inherited = true}, - [60] = + [62] = {field_inputs, 1}, - [61] = - {field_block, 3}, - {field_interface_ports, 2}, - {field_name, 1}, - [64] = + [63] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_name, 3}, {field_type, 2}, - [68] = + [67] = {field_io_port_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [72] = + [71] = {field_declaration_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [76] = + [75] = {field_arg, 0}, - [77] = + [76] = {field_item, 2}, {field_item, 3, .inherited = true}, - [79] = + [78] = {field_condition, 1}, {field_else_block, 4}, {field_then_block, 2}, - [82] = + [81] = {field_outputs, 1}, - [83] = + [82] = {field_inputs, 1}, {field_outputs, 2, .inherited = true}, - [85] = + [84] = {field_outputs, 2, .inherited = true}, - [86] = + [85] = {field_inputs, 2}, - [87] = + [86] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_latency_specifier, 4}, {field_name, 3}, {field_type, 2}, - [92] = + [91] = {field_outputs, 2}, - [93] = + [92] = {field_inputs, 2}, {field_outputs, 3, .inherited = true}, - [95] = + [94] = {field_arg, 2}, {field_name, 0}, - [97] = + [96] = {field_block, 6}, {field_for_decl, 1}, {field_from, 3}, {field_to, 5}, - [101] = + [100] = {field_item, 1}, {field_item, 3}, - [103] = + [102] = {field_item, 1}, {field_item, 3}, {field_item, 4, .inherited = true}, - [106] = + [105] = {field_item, 1}, {field_item, 2, .inherited = true}, {field_item, 4}, - [109] = + [108] = {field_item, 1}, {field_item, 2, .inherited = true}, {field_item, 4}, @@ -1066,14 +1079,14 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [51] = 51, [52] = 52, [53] = 53, - [54] = 54, + [54] = 53, [55] = 55, [56] = 56, - [57] = 54, + [57] = 57, [58] = 58, [59] = 59, - [60] = 59, - [61] = 61, + [60] = 60, + [61] = 60, [62] = 62, [63] = 63, [64] = 64, @@ -1090,8 +1103,8 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [75] = 75, [76] = 76, [77] = 77, - [78] = 70, - [79] = 79, + [78] = 78, + [79] = 69, [80] = 80, [81] = 81, [82] = 82, @@ -1111,7 +1124,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [96] = 96, [97] = 97, [98] = 98, - [99] = 99, + [99] = 43, [100] = 100, [101] = 101, [102] = 102, @@ -1120,53 +1133,53 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [105] = 105, [106] = 106, [107] = 107, - [108] = 108, + [108] = 106, [109] = 105, - [110] = 110, + [110] = 107, [111] = 111, [112] = 112, - [113] = 106, + [113] = 113, [114] = 114, [115] = 115, - [116] = 104, + [116] = 116, [117] = 117, [118] = 118, [119] = 119, [120] = 120, - [121] = 44, + [121] = 121, [122] = 122, - [123] = 123, + [123] = 14, [124] = 124, [125] = 125, - [126] = 126, + [126] = 15, [127] = 127, - [128] = 128, + [128] = 16, [129] = 129, - [130] = 16, - [131] = 12, - [132] = 11, - [133] = 14, + [130] = 12, + [131] = 131, + [132] = 13, + [133] = 133, [134] = 134, - [135] = 15, + [135] = 135, [136] = 136, [137] = 137, [138] = 138, - [139] = 28, + [139] = 139, [140] = 140, [141] = 141, [142] = 142, [143] = 143, [144] = 144, [145] = 145, - [146] = 146, + [146] = 18, [147] = 147, [148] = 148, - [149] = 149, + [149] = 32, [150] = 150, - [151] = 151, - [152] = 152, + [151] = 21, + [152] = 147, [153] = 153, - [154] = 144, + [154] = 154, [155] = 155, [156] = 156, [157] = 157, @@ -1180,62 +1193,62 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [165] = 165, [166] = 166, [167] = 167, - [168] = 18, + [168] = 168, [169] = 169, - [170] = 20, + [170] = 170, [171] = 171, - [172] = 22, - [173] = 23, + [172] = 172, + [173] = 173, [174] = 174, - [175] = 24, + [175] = 25, [176] = 176, - [177] = 177, + [177] = 20, [178] = 178, - [179] = 179, + [179] = 170, [180] = 180, - [181] = 161, - [182] = 25, - [183] = 31, - [184] = 32, - [185] = 143, - [186] = 19, + [181] = 181, + [182] = 182, + [183] = 142, + [184] = 19, + [185] = 185, + [186] = 17, [187] = 187, [188] = 188, - [189] = 189, + [189] = 22, [190] = 190, [191] = 191, - [192] = 192, - [193] = 193, - [194] = 147, + [192] = 23, + [193] = 24, + [194] = 150, [195] = 195, - [196] = 150, - [197] = 197, - [198] = 198, - [199] = 159, - [200] = 151, + [196] = 196, + [197] = 168, + [198] = 166, + [199] = 199, + [200] = 200, [201] = 201, - [202] = 158, + [202] = 202, [203] = 203, - [204] = 204, + [204] = 157, [205] = 205, - [206] = 206, + [206] = 156, [207] = 207, [208] = 208, [209] = 209, [210] = 210, [211] = 211, [212] = 212, - [213] = 213, - [214] = 214, + [213] = 209, + [214] = 34, [215] = 215, [216] = 216, [217] = 217, [218] = 218, - [219] = 211, + [219] = 219, [220] = 220, [221] = 221, [222] = 222, - [223] = 34, + [223] = 223, [224] = 224, [225] = 225, [226] = 226, @@ -1261,9 +1274,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [246] = 246, [247] = 247, [248] = 248, - [249] = 249, - [250] = 244, - [251] = 251, + [249] = 240, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -3452,207 +3463,242 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { END_STATE(); case 4: if (lookahead == 'o') ADVANCE(15); + if (lookahead == 'u') ADVANCE(16); END_STATE(); case 5: - if (lookahead == 'e') ADVANCE(16); + if (lookahead == 'e') ADVANCE(17); END_STATE(); case 6: - if (lookahead == 'f') ADVANCE(17); - if (lookahead == 'n') ADVANCE(18); + if (lookahead == 'f') ADVANCE(18); + if (lookahead == 'n') ADVANCE(19); END_STATE(); case 7: - if (lookahead == 'o') ADVANCE(19); + if (lookahead == 'o') ADVANCE(20); END_STATE(); case 8: - if (lookahead == 'u') ADVANCE(20); + if (lookahead == 'u') ADVANCE(21); END_STATE(); case 9: - if (lookahead == 'e') ADVANCE(21); + if (lookahead == 'e') ADVANCE(22); END_STATE(); case 10: - if (lookahead == 't') ADVANCE(22); + if (lookahead == 't') ADVANCE(23); END_STATE(); case 11: - if (lookahead == 'b') ADVANCE(23); + if (lookahead == 'b') ADVANCE(24); END_STATE(); case 12: - if (lookahead == 'm') ADVANCE(24); + if (lookahead == 'm') ADVANCE(25); END_STATE(); case 13: - if (lookahead == 's') ADVANCE(25); + if (lookahead == 's') ADVANCE(26); END_STATE(); case 14: - if (lookahead == 't') ADVANCE(26); + if (lookahead == 't') ADVANCE(27); END_STATE(); case 15: - if (lookahead == 'r') ADVANCE(27); + if (lookahead == 'r') ADVANCE(28); END_STATE(); case 16: - if (lookahead == 'n') ADVANCE(28); + if (lookahead == 'n') ADVANCE(29); END_STATE(); case 17: - ACCEPT_TOKEN(anon_sym_if); + if (lookahead == 'n') ADVANCE(30); END_STATE(); case 18: - ACCEPT_TOKEN(anon_sym_in); - if (lookahead == 'i') ADVANCE(29); - if (lookahead == 'p') ADVANCE(30); - if (lookahead == 't') ADVANCE(31); + ACCEPT_TOKEN(anon_sym_if); END_STATE(); case 19: - if (lookahead == 'd') ADVANCE(32); + ACCEPT_TOKEN(anon_sym_in); + if (lookahead == 'i') ADVANCE(31); + if (lookahead == 'p') ADVANCE(32); + if (lookahead == 't') ADVANCE(33); END_STATE(); case 20: - if (lookahead == 't') ADVANCE(33); + if (lookahead == 'd') ADVANCE(34); END_STATE(); case 21: - if (lookahead == 'g') ADVANCE(34); + if (lookahead == 't') ADVANCE(35); END_STATE(); case 22: - if (lookahead == 'a') ADVANCE(35); + if (lookahead == 'g') ADVANCE(36); END_STATE(); case 23: - if (lookahead == 'u') ADVANCE(36); + if (lookahead == 'a') ADVANCE(37); + if (lookahead == 'r') ADVANCE(38); END_STATE(); case 24: - if (lookahead == 'a') ADVANCE(37); + if (lookahead == 'u') ADVANCE(39); END_STATE(); case 25: - if (lookahead == 'e') ADVANCE(38); + if (lookahead == 'a') ADVANCE(40); END_STATE(); case 26: - if (lookahead == 'e') ADVANCE(39); + if (lookahead == 'e') ADVANCE(41); END_STATE(); case 27: - ACCEPT_TOKEN(anon_sym_for); + if (lookahead == 'e') ADVANCE(42); END_STATE(); case 28: - ACCEPT_TOKEN(anon_sym_gen); + ACCEPT_TOKEN(anon_sym_for); END_STATE(); case 29: - if (lookahead == 't') ADVANCE(40); + if (lookahead == 'c') ADVANCE(43); END_STATE(); case 30: - if (lookahead == 'u') ADVANCE(41); + ACCEPT_TOKEN(anon_sym_gen); END_STATE(); case 31: - if (lookahead == 'e') ADVANCE(42); + if (lookahead == 't') ADVANCE(44); END_STATE(); case 32: - if (lookahead == 'u') ADVANCE(43); + if (lookahead == 'u') ADVANCE(45); END_STATE(); case 33: - if (lookahead == 'p') ADVANCE(44); + if (lookahead == 'e') ADVANCE(46); END_STATE(); case 34: - ACCEPT_TOKEN(anon_sym_reg); + if (lookahead == 'u') ADVANCE(47); END_STATE(); case 35: - if (lookahead == 't') ADVANCE(45); + if (lookahead == 'p') ADVANCE(48); END_STATE(); case 36: - if (lookahead == 'i') ADVANCE(46); + ACCEPT_TOKEN(anon_sym_reg); END_STATE(); case 37: - if (lookahead == 'i') ADVANCE(47); + if (lookahead == 't') ADVANCE(49); END_STATE(); case 38: - ACCEPT_TOKEN(anon_sym_else); + if (lookahead == 'u') ADVANCE(50); END_STATE(); case 39: - if (lookahead == 'r') ADVANCE(48); + if (lookahead == 'i') ADVANCE(51); END_STATE(); case 40: - if (lookahead == 'i') ADVANCE(49); + if (lookahead == 'i') ADVANCE(52); END_STATE(); case 41: - if (lookahead == 't') ADVANCE(50); + ACCEPT_TOKEN(anon_sym_else); END_STATE(); case 42: - if (lookahead == 'r') ADVANCE(51); + if (lookahead == 'r') ADVANCE(53); END_STATE(); case 43: - if (lookahead == 'l') ADVANCE(52); + if (lookahead == 't') ADVANCE(54); END_STATE(); case 44: - if (lookahead == 'u') ADVANCE(53); + if (lookahead == 'i') ADVANCE(55); END_STATE(); case 45: - if (lookahead == 'e') ADVANCE(54); + if (lookahead == 't') ADVANCE(56); END_STATE(); case 46: - if (lookahead == 'l') ADVANCE(55); + if (lookahead == 'r') ADVANCE(57); END_STATE(); case 47: - if (lookahead == 'n') ADVANCE(56); + if (lookahead == 'l') ADVANCE(58); END_STATE(); case 48: - if (lookahead == 'n') ADVANCE(57); + if (lookahead == 'u') ADVANCE(59); END_STATE(); case 49: - if (lookahead == 'a') ADVANCE(58); + if (lookahead == 'e') ADVANCE(60); END_STATE(); case 50: - ACCEPT_TOKEN(anon_sym_input); + if (lookahead == 'c') ADVANCE(61); END_STATE(); case 51: - if (lookahead == 'f') ADVANCE(59); + if (lookahead == 'l') ADVANCE(62); END_STATE(); case 52: - if (lookahead == 'e') ADVANCE(60); + if (lookahead == 'n') ADVANCE(63); END_STATE(); case 53: - if (lookahead == 't') ADVANCE(61); + if (lookahead == 'n') ADVANCE(64); END_STATE(); case 54: - ACCEPT_TOKEN(anon_sym_state); + if (lookahead == 'i') ADVANCE(65); END_STATE(); case 55: - if (lookahead == 't') ADVANCE(62); + if (lookahead == 'a') ADVANCE(66); END_STATE(); case 56: - ACCEPT_TOKEN(anon_sym_domain); + ACCEPT_TOKEN(anon_sym_input); END_STATE(); case 57: - ACCEPT_TOKEN(anon_sym_extern); + if (lookahead == 'f') ADVANCE(67); END_STATE(); case 58: - if (lookahead == 'l') ADVANCE(63); + if (lookahead == 'e') ADVANCE(68); END_STATE(); case 59: - if (lookahead == 'a') ADVANCE(64); + if (lookahead == 't') ADVANCE(69); END_STATE(); case 60: - ACCEPT_TOKEN(anon_sym_module); + ACCEPT_TOKEN(anon_sym_state); END_STATE(); case 61: - ACCEPT_TOKEN(anon_sym_output); + if (lookahead == 't') ADVANCE(70); END_STATE(); case 62: - if (lookahead == 'i') ADVANCE(65); + if (lookahead == 't') ADVANCE(71); END_STATE(); case 63: - ACCEPT_TOKEN(anon_sym_initial); + ACCEPT_TOKEN(anon_sym_domain); END_STATE(); case 64: - if (lookahead == 'c') ADVANCE(66); + ACCEPT_TOKEN(anon_sym_extern); END_STATE(); case 65: - if (lookahead == 'n') ADVANCE(67); + if (lookahead == 'o') ADVANCE(72); END_STATE(); case 66: - if (lookahead == 'e') ADVANCE(68); + if (lookahead == 'l') ADVANCE(73); END_STATE(); case 67: - if (lookahead == '_') ADVANCE(69); + if (lookahead == 'a') ADVANCE(74); END_STATE(); case 68: - ACCEPT_TOKEN(anon_sym_interface); + ACCEPT_TOKEN(anon_sym_module); END_STATE(); case 69: - if (lookahead == '_') ADVANCE(70); + ACCEPT_TOKEN(anon_sym_output); END_STATE(); case 70: + ACCEPT_TOKEN(anon_sym_struct); + END_STATE(); + case 71: + if (lookahead == 'i') ADVANCE(75); + END_STATE(); + case 72: + if (lookahead == 'n') ADVANCE(76); + END_STATE(); + case 73: + ACCEPT_TOKEN(anon_sym_initial); + END_STATE(); + case 74: + if (lookahead == 'c') ADVANCE(77); + END_STATE(); + case 75: + if (lookahead == 'n') ADVANCE(78); + END_STATE(); + case 76: + ACCEPT_TOKEN(anon_sym_function); + END_STATE(); + case 77: + if (lookahead == 'e') ADVANCE(79); + END_STATE(); + case 78: + if (lookahead == '_') ADVANCE(80); + END_STATE(); + case 79: + ACCEPT_TOKEN(anon_sym_interface); + END_STATE(); + case 80: + if (lookahead == '_') ADVANCE(81); + END_STATE(); + case 81: ACCEPT_TOKEN(anon_sym___builtin__); END_STATE(); default: @@ -3672,9 +3718,9 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [8] = {.lex_state = 1}, [9] = {.lex_state = 1}, [10] = {.lex_state = 1}, - [11] = {.lex_state = 2}, + [11] = {.lex_state = 1}, [12] = {.lex_state = 2}, - [13] = {.lex_state = 1}, + [13] = {.lex_state = 2}, [14] = {.lex_state = 2}, [15] = {.lex_state = 2}, [16] = {.lex_state = 2}, @@ -3703,9 +3749,9 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [39] = {.lex_state = 2}, [40] = {.lex_state = 2}, [41] = {.lex_state = 2}, - [42] = {.lex_state = 2}, + [42] = {.lex_state = 1}, [43] = {.lex_state = 1}, - [44] = {.lex_state = 1}, + [44] = {.lex_state = 2}, [45] = {.lex_state = 2}, [46] = {.lex_state = 2}, [47] = {.lex_state = 2}, @@ -3714,16 +3760,16 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [50] = {.lex_state = 2}, [51] = {.lex_state = 2}, [52] = {.lex_state = 2}, - [53] = {.lex_state = 2}, + [53] = {.lex_state = 1}, [54] = {.lex_state = 1}, [55] = {.lex_state = 2}, [56] = {.lex_state = 2}, - [57] = {.lex_state = 1}, - [58] = {.lex_state = 1}, - [59] = {.lex_state = 2}, + [57] = {.lex_state = 2}, + [58] = {.lex_state = 2}, + [59] = {.lex_state = 1}, [60] = {.lex_state = 2}, - [61] = {.lex_state = 1}, - [62] = {.lex_state = 2}, + [61] = {.lex_state = 2}, + [62] = {.lex_state = 1}, [63] = {.lex_state = 2}, [64] = {.lex_state = 1}, [65] = {.lex_state = 1}, @@ -3753,10 +3799,10 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [89] = {.lex_state = 1}, [90] = {.lex_state = 1}, [91] = {.lex_state = 1}, - [92] = {.lex_state = 1}, + [92] = {.lex_state = 0}, [93] = {.lex_state = 0}, [94] = {.lex_state = 0}, - [95] = {.lex_state = 0}, + [95] = {.lex_state = 1}, [96] = {.lex_state = 0}, [97] = {.lex_state = 0}, [98] = {.lex_state = 0}, @@ -3768,8 +3814,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [104] = {.lex_state = 1}, [105] = {.lex_state = 1}, [106] = {.lex_state = 1}, - [107] = {.lex_state = 0}, - [108] = {.lex_state = 0}, + [107] = {.lex_state = 1}, + [108] = {.lex_state = 1}, [109] = {.lex_state = 1}, [110] = {.lex_state = 1}, [111] = {.lex_state = 0}, @@ -3777,105 +3823,105 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [113] = {.lex_state = 1}, [114] = {.lex_state = 0}, [115] = {.lex_state = 0}, - [116] = {.lex_state = 1}, + [116] = {.lex_state = 0}, [117] = {.lex_state = 0}, - [118] = {.lex_state = 1}, + [118] = {.lex_state = 0}, [119] = {.lex_state = 0}, [120] = {.lex_state = 0}, - [121] = {.lex_state = 0}, - [122] = {.lex_state = 1}, - [123] = {.lex_state = 0}, + [121] = {.lex_state = 1}, + [122] = {.lex_state = 0}, + [123] = {.lex_state = 1}, [124] = {.lex_state = 0}, - [125] = {.lex_state = 1}, + [125] = {.lex_state = 0}, [126] = {.lex_state = 1}, - [127] = {.lex_state = 0}, - [128] = {.lex_state = 0}, + [127] = {.lex_state = 1}, + [128] = {.lex_state = 1}, [129] = {.lex_state = 1}, [130] = {.lex_state = 1}, [131] = {.lex_state = 1}, [132] = {.lex_state = 1}, [133] = {.lex_state = 1}, [134] = {.lex_state = 0}, - [135] = {.lex_state = 1}, + [135] = {.lex_state = 0}, [136] = {.lex_state = 0}, - [137] = {.lex_state = 1}, + [137] = {.lex_state = 0}, [138] = {.lex_state = 0}, - [139] = {.lex_state = 1}, + [139] = {.lex_state = 0}, [140] = {.lex_state = 0}, [141] = {.lex_state = 0}, [142] = {.lex_state = 0}, [143] = {.lex_state = 0}, [144] = {.lex_state = 0}, [145] = {.lex_state = 0}, - [146] = {.lex_state = 0}, - [147] = {.lex_state = 1}, + [146] = {.lex_state = 1}, + [147] = {.lex_state = 0}, [148] = {.lex_state = 0}, - [149] = {.lex_state = 0}, + [149] = {.lex_state = 1}, [150] = {.lex_state = 1}, [151] = {.lex_state = 1}, [152] = {.lex_state = 0}, [153] = {.lex_state = 0}, - [154] = {.lex_state = 0}, + [154] = {.lex_state = 1}, [155] = {.lex_state = 0}, - [156] = {.lex_state = 0}, - [157] = {.lex_state = 0}, + [156] = {.lex_state = 1}, + [157] = {.lex_state = 1}, [158] = {.lex_state = 1}, - [159] = {.lex_state = 1}, - [160] = {.lex_state = 1}, - [161] = {.lex_state = 1}, + [159] = {.lex_state = 0}, + [160] = {.lex_state = 0}, + [161] = {.lex_state = 0}, [162] = {.lex_state = 0}, [163] = {.lex_state = 0}, [164] = {.lex_state = 0}, [165] = {.lex_state = 0}, - [166] = {.lex_state = 0}, + [166] = {.lex_state = 1}, [167] = {.lex_state = 1}, [168] = {.lex_state = 1}, [169] = {.lex_state = 0}, [170] = {.lex_state = 1}, [171] = {.lex_state = 0}, - [172] = {.lex_state = 1}, - [173] = {.lex_state = 1}, - [174] = {.lex_state = 1}, + [172] = {.lex_state = 0}, + [173] = {.lex_state = 0}, + [174] = {.lex_state = 0}, [175] = {.lex_state = 1}, [176] = {.lex_state = 0}, - [177] = {.lex_state = 0}, - [178] = {.lex_state = 0}, - [179] = {.lex_state = 0}, - [180] = {.lex_state = 1}, - [181] = {.lex_state = 1}, - [182] = {.lex_state = 1}, - [183] = {.lex_state = 1}, + [177] = {.lex_state = 1}, + [178] = {.lex_state = 1}, + [179] = {.lex_state = 1}, + [180] = {.lex_state = 0}, + [181] = {.lex_state = 0}, + [182] = {.lex_state = 0}, + [183] = {.lex_state = 0}, [184] = {.lex_state = 1}, - [185] = {.lex_state = 0}, + [185] = {.lex_state = 1}, [186] = {.lex_state = 1}, [187] = {.lex_state = 0}, [188] = {.lex_state = 0}, [189] = {.lex_state = 1}, [190] = {.lex_state = 0}, [191] = {.lex_state = 0}, - [192] = {.lex_state = 0}, - [193] = {.lex_state = 0}, + [192] = {.lex_state = 1}, + [193] = {.lex_state = 1}, [194] = {.lex_state = 1}, [195] = {.lex_state = 0}, - [196] = {.lex_state = 1}, - [197] = {.lex_state = 0}, - [198] = {.lex_state = 0}, - [199] = {.lex_state = 1}, + [196] = {.lex_state = 0}, + [197] = {.lex_state = 1}, + [198] = {.lex_state = 1}, + [199] = {.lex_state = 0}, [200] = {.lex_state = 1}, - [201] = {.lex_state = 1}, + [201] = {.lex_state = 0}, [202] = {.lex_state = 1}, [203] = {.lex_state = 1}, - [204] = {.lex_state = 0}, + [204] = {.lex_state = 1}, [205] = {.lex_state = 0}, [206] = {.lex_state = 1}, - [207] = {.lex_state = 0}, + [207] = {.lex_state = 1}, [208] = {.lex_state = 0}, [209] = {.lex_state = 0}, - [210] = {.lex_state = 0}, + [210] = {.lex_state = 1}, [211] = {.lex_state = 0}, [212] = {.lex_state = 0}, - [213] = {.lex_state = 1}, - [214] = {.lex_state = 0}, + [213] = {.lex_state = 0}, + [214] = {.lex_state = 1}, [215] = {.lex_state = 0}, [216] = {.lex_state = 0}, [217] = {.lex_state = 0}, @@ -3884,10 +3930,10 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [220] = {.lex_state = 0}, [221] = {.lex_state = 0}, [222] = {.lex_state = 1}, - [223] = {.lex_state = 1}, + [223] = {.lex_state = 0}, [224] = {.lex_state = 0}, - [225] = {.lex_state = 0}, - [226] = {.lex_state = 1}, + [225] = {.lex_state = 1}, + [226] = {.lex_state = 0}, [227] = {.lex_state = 0}, [228] = {.lex_state = 0}, [229] = {.lex_state = 0}, @@ -3897,7 +3943,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [233] = {.lex_state = 0}, [234] = {.lex_state = 0}, [235] = {.lex_state = 0}, - [236] = {.lex_state = 1}, + [236] = {.lex_state = 0}, [237] = {.lex_state = 0}, [238] = {.lex_state = 0}, [239] = {.lex_state = 0}, @@ -3911,8 +3957,6 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [247] = {.lex_state = 0}, [248] = {.lex_state = 0}, [249] = {.lex_state = 0}, - [250] = {.lex_state = 0}, - [251] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -3922,6 +3966,8 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym___builtin__] = ACTIONS(1), [anon_sym_extern] = ACTIONS(1), [anon_sym_module] = ACTIONS(1), + [anon_sym_function] = ACTIONS(1), + [anon_sym_struct] = ACTIONS(1), [anon_sym_LT] = ACTIONS(1), [anon_sym_GT] = ACTIONS(1), [anon_sym_EQ] = ACTIONS(1), @@ -3969,14 +4015,16 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(248), - [sym_source_obj] = STATE(153), - [sym_module] = STATE(238), - [aux_sym__linebreak] = STATE(98), + [sym_source_file] = STATE(246), + [sym_source_obj] = STATE(165), + [sym_global_object] = STATE(235), + [aux_sym__linebreak] = STATE(96), [ts_builtin_sym_end] = ACTIONS(5), [anon_sym___builtin__] = ACTIONS(7), [anon_sym_extern] = ACTIONS(7), [anon_sym_module] = ACTIONS(9), + [anon_sym_function] = ACTIONS(9), + [anon_sym_struct] = ACTIONS(9), [anon_sym_LF] = ACTIONS(11), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), @@ -4011,20 +4059,20 @@ static const uint16_t ts_small_parse_table[] = { sym_number, ACTIONS(43), 1, anon_sym_LF, - STATE(43), 1, + STATE(42), 1, sym_write_modifiers, - STATE(44), 1, + STATE(43), 1, aux_sym__linebreak, - STATE(49), 1, + STATE(48), 1, sym_template_global, - STATE(84), 1, + STATE(83), 1, aux_sym_write_modifiers_repeat1, - STATE(120), 1, + STATE(112), 1, sym_assign_to, - STATE(134), 1, - sym_assign_left_side, - STATE(197), 1, + STATE(195), 1, sym_declaration, + STATE(217), 1, + sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4034,10 +4082,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(214), 2, + STATE(208), 2, sym__type, sym_array_type, - STATE(169), 6, + STATE(221), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4052,7 +4100,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(46), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4087,20 +4135,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(45), 1, anon_sym_RBRACE, - STATE(43), 1, + STATE(42), 1, sym_write_modifiers, - STATE(44), 1, + STATE(43), 1, aux_sym__linebreak, - STATE(49), 1, + STATE(48), 1, sym_template_global, - STATE(84), 1, + STATE(83), 1, aux_sym_write_modifiers_repeat1, - STATE(120), 1, + STATE(112), 1, sym_assign_to, - STATE(197), 1, - sym_declaration, - STATE(215), 1, + STATE(125), 1, sym_assign_left_side, + STATE(195), 1, + sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4110,10 +4158,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(214), 2, + STATE(208), 2, sym__type, sym_array_type, - STATE(232), 6, + STATE(159), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4128,7 +4176,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(46), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4163,19 +4211,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(47), 1, anon_sym_RBRACE, - STATE(43), 1, + STATE(42), 1, sym_write_modifiers, - STATE(44), 1, + STATE(43), 1, aux_sym__linebreak, - STATE(49), 1, + STATE(48), 1, sym_template_global, - STATE(84), 1, + STATE(83), 1, aux_sym_write_modifiers_repeat1, - STATE(120), 1, + STATE(112), 1, sym_assign_to, - STATE(197), 1, + STATE(195), 1, sym_declaration, - STATE(215), 1, + STATE(217), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4186,10 +4234,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(214), 2, + STATE(208), 2, sym__type, sym_array_type, - STATE(232), 6, + STATE(221), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4204,7 +4252,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(46), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4239,19 +4287,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(49), 1, anon_sym_RBRACE, - STATE(43), 1, + STATE(42), 1, sym_write_modifiers, - STATE(44), 1, + STATE(43), 1, aux_sym__linebreak, - STATE(49), 1, + STATE(48), 1, sym_template_global, - STATE(84), 1, + STATE(83), 1, aux_sym_write_modifiers_repeat1, - STATE(120), 1, + STATE(112), 1, sym_assign_to, - STATE(197), 1, + STATE(195), 1, sym_declaration, - STATE(215), 1, + STATE(217), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4262,10 +4310,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(214), 2, + STATE(208), 2, sym__type, sym_array_type, - STATE(232), 6, + STATE(221), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4280,7 +4328,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(46), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4315,19 +4363,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(51), 1, anon_sym_RBRACE, - STATE(43), 1, + STATE(42), 1, sym_write_modifiers, - STATE(44), 1, + STATE(43), 1, aux_sym__linebreak, - STATE(49), 1, + STATE(48), 1, sym_template_global, - STATE(84), 1, + STATE(83), 1, aux_sym_write_modifiers_repeat1, - STATE(120), 1, + STATE(112), 1, sym_assign_to, - STATE(197), 1, + STATE(195), 1, sym_declaration, - STATE(215), 1, + STATE(217), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4338,10 +4386,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(214), 2, + STATE(208), 2, sym__type, sym_array_type, - STATE(232), 6, + STATE(221), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4356,7 +4404,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(46), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4391,19 +4439,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(53), 1, anon_sym_RBRACE, - STATE(43), 1, + STATE(42), 1, sym_write_modifiers, - STATE(44), 1, + STATE(43), 1, aux_sym__linebreak, - STATE(49), 1, + STATE(48), 1, sym_template_global, - STATE(84), 1, + STATE(83), 1, aux_sym_write_modifiers_repeat1, - STATE(120), 1, + STATE(112), 1, sym_assign_to, - STATE(197), 1, + STATE(195), 1, sym_declaration, - STATE(215), 1, + STATE(217), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4414,10 +4462,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(214), 2, + STATE(208), 2, sym__type, sym_array_type, - STATE(232), 6, + STATE(221), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4432,7 +4480,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(46), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4467,19 +4515,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(55), 1, anon_sym_RBRACE, - STATE(43), 1, + STATE(42), 1, sym_write_modifiers, - STATE(44), 1, + STATE(43), 1, aux_sym__linebreak, - STATE(49), 1, + STATE(48), 1, sym_template_global, - STATE(84), 1, + STATE(83), 1, aux_sym_write_modifiers_repeat1, - STATE(120), 1, + STATE(112), 1, sym_assign_to, - STATE(197), 1, + STATE(195), 1, sym_declaration, - STATE(215), 1, + STATE(217), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4490,10 +4538,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(214), 2, + STATE(208), 2, sym__type, sym_array_type, - STATE(232), 6, + STATE(221), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4508,7 +4556,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(46), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4543,19 +4591,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, ACTIONS(59), 1, anon_sym_LF, - STATE(2), 1, + STATE(3), 1, aux_sym__linebreak, - STATE(43), 1, + STATE(42), 1, sym_write_modifiers, - STATE(49), 1, + STATE(48), 1, sym_template_global, - STATE(84), 1, + STATE(83), 1, aux_sym_write_modifiers_repeat1, - STATE(120), 1, + STATE(112), 1, sym_assign_to, - STATE(128), 1, + STATE(124), 1, sym_assign_left_side, - STATE(197), 1, + STATE(195), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -4566,10 +4614,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(214), 2, + STATE(208), 2, sym__type, sym_array_type, - STATE(198), 6, + STATE(196), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4584,7 +4632,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(46), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4617,19 +4665,19 @@ static const uint16_t ts_small_parse_table[] = { sym_number, ACTIONS(43), 1, anon_sym_LF, - STATE(43), 1, + STATE(42), 1, sym_write_modifiers, - STATE(44), 1, + STATE(43), 1, aux_sym__linebreak, - STATE(49), 1, + STATE(48), 1, sym_template_global, - STATE(84), 1, + STATE(83), 1, aux_sym_write_modifiers_repeat1, - STATE(120), 1, + STATE(112), 1, sym_assign_to, - STATE(197), 1, + STATE(195), 1, sym_declaration, - STATE(215), 1, + STATE(217), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4640,10 +4688,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(214), 2, + STATE(208), 2, sym__type, sym_array_type, - STATE(232), 6, + STATE(221), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4658,7 +4706,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(46), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + [924] = 17, + ACTIONS(13), 1, + sym_identifier, + ACTIONS(19), 1, + anon_sym_reg, + ACTIONS(21), 1, + anon_sym_initial, + ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + ACTIONS(41), 1, + sym_number, + STATE(42), 1, + sym_write_modifiers, + STATE(48), 1, + sym_template_global, + STATE(83), 1, + aux_sym_write_modifiers_repeat1, + STATE(140), 1, + sym_assign_to, + STATE(195), 1, + sym_declaration, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(31), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(33), 2, + anon_sym_state, + anon_sym_gen, + STATE(208), 2, + sym__type, + sym_array_type, + ACTIONS(35), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(46), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4666,7 +4765,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [924] = 5, + [992] = 5, ACTIONS(65), 1, anon_sym_COLON_COLON, STATE(15), 1, @@ -4705,7 +4804,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [968] = 5, + [1036] = 5, ACTIONS(65), 1, anon_sym_COLON_COLON, STATE(14), 1, @@ -4744,62 +4843,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1012] = 17, - ACTIONS(13), 1, - sym_identifier, - ACTIONS(19), 1, - anon_sym_reg, - ACTIONS(21), 1, - anon_sym_initial, - ACTIONS(37), 1, - anon_sym_LPAREN, - ACTIONS(39), 1, + [1080] = 5, + ACTIONS(65), 1, anon_sym_COLON_COLON, - ACTIONS(41), 1, - sym_number, - STATE(43), 1, - sym_write_modifiers, - STATE(49), 1, - sym_template_global, - STATE(84), 1, - aux_sym_write_modifiers_repeat1, - STATE(145), 1, - sym_assign_to, - STATE(197), 1, - sym_declaration, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(31), 2, - anon_sym_input, - anon_sym_output, - ACTIONS(33), 2, - anon_sym_state, - anon_sym_gen, - STATE(214), 2, - sym__type, - sym_array_type, - ACTIONS(35), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(47), 7, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - [1080] = 5, - ACTIONS(65), 1, - anon_sym_COLON_COLON, - STATE(15), 1, - aux_sym_template_global_repeat1, + STATE(16), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4835,9 +4883,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_LF, [1124] = 5, - ACTIONS(79), 1, + ACTIONS(65), 1, anon_sym_COLON_COLON, - STATE(15), 1, + STATE(16), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, @@ -4874,14 +4922,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_LF, [1168] = 5, - ACTIONS(65), 1, + ACTIONS(83), 1, anon_sym_COLON_COLON, - STATE(11), 1, + STATE(16), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(82), 8, + ACTIONS(79), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4890,7 +4938,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(84), 21, + ACTIONS(81), 21, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4912,30 +4960,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1212] = 8, - ACTIONS(90), 1, - anon_sym_DOT, - ACTIONS(92), 1, - anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, - sym_parenthesis_expression_list, + [1212] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 5, + ACTIONS(86), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, + anon_sym_in, anon_sym_DASH, anon_sym_SLASH, - ACTIONS(88), 20, + anon_sym_DOT, + sym_identifier, + ACTIONS(88), 22, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4948,16 +4988,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1261] = 3, + [1251] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(96), 8, + ACTIONS(90), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4966,7 +5009,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(98), 22, + ACTIONS(92), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4989,11 +5032,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1300] = 3, + [1290] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(100), 8, + ACTIONS(94), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5002,7 +5045,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(102), 22, + ACTIONS(96), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5025,11 +5068,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1339] = 3, + [1329] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(104), 8, + ACTIONS(98), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5038,7 +5081,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(106), 22, + ACTIONS(100), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5061,59 +5104,47 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1378] = 15, - ACTIONS(90), 1, - anon_sym_DOT, - ACTIONS(92), 1, - anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(112), 1, - anon_sym_PLUS, - ACTIONS(114), 1, - anon_sym_DASH, - ACTIONS(118), 1, - anon_sym_PIPE, - ACTIONS(120), 1, - anon_sym_AMP, - ACTIONS(122), 1, - anon_sym_CARET, - ACTIONS(124), 1, - anon_sym_SLASH, - STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, - sym_parenthesis_expression_list, + [1368] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(116), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(108), 3, + ACTIONS(102), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(110), 14, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(104), 22, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1441] = 3, + [1407] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(126), 8, + ACTIONS(106), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5122,7 +5153,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(128), 22, + ACTIONS(108), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5145,11 +5176,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1480] = 3, + [1446] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 8, + ACTIONS(110), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5158,7 +5189,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(132), 22, + ACTIONS(112), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5181,11 +5212,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1519] = 3, + [1485] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(134), 8, + ACTIONS(114), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5194,7 +5225,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(136), 22, + ACTIONS(116), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5217,11 +5248,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1558] = 3, + [1524] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(138), 8, + ACTIONS(118), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5230,7 +5261,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(140), 22, + ACTIONS(120), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5253,37 +5284,39 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1597] = 10, - ACTIONS(90), 1, + [1563] = 12, + ACTIONS(126), 1, + anon_sym_PLUS, + ACTIONS(128), 1, + anon_sym_DASH, + ACTIONS(132), 1, + anon_sym_SLASH, + ACTIONS(134), 1, anon_sym_DOT, - ACTIONS(92), 1, + ACTIONS(136), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(138), 1, anon_sym_LBRACK, - ACTIONS(124), 1, - anon_sym_SLASH, STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, sym_parenthesis_expression_list, + STATE(36), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(116), 2, + ACTIONS(130), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(108), 4, + ACTIONS(122), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_DASH, - ACTIONS(110), 18, + ACTIONS(124), 17, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, - anon_sym_PLUS, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -5296,120 +5329,135 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1650] = 8, - ACTIONS(90), 1, + [1620] = 14, + ACTIONS(126), 1, + anon_sym_PLUS, + ACTIONS(128), 1, + anon_sym_DASH, + ACTIONS(132), 1, + anon_sym_SLASH, + ACTIONS(134), 1, anon_sym_DOT, - ACTIONS(92), 1, + ACTIONS(136), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(138), 1, anon_sym_LBRACK, + ACTIONS(140), 1, + anon_sym_PIPE, + ACTIONS(142), 1, + anon_sym_CARET, STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, sym_parenthesis_expression_list, + STATE(36), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(108), 5, + ACTIONS(130), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(122), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_DASH, - anon_sym_SLASH, - ACTIONS(110), 20, + ACTIONS(124), 15, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1699] = 3, + [1681] = 15, + ACTIONS(126), 1, + anon_sym_PLUS, + ACTIONS(128), 1, + anon_sym_DASH, + ACTIONS(132), 1, + anon_sym_SLASH, + ACTIONS(134), 1, + anon_sym_DOT, + ACTIONS(136), 1, + anon_sym_LPAREN, + ACTIONS(138), 1, + anon_sym_LBRACK, + ACTIONS(140), 1, + anon_sym_PIPE, + ACTIONS(142), 1, + anon_sym_CARET, + ACTIONS(144), 1, + anon_sym_AMP, + STATE(35), 1, + sym_parenthesis_expression_list, + STATE(36), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(142), 8, + ACTIONS(130), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(122), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(144), 22, + ACTIONS(124), 14, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1738] = 13, - ACTIONS(90), 1, + [1744] = 10, + ACTIONS(132), 1, + anon_sym_SLASH, + ACTIONS(134), 1, anon_sym_DOT, - ACTIONS(92), 1, + ACTIONS(136), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(138), 1, anon_sym_LBRACK, - ACTIONS(112), 1, - anon_sym_PLUS, - ACTIONS(114), 1, - anon_sym_DASH, - ACTIONS(122), 1, - anon_sym_CARET, - ACTIONS(124), 1, - anon_sym_SLASH, STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, sym_parenthesis_expression_list, + STATE(36), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(116), 2, + ACTIONS(130), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(108), 3, + ACTIONS(122), 4, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(110), 16, + anon_sym_DASH, + ACTIONS(124), 18, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, + anon_sym_PLUS, anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -5419,90 +5467,94 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1797] = 14, - ACTIONS(90), 1, + [1797] = 8, + ACTIONS(134), 1, anon_sym_DOT, - ACTIONS(92), 1, + ACTIONS(136), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(138), 1, anon_sym_LBRACK, - ACTIONS(112), 1, - anon_sym_PLUS, - ACTIONS(114), 1, - anon_sym_DASH, - ACTIONS(118), 1, - anon_sym_PIPE, - ACTIONS(122), 1, - anon_sym_CARET, - ACTIONS(124), 1, - anon_sym_SLASH, STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, sym_parenthesis_expression_list, + STATE(36), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(116), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(108), 3, + ACTIONS(146), 5, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(110), 15, + anon_sym_DASH, + anon_sym_SLASH, + ACTIONS(148), 20, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1858] = 3, + [1846] = 13, + ACTIONS(126), 1, + anon_sym_PLUS, + ACTIONS(128), 1, + anon_sym_DASH, + ACTIONS(132), 1, + anon_sym_SLASH, + ACTIONS(134), 1, + anon_sym_DOT, + ACTIONS(136), 1, + anon_sym_LPAREN, + ACTIONS(138), 1, + anon_sym_LBRACK, + ACTIONS(142), 1, + anon_sym_CARET, + STATE(35), 1, + sym_parenthesis_expression_list, + STATE(36), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(146), 8, + ACTIONS(130), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(122), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(148), 22, + ACTIONS(124), 16, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1897] = 3, + [1905] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -5538,39 +5590,34 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1936] = 12, - ACTIONS(90), 1, + [1944] = 8, + ACTIONS(134), 1, anon_sym_DOT, - ACTIONS(92), 1, + ACTIONS(136), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(138), 1, anon_sym_LBRACK, - ACTIONS(112), 1, - anon_sym_PLUS, - ACTIONS(114), 1, - anon_sym_DASH, - ACTIONS(124), 1, - anon_sym_SLASH, STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, sym_parenthesis_expression_list, + STATE(36), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(116), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(108), 3, + ACTIONS(122), 5, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(110), 17, + anon_sym_DASH, + anon_sym_SLASH, + ACTIONS(124), 20, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -5578,6 +5625,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_SEMI, @@ -5856,64 +5904,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [2290] = 17, - ACTIONS(92), 1, - anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(112), 1, - anon_sym_PLUS, - ACTIONS(114), 1, - anon_sym_DASH, - ACTIONS(118), 1, - anon_sym_PIPE, - ACTIONS(120), 1, - anon_sym_AMP, - ACTIONS(122), 1, - anon_sym_CARET, - ACTIONS(124), 1, - anon_sym_SLASH, - ACTIONS(188), 1, - anon_sym_EQ, - ACTIONS(194), 1, - anon_sym_DOT, - STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, - sym_parenthesis_expression_list, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(116), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(186), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(192), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - ACTIONS(190), 6, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LF, - [2353] = 12, + [2290] = 12, ACTIONS(13), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(196), 1, + ACTIONS(186), 1, sym_number, - STATE(49), 1, + STATE(48), 1, sym_template_global, - STATE(176), 1, + STATE(169), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -5924,7 +5926,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(214), 2, + STATE(208), 2, sym__type, sym_array_type, ACTIONS(35), 7, @@ -5943,15 +5945,15 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [2406] = 5, - ACTIONS(202), 1, + [2343] = 5, + ACTIONS(192), 1, anon_sym_LF, - STATE(44), 1, + STATE(43), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(198), 12, + ACTIONS(188), 12, anon_sym_reg, anon_sym_initial, anon_sym_if, @@ -5964,7 +5966,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_gen, anon_sym_DASH, sym_identifier, - ACTIONS(200), 12, + ACTIONS(190), 12, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DASH_GT, @@ -5977,179 +5979,193 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [2445] = 16, - ACTIONS(92), 1, + [2382] = 17, + ACTIONS(126), 1, + anon_sym_PLUS, + ACTIONS(128), 1, + anon_sym_DASH, + ACTIONS(132), 1, + anon_sym_SLASH, + ACTIONS(136), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(138), 1, anon_sym_LBRACK, - ACTIONS(118), 1, + ACTIONS(140), 1, anon_sym_PIPE, - ACTIONS(120), 1, - anon_sym_AMP, - ACTIONS(122), 1, + ACTIONS(142), 1, anon_sym_CARET, - ACTIONS(124), 1, - anon_sym_SLASH, - ACTIONS(194), 1, - anon_sym_DOT, - ACTIONS(205), 1, + ACTIONS(144), 1, + anon_sym_AMP, + ACTIONS(197), 1, anon_sym_EQ, + ACTIONS(203), 1, + anon_sym_DOT, STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, sym_parenthesis_expression_list, + STATE(36), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(112), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(116), 2, + ACTIONS(130), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(186), 2, + ACTIONS(195), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(207), 3, - anon_sym_RBRACE, - anon_sym_COMMA, - anon_sym_LF, - ACTIONS(192), 4, + ACTIONS(201), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2503] = 18, - ACTIONS(92), 1, + ACTIONS(199), 5, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LF, + [2444] = 16, + ACTIONS(132), 1, + anon_sym_SLASH, + ACTIONS(136), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(138), 1, anon_sym_LBRACK, - ACTIONS(118), 1, + ACTIONS(140), 1, anon_sym_PIPE, - ACTIONS(120), 1, - anon_sym_AMP, - ACTIONS(122), 1, + ACTIONS(142), 1, anon_sym_CARET, - ACTIONS(124), 1, - anon_sym_SLASH, - ACTIONS(194), 1, + ACTIONS(144), 1, + anon_sym_AMP, + ACTIONS(203), 1, anon_sym_DOT, - ACTIONS(209), 1, - anon_sym_RPAREN, - ACTIONS(211), 1, - anon_sym_COMMA, + ACTIONS(205), 1, + anon_sym_EQ, STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, sym_parenthesis_expression_list, - STATE(79), 1, - sym__comma, - STATE(162), 1, - aux_sym_parenthesis_expression_list_repeat1, + STATE(36), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(112), 2, + ACTIONS(126), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(116), 2, + ACTIONS(130), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(186), 2, + ACTIONS(195), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(192), 4, + ACTIONS(207), 3, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LF, + ACTIONS(201), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2565] = 16, - ACTIONS(92), 1, + [2502] = 16, + ACTIONS(132), 1, + anon_sym_SLASH, + ACTIONS(136), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(138), 1, anon_sym_LBRACK, - ACTIONS(118), 1, + ACTIONS(140), 1, anon_sym_PIPE, - ACTIONS(120), 1, - anon_sym_AMP, - ACTIONS(122), 1, + ACTIONS(142), 1, anon_sym_CARET, - ACTIONS(124), 1, - anon_sym_SLASH, - ACTIONS(194), 1, + ACTIONS(144), 1, + anon_sym_AMP, + ACTIONS(203), 1, anon_sym_DOT, - ACTIONS(213), 1, + ACTIONS(209), 1, anon_sym_EQ, STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, sym_parenthesis_expression_list, + STATE(36), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(112), 2, + ACTIONS(126), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(116), 2, + ACTIONS(130), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(186), 2, + ACTIONS(195), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(215), 3, + ACTIONS(211), 3, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, - ACTIONS(192), 4, + ACTIONS(201), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2623] = 6, - ACTIONS(65), 1, - anon_sym_COLON_COLON, - ACTIONS(217), 1, - anon_sym_EQ, - STATE(11), 1, - aux_sym_template_global_repeat1, + [2560] = 18, + ACTIONS(132), 1, + anon_sym_SLASH, + ACTIONS(136), 1, + anon_sym_LPAREN, + ACTIONS(138), 1, + anon_sym_LBRACK, + ACTIONS(140), 1, + anon_sym_PIPE, + ACTIONS(142), 1, + anon_sym_CARET, + ACTIONS(144), 1, + anon_sym_AMP, + ACTIONS(203), 1, + anon_sym_DOT, + ACTIONS(213), 1, + anon_sym_RPAREN, + ACTIONS(215), 1, + anon_sym_COMMA, + STATE(35), 1, + sym_parenthesis_expression_list, + STATE(36), 1, + sym_array_bracket_expression, + STATE(71), 1, + sym__comma, + STATE(160), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(82), 3, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, - ACTIONS(84), 16, + ACTIONS(126), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(130), 2, anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, + anon_sym_PERCENT, + ACTIONS(195), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(201), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_LBRACK, - anon_sym_SEMI, - anon_sym_COMMA, - [2660] = 5, - ACTIONS(219), 1, + [2622] = 5, + ACTIONS(217), 1, sym_identifier, - ACTIONS(225), 1, + ACTIONS(223), 1, anon_sym_LBRACK, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(221), 4, + ACTIONS(219), 4, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_SLASH, - ACTIONS(223), 16, + ACTIONS(221), 16, anon_sym_RBRACE, anon_sym_PLUS, anon_sym_DASH, @@ -6166,165 +6182,156 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COMMA, anon_sym_LF, - [2695] = 16, - ACTIONS(15), 1, - anon_sym_LBRACE, - ACTIONS(92), 1, - anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(118), 1, - anon_sym_PIPE, - ACTIONS(120), 1, - anon_sym_AMP, - ACTIONS(122), 1, - anon_sym_CARET, - ACTIONS(124), 1, - anon_sym_SLASH, - ACTIONS(194), 1, - anon_sym_DOT, - STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, - sym_parenthesis_expression_list, - STATE(210), 1, - sym_block, + [2657] = 6, + ACTIONS(65), 1, + anon_sym_COLON_COLON, + ACTIONS(226), 1, + anon_sym_EQ, + STATE(14), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(112), 2, + ACTIONS(67), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(69), 16, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(116), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(186), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(192), 4, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2751] = 16, - ACTIONS(15), 1, - anon_sym_LBRACE, - ACTIONS(92), 1, + anon_sym_PERCENT, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_COMMA, + [2694] = 15, + ACTIONS(132), 1, + anon_sym_SLASH, + ACTIONS(136), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(138), 1, anon_sym_LBRACK, - ACTIONS(118), 1, + ACTIONS(140), 1, anon_sym_PIPE, - ACTIONS(120), 1, - anon_sym_AMP, - ACTIONS(122), 1, + ACTIONS(142), 1, anon_sym_CARET, - ACTIONS(124), 1, - anon_sym_SLASH, - ACTIONS(194), 1, + ACTIONS(144), 1, + anon_sym_AMP, + ACTIONS(203), 1, anon_sym_DOT, STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, sym_parenthesis_expression_list, - STATE(231), 1, - sym_block, + STATE(36), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(112), 2, + ACTIONS(126), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(116), 2, + ACTIONS(130), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(186), 2, + ACTIONS(195), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(192), 4, + ACTIONS(228), 2, + anon_sym_SEMI, + anon_sym_COMMA, + ACTIONS(201), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2807] = 15, - ACTIONS(92), 1, + [2748] = 15, + ACTIONS(132), 1, + anon_sym_SLASH, + ACTIONS(136), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(138), 1, anon_sym_LBRACK, - ACTIONS(118), 1, + ACTIONS(140), 1, anon_sym_PIPE, - ACTIONS(120), 1, - anon_sym_AMP, - ACTIONS(122), 1, + ACTIONS(142), 1, anon_sym_CARET, - ACTIONS(124), 1, - anon_sym_SLASH, - ACTIONS(194), 1, + ACTIONS(144), 1, + anon_sym_AMP, + ACTIONS(203), 1, anon_sym_DOT, STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, sym_parenthesis_expression_list, + STATE(36), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(112), 2, + ACTIONS(126), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(116), 2, + ACTIONS(130), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(186), 2, + ACTIONS(195), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(228), 2, + ACTIONS(230), 2, anon_sym_SEMI, anon_sym_COMMA, - ACTIONS(192), 4, + ACTIONS(201), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2861] = 15, - ACTIONS(92), 1, + [2802] = 16, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(132), 1, + anon_sym_SLASH, + ACTIONS(136), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(138), 1, anon_sym_LBRACK, - ACTIONS(118), 1, + ACTIONS(140), 1, anon_sym_PIPE, - ACTIONS(120), 1, - anon_sym_AMP, - ACTIONS(122), 1, + ACTIONS(142), 1, anon_sym_CARET, - ACTIONS(124), 1, - anon_sym_SLASH, - ACTIONS(194), 1, + ACTIONS(144), 1, + anon_sym_AMP, + ACTIONS(203), 1, anon_sym_DOT, STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, sym_parenthesis_expression_list, + STATE(36), 1, + sym_array_bracket_expression, + STATE(220), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(112), 2, + ACTIONS(126), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(116), 2, + ACTIONS(130), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(186), 2, + ACTIONS(195), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(230), 2, - anon_sym_RBRACE, - anon_sym_LF, - ACTIONS(192), 4, + ACTIONS(201), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2915] = 9, + [2858] = 9, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, @@ -6335,7 +6342,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, ACTIONS(236), 1, sym_number, - STATE(154), 1, + STATE(147), 1, sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, @@ -6348,7 +6355,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(52), 8, + STATE(51), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6357,127 +6364,205 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2957] = 15, - ACTIONS(92), 1, + [2900] = 9, + ACTIONS(37), 1, anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(118), 1, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + ACTIONS(232), 1, + sym_identifier, + ACTIONS(236), 1, + sym_number, + ACTIONS(238), 1, + anon_sym_SEMI, + STATE(152), 1, + sym_template_value_param, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(35), 7, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, - ACTIONS(120), 1, anon_sym_AMP, - ACTIONS(122), 1, anon_sym_CARET, - ACTIONS(124), 1, + STATE(51), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_template_global, + [2942] = 15, + ACTIONS(132), 1, anon_sym_SLASH, - ACTIONS(194), 1, + ACTIONS(136), 1, + anon_sym_LPAREN, + ACTIONS(138), 1, + anon_sym_LBRACK, + ACTIONS(140), 1, + anon_sym_PIPE, + ACTIONS(142), 1, + anon_sym_CARET, + ACTIONS(144), 1, + anon_sym_AMP, + ACTIONS(203), 1, anon_sym_DOT, STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, sym_parenthesis_expression_list, + STATE(36), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(112), 2, + ACTIONS(126), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(116), 2, + ACTIONS(130), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(186), 2, + ACTIONS(195), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(238), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - ACTIONS(192), 4, + ACTIONS(240), 2, + anon_sym_RBRACE, + anon_sym_LF, + ACTIONS(201), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3011] = 15, - ACTIONS(92), 1, + [2996] = 15, + ACTIONS(132), 1, + anon_sym_SLASH, + ACTIONS(136), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(138), 1, anon_sym_LBRACK, - ACTIONS(118), 1, + ACTIONS(140), 1, anon_sym_PIPE, - ACTIONS(120), 1, - anon_sym_AMP, - ACTIONS(122), 1, + ACTIONS(142), 1, anon_sym_CARET, - ACTIONS(124), 1, - anon_sym_SLASH, - ACTIONS(194), 1, + ACTIONS(144), 1, + anon_sym_AMP, + ACTIONS(203), 1, anon_sym_DOT, STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, sym_parenthesis_expression_list, + STATE(36), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(112), 2, + ACTIONS(126), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(116), 2, + ACTIONS(130), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(186), 2, + ACTIONS(195), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(240), 2, - anon_sym_SEMI, + ACTIONS(242), 2, + anon_sym_RPAREN, anon_sym_COMMA, - ACTIONS(192), 4, + ACTIONS(201), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3065] = 9, - ACTIONS(37), 1, + [3050] = 16, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(132), 1, + anon_sym_SLASH, + ACTIONS(136), 1, anon_sym_LPAREN, - ACTIONS(39), 1, - anon_sym_COLON_COLON, - ACTIONS(232), 1, - sym_identifier, - ACTIONS(236), 1, - sym_number, - ACTIONS(242), 1, - anon_sym_SEMI, - STATE(144), 1, - sym_template_value_param, + ACTIONS(138), 1, + anon_sym_LBRACK, + ACTIONS(140), 1, + anon_sym_PIPE, + ACTIONS(142), 1, + anon_sym_CARET, + ACTIONS(144), 1, + anon_sym_AMP, + ACTIONS(203), 1, + anon_sym_DOT, + STATE(35), 1, + sym_parenthesis_expression_list, + STATE(36), 1, + sym_array_bracket_expression, + STATE(215), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(35), 7, + ACTIONS(126), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(130), 2, anon_sym_STAR, - anon_sym_BANG, + anon_sym_PERCENT, + ACTIONS(195), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(201), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [3106] = 15, + ACTIONS(132), 1, + anon_sym_SLASH, + ACTIONS(136), 1, + anon_sym_LPAREN, + ACTIONS(138), 1, + anon_sym_LBRACK, + ACTIONS(140), 1, anon_sym_PIPE, - anon_sym_AMP, + ACTIONS(142), 1, anon_sym_CARET, - STATE(52), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_template_global, - [3107] = 8, + ACTIONS(144), 1, + anon_sym_AMP, + ACTIONS(203), 1, + anon_sym_DOT, + ACTIONS(244), 1, + anon_sym_RPAREN, + STATE(35), 1, + sym_parenthesis_expression_list, + STATE(36), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(126), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(130), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(195), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(201), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [3159] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(244), 1, - sym_identifier, ACTIONS(246), 1, - anon_sym_RPAREN, + sym_identifier, ACTIONS(248), 1, + anon_sym_RPAREN, + ACTIONS(250), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6490,7 +6575,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(46), 8, + STATE(47), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6499,83 +6584,83 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3146] = 15, - ACTIONS(92), 1, + [3198] = 15, + ACTIONS(132), 1, + anon_sym_SLASH, + ACTIONS(136), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(138), 1, anon_sym_LBRACK, - ACTIONS(118), 1, + ACTIONS(140), 1, anon_sym_PIPE, - ACTIONS(120), 1, - anon_sym_AMP, - ACTIONS(122), 1, + ACTIONS(142), 1, anon_sym_CARET, - ACTIONS(124), 1, - anon_sym_SLASH, - ACTIONS(194), 1, + ACTIONS(144), 1, + anon_sym_AMP, + ACTIONS(203), 1, anon_sym_DOT, - ACTIONS(250), 1, + ACTIONS(252), 1, anon_sym_RBRACK, STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, sym_parenthesis_expression_list, + STATE(36), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(112), 2, + ACTIONS(126), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(116), 2, + ACTIONS(130), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(186), 2, + ACTIONS(195), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(192), 4, + ACTIONS(201), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3199] = 15, - ACTIONS(92), 1, + [3251] = 15, + ACTIONS(132), 1, + anon_sym_SLASH, + ACTIONS(136), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(138), 1, anon_sym_LBRACK, - ACTIONS(118), 1, + ACTIONS(140), 1, anon_sym_PIPE, - ACTIONS(120), 1, - anon_sym_AMP, - ACTIONS(122), 1, + ACTIONS(142), 1, anon_sym_CARET, - ACTIONS(124), 1, - anon_sym_SLASH, - ACTIONS(194), 1, + ACTIONS(144), 1, + anon_sym_AMP, + ACTIONS(203), 1, anon_sym_DOT, - ACTIONS(252), 1, + ACTIONS(254), 1, anon_sym_RBRACK, STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, sym_parenthesis_expression_list, + STATE(36), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(112), 2, + ACTIONS(126), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(116), 2, + ACTIONS(130), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(186), 2, + ACTIONS(195), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(192), 4, + ACTIONS(201), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3252] = 8, + [3304] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, @@ -6584,7 +6669,7 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(236), 1, sym_number, - STATE(239), 1, + STATE(224), 1, sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, @@ -6597,7 +6682,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(52), 8, + STATE(51), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6606,90 +6691,79 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3291] = 15, - ACTIONS(92), 1, + [3343] = 15, + ACTIONS(132), 1, + anon_sym_SLASH, + ACTIONS(134), 1, + anon_sym_DOT, + ACTIONS(136), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(138), 1, anon_sym_LBRACK, - ACTIONS(118), 1, + ACTIONS(140), 1, anon_sym_PIPE, - ACTIONS(120), 1, - anon_sym_AMP, - ACTIONS(122), 1, + ACTIONS(142), 1, anon_sym_CARET, - ACTIONS(124), 1, - anon_sym_SLASH, - ACTIONS(194), 1, - anon_sym_DOT, - ACTIONS(254), 1, - anon_sym_RPAREN, + ACTIONS(144), 1, + anon_sym_AMP, + ACTIONS(256), 1, + anon_sym_DOT_DOT, STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, sym_parenthesis_expression_list, + STATE(36), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(112), 2, + ACTIONS(126), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(116), 2, + ACTIONS(130), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(186), 2, + ACTIONS(195), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(192), 4, + ACTIONS(201), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3344] = 15, - ACTIONS(90), 1, - anon_sym_DOT, - ACTIONS(92), 1, - anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(118), 1, - anon_sym_PIPE, - ACTIONS(120), 1, - anon_sym_AMP, - ACTIONS(122), 1, - anon_sym_CARET, - ACTIONS(124), 1, - anon_sym_SLASH, - ACTIONS(256), 1, - anon_sym_DOT_DOT, - STATE(35), 1, - sym_array_bracket_expression, - STATE(41), 1, - sym_parenthesis_expression_list, + [3396] = 5, + ACTIONS(43), 1, + anon_sym_LF, + STATE(43), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(112), 2, + ACTIONS(258), 7, + anon_sym_reg, + anon_sym_initial, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(260), 10, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(116), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(186), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(192), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [3397] = 7, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, + [3428] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(244), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(258), 1, + ACTIONS(262), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6702,7 +6776,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(63), 8, + STATE(50), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6711,14 +6785,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3433] = 7, + [3464] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(244), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(260), 1, + ACTIONS(264), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6731,7 +6805,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(17), 8, + STATE(63), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6740,14 +6814,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3469] = 7, + [3500] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(244), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(262), 1, + ACTIONS(266), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6760,7 +6834,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(42), 8, + STATE(55), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6769,14 +6843,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3505] = 7, + [3536] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(244), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(264), 1, + ACTIONS(268), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6789,7 +6863,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(51), 8, + STATE(30), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6798,14 +6872,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3541] = 7, + [3572] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(244), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(266), 1, + ACTIONS(270), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6818,7 +6892,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(56), 8, + STATE(60), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6827,14 +6901,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3577] = 7, + [3608] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(244), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(268), 1, + ACTIONS(272), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6847,7 +6921,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(30), 8, + STATE(58), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6856,14 +6930,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3613] = 7, + [3644] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(244), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(270), 1, + ACTIONS(274), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6876,7 +6950,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(60), 8, + STATE(56), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6885,14 +6959,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3649] = 7, + [3680] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(244), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(272), 1, + ACTIONS(276), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6905,7 +6979,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(29), 8, + STATE(44), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6914,14 +6988,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3685] = 7, + [3716] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(244), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(274), 1, + ACTIONS(278), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6934,7 +7008,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(53), 8, + STATE(57), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6943,14 +7017,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3721] = 7, + [3752] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(244), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(276), 1, + ACTIONS(280), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6963,7 +7037,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(50), 8, + STATE(26), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6972,41 +7046,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3757] = 5, - ACTIONS(282), 1, - anon_sym_LF, - STATE(80), 1, - aux_sym__linebreak, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(278), 7, - anon_sym_reg, - anon_sym_initial, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(280), 10, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_COLON_COLON, - sym_number, - [3789] = 7, + [3788] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(244), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(284), 1, + ACTIONS(282), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7019,7 +7066,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(33), 8, + STATE(27), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7028,14 +7075,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3825] = 7, + [3824] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(244), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(286), 1, + ACTIONS(284), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7048,7 +7095,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(62), 8, + STATE(31), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7057,14 +7104,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3861] = 7, + [3860] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(244), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(286), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7077,7 +7124,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(27), 8, + STATE(52), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7086,14 +7133,41 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3897] = 7, + [3896] = 5, + ACTIONS(292), 1, + anon_sym_LF, + STATE(64), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(288), 7, + anon_sym_reg, + anon_sym_initial, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(290), 10, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, + [3928] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(244), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(290), 1, + ACTIONS(294), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7106,7 +7180,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(59), 8, + STATE(61), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7115,14 +7189,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3933] = 7, + [3964] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(244), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(292), 1, + ACTIONS(296), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7135,7 +7209,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(55), 8, + STATE(33), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7144,39 +7218,12 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3969] = 5, - ACTIONS(43), 1, - anon_sym_LF, - STATE(44), 1, - aux_sym__linebreak, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(294), 7, - anon_sym_reg, - anon_sym_initial, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(296), 10, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_COLON_COLON, - sym_number, - [4001] = 7, + [4000] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(244), 1, + ACTIONS(246), 1, sym_identifier, ACTIONS(298), 1, sym_number, @@ -7191,7 +7238,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(21), 8, + STATE(29), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7200,12 +7247,12 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [4037] = 7, + [4036] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(244), 1, + ACTIONS(246), 1, sym_identifier, ACTIONS(300), 1, sym_number, @@ -7220,7 +7267,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(26), 8, + STATE(28), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7229,10 +7276,10 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [4073] = 5, - ACTIONS(304), 1, + [4072] = 5, + ACTIONS(19), 1, anon_sym_reg, - STATE(83), 1, + STATE(84), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, @@ -7243,7 +7290,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(307), 10, + ACTIONS(304), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7254,15 +7301,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [4103] = 5, - ACTIONS(19), 1, + [4102] = 5, + ACTIONS(308), 1, anon_sym_reg, - STATE(83), 1, + STATE(84), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(309), 5, + ACTIONS(306), 5, anon_sym_input, anon_sym_output, anon_sym_state, @@ -7279,7 +7326,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [4133] = 3, + [4132] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -7301,7 +7348,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [4158] = 3, + [4157] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -7322,22 +7369,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [4182] = 12, + [4181] = 12, ACTIONS(13), 1, sym_identifier, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(43), 1, - anon_sym_LF, ACTIONS(321), 1, anon_sym_DASH_GT, - STATE(44), 1, + ACTIONS(323), 1, + anon_sym_LF, + STATE(88), 1, aux_sym__linebreak, - STATE(112), 1, + STATE(115), 1, sym_declaration, - STATE(124), 1, + STATE(143), 1, sym_declaration_list, - STATE(218), 1, + STATE(229), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, @@ -7348,26 +7395,26 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(214), 3, + STATE(208), 3, sym__type, sym_array_type, sym_template_global, - [4224] = 12, + [4223] = 12, ACTIONS(13), 1, sym_identifier, ACTIONS(39), 1, anon_sym_COLON_COLON, + ACTIONS(43), 1, + anon_sym_LF, ACTIONS(321), 1, anon_sym_DASH_GT, - ACTIONS(323), 1, - anon_sym_LF, - STATE(87), 1, + STATE(43), 1, aux_sym__linebreak, - STATE(112), 1, + STATE(115), 1, sym_declaration, - STATE(127), 1, + STATE(174), 1, sym_declaration_list, - STATE(209), 1, + STATE(238), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, @@ -7378,11 +7425,11 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(214), 3, + STATE(208), 3, sym__type, sym_array_type, sym_template_global, - [4266] = 10, + [4265] = 10, ACTIONS(13), 1, sym_identifier, ACTIONS(39), 1, @@ -7391,9 +7438,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, STATE(90), 1, aux_sym__linebreak, - STATE(112), 1, + STATE(115), 1, sym_declaration, - STATE(212), 1, + STATE(232), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, @@ -7404,22 +7451,22 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(214), 3, + STATE(208), 3, sym__type, sym_array_type, sym_template_global, - [4302] = 10, + [4301] = 10, ACTIONS(13), 1, sym_identifier, ACTIONS(39), 1, anon_sym_COLON_COLON, ACTIONS(43), 1, anon_sym_LF, - STATE(44), 1, + STATE(43), 1, aux_sym__linebreak, - STATE(112), 1, + STATE(115), 1, sym_declaration, - STATE(207), 1, + STATE(218), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, @@ -7430,16 +7477,16 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(214), 3, + STATE(208), 3, sym__type, sym_array_type, sym_template_global, - [4338] = 7, + [4337] = 7, ACTIONS(13), 1, sym_identifier, ACTIONS(39), 1, anon_sym_COLON_COLON, - STATE(136), 1, + STATE(239), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -7450,610 +7497,588 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(214), 3, + STATE(208), 3, sym__type, sym_array_type, sym_template_global, - [4365] = 7, - ACTIONS(13), 1, - sym_identifier, - ACTIONS(39), 1, - anon_sym_COLON_COLON, - STATE(246), 1, - sym_declaration, + [4364] = 8, + ACTIONS(327), 1, + ts_builtin_sym_end, + ACTIONS(329), 1, + anon_sym_LF, + STATE(99), 1, + aux_sym__linebreak, + STATE(227), 1, + sym_source_obj, + STATE(235), 1, + sym_global_object, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 2, - anon_sym_input, - anon_sym_output, - ACTIONS(33), 2, - anon_sym_state, - anon_sym_gen, - STATE(214), 3, - sym__type, - sym_array_type, - sym_template_global, - [4392] = 4, - ACTIONS(329), 1, - anon_sym_SQUOTE, - STATE(107), 1, - sym_latency_specifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(327), 7, - anon_sym_EQ, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LF, - [4412] = 4, + ACTIONS(7), 2, + anon_sym___builtin__, + anon_sym_extern, + ACTIONS(9), 3, + anon_sym_module, + anon_sym_function, + anon_sym_struct, + [4393] = 8, ACTIONS(329), 1, - anon_sym_SQUOTE, - STATE(103), 1, - sym_latency_specifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(331), 7, - anon_sym_EQ, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DASH_GT, - anon_sym_COMMA, anon_sym_LF, - [4432] = 4, - ACTIONS(329), 1, - anon_sym_SQUOTE, - STATE(115), 1, - sym_latency_specifier, + ACTIONS(331), 1, + ts_builtin_sym_end, + STATE(99), 1, + aux_sym__linebreak, + STATE(227), 1, + sym_source_obj, + STATE(235), 1, + sym_global_object, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(333), 7, - anon_sym_EQ, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LF, - [4452] = 4, + ACTIONS(7), 2, + anon_sym___builtin__, + anon_sym_extern, + ACTIONS(9), 3, + anon_sym_module, + anon_sym_function, + anon_sym_struct, + [4422] = 8, ACTIONS(329), 1, - anon_sym_SQUOTE, - STATE(102), 1, - sym_latency_specifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(335), 7, - anon_sym_EQ, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DASH_GT, - anon_sym_COMMA, anon_sym_LF, - [4472] = 8, - ACTIONS(9), 1, - anon_sym_module, - ACTIONS(337), 1, + ACTIONS(333), 1, ts_builtin_sym_end, - ACTIONS(339), 1, - anon_sym_LF, - STATE(121), 1, + STATE(99), 1, aux_sym__linebreak, - STATE(230), 1, + STATE(227), 1, sym_source_obj, - STATE(238), 1, - sym_module, + STATE(235), 1, + sym_global_object, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(7), 2, anon_sym___builtin__, anon_sym_extern, - [4499] = 8, - ACTIONS(9), 1, + ACTIONS(9), 3, anon_sym_module, - ACTIONS(339), 1, + anon_sym_function, + anon_sym_struct, + [4451] = 7, + ACTIONS(13), 1, + sym_identifier, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + STATE(191), 1, + sym_declaration, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(31), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(33), 2, + anon_sym_state, + anon_sym_gen, + STATE(208), 3, + sym__type, + sym_array_type, + sym_template_global, + [4478] = 8, + ACTIONS(329), 1, anon_sym_LF, - ACTIONS(341), 1, + ACTIONS(335), 1, ts_builtin_sym_end, - STATE(121), 1, + STATE(99), 1, aux_sym__linebreak, - STATE(192), 1, + STATE(180), 1, sym_source_obj, - STATE(238), 1, - sym_module, + STATE(235), 1, + sym_global_object, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(7), 2, anon_sym___builtin__, anon_sym_extern, - [4526] = 8, - ACTIONS(9), 1, + ACTIONS(9), 3, anon_sym_module, - ACTIONS(339), 1, + anon_sym_function, + anon_sym_struct, + [4507] = 8, + ACTIONS(329), 1, anon_sym_LF, - ACTIONS(343), 1, + ACTIONS(337), 1, ts_builtin_sym_end, - STATE(121), 1, + STATE(99), 1, aux_sym__linebreak, - STATE(230), 1, + STATE(227), 1, sym_source_obj, - STATE(238), 1, - sym_module, + STATE(235), 1, + sym_global_object, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(7), 2, anon_sym___builtin__, anon_sym_extern, - [4553] = 8, - ACTIONS(9), 1, + ACTIONS(9), 3, anon_sym_module, - ACTIONS(339), 1, + anon_sym_function, + anon_sym_struct, + [4536] = 7, + ACTIONS(329), 1, anon_sym_LF, - ACTIONS(345), 1, - ts_builtin_sym_end, - STATE(121), 1, + STATE(99), 1, aux_sym__linebreak, - STATE(230), 1, + STATE(227), 1, sym_source_obj, - STATE(238), 1, - sym_module, + STATE(235), 1, + sym_global_object, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(7), 2, anon_sym___builtin__, anon_sym_extern, - [4580] = 8, - ACTIONS(9), 1, + ACTIONS(9), 3, anon_sym_module, + anon_sym_function, + anon_sym_struct, + [4562] = 4, ACTIONS(339), 1, anon_sym_LF, - ACTIONS(347), 1, - ts_builtin_sym_end, - STATE(121), 1, + STATE(99), 1, aux_sym__linebreak, - STATE(230), 1, - sym_source_obj, - STATE(238), 1, - sym_module, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(7), 2, + ACTIONS(190), 6, + ts_builtin_sym_end, anon_sym___builtin__, anon_sym_extern, - [4607] = 2, + anon_sym_module, + anon_sym_function, + anon_sym_struct, + [4581] = 4, + ACTIONS(344), 1, + anon_sym_SQUOTE, + STATE(120), 1, + sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(349), 7, + ACTIONS(342), 6, anon_sym_EQ, - anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4621] = 2, + [4600] = 4, + ACTIONS(344), 1, + anon_sym_SQUOTE, + STATE(116), 1, + sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(351), 7, + ACTIONS(346), 6, + anon_sym_EQ, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LF, + [4619] = 4, + ACTIONS(344), 1, + anon_sym_SQUOTE, + STATE(119), 1, + sym_latency_specifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(348), 6, + anon_sym_EQ, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LF, + [4638] = 4, + ACTIONS(344), 1, + anon_sym_SQUOTE, + STATE(114), 1, + sym_latency_specifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(350), 6, anon_sym_EQ, - anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4635] = 6, - ACTIONS(353), 1, + [4657] = 5, + ACTIONS(13), 1, sym_identifier, - ACTIONS(355), 1, - anon_sym_GT, - ACTIONS(357), 1, + ACTIONS(39), 1, anon_sym_COLON_COLON, - STATE(150), 1, - sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(180), 3, + ACTIONS(352), 2, + anon_sym_state, + anon_sym_gen, + STATE(211), 3, sym__type, sym_array_type, sym_template_global, - [4657] = 6, - ACTIONS(353), 1, + [4677] = 6, + ACTIONS(354), 1, sym_identifier, - ACTIONS(357), 1, - anon_sym_COLON_COLON, - ACTIONS(359), 1, + ACTIONS(356), 1, anon_sym_GT, - STATE(158), 1, + ACTIONS(358), 1, + anon_sym_COLON_COLON, + STATE(170), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(180), 3, + STATE(178), 3, sym__type, sym_array_type, sym_template_global, - [4679] = 6, - ACTIONS(353), 1, + [4699] = 6, + ACTIONS(354), 1, sym_identifier, - ACTIONS(357), 1, + ACTIONS(358), 1, anon_sym_COLON_COLON, - ACTIONS(361), 1, + ACTIONS(360), 1, anon_sym_GT, - STATE(161), 1, + STATE(166), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(180), 3, + STATE(178), 3, sym__type, sym_array_type, sym_template_global, - [4701] = 2, + [4721] = 6, + ACTIONS(354), 1, + sym_identifier, + ACTIONS(358), 1, + anon_sym_COLON_COLON, + ACTIONS(362), 1, + anon_sym_GT, + STATE(156), 1, + sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(363), 7, - anon_sym_EQ, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LF, - [4715] = 5, - ACTIONS(211), 1, - anon_sym_COMMA, - STATE(91), 1, - sym__comma, - STATE(111), 1, - aux_sym_declaration_list_repeat1, + STATE(178), 3, + sym__type, + sym_array_type, + sym_template_global, + [4743] = 6, + ACTIONS(354), 1, + sym_identifier, + ACTIONS(358), 1, + anon_sym_COLON_COLON, + ACTIONS(364), 1, + anon_sym_GT, + STATE(198), 1, + sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(365), 4, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DASH_GT, - anon_sym_LF, - [4735] = 6, - ACTIONS(353), 1, + STATE(178), 3, + sym__type, + sym_array_type, + sym_template_global, + [4765] = 6, + ACTIONS(354), 1, sym_identifier, - ACTIONS(357), 1, + ACTIONS(358), 1, anon_sym_COLON_COLON, - ACTIONS(367), 1, + ACTIONS(366), 1, anon_sym_GT, - STATE(202), 1, + STATE(179), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(180), 3, + STATE(178), 3, sym__type, sym_array_type, sym_template_global, - [4757] = 5, - ACTIONS(13), 1, + [4787] = 6, + ACTIONS(354), 1, sym_identifier, - ACTIONS(39), 1, + ACTIONS(358), 1, anon_sym_COLON_COLON, + ACTIONS(368), 1, + anon_sym_GT, + STATE(206), 1, + sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(369), 2, - anon_sym_state, - anon_sym_gen, - STATE(221), 3, + STATE(178), 3, sym__type, sym_array_type, sym_template_global, - [4777] = 5, - ACTIONS(373), 1, + [4809] = 5, + ACTIONS(215), 1, anon_sym_COMMA, - STATE(91), 1, + STATE(95), 1, sym__comma, - STATE(111), 1, + STATE(118), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(371), 4, - anon_sym_LBRACE, + ACTIONS(370), 3, anon_sym_RBRACE, anon_sym_DASH_GT, anon_sym_LF, - [4797] = 5, - ACTIONS(211), 1, + [4828] = 5, + ACTIONS(215), 1, anon_sym_COMMA, - STATE(91), 1, + STATE(11), 1, sym__comma, - STATE(108), 1, - aux_sym_declaration_list_repeat1, + STATE(117), 1, + aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(376), 4, - anon_sym_LBRACE, + ACTIONS(372), 3, + anon_sym_EQ, anon_sym_RBRACE, - anon_sym_DASH_GT, anon_sym_LF, - [4817] = 6, - ACTIONS(353), 1, - sym_identifier, - ACTIONS(357), 1, + [4847] = 5, + ACTIONS(374), 1, + anon_sym_EQ, + ACTIONS(376), 1, anon_sym_COLON_COLON, - ACTIONS(378), 1, - anon_sym_GT, - STATE(181), 1, - sym_template_type_param, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(180), 3, - sym__type, - sym_array_type, - sym_template_global, - [4839] = 7, - ACTIONS(9), 1, - anon_sym_module, - ACTIONS(339), 1, - anon_sym_LF, - STATE(121), 1, - aux_sym__linebreak, - STATE(230), 1, - sym_source_obj, - STATE(238), 1, - sym_module, + STATE(123), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(7), 2, - anon_sym___builtin__, - anon_sym_extern, - [4863] = 2, + ACTIONS(69), 3, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + [4866] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(380), 7, + ACTIONS(378), 6, anon_sym_EQ, - anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4877] = 6, - ACTIONS(353), 1, - sym_identifier, - ACTIONS(357), 1, - anon_sym_COLON_COLON, - ACTIONS(382), 1, - anon_sym_GT, - STATE(196), 1, - sym_template_type_param, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(180), 3, - sym__type, - sym_array_type, - sym_template_global, - [4899] = 5, - ACTIONS(211), 1, + [4879] = 5, + ACTIONS(215), 1, anon_sym_COMMA, - STATE(13), 1, + STATE(95), 1, sym__comma, - STATE(119), 1, - aux_sym_assign_left_side_repeat1, + STATE(111), 1, + aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(384), 3, - anon_sym_EQ, + ACTIONS(380), 3, anon_sym_RBRACE, + anon_sym_DASH_GT, anon_sym_LF, - [4918] = 5, - ACTIONS(386), 1, - anon_sym_EQ, - ACTIONS(388), 1, - anon_sym_COLON_COLON, - STATE(132), 1, - aux_sym_template_global_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(84), 3, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COMMA, - [4937] = 5, - ACTIONS(392), 1, - anon_sym_COMMA, - STATE(13), 1, - sym__comma, - STATE(119), 1, - aux_sym_assign_left_side_repeat1, + [4898] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(390), 3, + ACTIONS(382), 6, anon_sym_EQ, anon_sym_RBRACE, + anon_sym_in, + anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_LF, - [4956] = 5, - ACTIONS(211), 1, + [4911] = 5, + ACTIONS(215), 1, anon_sym_COMMA, - STATE(13), 1, + STATE(11), 1, sym__comma, - STATE(117), 1, + STATE(122), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(395), 3, + ACTIONS(384), 3, anon_sym_EQ, anon_sym_RBRACE, anon_sym_LF, - [4975] = 4, - ACTIONS(397), 1, - anon_sym_LF, - STATE(121), 1, - aux_sym__linebreak, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(200), 4, - ts_builtin_sym_end, - anon_sym___builtin__, - anon_sym_extern, - anon_sym_module, - [4992] = 5, - ACTIONS(353), 1, - sym_identifier, - ACTIONS(357), 1, - anon_sym_COLON_COLON, - STATE(226), 1, - sym_template_type_param, + [4930] = 5, + ACTIONS(388), 1, + anon_sym_COMMA, + STATE(95), 1, + sym__comma, + STATE(118), 1, + aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(180), 3, - sym__type, - sym_array_type, - sym_template_global, - [5011] = 6, - ACTIONS(15), 1, - anon_sym_LBRACE, - ACTIONS(402), 1, - anon_sym_COLON, - STATE(156), 1, - sym_interface_ports, - STATE(240), 1, - sym_block, + ACTIONS(386), 3, + anon_sym_RBRACE, + anon_sym_DASH_GT, + anon_sym_LF, + [4949] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(400), 2, + ACTIONS(391), 6, + anon_sym_EQ, anon_sym_RBRACE, - anon_sym_LF, - [5032] = 4, - ACTIONS(321), 1, + anon_sym_in, anon_sym_DASH_GT, - STATE(216), 1, - sym__interface_ports_output, + anon_sym_COMMA, + anon_sym_LF, + [4962] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(404), 3, - anon_sym_LBRACE, + ACTIONS(393), 6, + anon_sym_EQ, anon_sym_RBRACE, + anon_sym_in, + anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_LF, - [5048] = 4, - ACTIONS(357), 1, - anon_sym_COLON_COLON, - ACTIONS(406), 1, + [4975] = 5, + ACTIONS(354), 1, sym_identifier, + ACTIONS(358), 1, + anon_sym_COLON_COLON, + STATE(222), 1, + sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(206), 3, + STATE(178), 3, sym__type, sym_array_type, sym_template_global, - [5064] = 4, - ACTIONS(39), 1, - anon_sym_COLON_COLON, - ACTIONS(244), 1, - sym_identifier, + [4994] = 5, + ACTIONS(397), 1, + anon_sym_COMMA, + STATE(11), 1, + sym__comma, + STATE(122), 1, + aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(217), 3, - sym__type, - sym_array_type, - sym_template_global, - [5080] = 4, - ACTIONS(321), 1, - anon_sym_DASH_GT, - STATE(208), 1, - sym__interface_ports_output, + ACTIONS(395), 3, + anon_sym_EQ, + anon_sym_RBRACE, + anon_sym_LF, + [5013] = 4, + ACTIONS(376), 1, + anon_sym_COLON_COLON, + STATE(128), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(408), 3, - anon_sym_LBRACE, + ACTIONS(73), 3, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + [5029] = 6, + ACTIONS(400), 1, + anon_sym_EQ, + ACTIONS(402), 1, anon_sym_RBRACE, + ACTIONS(404), 1, anon_sym_LF, - [5096] = 6, - ACTIONS(410), 1, + STATE(2), 1, + aux_sym__linebreak, + STATE(171), 1, + aux_sym_block_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5049] = 6, + ACTIONS(400), 1, anon_sym_EQ, - ACTIONS(412), 1, + ACTIONS(406), 1, anon_sym_RBRACE, - ACTIONS(414), 1, + ACTIONS(408), 1, anon_sym_LF, - STATE(4), 1, + STATE(6), 1, aux_sym__linebreak, - STATE(177), 1, + STATE(138), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5116] = 4, - ACTIONS(39), 1, + [5069] = 4, + ACTIONS(376), 1, anon_sym_COLON_COLON, - ACTIONS(244), 1, + STATE(128), 1, + aux_sym_template_global_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(77), 3, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + [5085] = 4, + ACTIONS(358), 1, + anon_sym_COLON_COLON, + ACTIONS(410), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(220), 3, + STATE(158), 3, sym__type, sym_array_type, sym_template_global, - [5132] = 4, - ACTIONS(388), 1, + [5101] = 4, + ACTIONS(412), 1, anon_sym_COLON_COLON, - STATE(132), 1, + STATE(128), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(84), 3, + ACTIONS(81), 3, anon_sym_GT, anon_sym_LBRACK, anon_sym_COMMA, - [5148] = 4, - ACTIONS(388), 1, + [5117] = 4, + ACTIONS(358), 1, anon_sym_COLON_COLON, - STATE(133), 1, - aux_sym_template_global_repeat1, + ACTIONS(410), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(69), 3, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COMMA, - [5164] = 4, - ACTIONS(388), 1, + STATE(200), 3, + sym__type, + sym_array_type, + sym_template_global, + [5133] = 4, + ACTIONS(376), 1, anon_sym_COLON_COLON, - STATE(135), 1, + STATE(126), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, @@ -8062,463 +8087,413 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_LBRACK, anon_sym_COMMA, - [5180] = 4, - ACTIONS(388), 1, + [5149] = 4, + ACTIONS(39), 1, anon_sym_COLON_COLON, - STATE(135), 1, - aux_sym_template_global_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(73), 3, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COMMA, - [5196] = 6, - ACTIONS(410), 1, - anon_sym_EQ, - ACTIONS(416), 1, - anon_sym_RBRACE, - ACTIONS(418), 1, - anon_sym_LF, - STATE(3), 1, - aux_sym__linebreak, - STATE(191), 1, - aux_sym_block_repeat1, + ACTIONS(246), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5216] = 4, - ACTIONS(420), 1, + STATE(212), 3, + sym__type, + sym_array_type, + sym_template_global, + [5165] = 4, + ACTIONS(376), 1, anon_sym_COLON_COLON, - STATE(135), 1, + STATE(123), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(77), 3, + ACTIONS(69), 3, anon_sym_GT, anon_sym_LBRACK, anon_sym_COMMA, - [5232] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(423), 5, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LF, - [5244] = 4, - ACTIONS(357), 1, + [5181] = 4, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(406), 1, + ACTIONS(246), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(167), 3, + STATE(216), 3, sym__type, sym_array_type, sym_template_global, - [5260] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(425), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5271] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(144), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, + [5197] = 5, + ACTIONS(415), 1, + anon_sym_RPAREN, + ACTIONS(417), 1, anon_sym_COMMA, - [5282] = 4, - ACTIONS(15), 1, - anon_sym_LBRACE, - ACTIONS(427), 1, - anon_sym_if, + STATE(71), 1, + sym__comma, + STATE(134), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(234), 2, - sym_block, - sym_if_statement, - [5297] = 2, + [5214] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(429), 4, + ACTIONS(420), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5308] = 5, - ACTIONS(431), 1, + [5225] = 3, + STATE(237), 1, + sym_global_object, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(9), 3, + anon_sym_module, + anon_sym_function, + anon_sym_struct, + [5238] = 5, + ACTIONS(422), 1, anon_sym_RBRACE, - ACTIONS(433), 1, + ACTIONS(424), 1, anon_sym_LF, STATE(5), 1, aux_sym__linebreak, - STATE(148), 1, + STATE(144), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5325] = 5, - ACTIONS(211), 1, - anon_sym_COMMA, - ACTIONS(435), 1, - anon_sym_SEMI, - STATE(61), 1, - sym__comma, - STATE(205), 1, - aux_sym_template_params_repeat1, + [5255] = 5, + ACTIONS(426), 1, + anon_sym_RBRACE, + ACTIONS(428), 1, + anon_sym_LF, + STATE(4), 1, + aux_sym__linebreak, + STATE(144), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5342] = 5, - ACTIONS(211), 1, - anon_sym_COMMA, - ACTIONS(437), 1, - anon_sym_SEMI, - STATE(61), 1, - sym__comma, - STATE(143), 1, - aux_sym_template_params_repeat1, + [5272] = 4, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(430), 1, + anon_sym_if, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5359] = 2, + STATE(226), 2, + sym_block, + sym_if_statement, + [5287] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(439), 4, + ACTIONS(432), 4, anon_sym_EQ, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, - [5370] = 2, + [5298] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(441), 4, + ACTIONS(434), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5381] = 5, - ACTIONS(211), 1, + [5309] = 5, + ACTIONS(215), 1, anon_sym_COMMA, - ACTIONS(443), 1, - anon_sym_GT, - STATE(122), 1, + ACTIONS(436), 1, + anon_sym_SEMI, + STATE(62), 1, sym__comma, - STATE(203), 1, - aux_sym_template_params_repeat2, + STATE(199), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5398] = 5, - ACTIONS(445), 1, + [5326] = 4, + ACTIONS(321), 1, + anon_sym_DASH_GT, + STATE(219), 1, + sym__interface_ports_output, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(438), 2, anon_sym_RBRACE, - ACTIONS(447), 1, + anon_sym_LF, + [5341] = 5, + ACTIONS(440), 1, + anon_sym_RBRACE, + ACTIONS(442), 1, anon_sym_LF, STATE(10), 1, aux_sym__linebreak, - STATE(148), 1, + STATE(144), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5415] = 2, + [5358] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(441), 4, + ACTIONS(434), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5426] = 5, - ACTIONS(211), 1, - anon_sym_COMMA, - ACTIONS(450), 1, - anon_sym_GT, - STATE(122), 1, - sym__comma, - STATE(147), 1, - aux_sym_template_params_repeat2, + [5369] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5443] = 5, - ACTIONS(211), 1, - anon_sym_COMMA, - ACTIONS(452), 1, + ACTIONS(92), 4, anon_sym_GT, - STATE(122), 1, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5380] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + ACTIONS(445), 1, + anon_sym_SEMI, + STATE(62), 1, sym__comma, - STATE(203), 1, - aux_sym_template_params_repeat2, + STATE(142), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5460] = 2, + [5397] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(454), 4, + ACTIONS(447), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5471] = 5, - ACTIONS(456), 1, - ts_builtin_sym_end, - ACTIONS(458), 1, - anon_sym_LF, - STATE(99), 1, - aux_sym__linebreak, - STATE(187), 1, - aux_sym_source_file_repeat1, + [5408] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5488] = 5, - ACTIONS(211), 1, + ACTIONS(152), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, anon_sym_COMMA, - ACTIONS(460), 1, + [5419] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + ACTIONS(449), 1, + anon_sym_GT, + STATE(121), 1, + sym__comma, + STATE(202), 1, + aux_sym_template_params_repeat2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5436] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(104), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5447] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + ACTIONS(451), 1, anon_sym_SEMI, - STATE(61), 1, + STATE(62), 1, sym__comma, - STATE(185), 1, + STATE(183), 1, aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5505] = 2, + [5464] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(462), 4, + ACTIONS(453), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5516] = 4, - ACTIONS(15), 1, - anon_sym_LBRACE, + [5475] = 5, + ACTIONS(455), 1, + anon_sym_GT, + ACTIONS(457), 1, + anon_sym_COMMA, + STATE(154), 1, + aux_sym_template_declaration_arguments_repeat1, STATE(233), 1, - sym_block, + sym__comma, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(464), 2, - anon_sym_RBRACE, - anon_sym_LF, - [5531] = 2, + [5492] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(462), 4, + ACTIONS(453), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5542] = 5, - ACTIONS(211), 1, + [5503] = 5, + ACTIONS(215), 1, anon_sym_COMMA, - ACTIONS(466), 1, + ACTIONS(460), 1, anon_sym_GT, - STATE(122), 1, + STATE(121), 1, sym__comma, - STATE(151), 1, + STATE(150), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5559] = 5, - ACTIONS(211), 1, + [5520] = 5, + ACTIONS(215), 1, anon_sym_COMMA, - ACTIONS(468), 1, + ACTIONS(462), 1, anon_sym_GT, - STATE(122), 1, + STATE(121), 1, sym__comma, - STATE(203), 1, + STATE(202), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5576] = 5, - ACTIONS(470), 1, - anon_sym_GT, - ACTIONS(472), 1, - anon_sym_COMMA, - STATE(160), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(224), 1, - sym__comma, + [5537] = 4, + ACTIONS(466), 1, + anon_sym_LBRACK, + STATE(167), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5593] = 5, - ACTIONS(211), 1, - anon_sym_COMMA, - ACTIONS(475), 1, + ACTIONS(464), 2, anon_sym_GT, - STATE(122), 1, - sym__comma, - STATE(159), 1, - aux_sym_template_params_repeat2, + anon_sym_COMMA, + [5552] = 5, + ACTIONS(406), 1, + anon_sym_RBRACE, + ACTIONS(408), 1, + anon_sym_LF, + STATE(6), 1, + aux_sym__linebreak, + STATE(137), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5610] = 5, - ACTIONS(211), 1, + [5569] = 5, + ACTIONS(215), 1, anon_sym_COMMA, - ACTIONS(477), 1, + ACTIONS(468), 1, anon_sym_RPAREN, - STATE(79), 1, + STATE(71), 1, sym__comma, - STATE(188), 1, + STATE(134), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5627] = 2, + [5586] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(479), 4, + ACTIONS(470), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5638] = 2, + [5597] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(481), 4, + ACTIONS(472), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5649] = 5, - ACTIONS(15), 1, - anon_sym_LBRACE, - ACTIONS(483), 1, - anon_sym_LT, - STATE(228), 1, - sym_template_declaration_arguments, - STATE(229), 1, - sym_block, + [5608] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5666] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(481), 4, + ACTIONS(474), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5677] = 4, - ACTIONS(487), 1, - anon_sym_LBRACK, - STATE(174), 1, - sym_array_bracket_expression, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(485), 2, - anon_sym_GT, - anon_sym_COMMA, - [5692] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(98), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5703] = 5, - ACTIONS(416), 1, - anon_sym_RBRACE, - ACTIONS(418), 1, - anon_sym_LF, - STATE(3), 1, - aux_sym__linebreak, - STATE(142), 1, - aux_sym_block_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5720] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(106), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5731] = 2, + [5619] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(489), 4, + ACTIONS(472), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5742] = 2, + [5630] = 5, + ACTIONS(476), 1, + ts_builtin_sym_end, + ACTIONS(478), 1, + anon_sym_LF, + STATE(94), 1, + aux_sym__linebreak, + STATE(176), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, + [5647] = 5, + ACTIONS(215), 1, anon_sym_COMMA, - [5753] = 2, + ACTIONS(480), 1, + anon_sym_GT, + STATE(121), 1, + sym__comma, + STATE(157), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(132), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5764] = 2, + [5664] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(491), 4, + ACTIONS(482), 4, anon_sym_GT, anon_sym_LBRACK, sym_identifier, anon_sym_COMMA, - [5775] = 2, + [5675] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + ACTIONS(484), 1, + anon_sym_GT, + STATE(121), 1, + sym__comma, + STATE(202), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(136), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5786] = 2, + [5692] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -8527,681 +8502,727 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, - [5797] = 5, - ACTIONS(493), 1, + [5703] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + ACTIONS(486), 1, + anon_sym_GT, + STATE(121), 1, + sym__comma, + STATE(168), 1, + aux_sym_template_params_repeat2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5720] = 5, + ACTIONS(488), 1, anon_sym_RBRACE, - ACTIONS(495), 1, + ACTIONS(490), 1, anon_sym_LF, - STATE(8), 1, + STATE(7), 1, aux_sym__linebreak, - STATE(148), 1, + STATE(144), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5814] = 5, - ACTIONS(497), 1, + [5737] = 5, + ACTIONS(492), 1, anon_sym_RBRACE, - ACTIONS(499), 1, + ACTIONS(494), 1, anon_sym_LF, - STATE(6), 1, + STATE(8), 1, aux_sym__linebreak, - STATE(148), 1, + STATE(144), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5831] = 2, + [5754] = 5, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(496), 1, + anon_sym_LT, + STATE(228), 1, + sym_block, + STATE(234), 1, + sym_template_declaration_arguments, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5771] = 4, + ACTIONS(321), 1, + anon_sym_DASH_GT, + STATE(230), 1, + sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(501), 4, - ts_builtin_sym_end, + ACTIONS(498), 2, anon_sym_RBRACE, - anon_sym_else, anon_sym_LF, - [5842] = 4, - ACTIONS(487), 1, - anon_sym_LBRACK, - STATE(174), 1, - sym_array_bracket_expression, + [5786] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(503), 2, + ACTIONS(120), 4, anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, anon_sym_COMMA, - [5857] = 5, - ACTIONS(211), 1, - anon_sym_COMMA, - ACTIONS(505), 1, - anon_sym_GT, - STATE(122), 1, - sym__comma, - STATE(199), 1, - aux_sym_template_params_repeat2, + [5797] = 5, + ACTIONS(500), 1, + ts_builtin_sym_end, + ACTIONS(502), 1, + anon_sym_LF, + STATE(93), 1, + aux_sym__linebreak, + STATE(182), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5874] = 2, + [5814] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(140), 4, + ACTIONS(100), 4, anon_sym_GT, anon_sym_LBRACK, anon_sym_COLON_COLON, anon_sym_COMMA, - [5885] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(148), 4, - anon_sym_GT, + [5825] = 4, + ACTIONS(466), 1, anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5896] = 2, + STATE(167), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(152), 4, + ACTIONS(504), 2, anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, anon_sym_COMMA, - [5907] = 5, - ACTIONS(211), 1, + [5840] = 5, + ACTIONS(215), 1, anon_sym_COMMA, - ACTIONS(507), 1, - anon_sym_SEMI, - STATE(61), 1, + ACTIONS(506), 1, + anon_sym_GT, + STATE(121), 1, sym__comma, + STATE(197), 1, + aux_sym_template_params_repeat2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5857] = 5, + ACTIONS(508), 1, + ts_builtin_sym_end, + ACTIONS(510), 1, + anon_sym_LF, + STATE(97), 1, + aux_sym__linebreak, STATE(205), 1, - aux_sym_template_params_repeat1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5924] = 2, + [5874] = 4, + ACTIONS(514), 1, + anon_sym_COLON, + STATE(223), 1, + sym_interface_ports, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(102), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5935] = 5, - ACTIONS(509), 1, + ACTIONS(512), 2, + anon_sym_RBRACE, + anon_sym_LF, + [5889] = 5, + ACTIONS(516), 1, ts_builtin_sym_end, - ACTIONS(511), 1, + ACTIONS(518), 1, anon_sym_LF, - STATE(100), 1, + STATE(98), 1, aux_sym__linebreak, - STATE(193), 1, + STATE(182), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5952] = 5, - ACTIONS(513), 1, - anon_sym_RPAREN, - ACTIONS(515), 1, + [5906] = 5, + ACTIONS(215), 1, anon_sym_COMMA, - STATE(79), 1, + ACTIONS(521), 1, + anon_sym_SEMI, + STATE(62), 1, sym__comma, - STATE(188), 1, - aux_sym_parenthesis_expression_list_repeat1, + STATE(199), 1, + aux_sym_template_params_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5923] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5969] = 5, - ACTIONS(211), 1, + ACTIONS(96), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, anon_sym_COMMA, - ACTIONS(518), 1, + [5934] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + ACTIONS(523), 1, anon_sym_GT, - STATE(160), 1, + STATE(154), 1, aux_sym_template_declaration_arguments_repeat1, - STATE(224), 1, + STATE(233), 1, sym__comma, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5986] = 2, + [5951] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(88), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5962] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(425), 4, + ACTIONS(525), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5997] = 5, - ACTIONS(520), 1, - anon_sym_RBRACE, - ACTIONS(522), 1, - anon_sym_LF, - STATE(7), 1, - aux_sym__linebreak, - STATE(148), 1, - aux_sym_block_repeat1, + [5973] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6014] = 5, - ACTIONS(524), 1, + ACTIONS(525), 4, ts_builtin_sym_end, - ACTIONS(526), 1, + anon_sym_RBRACE, + anon_sym_else, anon_sym_LF, - STATE(101), 1, - aux_sym__linebreak, - STATE(195), 1, - aux_sym_source_file_repeat1, + [5984] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(108), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5995] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6031] = 5, - ACTIONS(528), 1, + ACTIONS(527), 4, ts_builtin_sym_end, - ACTIONS(530), 1, + anon_sym_RBRACE, + anon_sym_else, anon_sym_LF, - STATE(114), 1, - aux_sym__linebreak, - STATE(193), 1, - aux_sym_source_file_repeat1, + [6006] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6048] = 5, - ACTIONS(211), 1, + ACTIONS(529), 4, + anon_sym_RBRACE, + anon_sym_DASH_GT, anon_sym_COMMA, - ACTIONS(533), 1, - anon_sym_GT, - STATE(122), 1, - sym__comma, - STATE(203), 1, - aux_sym_template_params_repeat2, + anon_sym_LF, + [6017] = 2, ACTIONS(3), 2, sym_single_line_comment, - sym_multi_line_comment, - [6065] = 5, - ACTIONS(535), 1, - ts_builtin_sym_end, - ACTIONS(537), 1, - anon_sym_LF, - STATE(97), 1, - aux_sym__linebreak, - STATE(193), 1, - aux_sym_source_file_repeat1, + sym_multi_line_comment, + ACTIONS(112), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [6028] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6082] = 5, - ACTIONS(211), 1, + ACTIONS(116), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, anon_sym_COMMA, - ACTIONS(539), 1, + [6039] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + ACTIONS(531), 1, anon_sym_GT, - STATE(122), 1, + STATE(121), 1, sym__comma, - STATE(194), 1, + STATE(202), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6099] = 2, + [6056] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(215), 4, + ACTIONS(211), 4, anon_sym_EQ, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, - [6110] = 5, - ACTIONS(412), 1, + [6067] = 5, + ACTIONS(402), 1, anon_sym_RBRACE, - ACTIONS(414), 1, + ACTIONS(404), 1, anon_sym_LF, - STATE(4), 1, + STATE(2), 1, aux_sym__linebreak, - STATE(178), 1, + STATE(172), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6127] = 5, - ACTIONS(211), 1, + [6084] = 5, + ACTIONS(215), 1, anon_sym_COMMA, - ACTIONS(541), 1, + ACTIONS(533), 1, anon_sym_GT, - STATE(122), 1, + STATE(121), 1, sym__comma, - STATE(203), 1, + STATE(202), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6144] = 5, - ACTIONS(211), 1, + [6101] = 5, + ACTIONS(215), 1, anon_sym_COMMA, - ACTIONS(543), 1, + ACTIONS(535), 1, anon_sym_GT, - STATE(122), 1, + STATE(121), 1, sym__comma, - STATE(203), 1, + STATE(204), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6161] = 5, - ACTIONS(211), 1, + [6118] = 5, + ACTIONS(537), 1, + anon_sym_SEMI, + ACTIONS(539), 1, + anon_sym_COMMA, + STATE(62), 1, + sym__comma, + STATE(199), 1, + aux_sym_template_params_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6135] = 4, + ACTIONS(466), 1, + anon_sym_LBRACK, + STATE(167), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(542), 2, + anon_sym_GT, anon_sym_COMMA, - ACTIONS(545), 1, + [6150] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(544), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [6161] = 5, + ACTIONS(546), 1, anon_sym_GT, - STATE(189), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(224), 1, + ACTIONS(548), 1, + anon_sym_COMMA, + STATE(121), 1, sym__comma, + STATE(202), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, [6178] = 5, - ACTIONS(211), 1, + ACTIONS(215), 1, anon_sym_COMMA, - ACTIONS(547), 1, + ACTIONS(551), 1, anon_sym_GT, - STATE(122), 1, + STATE(185), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(233), 1, sym__comma, - STATE(200), 1, - aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, [6195] = 5, - ACTIONS(549), 1, - anon_sym_GT, - ACTIONS(551), 1, + ACTIONS(215), 1, anon_sym_COMMA, - STATE(122), 1, + ACTIONS(553), 1, + anon_sym_GT, + STATE(121), 1, sym__comma, - STATE(203), 1, + STATE(202), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6212] = 2, + [6212] = 5, + ACTIONS(555), 1, + ts_builtin_sym_end, + ACTIONS(557), 1, + anon_sym_LF, + STATE(92), 1, + aux_sym__linebreak, + STATE(182), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(554), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [6223] = 5, - ACTIONS(556), 1, - anon_sym_SEMI, - ACTIONS(558), 1, + [6229] = 5, + ACTIONS(215), 1, anon_sym_COMMA, - STATE(61), 1, + ACTIONS(559), 1, + anon_sym_GT, + STATE(121), 1, sym__comma, - STATE(205), 1, - aux_sym_template_params_repeat1, + STATE(194), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6240] = 4, - ACTIONS(487), 1, - anon_sym_LBRACK, - STATE(174), 1, - sym_array_bracket_expression, + [6246] = 3, + ACTIONS(563), 1, + anon_sym_EQ, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(561), 2, anon_sym_GT, anon_sym_COMMA, - [6255] = 2, + [6258] = 4, + ACTIONS(138), 1, + anon_sym_LBRACK, + ACTIONS(565), 1, + sym_identifier, + STATE(167), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(563), 3, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_LF, - [6265] = 2, + [6272] = 4, + ACTIONS(567), 1, + sym_identifier, + ACTIONS(569), 1, + anon_sym_LT, + STATE(177), 1, + sym_template_params, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(565), 3, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_LF, - [6275] = 2, + [6286] = 4, + ACTIONS(571), 1, + sym_identifier, + ACTIONS(573), 1, + anon_sym_GT, + STATE(203), 1, + sym_template_declaration_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(567), 3, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_LF, - [6285] = 3, - ACTIONS(571), 1, - anon_sym_else, + [6300] = 4, + ACTIONS(138), 1, + anon_sym_LBRACK, + ACTIONS(575), 1, + sym_identifier, + STATE(167), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(569), 2, - anon_sym_RBRACE, - anon_sym_LF, - [6297] = 4, - ACTIONS(573), 1, + [6314] = 4, + ACTIONS(138), 1, + anon_sym_LBRACK, + ACTIONS(577), 1, sym_identifier, - ACTIONS(575), 1, - anon_sym_LT, - STATE(139), 1, - sym_template_params, + STATE(167), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6311] = 2, + [6328] = 4, + ACTIONS(579), 1, + sym_identifier, + ACTIONS(581), 1, + anon_sym_LT, + STATE(20), 1, + sym_template_params, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(577), 3, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_LF, - [6321] = 3, - ACTIONS(581), 1, - anon_sym_EQ, + [6342] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(579), 2, + ACTIONS(156), 3, anon_sym_GT, + anon_sym_LBRACK, anon_sym_COMMA, - [6333] = 4, - ACTIONS(94), 1, + [6352] = 3, + ACTIONS(585), 1, + anon_sym_else, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(583), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6364] = 4, + ACTIONS(138), 1, anon_sym_LBRACK, - ACTIONS(583), 1, + ACTIONS(587), 1, sym_identifier, - STATE(174), 1, + STATE(167), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6347] = 3, - ACTIONS(410), 1, + [6378] = 3, + ACTIONS(400), 1, anon_sym_EQ, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(585), 2, + ACTIONS(589), 2, anon_sym_RBRACE, anon_sym_LF, - [6359] = 2, + [6390] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(587), 3, - anon_sym_LBRACE, + ACTIONS(591), 2, anon_sym_RBRACE, anon_sym_LF, - [6369] = 4, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(589), 1, - sym_identifier, - STATE(174), 1, - sym_array_bracket_expression, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [6383] = 2, + [6399] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(591), 3, - anon_sym_LBRACE, + ACTIONS(593), 2, anon_sym_RBRACE, anon_sym_LF, - [6393] = 4, - ACTIONS(593), 1, - sym_identifier, - ACTIONS(595), 1, - anon_sym_LT, - STATE(28), 1, - sym_template_params, + [6408] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6407] = 4, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(597), 1, - sym_identifier, - STATE(174), 1, - sym_array_bracket_expression, + ACTIONS(595), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6417] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6421] = 4, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(599), 1, - sym_identifier, - STATE(174), 1, - sym_array_bracket_expression, + ACTIONS(589), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6426] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6435] = 4, - ACTIONS(601), 1, - sym_identifier, - ACTIONS(603), 1, + ACTIONS(597), 2, anon_sym_GT, - STATE(201), 1, - sym_template_declaration_type, + anon_sym_COMMA, + [6435] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6449] = 2, + ACTIONS(599), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6444] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(156), 3, - anon_sym_GT, - anon_sym_LBRACK, + ACTIONS(601), 2, + anon_sym_SEMI, anon_sym_COMMA, - [6459] = 3, - ACTIONS(601), 1, - sym_identifier, - STATE(236), 1, - sym_template_declaration_type, + [6453] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6470] = 2, + ACTIONS(603), 2, + anon_sym_GT, + anon_sym_COMMA, + [6462] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(605), 2, - ts_builtin_sym_end, + anon_sym_RBRACE, anon_sym_LF, - [6479] = 2, + [6471] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(607), 2, - anon_sym_GT, - anon_sym_COMMA, - [6488] = 2, + ts_builtin_sym_end, + anon_sym_LF, + [6480] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(609), 2, - anon_sym_RBRACE, + ts_builtin_sym_end, anon_sym_LF, - [6497] = 3, - ACTIONS(15), 1, - anon_sym_LBRACE, - STATE(225), 1, - sym_block, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [6508] = 2, + [6489] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(611), 2, - ts_builtin_sym_end, + anon_sym_RBRACE, anon_sym_LF, - [6517] = 2, + [6498] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(613), 2, - ts_builtin_sym_end, + anon_sym_RBRACE, anon_sym_LF, - [6526] = 2, + [6507] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(615), 2, - anon_sym_RBRACE, + ts_builtin_sym_end, anon_sym_LF, - [6535] = 2, + [6516] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(585), 2, + ACTIONS(617), 2, anon_sym_RBRACE, anon_sym_LF, - [6544] = 2, + [6525] = 3, + ACTIONS(571), 1, + sym_identifier, + STATE(225), 1, + sym_template_declaration_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(617), 2, - anon_sym_RBRACE, - anon_sym_LF, - [6553] = 2, + [6536] = 3, + ACTIONS(15), 1, + anon_sym_LBRACE, + STATE(231), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(619), 2, - anon_sym_RBRACE, - anon_sym_LF, - [6562] = 3, - ACTIONS(9), 1, - anon_sym_module, - STATE(237), 1, - sym_module, + [6547] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6573] = 2, + ACTIONS(619), 2, + ts_builtin_sym_end, + anon_sym_LF, + [6556] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(621), 2, - anon_sym_GT, - anon_sym_COMMA, - [6582] = 2, + anon_sym_RBRACE, + anon_sym_LF, + [6565] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(623), 2, ts_builtin_sym_end, anon_sym_LF, - [6591] = 2, + [6574] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(625), 2, - ts_builtin_sym_end, + anon_sym_RBRACE, anon_sym_LF, - [6600] = 2, + [6583] = 2, + ACTIONS(627), 1, + anon_sym_in, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(627), 2, - anon_sym_SEMI, - anon_sym_COMMA, - [6609] = 2, + [6591] = 2, + ACTIONS(629), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(629), 2, - anon_sym_RBRACE, - anon_sym_LF, - [6618] = 2, + [6599] = 2, ACTIONS(631), 1, anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6626] = 2, + [6607] = 2, ACTIONS(633), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6634] = 2, + [6615] = 2, ACTIONS(635), 1, - anon_sym_LBRACE, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6642] = 2, + [6623] = 2, ACTIONS(637), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6650] = 2, + [6631] = 2, ACTIONS(639), 1, - sym_identifier, + anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6658] = 2, + [6639] = 2, ACTIONS(641), 1, - anon_sym_in, + ts_builtin_sym_end, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6666] = 2, + [6647] = 2, ACTIONS(643), 1, - anon_sym_LBRACE, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6674] = 2, + [6655] = 2, ACTIONS(645), 1, - ts_builtin_sym_end, + anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6682] = 2, + [6663] = 2, ACTIONS(647), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6690] = 2, - ACTIONS(649), 1, - sym_identifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [6698] = 2, - ACTIONS(651), 1, - sym_identifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, }; static const uint32_t ts_small_parse_table_map[] = { @@ -9215,28 +9236,28 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(9)] = 721, [SMALL_STATE(10)] = 824, [SMALL_STATE(11)] = 924, - [SMALL_STATE(12)] = 968, - [SMALL_STATE(13)] = 1012, + [SMALL_STATE(12)] = 992, + [SMALL_STATE(13)] = 1036, [SMALL_STATE(14)] = 1080, [SMALL_STATE(15)] = 1124, [SMALL_STATE(16)] = 1168, [SMALL_STATE(17)] = 1212, - [SMALL_STATE(18)] = 1261, - [SMALL_STATE(19)] = 1300, - [SMALL_STATE(20)] = 1339, - [SMALL_STATE(21)] = 1378, - [SMALL_STATE(22)] = 1441, - [SMALL_STATE(23)] = 1480, - [SMALL_STATE(24)] = 1519, - [SMALL_STATE(25)] = 1558, - [SMALL_STATE(26)] = 1597, - [SMALL_STATE(27)] = 1650, - [SMALL_STATE(28)] = 1699, - [SMALL_STATE(29)] = 1738, + [SMALL_STATE(18)] = 1251, + [SMALL_STATE(19)] = 1290, + [SMALL_STATE(20)] = 1329, + [SMALL_STATE(21)] = 1368, + [SMALL_STATE(22)] = 1407, + [SMALL_STATE(23)] = 1446, + [SMALL_STATE(24)] = 1485, + [SMALL_STATE(25)] = 1524, + [SMALL_STATE(26)] = 1563, + [SMALL_STATE(27)] = 1620, + [SMALL_STATE(28)] = 1681, + [SMALL_STATE(29)] = 1744, [SMALL_STATE(30)] = 1797, - [SMALL_STATE(31)] = 1858, - [SMALL_STATE(32)] = 1897, - [SMALL_STATE(33)] = 1936, + [SMALL_STATE(31)] = 1846, + [SMALL_STATE(32)] = 1905, + [SMALL_STATE(33)] = 1944, [SMALL_STATE(34)] = 1993, [SMALL_STATE(35)] = 2031, [SMALL_STATE(36)] = 2068, @@ -9246,215 +9267,213 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(40)] = 2216, [SMALL_STATE(41)] = 2253, [SMALL_STATE(42)] = 2290, - [SMALL_STATE(43)] = 2353, - [SMALL_STATE(44)] = 2406, - [SMALL_STATE(45)] = 2445, - [SMALL_STATE(46)] = 2503, - [SMALL_STATE(47)] = 2565, - [SMALL_STATE(48)] = 2623, - [SMALL_STATE(49)] = 2660, - [SMALL_STATE(50)] = 2695, - [SMALL_STATE(51)] = 2751, - [SMALL_STATE(52)] = 2807, - [SMALL_STATE(53)] = 2861, - [SMALL_STATE(54)] = 2915, - [SMALL_STATE(55)] = 2957, - [SMALL_STATE(56)] = 3011, - [SMALL_STATE(57)] = 3065, - [SMALL_STATE(58)] = 3107, - [SMALL_STATE(59)] = 3146, - [SMALL_STATE(60)] = 3199, - [SMALL_STATE(61)] = 3252, - [SMALL_STATE(62)] = 3291, - [SMALL_STATE(63)] = 3344, - [SMALL_STATE(64)] = 3397, - [SMALL_STATE(65)] = 3433, - [SMALL_STATE(66)] = 3469, - [SMALL_STATE(67)] = 3505, - [SMALL_STATE(68)] = 3541, - [SMALL_STATE(69)] = 3577, - [SMALL_STATE(70)] = 3613, - [SMALL_STATE(71)] = 3649, - [SMALL_STATE(72)] = 3685, - [SMALL_STATE(73)] = 3721, - [SMALL_STATE(74)] = 3757, - [SMALL_STATE(75)] = 3789, - [SMALL_STATE(76)] = 3825, - [SMALL_STATE(77)] = 3861, - [SMALL_STATE(78)] = 3897, - [SMALL_STATE(79)] = 3933, - [SMALL_STATE(80)] = 3969, - [SMALL_STATE(81)] = 4001, - [SMALL_STATE(82)] = 4037, - [SMALL_STATE(83)] = 4073, - [SMALL_STATE(84)] = 4103, - [SMALL_STATE(85)] = 4133, - [SMALL_STATE(86)] = 4158, - [SMALL_STATE(87)] = 4182, - [SMALL_STATE(88)] = 4224, - [SMALL_STATE(89)] = 4266, - [SMALL_STATE(90)] = 4302, - [SMALL_STATE(91)] = 4338, - [SMALL_STATE(92)] = 4365, - [SMALL_STATE(93)] = 4392, - [SMALL_STATE(94)] = 4412, - [SMALL_STATE(95)] = 4432, - [SMALL_STATE(96)] = 4452, - [SMALL_STATE(97)] = 4472, - [SMALL_STATE(98)] = 4499, - [SMALL_STATE(99)] = 4526, - [SMALL_STATE(100)] = 4553, - [SMALL_STATE(101)] = 4580, - [SMALL_STATE(102)] = 4607, - [SMALL_STATE(103)] = 4621, - [SMALL_STATE(104)] = 4635, - [SMALL_STATE(105)] = 4657, - [SMALL_STATE(106)] = 4679, - [SMALL_STATE(107)] = 4701, - [SMALL_STATE(108)] = 4715, - [SMALL_STATE(109)] = 4735, - [SMALL_STATE(110)] = 4757, - [SMALL_STATE(111)] = 4777, - [SMALL_STATE(112)] = 4797, - [SMALL_STATE(113)] = 4817, - [SMALL_STATE(114)] = 4839, - [SMALL_STATE(115)] = 4863, - [SMALL_STATE(116)] = 4877, - [SMALL_STATE(117)] = 4899, - [SMALL_STATE(118)] = 4918, - [SMALL_STATE(119)] = 4937, - [SMALL_STATE(120)] = 4956, + [SMALL_STATE(43)] = 2343, + [SMALL_STATE(44)] = 2382, + [SMALL_STATE(45)] = 2444, + [SMALL_STATE(46)] = 2502, + [SMALL_STATE(47)] = 2560, + [SMALL_STATE(48)] = 2622, + [SMALL_STATE(49)] = 2657, + [SMALL_STATE(50)] = 2694, + [SMALL_STATE(51)] = 2748, + [SMALL_STATE(52)] = 2802, + [SMALL_STATE(53)] = 2858, + [SMALL_STATE(54)] = 2900, + [SMALL_STATE(55)] = 2942, + [SMALL_STATE(56)] = 2996, + [SMALL_STATE(57)] = 3050, + [SMALL_STATE(58)] = 3106, + [SMALL_STATE(59)] = 3159, + [SMALL_STATE(60)] = 3198, + [SMALL_STATE(61)] = 3251, + [SMALL_STATE(62)] = 3304, + [SMALL_STATE(63)] = 3343, + [SMALL_STATE(64)] = 3396, + [SMALL_STATE(65)] = 3428, + [SMALL_STATE(66)] = 3464, + [SMALL_STATE(67)] = 3500, + [SMALL_STATE(68)] = 3536, + [SMALL_STATE(69)] = 3572, + [SMALL_STATE(70)] = 3608, + [SMALL_STATE(71)] = 3644, + [SMALL_STATE(72)] = 3680, + [SMALL_STATE(73)] = 3716, + [SMALL_STATE(74)] = 3752, + [SMALL_STATE(75)] = 3788, + [SMALL_STATE(76)] = 3824, + [SMALL_STATE(77)] = 3860, + [SMALL_STATE(78)] = 3896, + [SMALL_STATE(79)] = 3928, + [SMALL_STATE(80)] = 3964, + [SMALL_STATE(81)] = 4000, + [SMALL_STATE(82)] = 4036, + [SMALL_STATE(83)] = 4072, + [SMALL_STATE(84)] = 4102, + [SMALL_STATE(85)] = 4132, + [SMALL_STATE(86)] = 4157, + [SMALL_STATE(87)] = 4181, + [SMALL_STATE(88)] = 4223, + [SMALL_STATE(89)] = 4265, + [SMALL_STATE(90)] = 4301, + [SMALL_STATE(91)] = 4337, + [SMALL_STATE(92)] = 4364, + [SMALL_STATE(93)] = 4393, + [SMALL_STATE(94)] = 4422, + [SMALL_STATE(95)] = 4451, + [SMALL_STATE(96)] = 4478, + [SMALL_STATE(97)] = 4507, + [SMALL_STATE(98)] = 4536, + [SMALL_STATE(99)] = 4562, + [SMALL_STATE(100)] = 4581, + [SMALL_STATE(101)] = 4600, + [SMALL_STATE(102)] = 4619, + [SMALL_STATE(103)] = 4638, + [SMALL_STATE(104)] = 4657, + [SMALL_STATE(105)] = 4677, + [SMALL_STATE(106)] = 4699, + [SMALL_STATE(107)] = 4721, + [SMALL_STATE(108)] = 4743, + [SMALL_STATE(109)] = 4765, + [SMALL_STATE(110)] = 4787, + [SMALL_STATE(111)] = 4809, + [SMALL_STATE(112)] = 4828, + [SMALL_STATE(113)] = 4847, + [SMALL_STATE(114)] = 4866, + [SMALL_STATE(115)] = 4879, + [SMALL_STATE(116)] = 4898, + [SMALL_STATE(117)] = 4911, + [SMALL_STATE(118)] = 4930, + [SMALL_STATE(119)] = 4949, + [SMALL_STATE(120)] = 4962, [SMALL_STATE(121)] = 4975, - [SMALL_STATE(122)] = 4992, - [SMALL_STATE(123)] = 5011, - [SMALL_STATE(124)] = 5032, - [SMALL_STATE(125)] = 5048, - [SMALL_STATE(126)] = 5064, - [SMALL_STATE(127)] = 5080, - [SMALL_STATE(128)] = 5096, - [SMALL_STATE(129)] = 5116, - [SMALL_STATE(130)] = 5132, - [SMALL_STATE(131)] = 5148, - [SMALL_STATE(132)] = 5164, - [SMALL_STATE(133)] = 5180, - [SMALL_STATE(134)] = 5196, - [SMALL_STATE(135)] = 5216, - [SMALL_STATE(136)] = 5232, - [SMALL_STATE(137)] = 5244, - [SMALL_STATE(138)] = 5260, - [SMALL_STATE(139)] = 5271, - [SMALL_STATE(140)] = 5282, - [SMALL_STATE(141)] = 5297, - [SMALL_STATE(142)] = 5308, - [SMALL_STATE(143)] = 5325, - [SMALL_STATE(144)] = 5342, - [SMALL_STATE(145)] = 5359, - [SMALL_STATE(146)] = 5370, - [SMALL_STATE(147)] = 5381, - [SMALL_STATE(148)] = 5398, - [SMALL_STATE(149)] = 5415, - [SMALL_STATE(150)] = 5426, - [SMALL_STATE(151)] = 5443, - [SMALL_STATE(152)] = 5460, - [SMALL_STATE(153)] = 5471, - [SMALL_STATE(154)] = 5488, - [SMALL_STATE(155)] = 5505, - [SMALL_STATE(156)] = 5516, - [SMALL_STATE(157)] = 5531, - [SMALL_STATE(158)] = 5542, - [SMALL_STATE(159)] = 5559, - [SMALL_STATE(160)] = 5576, - [SMALL_STATE(161)] = 5593, - [SMALL_STATE(162)] = 5610, - [SMALL_STATE(163)] = 5627, - [SMALL_STATE(164)] = 5638, - [SMALL_STATE(165)] = 5649, - [SMALL_STATE(166)] = 5666, - [SMALL_STATE(167)] = 5677, - [SMALL_STATE(168)] = 5692, - [SMALL_STATE(169)] = 5703, - [SMALL_STATE(170)] = 5720, - [SMALL_STATE(171)] = 5731, - [SMALL_STATE(172)] = 5742, - [SMALL_STATE(173)] = 5753, - [SMALL_STATE(174)] = 5764, - [SMALL_STATE(175)] = 5775, - [SMALL_STATE(176)] = 5786, - [SMALL_STATE(177)] = 5797, - [SMALL_STATE(178)] = 5814, - [SMALL_STATE(179)] = 5831, - [SMALL_STATE(180)] = 5842, - [SMALL_STATE(181)] = 5857, - [SMALL_STATE(182)] = 5874, - [SMALL_STATE(183)] = 5885, - [SMALL_STATE(184)] = 5896, - [SMALL_STATE(185)] = 5907, - [SMALL_STATE(186)] = 5924, - [SMALL_STATE(187)] = 5935, - [SMALL_STATE(188)] = 5952, - [SMALL_STATE(189)] = 5969, - [SMALL_STATE(190)] = 5986, - [SMALL_STATE(191)] = 5997, - [SMALL_STATE(192)] = 6014, - [SMALL_STATE(193)] = 6031, - [SMALL_STATE(194)] = 6048, - [SMALL_STATE(195)] = 6065, - [SMALL_STATE(196)] = 6082, - [SMALL_STATE(197)] = 6099, - [SMALL_STATE(198)] = 6110, - [SMALL_STATE(199)] = 6127, - [SMALL_STATE(200)] = 6144, - [SMALL_STATE(201)] = 6161, - [SMALL_STATE(202)] = 6178, - [SMALL_STATE(203)] = 6195, - [SMALL_STATE(204)] = 6212, - [SMALL_STATE(205)] = 6223, - [SMALL_STATE(206)] = 6240, - [SMALL_STATE(207)] = 6255, - [SMALL_STATE(208)] = 6265, - [SMALL_STATE(209)] = 6275, - [SMALL_STATE(210)] = 6285, - [SMALL_STATE(211)] = 6297, - [SMALL_STATE(212)] = 6311, - [SMALL_STATE(213)] = 6321, - [SMALL_STATE(214)] = 6333, - [SMALL_STATE(215)] = 6347, - [SMALL_STATE(216)] = 6359, - [SMALL_STATE(217)] = 6369, - [SMALL_STATE(218)] = 6383, - [SMALL_STATE(219)] = 6393, - [SMALL_STATE(220)] = 6407, - [SMALL_STATE(221)] = 6421, - [SMALL_STATE(222)] = 6435, - [SMALL_STATE(223)] = 6449, - [SMALL_STATE(224)] = 6459, - [SMALL_STATE(225)] = 6470, - [SMALL_STATE(226)] = 6479, - [SMALL_STATE(227)] = 6488, - [SMALL_STATE(228)] = 6497, - [SMALL_STATE(229)] = 6508, - [SMALL_STATE(230)] = 6517, - [SMALL_STATE(231)] = 6526, - [SMALL_STATE(232)] = 6535, - [SMALL_STATE(233)] = 6544, - [SMALL_STATE(234)] = 6553, - [SMALL_STATE(235)] = 6562, - [SMALL_STATE(236)] = 6573, - [SMALL_STATE(237)] = 6582, - [SMALL_STATE(238)] = 6591, - [SMALL_STATE(239)] = 6600, - [SMALL_STATE(240)] = 6609, - [SMALL_STATE(241)] = 6618, - [SMALL_STATE(242)] = 6626, - [SMALL_STATE(243)] = 6634, - [SMALL_STATE(244)] = 6642, - [SMALL_STATE(245)] = 6650, - [SMALL_STATE(246)] = 6658, - [SMALL_STATE(247)] = 6666, - [SMALL_STATE(248)] = 6674, - [SMALL_STATE(249)] = 6682, - [SMALL_STATE(250)] = 6690, - [SMALL_STATE(251)] = 6698, + [SMALL_STATE(122)] = 4994, + [SMALL_STATE(123)] = 5013, + [SMALL_STATE(124)] = 5029, + [SMALL_STATE(125)] = 5049, + [SMALL_STATE(126)] = 5069, + [SMALL_STATE(127)] = 5085, + [SMALL_STATE(128)] = 5101, + [SMALL_STATE(129)] = 5117, + [SMALL_STATE(130)] = 5133, + [SMALL_STATE(131)] = 5149, + [SMALL_STATE(132)] = 5165, + [SMALL_STATE(133)] = 5181, + [SMALL_STATE(134)] = 5197, + [SMALL_STATE(135)] = 5214, + [SMALL_STATE(136)] = 5225, + [SMALL_STATE(137)] = 5238, + [SMALL_STATE(138)] = 5255, + [SMALL_STATE(139)] = 5272, + [SMALL_STATE(140)] = 5287, + [SMALL_STATE(141)] = 5298, + [SMALL_STATE(142)] = 5309, + [SMALL_STATE(143)] = 5326, + [SMALL_STATE(144)] = 5341, + [SMALL_STATE(145)] = 5358, + [SMALL_STATE(146)] = 5369, + [SMALL_STATE(147)] = 5380, + [SMALL_STATE(148)] = 5397, + [SMALL_STATE(149)] = 5408, + [SMALL_STATE(150)] = 5419, + [SMALL_STATE(151)] = 5436, + [SMALL_STATE(152)] = 5447, + [SMALL_STATE(153)] = 5464, + [SMALL_STATE(154)] = 5475, + [SMALL_STATE(155)] = 5492, + [SMALL_STATE(156)] = 5503, + [SMALL_STATE(157)] = 5520, + [SMALL_STATE(158)] = 5537, + [SMALL_STATE(159)] = 5552, + [SMALL_STATE(160)] = 5569, + [SMALL_STATE(161)] = 5586, + [SMALL_STATE(162)] = 5597, + [SMALL_STATE(163)] = 5608, + [SMALL_STATE(164)] = 5619, + [SMALL_STATE(165)] = 5630, + [SMALL_STATE(166)] = 5647, + [SMALL_STATE(167)] = 5664, + [SMALL_STATE(168)] = 5675, + [SMALL_STATE(169)] = 5692, + [SMALL_STATE(170)] = 5703, + [SMALL_STATE(171)] = 5720, + [SMALL_STATE(172)] = 5737, + [SMALL_STATE(173)] = 5754, + [SMALL_STATE(174)] = 5771, + [SMALL_STATE(175)] = 5786, + [SMALL_STATE(176)] = 5797, + [SMALL_STATE(177)] = 5814, + [SMALL_STATE(178)] = 5825, + [SMALL_STATE(179)] = 5840, + [SMALL_STATE(180)] = 5857, + [SMALL_STATE(181)] = 5874, + [SMALL_STATE(182)] = 5889, + [SMALL_STATE(183)] = 5906, + [SMALL_STATE(184)] = 5923, + [SMALL_STATE(185)] = 5934, + [SMALL_STATE(186)] = 5951, + [SMALL_STATE(187)] = 5962, + [SMALL_STATE(188)] = 5973, + [SMALL_STATE(189)] = 5984, + [SMALL_STATE(190)] = 5995, + [SMALL_STATE(191)] = 6006, + [SMALL_STATE(192)] = 6017, + [SMALL_STATE(193)] = 6028, + [SMALL_STATE(194)] = 6039, + [SMALL_STATE(195)] = 6056, + [SMALL_STATE(196)] = 6067, + [SMALL_STATE(197)] = 6084, + [SMALL_STATE(198)] = 6101, + [SMALL_STATE(199)] = 6118, + [SMALL_STATE(200)] = 6135, + [SMALL_STATE(201)] = 6150, + [SMALL_STATE(202)] = 6161, + [SMALL_STATE(203)] = 6178, + [SMALL_STATE(204)] = 6195, + [SMALL_STATE(205)] = 6212, + [SMALL_STATE(206)] = 6229, + [SMALL_STATE(207)] = 6246, + [SMALL_STATE(208)] = 6258, + [SMALL_STATE(209)] = 6272, + [SMALL_STATE(210)] = 6286, + [SMALL_STATE(211)] = 6300, + [SMALL_STATE(212)] = 6314, + [SMALL_STATE(213)] = 6328, + [SMALL_STATE(214)] = 6342, + [SMALL_STATE(215)] = 6352, + [SMALL_STATE(216)] = 6364, + [SMALL_STATE(217)] = 6378, + [SMALL_STATE(218)] = 6390, + [SMALL_STATE(219)] = 6399, + [SMALL_STATE(220)] = 6408, + [SMALL_STATE(221)] = 6417, + [SMALL_STATE(222)] = 6426, + [SMALL_STATE(223)] = 6435, + [SMALL_STATE(224)] = 6444, + [SMALL_STATE(225)] = 6453, + [SMALL_STATE(226)] = 6462, + [SMALL_STATE(227)] = 6471, + [SMALL_STATE(228)] = 6480, + [SMALL_STATE(229)] = 6489, + [SMALL_STATE(230)] = 6498, + [SMALL_STATE(231)] = 6507, + [SMALL_STATE(232)] = 6516, + [SMALL_STATE(233)] = 6525, + [SMALL_STATE(234)] = 6536, + [SMALL_STATE(235)] = 6547, + [SMALL_STATE(236)] = 6556, + [SMALL_STATE(237)] = 6565, + [SMALL_STATE(238)] = 6574, + [SMALL_STATE(239)] = 6583, + [SMALL_STATE(240)] = 6591, + [SMALL_STATE(241)] = 6599, + [SMALL_STATE(242)] = 6607, + [SMALL_STATE(243)] = 6615, + [SMALL_STATE(244)] = 6623, + [SMALL_STATE(245)] = 6631, + [SMALL_STATE(246)] = 6639, + [SMALL_STATE(247)] = 6647, + [SMALL_STATE(248)] = 6655, + [SMALL_STATE(249)] = 6663, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -9462,85 +9481,85 @@ static const TSParseActionEntry ts_parse_actions[] = { [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 = true}}, SHIFT(235), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), - [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13), [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(86), [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(92), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(245), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(251), - [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(110), - [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(129), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(250), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(91), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(244), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(242), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(104), + [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(131), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), - [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), - [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204), - [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 4), - [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 4), - [65] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), - [67] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 15), - [69] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 15), - [71] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 26), - [73] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 26), - [75] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 7), - [77] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 7), - [79] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 7), SHIFT_REPEAT(219), - [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1, .production_id = 1), - [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1, .production_id = 1), - [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 14), - [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 14), - [90] = {.entry = {.count = 1, .reusable = false}}, SHIFT(242), - [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [96] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 7, .production_id = 53), - [98] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 7, .production_id = 53), - [100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 3), - [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3), - [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 52), - [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 52), - [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 29), - [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 29), - [112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [114] = {.entry = {.count = 1, .reusable = false}}, SHIFT(82), - [116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [124] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), - [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 51), - [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 51), - [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 8), - [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 8), - [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 50), - [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 50), - [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 39), - [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 39), - [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), - [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), - [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 5), - [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 5), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), + [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), + [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), + [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 15), + [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 15), + [65] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), + [67] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1, .production_id = 1), + [69] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1, .production_id = 1), + [71] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 4), + [73] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 4), + [75] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 26), + [77] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 26), + [79] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 7), + [81] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 7), + [83] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 7), SHIFT_REPEAT(213), + [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 51), + [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 51), + [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 5), + [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 5), + [94] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 7, .production_id = 52), + [96] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 7, .production_id = 52), + [98] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), + [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), + [102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 3), + [104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3), + [106] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 50), + [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 50), + [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 8), + [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 8), + [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 49), + [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 49), + [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 38), + [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 38), + [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 29), + [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 29), + [126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [128] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), + [130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [132] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80), + [134] = {.entry = {.count = 1, .reusable = false}}, SHIFT(243), + [136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 14), + [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 14), [150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 31), [152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 31), [154] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 25), [156] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 25), - [158] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 18), - [160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 18), - [162] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [158] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 19), + [160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 19), + [162] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 18), + [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 18), [166] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 5), [168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 5), [170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 25), @@ -9549,235 +9568,233 @@ static const TSParseActionEntry ts_parse_actions[] = { [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 8), [178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 30), [180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 30), - [182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 19), - [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 19), - [186] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), - [188] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 25), - [190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 25), - [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), - [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), - [200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), - [202] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(44), + [182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), + [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [188] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), + [190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), + [192] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(43), + [195] = {.entry = {.count = 1, .reusable = false}}, SHIFT(82), + [197] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 25), + [199] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 25), + [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), [205] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 16), [207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 16), - [209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [213] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 10), - [215] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 10), - [217] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), - [219] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), - [221] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [223] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [225] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 1, .production_id = 38), - [230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 27), - [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), - [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), - [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 3, .production_id = 48), - [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), - [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), - [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [209] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 10), + [211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 10), + [213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), + [219] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [223] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), + [226] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), + [228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 3, .production_id = 47), + [230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 1, .production_id = 37), + [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 27), + [242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), + [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214), + [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [258] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), + [260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), + [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [278] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), - [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), - [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [294] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), - [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), - [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [302] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 7), - [304] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 7), SHIFT_REPEAT(85), - [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 7), - [309] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 11), - [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 11), + [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [288] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), + [290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), + [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [302] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 11), + [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 11), + [306] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 7), + [308] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 7), SHIFT_REPEAT(85), + [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 7), [313] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), [317] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), [321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 17), - [329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 35), - [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 23), - [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 24), - [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 8), - [339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), - [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), - [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 4), - [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 5), - [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 37), - [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 45), - [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), - [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), - [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244), - [359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), - [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), - [363] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 28), - [365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 4), - [367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [369] = {.entry = {.count = 1, .reusable = false}}, SHIFT(126), - [371] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 7), - [373] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 7), SHIFT_REPEAT(74), - [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), - [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 36), - [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 8), + [329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 4), + [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), + [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 5), + [339] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(99), + [342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 17), + [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 34), + [348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 23), + [350] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 24), + [352] = {.entry = {.count = 1, .reusable = false}}, SHIFT(133), + [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), + [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), + [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), + [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), + [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), + [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 4), + [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), + [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), + [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), + [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 36), + [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), + [382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 44), [384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 4), - [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), - [388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), - [390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 7), - [392] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 7), SHIFT_REPEAT(74), - [395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), - [397] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(121), - [400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 13), - [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 44), - [406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), - [408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 33), - [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), - [414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), - [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [420] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 7), SHIFT_REPEAT(211), - [423] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), - [425] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 39), - [427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [429] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 31), - [431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), - [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [439] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), - [441] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 8), - [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), - [445] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 7), - [447] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 7), SHIFT_REPEAT(10), - [450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), - [452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), - [454] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 5), - [456] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), - [458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 8), - [464] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 22), - [466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), - [468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), - [470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 7), - [472] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 7), SHIFT_REPEAT(74), - [475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), - [477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [479] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 31), - [481] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 39), - [483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), - [485] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 3, .production_id = 20), - [487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [491] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 18), - [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), - [495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), - [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 5), - [503] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 1, .production_id = 38), - [505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), - [509] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 4), - [511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [513] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 7), - [515] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 7), SHIFT_REPEAT(74), - [518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), - [520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), - [522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [524] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 5), - [526] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [528] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 7), - [530] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 7), SHIFT_REPEAT(114), - [533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [535] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 8), - [537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), - [539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), - [547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [549] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 7), - [551] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 7), SHIFT_REPEAT(74), - [554] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [556] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 7), - [558] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 7), SHIFT_REPEAT(74), - [561] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 3, .production_id = 48), - [563] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 46), - [565] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 42), - [567] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 32), - [569] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 21), - [571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), - [573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), - [575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [577] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 41), - [579] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1, .production_id = 9), - [581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), - [583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), - [587] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 47), - [589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [591] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 43), - [593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [599] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), - [603] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), - [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 4, .production_id = 12), - [607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), - [609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_domain_statement, 2, .production_id = 13), - [611] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 3, .production_id = 6), - [613] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), - [615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 49), - [617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 4, .production_id = 34), - [619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 40), - [621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), + [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 7), + [388] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 7), SHIFT_REPEAT(78), + [391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 35), + [393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 28), + [395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 7), + [397] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 7), SHIFT_REPEAT(78), + [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), + [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), + [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), + [412] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 7), SHIFT_REPEAT(209), + [415] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 7), + [417] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 7), SHIFT_REPEAT(78), + [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 5), + [422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), + [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [432] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), + [434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 8), + [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [438] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 33), + [440] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 7), + [442] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 7), SHIFT_REPEAT(10), + [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), + [447] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 5), + [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), + [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [453] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 8), + [455] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 7), + [457] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 7), SHIFT_REPEAT(78), + [460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), + [462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), + [464] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 3, .production_id = 20), + [466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 31), + [472] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 38), + [474] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [476] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), + [478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), + [482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 18), + [484] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), + [486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), + [488] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), + [490] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), + [494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), + [498] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 43), + [500] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 4), + [502] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [504] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 1, .production_id = 37), + [506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 5), + [510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [512] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 13), + [514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [516] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 7), + [518] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 7), SHIFT_REPEAT(98), + [521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245), + [525] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 38), + [527] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 31), + [529] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), + [531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [537] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 7), + [539] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 7), SHIFT_REPEAT(78), + [542] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 3, .production_id = 47), + [544] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [546] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 7), + [548] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 7), SHIFT_REPEAT(78), + [551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), + [553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [555] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 8), + [557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [561] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1, .production_id = 9), + [563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), + [569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207), + [573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248), + [575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [583] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 21), + [585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), + [587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), + [591] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 45), + [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 41), + [595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 48), + [597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), + [599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 22), + [601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), + [603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), + [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 39), + [607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), + [609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 3, .production_id = 6), + [611] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 32), + [613] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 46), + [615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 4, .production_id = 12), + [617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 40), + [619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_obj, 1, .production_id = 2), + [621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_domain_statement, 2, .production_id = 13), [623] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_obj, 2, .production_id = 3), - [625] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_obj, 1, .production_id = 2), - [627] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), - [629] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 6), + [625] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 42), + [627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), [631] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 5), - [633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [635] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 8), - [637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), - [639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), - [641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [643] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), - [645] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), - [649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [651] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), + [633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), + [635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(236), + [639] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 8), + [641] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), + [645] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), + [647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), }; #ifdef __cplusplus From 85d59d755ee107b6e4a56c53b8b62ed89c3a2cd6 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Mon, 5 Aug 2024 20:10:05 +0200 Subject: [PATCH 42/49] Merge source_obj & global_objects --- grammar.js | 8 +- src/grammar.json | 19 +- src/node-types.json | 44 +- src/parser.c | 4873 ++++++++++++++++++++++--------------------- 4 files changed, 2465 insertions(+), 2479 deletions(-) diff --git a/grammar.js b/grammar.js index d1c79a1..ee242c4 100644 --- a/grammar.js +++ b/grammar.js @@ -43,14 +43,10 @@ module.exports = grammar({ rules: { // Top level structure - source_file: $ => newlineSepSeq($, $.source_obj), - - source_obj: $ => seq( - optional(field('extern_marker', choice('__builtin__', 'extern'))), - field('object', $.global_object) - ), + source_file: $ => newlineSepSeq($, $.global_object), global_object: $ => seq( + optional(field('extern_marker', choice('__builtin__', 'extern'))), // Because we want to reuse our "generative code", we parse them under the same umbrella. // Their differences are their semantic meaning, and therefore what constructs are allowed in each // For instance, modules have no restrictions diff --git a/src/grammar.json b/src/grammar.json index ada67f2..2a98464 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -28,7 +28,7 @@ "name": "item", "content": { "type": "SYMBOL", - "name": "source_obj" + "name": "global_object" } }, { @@ -45,7 +45,7 @@ "name": "item", "content": { "type": "SYMBOL", - "name": "source_obj" + "name": "global_object" } } ] @@ -72,7 +72,7 @@ } ] }, - "source_obj": { + "global_object": { "type": "SEQ", "members": [ { @@ -100,19 +100,6 @@ } ] }, - { - "type": "FIELD", - "name": "object", - "content": { - "type": "SYMBOL", - "name": "global_object" - } - } - ] - }, - "global_object": { - "type": "SEQ", - "members": [ { "type": "FIELD", "name": "object_type", diff --git a/src/node-types.json b/src/node-types.json index 3c7d72b..aa08ba2 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -763,6 +763,20 @@ } ] }, + "extern_marker": { + "multiple": false, + "required": false, + "types": [ + { + "type": "__builtin__", + "named": false + }, + { + "type": "extern", + "named": false + } + ] + }, "name": { "multiple": false, "required": true, @@ -1062,36 +1076,6 @@ "item": { "multiple": true, "required": false, - "types": [ - { - "type": "source_obj", - "named": true - } - ] - } - } - }, - { - "type": "source_obj", - "named": true, - "fields": { - "extern_marker": { - "multiple": false, - "required": false, - "types": [ - { - "type": "__builtin__", - "named": false - }, - { - "type": "extern", - "named": false - } - ] - }, - "object": { - "multiple": false, - "required": true, "types": [ { "type": "global_object", diff --git a/src/parser.c b/src/parser.c index 66b4a60..65c54ec 100644 --- a/src/parser.c +++ b/src/parser.c @@ -5,13 +5,13 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 250 +#define STATE_COUNT 253 #define LARGE_STATE_COUNT 2 -#define SYMBOL_COUNT 99 +#define SYMBOL_COUNT 98 #define ALIAS_COUNT 0 #define TOKEN_COUNT 53 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 34 +#define FIELD_COUNT 33 #define MAX_ALIAS_SEQUENCE_LENGTH 7 #define PRODUCTION_ID_COUNT 53 @@ -69,51 +69,50 @@ enum ts_symbol_identifiers { sym_single_line_comment = 51, sym_multi_line_comment = 52, sym_source_file = 53, - sym_source_obj = 54, - sym_global_object = 55, - sym_template_declaration_arguments = 56, - sym_template_declaration_type = 57, - sym_block = 58, - sym_decl_assign_statement = 59, - sym_assign_left_side = 60, - sym_assign_to = 61, - sym_write_modifiers = 62, - sym_if_statement = 63, - sym_for_statement = 64, - sym_domain_statement = 65, - sym_interface_statement = 66, - sym_interface_ports = 67, - sym__interface_ports_output = 68, - sym_declaration_list = 69, - sym_declaration = 70, - sym_latency_specifier = 71, - sym__type = 72, - sym_array_type = 73, - sym__expression = 74, - sym_unary_op = 75, - sym_binary_op = 76, - sym_array_op = 77, - sym_func_call = 78, - sym_field_access = 79, - sym_parenthesis_expression_list = 80, - sym_parenthesis_expression = 81, - sym_array_bracket_expression = 82, - sym_template_global = 83, - sym_template_type_param = 84, - sym_template_value_param = 85, - sym_template_params = 86, - sym__comma = 87, - aux_sym__linebreak = 88, - aux_sym_source_file_repeat1 = 89, - aux_sym_template_declaration_arguments_repeat1 = 90, - aux_sym_block_repeat1 = 91, - aux_sym_assign_left_side_repeat1 = 92, - aux_sym_write_modifiers_repeat1 = 93, - aux_sym_declaration_list_repeat1 = 94, - aux_sym_parenthesis_expression_list_repeat1 = 95, - aux_sym_template_global_repeat1 = 96, - aux_sym_template_params_repeat1 = 97, - aux_sym_template_params_repeat2 = 98, + sym_global_object = 54, + sym_template_declaration_arguments = 55, + sym_template_declaration_type = 56, + sym_block = 57, + sym_decl_assign_statement = 58, + sym_assign_left_side = 59, + sym_assign_to = 60, + sym_write_modifiers = 61, + sym_if_statement = 62, + sym_for_statement = 63, + sym_domain_statement = 64, + sym_interface_statement = 65, + sym_interface_ports = 66, + sym__interface_ports_output = 67, + sym_declaration_list = 68, + sym_declaration = 69, + sym_latency_specifier = 70, + sym__type = 71, + sym_array_type = 72, + sym__expression = 73, + sym_unary_op = 74, + sym_binary_op = 75, + sym_array_op = 76, + sym_func_call = 77, + sym_field_access = 78, + sym_parenthesis_expression_list = 79, + sym_parenthesis_expression = 80, + sym_array_bracket_expression = 81, + sym_template_global = 82, + sym_template_type_param = 83, + sym_template_value_param = 84, + sym_template_params = 85, + sym__comma = 86, + aux_sym__linebreak = 87, + aux_sym_source_file_repeat1 = 88, + aux_sym_template_declaration_arguments_repeat1 = 89, + aux_sym_block_repeat1 = 90, + aux_sym_assign_left_side_repeat1 = 91, + aux_sym_write_modifiers_repeat1 = 92, + aux_sym_declaration_list_repeat1 = 93, + aux_sym_parenthesis_expression_list_repeat1 = 94, + aux_sym_template_global_repeat1 = 95, + aux_sym_template_params_repeat1 = 96, + aux_sym_template_params_repeat2 = 97, }; static const char * const ts_symbol_names[] = { @@ -171,7 +170,6 @@ static const char * const ts_symbol_names[] = { [sym_single_line_comment] = "single_line_comment", [sym_multi_line_comment] = "multi_line_comment", [sym_source_file] = "source_file", - [sym_source_obj] = "source_obj", [sym_global_object] = "global_object", [sym_template_declaration_arguments] = "template_declaration_arguments", [sym_template_declaration_type] = "template_declaration_type", @@ -273,7 +271,6 @@ static const TSSymbol ts_symbol_map[] = { [sym_single_line_comment] = sym_single_line_comment, [sym_multi_line_comment] = sym_multi_line_comment, [sym_source_file] = sym_source_file, - [sym_source_obj] = sym_source_obj, [sym_global_object] = sym_global_object, [sym_template_declaration_arguments] = sym_template_declaration_arguments, [sym_template_declaration_type] = sym_template_declaration_type, @@ -537,10 +534,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_source_obj] = { - .visible = true, - .named = true, - }, [sym_global_object] = { .visible = true, .named = true, @@ -744,16 +737,15 @@ enum ts_field_identifiers { field_latency_specifier = 22, field_left = 23, field_name = 24, - field_object = 25, - field_object_type = 26, - field_operator = 27, - field_outputs = 28, - field_right = 29, - field_template_declaration_arguments = 30, - field_then_block = 31, - field_to = 32, - field_type = 33, - field_write_modifiers = 34, + field_object_type = 25, + field_operator = 26, + field_outputs = 27, + field_right = 28, + field_template_declaration_arguments = 29, + field_then_block = 30, + field_to = 31, + field_type = 32, + field_write_modifiers = 33, }; static const char * const ts_field_names[] = { @@ -782,7 +774,6 @@ static const char * const ts_field_names[] = { [field_latency_specifier] = "latency_specifier", [field_left] = "left", [field_name] = "name", - [field_object] = "object", [field_object_type] = "object_type", [field_operator] = "operator", [field_outputs] = "outputs", @@ -796,220 +787,226 @@ static const char * const ts_field_names[] = { static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [1] = {.index = 0, .length = 1}, - [2] = {.index = 1, .length = 1}, - [3] = {.index = 2, .length = 2}, - [4] = {.index = 4, .length = 2}, - [5] = {.index = 6, .length = 1}, - [6] = {.index = 7, .length = 3}, - [7] = {.index = 10, .length = 2}, - [8] = {.index = 12, .length = 2}, - [9] = {.index = 14, .length = 1}, - [10] = {.index = 15, .length = 1}, - [11] = {.index = 16, .length = 1}, - [12] = {.index = 17, .length = 4}, - [13] = {.index = 21, .length = 1}, - [14] = {.index = 22, .length = 2}, - [15] = {.index = 24, .length = 2}, - [16] = {.index = 26, .length = 2}, - [17] = {.index = 28, .length = 2}, - [18] = {.index = 30, .length = 2}, - [19] = {.index = 32, .length = 2}, - [20] = {.index = 34, .length = 2}, - [21] = {.index = 36, .length = 2}, - [22] = {.index = 38, .length = 2}, - [23] = {.index = 40, .length = 3}, - [24] = {.index = 43, .length = 3}, - [25] = {.index = 46, .length = 1}, - [26] = {.index = 47, .length = 3}, - [27] = {.index = 50, .length = 2}, - [28] = {.index = 52, .length = 3}, - [29] = {.index = 55, .length = 3}, - [30] = {.index = 58, .length = 2}, - [31] = {.index = 60, .length = 1}, - [32] = {.index = 61, .length = 1}, - [33] = {.index = 62, .length = 1}, - [34] = {.index = 63, .length = 4}, - [35] = {.index = 67, .length = 4}, - [36] = {.index = 71, .length = 4}, - [37] = {.index = 75, .length = 1}, - [38] = {.index = 76, .length = 2}, - [39] = {.index = 78, .length = 3}, - [40] = {.index = 81, .length = 1}, - [41] = {.index = 82, .length = 2}, - [42] = {.index = 84, .length = 1}, - [43] = {.index = 85, .length = 1}, - [44] = {.index = 86, .length = 5}, - [45] = {.index = 91, .length = 1}, - [46] = {.index = 92, .length = 2}, - [47] = {.index = 94, .length = 2}, - [48] = {.index = 96, .length = 4}, - [49] = {.index = 100, .length = 2}, - [50] = {.index = 102, .length = 3}, - [51] = {.index = 105, .length = 3}, - [52] = {.index = 108, .length = 4}, + [2] = {.index = 1, .length = 2}, + [3] = {.index = 3, .length = 1}, + [4] = {.index = 4, .length = 3}, + [5] = {.index = 7, .length = 2}, + [6] = {.index = 9, .length = 2}, + [7] = {.index = 11, .length = 4}, + [8] = {.index = 15, .length = 1}, + [9] = {.index = 16, .length = 1}, + [10] = {.index = 17, .length = 1}, + [11] = {.index = 18, .length = 4}, + [12] = {.index = 22, .length = 5}, + [13] = {.index = 27, .length = 1}, + [14] = {.index = 28, .length = 2}, + [15] = {.index = 30, .length = 2}, + [16] = {.index = 32, .length = 2}, + [17] = {.index = 34, .length = 2}, + [18] = {.index = 36, .length = 2}, + [19] = {.index = 38, .length = 2}, + [20] = {.index = 40, .length = 2}, + [21] = {.index = 42, .length = 2}, + [22] = {.index = 44, .length = 2}, + [23] = {.index = 46, .length = 3}, + [24] = {.index = 49, .length = 3}, + [25] = {.index = 52, .length = 1}, + [26] = {.index = 53, .length = 3}, + [27] = {.index = 56, .length = 2}, + [28] = {.index = 58, .length = 3}, + [29] = {.index = 61, .length = 3}, + [30] = {.index = 64, .length = 2}, + [31] = {.index = 66, .length = 1}, + [32] = {.index = 67, .length = 1}, + [33] = {.index = 68, .length = 1}, + [34] = {.index = 69, .length = 4}, + [35] = {.index = 73, .length = 4}, + [36] = {.index = 77, .length = 4}, + [37] = {.index = 81, .length = 1}, + [38] = {.index = 82, .length = 2}, + [39] = {.index = 84, .length = 3}, + [40] = {.index = 87, .length = 1}, + [41] = {.index = 88, .length = 2}, + [42] = {.index = 90, .length = 1}, + [43] = {.index = 91, .length = 1}, + [44] = {.index = 92, .length = 5}, + [45] = {.index = 97, .length = 1}, + [46] = {.index = 98, .length = 2}, + [47] = {.index = 100, .length = 2}, + [48] = {.index = 102, .length = 4}, + [49] = {.index = 106, .length = 2}, + [50] = {.index = 108, .length = 3}, + [51] = {.index = 111, .length = 3}, + [52] = {.index = 114, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { [0] = {field_item, 0}, [1] = - {field_object, 0}, - [2] = - {field_extern_marker, 0}, - {field_object, 1}, - [4] = {field_item, 0}, {field_item, 1, .inherited = true}, - [6] = + [3] = {field_item, 1}, - [7] = + [4] = {field_block, 2}, {field_name, 1}, {field_object_type, 0}, - [10] = + [7] = {field_item, 0, .inherited = true}, {field_item, 1, .inherited = true}, - [12] = + [9] = {field_item, 1}, {field_item, 2, .inherited = true}, - [14] = - {field_name, 0}, + [11] = + {field_block, 3}, + {field_extern_marker, 0}, + {field_name, 2}, + {field_object_type, 1}, [15] = - {field_expr_or_decl, 0}, + {field_name, 0}, [16] = - {field_item, 0, .inherited = true}, + {field_expr_or_decl, 0}, [17] = + {field_item, 0, .inherited = true}, + [18] = {field_block, 3}, {field_name, 1}, {field_object_type, 0}, {field_template_declaration_arguments, 2}, - [21] = - {field_name, 1}, [22] = + {field_block, 4}, + {field_extern_marker, 0}, + {field_name, 2}, + {field_object_type, 1}, + {field_template_declaration_arguments, 3}, + [27] = + {field_name, 1}, + [28] = {field_operator, 0}, {field_right, 1}, - [24] = + [30] = {field_is_global_path, 0}, {field_item, 1}, - [26] = + [32] = {field_expr_or_decl, 1}, {field_write_modifiers, 0}, - [28] = + [34] = {field_name, 1}, {field_type, 0}, - [30] = + [36] = {field_arr, 0}, {field_arr_idx, 1}, - [32] = + [38] = {field_arguments, 1}, {field_name, 0}, - [34] = + [40] = {field_default_value, 2}, {field_name, 0}, - [36] = + [42] = {field_condition, 1}, {field_then_block, 2}, - [38] = + [44] = {field_interface_ports, 2}, {field_name, 1}, - [40] = + [46] = {field_io_port_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [43] = + [49] = {field_declaration_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [46] = + [52] = {field_content, 1}, - [47] = + [53] = {field_is_global_path, 0}, {field_item, 1}, {field_item, 2, .inherited = true}, - [50] = + [56] = {field_assign_left, 0}, {field_assign_value, 2}, - [52] = + [58] = {field_latency_specifier, 2}, {field_name, 1}, {field_type, 0}, - [55] = + [61] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [58] = + [64] = {field_left, 0}, {field_name, 2}, - [60] = + [66] = {field_item, 2}, - [61] = + [67] = {field_outputs, 1, .inherited = true}, - [62] = + [68] = {field_inputs, 1}, - [63] = + [69] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_name, 3}, {field_type, 2}, - [67] = + [73] = {field_io_port_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [71] = + [77] = {field_declaration_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [75] = + [81] = {field_arg, 0}, - [76] = + [82] = {field_item, 2}, {field_item, 3, .inherited = true}, - [78] = + [84] = {field_condition, 1}, {field_else_block, 4}, {field_then_block, 2}, - [81] = + [87] = {field_outputs, 1}, - [82] = + [88] = {field_inputs, 1}, {field_outputs, 2, .inherited = true}, - [84] = + [90] = {field_outputs, 2, .inherited = true}, - [85] = + [91] = {field_inputs, 2}, - [86] = + [92] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_latency_specifier, 4}, {field_name, 3}, {field_type, 2}, - [91] = + [97] = {field_outputs, 2}, - [92] = + [98] = {field_inputs, 2}, {field_outputs, 3, .inherited = true}, - [94] = + [100] = {field_arg, 2}, {field_name, 0}, - [96] = + [102] = {field_block, 6}, {field_for_decl, 1}, {field_from, 3}, {field_to, 5}, - [100] = + [106] = {field_item, 1}, {field_item, 3}, - [102] = + [108] = {field_item, 1}, {field_item, 3}, {field_item, 4, .inherited = true}, - [105] = + [111] = {field_item, 1}, {field_item, 2, .inherited = true}, {field_item, 4}, - [108] = + [114] = {field_item, 1}, {field_item, 2, .inherited = true}, {field_item, 4}, @@ -1077,16 +1074,16 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [49] = 49, [50] = 50, [51] = 51, - [52] = 52, + [52] = 50, [53] = 53, - [54] = 53, + [54] = 54, [55] = 55, [56] = 56, [57] = 57, [58] = 58, [59] = 59, - [60] = 60, - [61] = 60, + [60] = 58, + [61] = 61, [62] = 62, [63] = 63, [64] = 64, @@ -1104,8 +1101,8 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [76] = 76, [77] = 77, [78] = 78, - [79] = 69, - [80] = 80, + [79] = 79, + [80] = 65, [81] = 81, [82] = 82, [83] = 83, @@ -1124,16 +1121,16 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [96] = 96, [97] = 97, [98] = 98, - [99] = 43, + [99] = 42, [100] = 100, [101] = 101, [102] = 102, [103] = 103, [104] = 104, [105] = 105, - [106] = 106, + [106] = 104, [107] = 107, - [108] = 106, + [108] = 108, [109] = 105, [110] = 107, [111] = 111, @@ -1148,16 +1145,16 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [120] = 120, [121] = 121, [122] = 122, - [123] = 14, - [124] = 124, + [123] = 123, + [124] = 13, [125] = 125, - [126] = 15, - [127] = 127, - [128] = 16, - [129] = 129, - [130] = 12, + [126] = 16, + [127] = 15, + [128] = 14, + [129] = 11, + [130] = 130, [131] = 131, - [132] = 13, + [132] = 132, [133] = 133, [134] = 134, [135] = 135, @@ -1171,16 +1168,16 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [143] = 143, [144] = 144, [145] = 145, - [146] = 18, + [146] = 146, [147] = 147, [148] = 148, - [149] = 32, + [149] = 149, [150] = 150, - [151] = 21, - [152] = 147, + [151] = 151, + [152] = 152, [153] = 153, [154] = 154, - [155] = 155, + [155] = 145, [156] = 156, [157] = 157, [158] = 158, @@ -1198,51 +1195,51 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [170] = 170, [171] = 171, [172] = 172, - [173] = 173, - [174] = 174, - [175] = 25, - [176] = 176, - [177] = 20, - [178] = 178, - [179] = 170, - [180] = 180, + [173] = 21, + [174] = 23, + [175] = 24, + [176] = 25, + [177] = 177, + [178] = 26, + [179] = 27, + [180] = 28, [181] = 181, - [182] = 182, - [183] = 142, - [184] = 19, - [185] = 185, - [186] = 17, + [182] = 161, + [183] = 183, + [184] = 18, + [185] = 29, + [186] = 144, [187] = 187, - [188] = 188, - [189] = 22, + [188] = 33, + [189] = 189, [190] = 190, [191] = 191, - [192] = 23, - [193] = 24, - [194] = 150, + [192] = 192, + [193] = 193, + [194] = 194, [195] = 195, - [196] = 196, - [197] = 168, - [198] = 166, + [196] = 147, + [197] = 197, + [198] = 154, [199] = 199, - [200] = 200, + [200] = 153, [201] = 201, [202] = 202, [203] = 203, - [204] = 157, - [205] = 205, - [206] = 156, + [204] = 204, + [205] = 150, + [206] = 149, [207] = 207, [208] = 208, [209] = 209, [210] = 210, [211] = 211, [212] = 212, - [213] = 209, - [214] = 34, + [213] = 212, + [214] = 214, [215] = 215, [216] = 216, - [217] = 217, + [217] = 34, [218] = 218, [219] = 219, [220] = 220, @@ -1274,7 +1271,10 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [246] = 246, [247] = 247, [248] = 248, - [249] = 240, + [249] = 249, + [250] = 250, + [251] = 244, + [252] = 252, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -3718,8 +3718,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [8] = {.lex_state = 1}, [9] = {.lex_state = 1}, [10] = {.lex_state = 1}, - [11] = {.lex_state = 1}, - [12] = {.lex_state = 2}, + [11] = {.lex_state = 2}, + [12] = {.lex_state = 1}, [13] = {.lex_state = 2}, [14] = {.lex_state = 2}, [15] = {.lex_state = 2}, @@ -3757,11 +3757,11 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [47] = {.lex_state = 2}, [48] = {.lex_state = 2}, [49] = {.lex_state = 2}, - [50] = {.lex_state = 2}, + [50] = {.lex_state = 1}, [51] = {.lex_state = 2}, - [52] = {.lex_state = 2}, - [53] = {.lex_state = 1}, - [54] = {.lex_state = 1}, + [52] = {.lex_state = 1}, + [53] = {.lex_state = 2}, + [54] = {.lex_state = 2}, [55] = {.lex_state = 2}, [56] = {.lex_state = 2}, [57] = {.lex_state = 2}, @@ -3769,8 +3769,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [59] = {.lex_state = 1}, [60] = {.lex_state = 2}, [61] = {.lex_state = 2}, - [62] = {.lex_state = 1}, - [63] = {.lex_state = 2}, + [62] = {.lex_state = 2}, + [63] = {.lex_state = 1}, [64] = {.lex_state = 1}, [65] = {.lex_state = 1}, [66] = {.lex_state = 1}, @@ -3799,10 +3799,10 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [89] = {.lex_state = 1}, [90] = {.lex_state = 1}, [91] = {.lex_state = 1}, - [92] = {.lex_state = 0}, + [92] = {.lex_state = 1}, [93] = {.lex_state = 0}, [94] = {.lex_state = 0}, - [95] = {.lex_state = 1}, + [95] = {.lex_state = 0}, [96] = {.lex_state = 0}, [97] = {.lex_state = 0}, [98] = {.lex_state = 0}, @@ -3820,24 +3820,24 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [110] = {.lex_state = 1}, [111] = {.lex_state = 0}, [112] = {.lex_state = 0}, - [113] = {.lex_state = 1}, + [113] = {.lex_state = 0}, [114] = {.lex_state = 0}, [115] = {.lex_state = 0}, [116] = {.lex_state = 0}, - [117] = {.lex_state = 0}, + [117] = {.lex_state = 1}, [118] = {.lex_state = 0}, - [119] = {.lex_state = 0}, + [119] = {.lex_state = 1}, [120] = {.lex_state = 0}, - [121] = {.lex_state = 1}, + [121] = {.lex_state = 0}, [122] = {.lex_state = 0}, - [123] = {.lex_state = 1}, - [124] = {.lex_state = 0}, - [125] = {.lex_state = 0}, + [123] = {.lex_state = 0}, + [124] = {.lex_state = 1}, + [125] = {.lex_state = 1}, [126] = {.lex_state = 1}, [127] = {.lex_state = 1}, [128] = {.lex_state = 1}, [129] = {.lex_state = 1}, - [130] = {.lex_state = 1}, + [130] = {.lex_state = 0}, [131] = {.lex_state = 1}, [132] = {.lex_state = 1}, [133] = {.lex_state = 1}, @@ -3853,86 +3853,86 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [143] = {.lex_state = 0}, [144] = {.lex_state = 0}, [145] = {.lex_state = 0}, - [146] = {.lex_state = 1}, - [147] = {.lex_state = 0}, + [146] = {.lex_state = 0}, + [147] = {.lex_state = 1}, [148] = {.lex_state = 0}, [149] = {.lex_state = 1}, [150] = {.lex_state = 1}, - [151] = {.lex_state = 1}, - [152] = {.lex_state = 0}, - [153] = {.lex_state = 0}, + [151] = {.lex_state = 0}, + [152] = {.lex_state = 1}, + [153] = {.lex_state = 1}, [154] = {.lex_state = 1}, [155] = {.lex_state = 0}, - [156] = {.lex_state = 1}, + [156] = {.lex_state = 0}, [157] = {.lex_state = 1}, - [158] = {.lex_state = 1}, + [158] = {.lex_state = 0}, [159] = {.lex_state = 0}, [160] = {.lex_state = 0}, - [161] = {.lex_state = 0}, - [162] = {.lex_state = 0}, + [161] = {.lex_state = 1}, + [162] = {.lex_state = 1}, [163] = {.lex_state = 0}, [164] = {.lex_state = 0}, [165] = {.lex_state = 0}, - [166] = {.lex_state = 1}, - [167] = {.lex_state = 1}, - [168] = {.lex_state = 1}, + [166] = {.lex_state = 0}, + [167] = {.lex_state = 0}, + [168] = {.lex_state = 0}, [169] = {.lex_state = 0}, - [170] = {.lex_state = 1}, + [170] = {.lex_state = 0}, [171] = {.lex_state = 0}, [172] = {.lex_state = 0}, - [173] = {.lex_state = 0}, - [174] = {.lex_state = 0}, + [173] = {.lex_state = 1}, + [174] = {.lex_state = 1}, [175] = {.lex_state = 1}, - [176] = {.lex_state = 0}, - [177] = {.lex_state = 1}, + [176] = {.lex_state = 1}, + [177] = {.lex_state = 0}, [178] = {.lex_state = 1}, [179] = {.lex_state = 1}, - [180] = {.lex_state = 0}, - [181] = {.lex_state = 0}, - [182] = {.lex_state = 0}, - [183] = {.lex_state = 0}, + [180] = {.lex_state = 1}, + [181] = {.lex_state = 1}, + [182] = {.lex_state = 1}, + [183] = {.lex_state = 1}, [184] = {.lex_state = 1}, [185] = {.lex_state = 1}, - [186] = {.lex_state = 1}, + [186] = {.lex_state = 0}, [187] = {.lex_state = 0}, - [188] = {.lex_state = 0}, - [189] = {.lex_state = 1}, + [188] = {.lex_state = 1}, + [189] = {.lex_state = 0}, [190] = {.lex_state = 0}, [191] = {.lex_state = 0}, - [192] = {.lex_state = 1}, - [193] = {.lex_state = 1}, - [194] = {.lex_state = 1}, + [192] = {.lex_state = 0}, + [193] = {.lex_state = 0}, + [194] = {.lex_state = 0}, [195] = {.lex_state = 0}, - [196] = {.lex_state = 0}, - [197] = {.lex_state = 1}, + [196] = {.lex_state = 1}, + [197] = {.lex_state = 0}, [198] = {.lex_state = 1}, [199] = {.lex_state = 0}, [200] = {.lex_state = 1}, - [201] = {.lex_state = 0}, - [202] = {.lex_state = 1}, + [201] = {.lex_state = 1}, + [202] = {.lex_state = 0}, [203] = {.lex_state = 1}, [204] = {.lex_state = 1}, - [205] = {.lex_state = 0}, + [205] = {.lex_state = 1}, [206] = {.lex_state = 1}, - [207] = {.lex_state = 1}, + [207] = {.lex_state = 0}, [208] = {.lex_state = 0}, [209] = {.lex_state = 0}, [210] = {.lex_state = 1}, [211] = {.lex_state = 0}, [212] = {.lex_state = 0}, [213] = {.lex_state = 0}, - [214] = {.lex_state = 1}, + [214] = {.lex_state = 0}, [215] = {.lex_state = 0}, - [216] = {.lex_state = 0}, - [217] = {.lex_state = 0}, + [216] = {.lex_state = 1}, + [217] = {.lex_state = 1}, [218] = {.lex_state = 0}, [219] = {.lex_state = 0}, [220] = {.lex_state = 0}, [221] = {.lex_state = 0}, - [222] = {.lex_state = 1}, + [222] = {.lex_state = 0}, [223] = {.lex_state = 0}, [224] = {.lex_state = 0}, - [225] = {.lex_state = 1}, + [225] = {.lex_state = 0}, [226] = {.lex_state = 0}, [227] = {.lex_state = 0}, [228] = {.lex_state = 0}, @@ -3940,11 +3940,11 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [230] = {.lex_state = 0}, [231] = {.lex_state = 0}, [232] = {.lex_state = 0}, - [233] = {.lex_state = 0}, + [233] = {.lex_state = 1}, [234] = {.lex_state = 0}, [235] = {.lex_state = 0}, [236] = {.lex_state = 0}, - [237] = {.lex_state = 0}, + [237] = {.lex_state = 1}, [238] = {.lex_state = 0}, [239] = {.lex_state = 0}, [240] = {.lex_state = 0}, @@ -3957,6 +3957,9 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [247] = {.lex_state = 0}, [248] = {.lex_state = 0}, [249] = {.lex_state = 0}, + [250] = {.lex_state = 0}, + [251] = {.lex_state = 0}, + [252] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -4015,10 +4018,9 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(246), - [sym_source_obj] = STATE(165), - [sym_global_object] = STATE(235), - [aux_sym__linebreak] = STATE(96), + [sym_source_file] = STATE(249), + [sym_global_object] = STATE(151), + [aux_sym__linebreak] = STATE(94), [ts_builtin_sym_end] = ACTIONS(5), [anon_sym___builtin__] = ACTIONS(7), [anon_sym_extern] = ACTIONS(7), @@ -4060,10 +4062,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(43), 1, anon_sym_LF, STATE(42), 1, - sym_write_modifiers, - STATE(43), 1, aux_sym__linebreak, - STATE(48), 1, + STATE(43), 1, + sym_write_modifiers, + STATE(49), 1, sym_template_global, STATE(83), 1, aux_sym_write_modifiers_repeat1, @@ -4071,7 +4073,7 @@ static const uint16_t ts_small_parse_table[] = { sym_assign_to, STATE(195), 1, sym_declaration, - STATE(217), 1, + STATE(218), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4082,10 +4084,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 2, + STATE(207), 2, sym__type, sym_array_type, - STATE(221), 6, + STATE(230), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4136,19 +4138,19 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(45), 1, anon_sym_RBRACE, STATE(42), 1, - sym_write_modifiers, - STATE(43), 1, aux_sym__linebreak, - STATE(48), 1, + STATE(43), 1, + sym_write_modifiers, + STATE(49), 1, sym_template_global, STATE(83), 1, aux_sym_write_modifiers_repeat1, STATE(112), 1, sym_assign_to, - STATE(125), 1, - sym_assign_left_side, STATE(195), 1, sym_declaration, + STATE(218), 1, + sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4158,10 +4160,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 2, + STATE(207), 2, sym__type, sym_array_type, - STATE(159), 6, + STATE(230), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4212,10 +4214,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(47), 1, anon_sym_RBRACE, STATE(42), 1, - sym_write_modifiers, - STATE(43), 1, aux_sym__linebreak, - STATE(48), 1, + STATE(43), 1, + sym_write_modifiers, + STATE(49), 1, sym_template_global, STATE(83), 1, aux_sym_write_modifiers_repeat1, @@ -4223,7 +4225,7 @@ static const uint16_t ts_small_parse_table[] = { sym_assign_to, STATE(195), 1, sym_declaration, - STATE(217), 1, + STATE(218), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4234,10 +4236,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 2, + STATE(207), 2, sym__type, sym_array_type, - STATE(221), 6, + STATE(230), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4288,19 +4290,19 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(49), 1, anon_sym_RBRACE, STATE(42), 1, - sym_write_modifiers, - STATE(43), 1, aux_sym__linebreak, - STATE(48), 1, + STATE(43), 1, + sym_write_modifiers, + STATE(49), 1, sym_template_global, STATE(83), 1, aux_sym_write_modifiers_repeat1, STATE(112), 1, sym_assign_to, + STATE(130), 1, + sym_assign_left_side, STATE(195), 1, sym_declaration, - STATE(217), 1, - sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4310,10 +4312,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 2, + STATE(207), 2, sym__type, sym_array_type, - STATE(221), 6, + STATE(159), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4364,10 +4366,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(51), 1, anon_sym_RBRACE, STATE(42), 1, - sym_write_modifiers, - STATE(43), 1, aux_sym__linebreak, - STATE(48), 1, + STATE(43), 1, + sym_write_modifiers, + STATE(49), 1, sym_template_global, STATE(83), 1, aux_sym_write_modifiers_repeat1, @@ -4375,7 +4377,7 @@ static const uint16_t ts_small_parse_table[] = { sym_assign_to, STATE(195), 1, sym_declaration, - STATE(217), 1, + STATE(218), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4386,10 +4388,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 2, + STATE(207), 2, sym__type, sym_array_type, - STATE(221), 6, + STATE(230), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4440,10 +4442,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(53), 1, anon_sym_RBRACE, STATE(42), 1, - sym_write_modifiers, - STATE(43), 1, aux_sym__linebreak, - STATE(48), 1, + STATE(43), 1, + sym_write_modifiers, + STATE(49), 1, sym_template_global, STATE(83), 1, aux_sym_write_modifiers_repeat1, @@ -4451,7 +4453,7 @@ static const uint16_t ts_small_parse_table[] = { sym_assign_to, STATE(195), 1, sym_declaration, - STATE(217), 1, + STATE(218), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4462,10 +4464,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 2, + STATE(207), 2, sym__type, sym_array_type, - STATE(221), 6, + STATE(230), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4511,24 +4513,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(41), 1, sym_number, - ACTIONS(43), 1, - anon_sym_LF, ACTIONS(55), 1, anon_sym_RBRACE, - STATE(42), 1, - sym_write_modifiers, - STATE(43), 1, + ACTIONS(57), 1, + anon_sym_LF, + STATE(5), 1, aux_sym__linebreak, - STATE(48), 1, + STATE(43), 1, + sym_write_modifiers, + STATE(49), 1, sym_template_global, STATE(83), 1, aux_sym_write_modifiers_repeat1, STATE(112), 1, sym_assign_to, + STATE(123), 1, + sym_assign_left_side, STATE(195), 1, sym_declaration, - STATE(217), 1, - sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4538,10 +4540,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 2, + STATE(207), 2, sym__type, sym_array_type, - STATE(221), 6, + STATE(197), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4587,24 +4589,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(41), 1, sym_number, - ACTIONS(57), 1, - anon_sym_RBRACE, - ACTIONS(59), 1, + ACTIONS(43), 1, anon_sym_LF, - STATE(3), 1, - aux_sym__linebreak, + ACTIONS(59), 1, + anon_sym_RBRACE, STATE(42), 1, + aux_sym__linebreak, + STATE(43), 1, sym_write_modifiers, - STATE(48), 1, + STATE(49), 1, sym_template_global, STATE(83), 1, aux_sym_write_modifiers_repeat1, STATE(112), 1, sym_assign_to, - STATE(124), 1, - sym_assign_left_side, STATE(195), 1, sym_declaration, + STATE(218), 1, + sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4614,10 +4616,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 2, + STATE(207), 2, sym__type, sym_array_type, - STATE(196), 6, + STATE(230), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4666,10 +4668,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(43), 1, anon_sym_LF, STATE(42), 1, - sym_write_modifiers, - STATE(43), 1, aux_sym__linebreak, - STATE(48), 1, + STATE(43), 1, + sym_write_modifiers, + STATE(49), 1, sym_template_global, STATE(83), 1, aux_sym_write_modifiers_repeat1, @@ -4677,7 +4679,7 @@ static const uint16_t ts_small_parse_table[] = { sym_assign_to, STATE(195), 1, sym_declaration, - STATE(217), 1, + STATE(218), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4688,10 +4690,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 2, + STATE(207), 2, sym__type, sym_array_type, - STATE(221), 6, + STATE(230), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4714,7 +4716,46 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [924] = 17, + [924] = 5, + ACTIONS(65), 1, + anon_sym_COLON_COLON, + STATE(11), 1, + aux_sym_template_global_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(61), 8, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(63), 21, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, + anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_LF, + [968] = 17, ACTIONS(13), 1, sym_identifier, ACTIONS(19), 1, @@ -4727,13 +4768,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(41), 1, sym_number, - STATE(42), 1, + STATE(43), 1, sym_write_modifiers, - STATE(48), 1, + STATE(49), 1, sym_template_global, STATE(83), 1, aux_sym_write_modifiers_repeat1, - STATE(140), 1, + STATE(136), 1, sym_assign_to, STATE(195), 1, sym_declaration, @@ -4746,7 +4787,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 2, + STATE(207), 2, sym__type, sym_array_type, ACTIONS(35), 7, @@ -4765,15 +4806,15 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [992] = 5, - ACTIONS(65), 1, + [1036] = 5, + ACTIONS(72), 1, anon_sym_COLON_COLON, - STATE(15), 1, + STATE(11), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(61), 8, + ACTIONS(68), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4782,7 +4823,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(63), 21, + ACTIONS(70), 21, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4804,15 +4845,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1036] = 5, - ACTIONS(65), 1, + [1080] = 5, + ACTIONS(72), 1, anon_sym_COLON_COLON, - STATE(14), 1, + STATE(15), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(67), 8, + ACTIONS(74), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4821,7 +4862,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(69), 21, + ACTIONS(76), 21, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4843,15 +4884,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1080] = 5, - ACTIONS(65), 1, + [1124] = 5, + ACTIONS(72), 1, anon_sym_COLON_COLON, - STATE(16), 1, + STATE(11), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(71), 8, + ACTIONS(78), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4860,7 +4901,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(73), 21, + ACTIONS(80), 21, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4882,15 +4923,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1124] = 5, - ACTIONS(65), 1, + [1168] = 5, + ACTIONS(72), 1, anon_sym_COLON_COLON, - STATE(16), 1, + STATE(13), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(75), 8, + ACTIONS(82), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4899,7 +4940,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(77), 21, + ACTIONS(84), 21, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4921,26 +4962,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1168] = 5, - ACTIONS(83), 1, - anon_sym_COLON_COLON, - STATE(16), 1, - aux_sym_template_global_repeat1, + [1212] = 8, + ACTIONS(90), 1, + anon_sym_DOT, + ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, + anon_sym_LBRACK, + STATE(40), 1, + sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(79), 8, + ACTIONS(86), 5, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, anon_sym_DASH, anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(81), 21, + ACTIONS(88), 20, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4953,18 +4998,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1212] = 3, + [1261] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 8, + ACTIONS(96), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4973,7 +5016,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(88), 22, + ACTIONS(98), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4996,58 +5039,78 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1251] = 3, + [1300] = 15, + ACTIONS(90), 1, + anon_sym_DOT, + ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, + anon_sym_LBRACK, + ACTIONS(104), 1, + anon_sym_PLUS, + ACTIONS(106), 1, + anon_sym_DASH, + ACTIONS(110), 1, + anon_sym_PIPE, + ACTIONS(112), 1, + anon_sym_AMP, + ACTIONS(114), 1, + anon_sym_CARET, + ACTIONS(116), 1, + anon_sym_SLASH, + STATE(40), 1, + sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(90), 8, + ACTIONS(108), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(100), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(92), 22, + ACTIONS(102), 14, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1290] = 3, + [1363] = 8, + ACTIONS(90), 1, + anon_sym_DOT, + ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, + anon_sym_LBRACK, + STATE(40), 1, + sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(94), 8, + ACTIONS(100), 5, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, anon_sym_DASH, anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(96), 22, + ACTIONS(102), 20, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, anon_sym_PLUS, @@ -5060,19 +5123,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1329] = 3, + [1412] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(98), 8, + ACTIONS(118), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5081,7 +5141,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(100), 22, + ACTIONS(120), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5104,47 +5164,57 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1368] = 3, + [1451] = 13, + ACTIONS(90), 1, + anon_sym_DOT, + ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, + anon_sym_LBRACK, + ACTIONS(104), 1, + anon_sym_PLUS, + ACTIONS(106), 1, + anon_sym_DASH, + ACTIONS(114), 1, + anon_sym_CARET, + ACTIONS(116), 1, + anon_sym_SLASH, + STATE(40), 1, + sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(102), 8, + ACTIONS(108), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(100), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, + ACTIONS(102), 16, + anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(104), 22, - anon_sym_LBRACE, - anon_sym_RBRACE, anon_sym_DOT_DOT, anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1407] = 3, + [1510] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(106), 8, + ACTIONS(122), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5153,7 +5223,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(108), 22, + ACTIONS(124), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5176,11 +5246,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1446] = 3, + [1549] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(110), 8, + ACTIONS(126), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5189,7 +5259,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(112), 22, + ACTIONS(128), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5212,11 +5282,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1485] = 3, + [1588] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(114), 8, + ACTIONS(130), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5225,7 +5295,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(116), 22, + ACTIONS(132), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5248,11 +5318,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1524] = 3, + [1627] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(118), 8, + ACTIONS(134), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5261,7 +5331,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(120), 22, + ACTIONS(136), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5284,39 +5354,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1563] = 12, - ACTIONS(126), 1, - anon_sym_PLUS, - ACTIONS(128), 1, - anon_sym_DASH, - ACTIONS(132), 1, - anon_sym_SLASH, - ACTIONS(134), 1, - anon_sym_DOT, - ACTIONS(136), 1, - anon_sym_LPAREN, - ACTIONS(138), 1, - anon_sym_LBRACK, - STATE(35), 1, - sym_parenthesis_expression_list, - STATE(36), 1, - sym_array_bracket_expression, + [1666] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(122), 3, + ACTIONS(138), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(124), 17, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(140), 22, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -5324,140 +5381,125 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1620] = 14, - ACTIONS(126), 1, - anon_sym_PLUS, - ACTIONS(128), 1, - anon_sym_DASH, - ACTIONS(132), 1, - anon_sym_SLASH, - ACTIONS(134), 1, - anon_sym_DOT, - ACTIONS(136), 1, - anon_sym_LPAREN, - ACTIONS(138), 1, - anon_sym_LBRACK, - ACTIONS(140), 1, - anon_sym_PIPE, - ACTIONS(142), 1, - anon_sym_CARET, - STATE(35), 1, - sym_parenthesis_expression_list, - STATE(36), 1, - sym_array_bracket_expression, + [1705] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(122), 3, + ACTIONS(142), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(124), 15, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(144), 22, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1681] = 15, - ACTIONS(126), 1, - anon_sym_PLUS, - ACTIONS(128), 1, - anon_sym_DASH, - ACTIONS(132), 1, - anon_sym_SLASH, - ACTIONS(134), 1, - anon_sym_DOT, - ACTIONS(136), 1, - anon_sym_LPAREN, - ACTIONS(138), 1, - anon_sym_LBRACK, - ACTIONS(140), 1, - anon_sym_PIPE, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, - anon_sym_AMP, - STATE(35), 1, - sym_parenthesis_expression_list, - STATE(36), 1, - sym_array_bracket_expression, + [1744] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(122), 3, + ACTIONS(146), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(124), 14, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(148), 22, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1744] = 10, - ACTIONS(132), 1, - anon_sym_SLASH, - ACTIONS(134), 1, + [1783] = 14, + ACTIONS(90), 1, anon_sym_DOT, - ACTIONS(136), 1, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(138), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - STATE(35), 1, - sym_parenthesis_expression_list, - STATE(36), 1, + ACTIONS(104), 1, + anon_sym_PLUS, + ACTIONS(106), 1, + anon_sym_DASH, + ACTIONS(110), 1, + anon_sym_PIPE, + ACTIONS(114), 1, + anon_sym_CARET, + ACTIONS(116), 1, + anon_sym_SLASH, + STATE(40), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 2, + ACTIONS(108), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(122), 4, + ACTIONS(100), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_DASH, - ACTIONS(124), 18, + ACTIONS(102), 15, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -5467,34 +5509,37 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1797] = 8, - ACTIONS(134), 1, + [1844] = 10, + ACTIONS(90), 1, anon_sym_DOT, - ACTIONS(136), 1, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(138), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - STATE(35), 1, - sym_parenthesis_expression_list, - STATE(36), 1, + ACTIONS(116), 1, + anon_sym_SLASH, + STATE(40), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(146), 5, + ACTIONS(108), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(100), 4, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, - anon_sym_SLASH, - ACTIONS(148), 20, + ACTIONS(102), 18, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, anon_sym_PLUS, - anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -5502,42 +5547,39 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1846] = 13, - ACTIONS(126), 1, - anon_sym_PLUS, - ACTIONS(128), 1, - anon_sym_DASH, - ACTIONS(132), 1, - anon_sym_SLASH, - ACTIONS(134), 1, + [1897] = 12, + ACTIONS(90), 1, anon_sym_DOT, - ACTIONS(136), 1, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(138), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(142), 1, - anon_sym_CARET, - STATE(35), 1, - sym_parenthesis_expression_list, - STATE(36), 1, + ACTIONS(104), 1, + anon_sym_PLUS, + ACTIONS(106), 1, + anon_sym_DASH, + ACTIONS(116), 1, + anon_sym_SLASH, + STATE(40), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 2, + ACTIONS(108), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(122), 3, + ACTIONS(100), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(124), 16, + ACTIONS(102), 17, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, @@ -5545,6 +5587,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_GT, anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -5554,7 +5597,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1905] = 3, + [1954] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -5590,47 +5633,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1944] = 8, - ACTIONS(134), 1, - anon_sym_DOT, - ACTIONS(136), 1, - anon_sym_LPAREN, - ACTIONS(138), 1, - anon_sym_LBRACK, - STATE(35), 1, - sym_parenthesis_expression_list, - STATE(36), 1, - sym_array_bracket_expression, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(122), 5, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - anon_sym_DASH, - anon_sym_SLASH, - ACTIONS(124), 20, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DOT_DOT, - anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_LF, [1993] = 3, ACTIONS(3), 2, sym_single_line_comment, @@ -5904,18 +5906,52 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [2290] = 12, + [2290] = 5, + ACTIONS(190), 1, + anon_sym_LF, + STATE(42), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(186), 12, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + anon_sym_domain, + anon_sym_interface, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + anon_sym_DASH, + sym_identifier, + ACTIONS(188), 12, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, + [2329] = 12, ACTIONS(13), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(186), 1, + ACTIONS(193), 1, sym_number, - STATE(48), 1, + STATE(49), 1, sym_template_global, - STATE(169), 1, + STATE(166), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -5926,7 +5962,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 2, + STATE(207), 2, sym__type, sym_array_type, ACTIONS(35), 7, @@ -5945,69 +5981,35 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [2343] = 5, - ACTIONS(192), 1, - anon_sym_LF, - STATE(43), 1, - aux_sym__linebreak, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(188), 12, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - anon_sym_domain, - anon_sym_interface, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - anon_sym_DASH, - sym_identifier, - ACTIONS(190), 12, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_COLON_COLON, - sym_number, [2382] = 17, - ACTIONS(126), 1, - anon_sym_PLUS, - ACTIONS(128), 1, - anon_sym_DASH, - ACTIONS(132), 1, - anon_sym_SLASH, - ACTIONS(136), 1, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(138), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(140), 1, + ACTIONS(104), 1, + anon_sym_PLUS, + ACTIONS(106), 1, + anon_sym_DASH, + ACTIONS(110), 1, anon_sym_PIPE, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, + ACTIONS(112), 1, anon_sym_AMP, + ACTIONS(114), 1, + anon_sym_CARET, + ACTIONS(116), 1, + anon_sym_SLASH, ACTIONS(197), 1, anon_sym_EQ, ACTIONS(203), 1, anon_sym_DOT, - STATE(35), 1, - sym_parenthesis_expression_list, - STATE(36), 1, + STATE(40), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 2, + ACTIONS(108), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(195), 2, @@ -6025,33 +6027,33 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_LF, [2444] = 16, - ACTIONS(132), 1, - anon_sym_SLASH, - ACTIONS(136), 1, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(138), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(140), 1, + ACTIONS(110), 1, anon_sym_PIPE, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, + ACTIONS(112), 1, anon_sym_AMP, + ACTIONS(114), 1, + anon_sym_CARET, + ACTIONS(116), 1, + anon_sym_SLASH, ACTIONS(203), 1, anon_sym_DOT, ACTIONS(205), 1, anon_sym_EQ, - STATE(35), 1, - sym_parenthesis_expression_list, - STATE(36), 1, + STATE(40), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(126), 2, + ACTIONS(104), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(130), 2, + ACTIONS(108), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(195), 2, @@ -6067,33 +6069,33 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, [2502] = 16, - ACTIONS(132), 1, - anon_sym_SLASH, - ACTIONS(136), 1, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(138), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(140), 1, + ACTIONS(110), 1, anon_sym_PIPE, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, + ACTIONS(112), 1, anon_sym_AMP, + ACTIONS(114), 1, + anon_sym_CARET, + ACTIONS(116), 1, + anon_sym_SLASH, ACTIONS(203), 1, anon_sym_DOT, ACTIONS(209), 1, anon_sym_EQ, - STATE(35), 1, - sym_parenthesis_expression_list, - STATE(36), 1, + STATE(40), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(126), 2, + ACTIONS(104), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(130), 2, + ACTIONS(108), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(195), 2, @@ -6109,39 +6111,39 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, [2560] = 18, - ACTIONS(132), 1, - anon_sym_SLASH, - ACTIONS(136), 1, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(138), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(140), 1, + ACTIONS(110), 1, anon_sym_PIPE, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, + ACTIONS(112), 1, anon_sym_AMP, + ACTIONS(114), 1, + anon_sym_CARET, + ACTIONS(116), 1, + anon_sym_SLASH, ACTIONS(203), 1, anon_sym_DOT, ACTIONS(213), 1, anon_sym_RPAREN, ACTIONS(215), 1, anon_sym_COMMA, - STATE(35), 1, - sym_parenthesis_expression_list, - STATE(36), 1, + STATE(40), 1, sym_array_bracket_expression, - STATE(71), 1, + STATE(41), 1, + sym_parenthesis_expression_list, + STATE(78), 1, sym__comma, - STATE(160), 1, + STATE(163), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(126), 2, + ACTIONS(104), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(130), 2, + ACTIONS(108), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(195), 2, @@ -6152,21 +6154,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2622] = 5, + [2622] = 6, + ACTIONS(72), 1, + anon_sym_COLON_COLON, ACTIONS(217), 1, - sym_identifier, - ACTIONS(223), 1, - anon_sym_LBRACK, + anon_sym_EQ, + STATE(13), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(219), 4, + ACTIONS(82), 3, anon_sym_LT, anon_sym_GT, - anon_sym_EQ, anon_sym_SLASH, - ACTIONS(221), 16, - anon_sym_RBRACE, + ACTIONS(84), 16, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6180,23 +6182,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_DOT, anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, anon_sym_COMMA, - anon_sym_LF, - [2657] = 6, - ACTIONS(65), 1, - anon_sym_COLON_COLON, - ACTIONS(226), 1, - anon_sym_EQ, - STATE(14), 1, - aux_sym_template_global_repeat1, + [2659] = 5, + ACTIONS(219), 1, + sym_identifier, + ACTIONS(225), 1, + anon_sym_LBRACK, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(67), 3, + ACTIONS(221), 4, anon_sym_LT, anon_sym_GT, + anon_sym_EQ, anon_sym_SLASH, - ACTIONS(69), 16, + ACTIONS(223), 16, + anon_sym_RBRACE, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6210,172 +6213,92 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_DOT, anon_sym_LPAREN, - anon_sym_LBRACK, - anon_sym_SEMI, anon_sym_COMMA, - [2694] = 15, - ACTIONS(132), 1, - anon_sym_SLASH, - ACTIONS(136), 1, + anon_sym_LF, + [2694] = 9, + ACTIONS(37), 1, anon_sym_LPAREN, - ACTIONS(138), 1, - anon_sym_LBRACK, - ACTIONS(140), 1, - anon_sym_PIPE, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, - anon_sym_AMP, - ACTIONS(203), 1, - anon_sym_DOT, - STATE(35), 1, - sym_parenthesis_expression_list, - STATE(36), 1, - sym_array_bracket_expression, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + ACTIONS(228), 1, + sym_identifier, + ACTIONS(230), 1, + anon_sym_SEMI, + ACTIONS(232), 1, + sym_number, + STATE(145), 1, + sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(126), 2, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(130), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(195), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(228), 2, - anon_sym_SEMI, - anon_sym_COMMA, - ACTIONS(201), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [2748] = 15, - ACTIONS(132), 1, - anon_sym_SLASH, - ACTIONS(136), 1, - anon_sym_LPAREN, - ACTIONS(138), 1, - anon_sym_LBRACK, - ACTIONS(140), 1, + anon_sym_BANG, anon_sym_PIPE, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, anon_sym_AMP, - ACTIONS(203), 1, - anon_sym_DOT, - STATE(35), 1, - sym_parenthesis_expression_list, - STATE(36), 1, - sym_array_bracket_expression, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(126), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(130), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(195), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(230), 2, - anon_sym_SEMI, - anon_sym_COMMA, - ACTIONS(201), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [2802] = 16, - ACTIONS(15), 1, - anon_sym_LBRACE, - ACTIONS(132), 1, - anon_sym_SLASH, - ACTIONS(136), 1, + anon_sym_CARET, + STATE(56), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_template_global, + [2736] = 15, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(138), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(140), 1, + ACTIONS(110), 1, anon_sym_PIPE, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, + ACTIONS(112), 1, anon_sym_AMP, + ACTIONS(114), 1, + anon_sym_CARET, + ACTIONS(116), 1, + anon_sym_SLASH, ACTIONS(203), 1, anon_sym_DOT, - STATE(35), 1, - sym_parenthesis_expression_list, - STATE(36), 1, + STATE(40), 1, sym_array_bracket_expression, - STATE(220), 1, - sym_block, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(126), 2, + ACTIONS(104), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(130), 2, + ACTIONS(108), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(195), 2, anon_sym_LT, anon_sym_GT, + ACTIONS(234), 2, + anon_sym_RPAREN, + anon_sym_COMMA, ACTIONS(201), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2858] = 9, + [2790] = 9, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(232), 1, + ACTIONS(228), 1, sym_identifier, - ACTIONS(234), 1, - anon_sym_SEMI, - ACTIONS(236), 1, - sym_number, - STATE(147), 1, - sym_template_value_param, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(35), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(51), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_template_global, - [2900] = 9, - ACTIONS(37), 1, - anon_sym_LPAREN, - ACTIONS(39), 1, - anon_sym_COLON_COLON, ACTIONS(232), 1, - sym_identifier, - ACTIONS(236), 1, sym_number, - ACTIONS(238), 1, + ACTIONS(236), 1, anon_sym_SEMI, - STATE(152), 1, + STATE(155), 1, sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, @@ -6388,7 +6311,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(51), 8, + STATE(56), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6397,114 +6320,115 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2942] = 15, - ACTIONS(132), 1, - anon_sym_SLASH, - ACTIONS(136), 1, + [2832] = 16, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(138), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(140), 1, + ACTIONS(110), 1, anon_sym_PIPE, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, + ACTIONS(112), 1, anon_sym_AMP, + ACTIONS(114), 1, + anon_sym_CARET, + ACTIONS(116), 1, + anon_sym_SLASH, ACTIONS(203), 1, anon_sym_DOT, - STATE(35), 1, - sym_parenthesis_expression_list, - STATE(36), 1, + STATE(40), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, + STATE(221), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(126), 2, + ACTIONS(104), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(130), 2, + ACTIONS(108), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(195), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(240), 2, - anon_sym_RBRACE, - anon_sym_LF, ACTIONS(201), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2996] = 15, - ACTIONS(132), 1, - anon_sym_SLASH, - ACTIONS(136), 1, + [2888] = 15, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(138), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(140), 1, + ACTIONS(110), 1, anon_sym_PIPE, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, + ACTIONS(112), 1, anon_sym_AMP, + ACTIONS(114), 1, + anon_sym_CARET, + ACTIONS(116), 1, + anon_sym_SLASH, ACTIONS(203), 1, anon_sym_DOT, - STATE(35), 1, - sym_parenthesis_expression_list, - STATE(36), 1, + STATE(40), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(126), 2, + ACTIONS(104), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(130), 2, + ACTIONS(108), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(195), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(242), 2, - anon_sym_RPAREN, - anon_sym_COMMA, + ACTIONS(238), 2, + anon_sym_RBRACE, + anon_sym_LF, ACTIONS(201), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3050] = 16, + [2942] = 16, ACTIONS(15), 1, anon_sym_LBRACE, - ACTIONS(132), 1, - anon_sym_SLASH, - ACTIONS(136), 1, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(138), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(140), 1, + ACTIONS(110), 1, anon_sym_PIPE, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, + ACTIONS(112), 1, anon_sym_AMP, + ACTIONS(114), 1, + anon_sym_CARET, + ACTIONS(116), 1, + anon_sym_SLASH, ACTIONS(203), 1, anon_sym_DOT, - STATE(35), 1, - sym_parenthesis_expression_list, - STATE(36), 1, + STATE(40), 1, sym_array_bracket_expression, - STATE(215), 1, + STATE(41), 1, + sym_parenthesis_expression_list, + STATE(211), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(126), 2, + ACTIONS(104), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(130), 2, + ACTIONS(108), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(195), 2, @@ -6515,141 +6439,112 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3106] = 15, - ACTIONS(132), 1, - anon_sym_SLASH, - ACTIONS(136), 1, + [2998] = 15, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(138), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(140), 1, + ACTIONS(110), 1, anon_sym_PIPE, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, + ACTIONS(112), 1, anon_sym_AMP, + ACTIONS(114), 1, + anon_sym_CARET, + ACTIONS(116), 1, + anon_sym_SLASH, ACTIONS(203), 1, anon_sym_DOT, - ACTIONS(244), 1, - anon_sym_RPAREN, - STATE(35), 1, - sym_parenthesis_expression_list, - STATE(36), 1, + STATE(40), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(126), 2, + ACTIONS(104), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(130), 2, + ACTIONS(108), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(195), 2, anon_sym_LT, anon_sym_GT, + ACTIONS(240), 2, + anon_sym_SEMI, + anon_sym_COMMA, ACTIONS(201), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3159] = 8, - ACTIONS(37), 1, + [3052] = 15, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(39), 1, - anon_sym_COLON_COLON, - ACTIONS(246), 1, - sym_identifier, - ACTIONS(248), 1, - anon_sym_RPAREN, - ACTIONS(250), 1, - sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(35), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, + ACTIONS(94), 1, + anon_sym_LBRACK, + ACTIONS(110), 1, anon_sym_PIPE, + ACTIONS(112), 1, anon_sym_AMP, + ACTIONS(114), 1, anon_sym_CARET, - STATE(47), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_template_global, - [3198] = 15, - ACTIONS(132), 1, + ACTIONS(116), 1, anon_sym_SLASH, - ACTIONS(136), 1, - anon_sym_LPAREN, - ACTIONS(138), 1, - anon_sym_LBRACK, - ACTIONS(140), 1, - anon_sym_PIPE, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, - anon_sym_AMP, ACTIONS(203), 1, anon_sym_DOT, - ACTIONS(252), 1, - anon_sym_RBRACK, - STATE(35), 1, - sym_parenthesis_expression_list, - STATE(36), 1, + STATE(40), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(126), 2, + ACTIONS(104), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(130), 2, + ACTIONS(108), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(195), 2, anon_sym_LT, anon_sym_GT, + ACTIONS(242), 2, + anon_sym_SEMI, + anon_sym_COMMA, ACTIONS(201), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3251] = 15, - ACTIONS(132), 1, - anon_sym_SLASH, - ACTIONS(136), 1, + [3106] = 15, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(138), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(140), 1, + ACTIONS(110), 1, anon_sym_PIPE, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, + ACTIONS(112), 1, anon_sym_AMP, + ACTIONS(114), 1, + anon_sym_CARET, + ACTIONS(116), 1, + anon_sym_SLASH, ACTIONS(203), 1, anon_sym_DOT, - ACTIONS(254), 1, + ACTIONS(244), 1, anon_sym_RBRACK, - STATE(35), 1, - sym_parenthesis_expression_list, - STATE(36), 1, + STATE(40), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(126), 2, + ACTIONS(104), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(130), 2, + ACTIONS(108), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(195), 2, @@ -6660,16 +6555,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3304] = 8, + [3159] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(232), 1, + ACTIONS(228), 1, sym_identifier, - ACTIONS(236), 1, + ACTIONS(232), 1, sym_number, - STATE(224), 1, + STATE(231), 1, sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, @@ -6682,7 +6577,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(51), 8, + STATE(56), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6691,34 +6586,34 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3343] = 15, - ACTIONS(132), 1, - anon_sym_SLASH, - ACTIONS(134), 1, - anon_sym_DOT, - ACTIONS(136), 1, + [3198] = 15, + ACTIONS(92), 1, anon_sym_LPAREN, - ACTIONS(138), 1, + ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(140), 1, + ACTIONS(110), 1, anon_sym_PIPE, - ACTIONS(142), 1, - anon_sym_CARET, - ACTIONS(144), 1, + ACTIONS(112), 1, anon_sym_AMP, - ACTIONS(256), 1, - anon_sym_DOT_DOT, - STATE(35), 1, - sym_parenthesis_expression_list, - STATE(36), 1, + ACTIONS(114), 1, + anon_sym_CARET, + ACTIONS(116), 1, + anon_sym_SLASH, + ACTIONS(203), 1, + anon_sym_DOT, + ACTIONS(246), 1, + anon_sym_RBRACK, + STATE(40), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(126), 2, + ACTIONS(104), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(130), 2, + ACTIONS(108), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(195), 2, @@ -6729,41 +6624,92 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3396] = 5, - ACTIONS(43), 1, - anon_sym_LF, - STATE(43), 1, - aux_sym__linebreak, + [3251] = 15, + ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, + anon_sym_LBRACK, + ACTIONS(110), 1, + anon_sym_PIPE, + ACTIONS(112), 1, + anon_sym_AMP, + ACTIONS(114), 1, + anon_sym_CARET, + ACTIONS(116), 1, + anon_sym_SLASH, + ACTIONS(203), 1, + anon_sym_DOT, + ACTIONS(248), 1, + anon_sym_RPAREN, + STATE(40), 1, + sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(258), 7, - anon_sym_reg, - anon_sym_initial, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(260), 10, + ACTIONS(104), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(108), 2, anon_sym_STAR, - anon_sym_BANG, + anon_sym_PERCENT, + ACTIONS(195), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(201), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [3304] = 15, + ACTIONS(90), 1, + anon_sym_DOT, + ACTIONS(92), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, + anon_sym_LBRACK, + ACTIONS(110), 1, anon_sym_PIPE, + ACTIONS(112), 1, anon_sym_AMP, + ACTIONS(114), 1, anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_COLON_COLON, - sym_number, - [3428] = 7, + ACTIONS(116), 1, + anon_sym_SLASH, + ACTIONS(250), 1, + anon_sym_DOT_DOT, + STATE(40), 1, + sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(104), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(108), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(195), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(201), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [3357] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(252), 1, sym_identifier, - ACTIONS(262), 1, + ACTIONS(254), 1, + anon_sym_RPAREN, + ACTIONS(256), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6776,7 +6722,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(50), 8, + STATE(47), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6785,14 +6731,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3464] = 7, + [3396] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(252), 1, sym_identifier, - ACTIONS(264), 1, + ACTIONS(258), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6805,7 +6751,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(63), 8, + STATE(17), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6814,14 +6760,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3500] = 7, + [3432] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(252), 1, sym_identifier, - ACTIONS(266), 1, + ACTIONS(260), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6834,7 +6780,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(55), 8, + STATE(60), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6843,14 +6789,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3536] = 7, + [3468] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(252), 1, sym_identifier, - ACTIONS(268), 1, + ACTIONS(262), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6863,7 +6809,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(30), 8, + STATE(55), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6872,14 +6818,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3572] = 7, + [3504] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(252), 1, sym_identifier, - ACTIONS(270), 1, + ACTIONS(264), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6892,7 +6838,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(60), 8, + STATE(32), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6901,14 +6847,41 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3608] = 7, + [3540] = 5, + ACTIONS(43), 1, + anon_sym_LF, + STATE(42), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(266), 7, + anon_sym_reg, + anon_sym_initial, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(268), 10, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, + [3572] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(252), 1, sym_identifier, - ACTIONS(272), 1, + ACTIONS(270), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6921,7 +6894,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(58), 8, + STATE(57), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6930,14 +6903,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3644] = 7, + [3608] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(252), 1, sym_identifier, - ACTIONS(274), 1, + ACTIONS(272), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6950,7 +6923,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(56), 8, + STATE(30), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6959,14 +6932,41 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3680] = 7, + [3644] = 5, + ACTIONS(278), 1, + anon_sym_LF, + STATE(68), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(274), 7, + anon_sym_reg, + anon_sym_initial, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(276), 10, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, + [3676] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(252), 1, sym_identifier, - ACTIONS(276), 1, + ACTIONS(280), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6979,7 +6979,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(44), 8, + STATE(53), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6988,14 +6988,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3716] = 7, + [3712] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(252), 1, sym_identifier, - ACTIONS(278), 1, + ACTIONS(282), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7008,7 +7008,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(57), 8, + STATE(62), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7017,14 +7017,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3752] = 7, + [3748] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(252), 1, sym_identifier, - ACTIONS(280), 1, + ACTIONS(284), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7037,7 +7037,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(26), 8, + STATE(22), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7046,14 +7046,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3788] = 7, + [3784] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(252), 1, sym_identifier, - ACTIONS(282), 1, + ACTIONS(286), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7066,7 +7066,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(27), 8, + STATE(54), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7075,14 +7075,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3824] = 7, + [3820] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(252), 1, sym_identifier, - ACTIONS(284), 1, + ACTIONS(288), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7095,7 +7095,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(31), 8, + STATE(20), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7104,14 +7104,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3860] = 7, + [3856] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(252), 1, sym_identifier, - ACTIONS(286), 1, + ACTIONS(290), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7124,7 +7124,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(52), 8, + STATE(44), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7133,23 +7133,19 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3896] = 5, + [3892] = 7, + ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + ACTIONS(252), 1, + sym_identifier, ACTIONS(292), 1, - anon_sym_LF, - STATE(64), 1, - aux_sym__linebreak, + sym_number, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(288), 7, - anon_sym_reg, - anon_sym_initial, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(290), 10, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7157,15 +7153,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_COLON_COLON, - sym_number, + STATE(51), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_template_global, [3928] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(252), 1, sym_identifier, ACTIONS(294), 1, sym_number, @@ -7180,7 +7182,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(61), 8, + STATE(31), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7194,7 +7196,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(252), 1, sym_identifier, ACTIONS(296), 1, sym_number, @@ -7209,7 +7211,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(33), 8, + STATE(58), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7223,7 +7225,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(252), 1, sym_identifier, ACTIONS(298), 1, sym_number, @@ -7238,7 +7240,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(29), 8, + STATE(61), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7252,7 +7254,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(252), 1, sym_identifier, ACTIONS(300), 1, sym_number, @@ -7267,7 +7269,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(28), 8, + STATE(19), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7348,43 +7350,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [4157] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(317), 5, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(319), 10, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_COLON_COLON, - sym_number, - [4181] = 12, + [4157] = 12, ACTIONS(13), 1, sym_identifier, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(321), 1, - anon_sym_DASH_GT, - ACTIONS(323), 1, + ACTIONS(43), 1, anon_sym_LF, - STATE(88), 1, + ACTIONS(317), 1, + anon_sym_DASH_GT, + STATE(42), 1, aux_sym__linebreak, STATE(115), 1, sym_declaration, - STATE(143), 1, + STATE(177), 1, sym_declaration_list, - STATE(229), 1, + STATE(234), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, @@ -7395,26 +7376,26 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 3, + STATE(207), 3, sym__type, sym_array_type, sym_template_global, - [4223] = 12, + [4199] = 12, ACTIONS(13), 1, sym_identifier, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(43), 1, - anon_sym_LF, - ACTIONS(321), 1, + ACTIONS(317), 1, anon_sym_DASH_GT, - STATE(43), 1, + ACTIONS(319), 1, + anon_sym_LF, + STATE(86), 1, aux_sym__linebreak, STATE(115), 1, sym_declaration, - STATE(174), 1, + STATE(146), 1, sym_declaration_list, - STATE(238), 1, + STATE(229), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, @@ -7425,22 +7406,43 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 3, + STATE(207), 3, sym__type, sym_array_type, sym_template_global, + [4241] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(321), 5, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(323), 10, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, [4265] = 10, ACTIONS(13), 1, sym_identifier, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(325), 1, + ACTIONS(43), 1, anon_sym_LF, - STATE(90), 1, + STATE(42), 1, aux_sym__linebreak, STATE(115), 1, sym_declaration, - STATE(232), 1, + STATE(226), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, @@ -7451,7 +7453,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 3, + STATE(207), 3, sym__type, sym_array_type, sym_template_global, @@ -7460,13 +7462,13 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(43), 1, + ACTIONS(325), 1, anon_sym_LF, - STATE(43), 1, + STATE(89), 1, aux_sym__linebreak, STATE(115), 1, sym_declaration, - STATE(218), 1, + STATE(240), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, @@ -7477,7 +7479,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 3, + STATE(207), 3, sym__type, sym_array_type, sym_template_global, @@ -7486,7 +7488,7 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(39), 1, anon_sym_COLON_COLON, - STATE(239), 1, + STATE(248), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -7497,20 +7499,38 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 3, + STATE(207), 3, sym__type, sym_array_type, sym_template_global, - [4364] = 8, - ACTIONS(327), 1, - ts_builtin_sym_end, - ACTIONS(329), 1, - anon_sym_LF, - STATE(99), 1, - aux_sym__linebreak, - STATE(227), 1, - sym_source_obj, - STATE(235), 1, + [4364] = 7, + ACTIONS(13), 1, + sym_identifier, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + STATE(194), 1, + sym_declaration, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(31), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(33), 2, + anon_sym_state, + anon_sym_gen, + STATE(207), 3, + sym__type, + sym_array_type, + sym_template_global, + [4391] = 7, + ACTIONS(327), 1, + ts_builtin_sym_end, + ACTIONS(329), 1, + anon_sym_LF, + STATE(99), 1, + aux_sym__linebreak, + STATE(223), 1, sym_global_object, ACTIONS(3), 2, sym_single_line_comment, @@ -7522,16 +7542,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_module, anon_sym_function, anon_sym_struct, - [4393] = 8, + [4417] = 7, ACTIONS(329), 1, anon_sym_LF, ACTIONS(331), 1, ts_builtin_sym_end, STATE(99), 1, aux_sym__linebreak, - STATE(227), 1, - sym_source_obj, - STATE(235), 1, + STATE(187), 1, sym_global_object, ACTIONS(3), 2, sym_single_line_comment, @@ -7543,16 +7561,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_module, anon_sym_function, anon_sym_struct, - [4422] = 8, + [4443] = 7, ACTIONS(329), 1, anon_sym_LF, ACTIONS(333), 1, ts_builtin_sym_end, STATE(99), 1, aux_sym__linebreak, - STATE(227), 1, - sym_source_obj, - STATE(235), 1, + STATE(223), 1, sym_global_object, ACTIONS(3), 2, sym_single_line_comment, @@ -7564,36 +7580,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_module, anon_sym_function, anon_sym_struct, - [4451] = 7, - ACTIONS(13), 1, - sym_identifier, - ACTIONS(39), 1, - anon_sym_COLON_COLON, - STATE(191), 1, - sym_declaration, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(31), 2, - anon_sym_input, - anon_sym_output, - ACTIONS(33), 2, - anon_sym_state, - anon_sym_gen, - STATE(208), 3, - sym__type, - sym_array_type, - sym_template_global, - [4478] = 8, + [4469] = 7, ACTIONS(329), 1, anon_sym_LF, ACTIONS(335), 1, ts_builtin_sym_end, STATE(99), 1, aux_sym__linebreak, - STATE(180), 1, - sym_source_obj, - STATE(235), 1, + STATE(223), 1, sym_global_object, ACTIONS(3), 2, sym_single_line_comment, @@ -7605,16 +7599,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_module, anon_sym_function, anon_sym_struct, - [4507] = 8, + [4495] = 7, ACTIONS(329), 1, anon_sym_LF, ACTIONS(337), 1, ts_builtin_sym_end, STATE(99), 1, aux_sym__linebreak, - STATE(227), 1, - sym_source_obj, - STATE(235), 1, + STATE(223), 1, sym_global_object, ACTIONS(3), 2, sym_single_line_comment, @@ -7626,231 +7618,226 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_module, anon_sym_function, anon_sym_struct, - [4536] = 7, - ACTIONS(329), 1, - anon_sym_LF, - STATE(99), 1, - aux_sym__linebreak, - STATE(227), 1, - sym_source_obj, - STATE(235), 1, - sym_global_object, + [4521] = 4, + ACTIONS(341), 1, + anon_sym_SQUOTE, + STATE(120), 1, + sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(7), 2, - anon_sym___builtin__, - anon_sym_extern, - ACTIONS(9), 3, - anon_sym_module, - anon_sym_function, - anon_sym_struct, - [4562] = 4, - ACTIONS(339), 1, + ACTIONS(339), 6, + anon_sym_EQ, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LF, + [4540] = 4, + ACTIONS(343), 1, anon_sym_LF, STATE(99), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(190), 6, + ACTIONS(188), 6, ts_builtin_sym_end, anon_sym___builtin__, anon_sym_extern, anon_sym_module, anon_sym_function, anon_sym_struct, - [4581] = 4, - ACTIONS(344), 1, + [4559] = 4, + ACTIONS(341), 1, anon_sym_SQUOTE, - STATE(120), 1, + STATE(111), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(342), 6, + ACTIONS(346), 6, anon_sym_EQ, anon_sym_RBRACE, anon_sym_in, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4600] = 4, - ACTIONS(344), 1, + [4578] = 4, + ACTIONS(341), 1, anon_sym_SQUOTE, STATE(116), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(346), 6, + ACTIONS(348), 6, anon_sym_EQ, anon_sym_RBRACE, anon_sym_in, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4619] = 4, - ACTIONS(344), 1, + [4597] = 4, + ACTIONS(341), 1, anon_sym_SQUOTE, - STATE(119), 1, + STATE(118), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(348), 6, + ACTIONS(350), 6, anon_sym_EQ, anon_sym_RBRACE, anon_sym_in, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4638] = 4, - ACTIONS(344), 1, - anon_sym_SQUOTE, - STATE(114), 1, - sym_latency_specifier, + [4616] = 6, + ACTIONS(329), 1, + anon_sym_LF, + STATE(99), 1, + aux_sym__linebreak, + STATE(223), 1, + sym_global_object, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(350), 6, - anon_sym_EQ, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LF, - [4657] = 5, - ACTIONS(13), 1, + ACTIONS(7), 2, + anon_sym___builtin__, + anon_sym_extern, + ACTIONS(9), 3, + anon_sym_module, + anon_sym_function, + anon_sym_struct, + [4639] = 6, + ACTIONS(352), 1, sym_identifier, - ACTIONS(39), 1, + ACTIONS(354), 1, + anon_sym_GT, + ACTIONS(356), 1, anon_sym_COLON_COLON, + STATE(149), 1, + sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(352), 2, - anon_sym_state, - anon_sym_gen, - STATE(211), 3, + STATE(181), 3, sym__type, sym_array_type, sym_template_global, - [4677] = 6, - ACTIONS(354), 1, + [4661] = 6, + ACTIONS(352), 1, sym_identifier, ACTIONS(356), 1, - anon_sym_GT, - ACTIONS(358), 1, anon_sym_COLON_COLON, - STATE(170), 1, + ACTIONS(358), 1, + anon_sym_GT, + STATE(153), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(178), 3, + STATE(181), 3, sym__type, sym_array_type, sym_template_global, - [4699] = 6, - ACTIONS(354), 1, + [4683] = 6, + ACTIONS(352), 1, sym_identifier, - ACTIONS(358), 1, + ACTIONS(356), 1, anon_sym_COLON_COLON, ACTIONS(360), 1, anon_sym_GT, - STATE(166), 1, + STATE(206), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(178), 3, + STATE(181), 3, sym__type, sym_array_type, sym_template_global, - [4721] = 6, - ACTIONS(354), 1, + [4705] = 6, + ACTIONS(352), 1, sym_identifier, - ACTIONS(358), 1, + ACTIONS(356), 1, anon_sym_COLON_COLON, ACTIONS(362), 1, anon_sym_GT, - STATE(156), 1, + STATE(182), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(178), 3, + STATE(181), 3, sym__type, sym_array_type, sym_template_global, - [4743] = 6, - ACTIONS(354), 1, + [4727] = 5, + ACTIONS(13), 1, sym_identifier, - ACTIONS(358), 1, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(364), 1, - anon_sym_GT, - STATE(198), 1, - sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(178), 3, + ACTIONS(364), 2, + anon_sym_state, + anon_sym_gen, + STATE(215), 3, sym__type, sym_array_type, sym_template_global, - [4765] = 6, - ACTIONS(354), 1, + [4747] = 6, + ACTIONS(352), 1, sym_identifier, - ACTIONS(358), 1, + ACTIONS(356), 1, anon_sym_COLON_COLON, ACTIONS(366), 1, anon_sym_GT, - STATE(179), 1, + STATE(200), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(178), 3, + STATE(181), 3, sym__type, sym_array_type, sym_template_global, - [4787] = 6, - ACTIONS(354), 1, + [4769] = 6, + ACTIONS(352), 1, sym_identifier, - ACTIONS(358), 1, + ACTIONS(356), 1, anon_sym_COLON_COLON, ACTIONS(368), 1, anon_sym_GT, - STATE(206), 1, + STATE(161), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(178), 3, + STATE(181), 3, sym__type, sym_array_type, sym_template_global, - [4809] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, - STATE(95), 1, - sym__comma, - STATE(118), 1, - aux_sym_declaration_list_repeat1, + [4791] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(370), 3, + ACTIONS(370), 6, + anon_sym_EQ, anon_sym_RBRACE, + anon_sym_in, anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_LF, - [4828] = 5, + [4804] = 5, ACTIONS(215), 1, anon_sym_COMMA, - STATE(11), 1, + STATE(12), 1, sym__comma, - STATE(117), 1, + STATE(114), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, @@ -7859,226 +7846,215 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_RBRACE, anon_sym_LF, - [4847] = 5, - ACTIONS(374), 1, - anon_sym_EQ, + [4823] = 5, ACTIONS(376), 1, - anon_sym_COLON_COLON, - STATE(123), 1, - aux_sym_template_global_repeat1, + anon_sym_COMMA, + STATE(92), 1, + sym__comma, + STATE(113), 1, + aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(69), 3, - anon_sym_GT, - anon_sym_LBRACK, + ACTIONS(374), 3, + anon_sym_RBRACE, + anon_sym_DASH_GT, + anon_sym_LF, + [4842] = 5, + ACTIONS(215), 1, anon_sym_COMMA, - [4866] = 2, + STATE(12), 1, + sym__comma, + STATE(121), 1, + aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(378), 6, + ACTIONS(379), 3, anon_sym_EQ, anon_sym_RBRACE, - anon_sym_in, - anon_sym_DASH_GT, - anon_sym_COMMA, anon_sym_LF, - [4879] = 5, + [4861] = 5, ACTIONS(215), 1, anon_sym_COMMA, - STATE(95), 1, + STATE(92), 1, sym__comma, - STATE(111), 1, + STATE(122), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(380), 3, + ACTIONS(381), 3, anon_sym_RBRACE, anon_sym_DASH_GT, anon_sym_LF, - [4898] = 2, + [4880] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(382), 6, + ACTIONS(383), 6, anon_sym_EQ, anon_sym_RBRACE, anon_sym_in, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4911] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, - STATE(11), 1, - sym__comma, - STATE(122), 1, - aux_sym_assign_left_side_repeat1, + [4893] = 5, + ACTIONS(352), 1, + sym_identifier, + ACTIONS(356), 1, + anon_sym_COLON_COLON, + STATE(233), 1, + sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(384), 3, - anon_sym_EQ, - anon_sym_RBRACE, - anon_sym_LF, - [4930] = 5, - ACTIONS(388), 1, - anon_sym_COMMA, - STATE(95), 1, - sym__comma, - STATE(118), 1, - aux_sym_declaration_list_repeat1, + STATE(181), 3, + sym__type, + sym_array_type, + sym_template_global, + [4912] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(386), 3, + ACTIONS(385), 6, + anon_sym_EQ, anon_sym_RBRACE, + anon_sym_in, anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_LF, - [4949] = 2, + [4925] = 5, + ACTIONS(387), 1, + anon_sym_EQ, + ACTIONS(389), 1, + anon_sym_COLON_COLON, + STATE(124), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(391), 6, - anon_sym_EQ, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DASH_GT, + ACTIONS(84), 3, + anon_sym_GT, + anon_sym_LBRACK, anon_sym_COMMA, - anon_sym_LF, - [4962] = 2, + [4944] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(393), 6, + ACTIONS(391), 6, anon_sym_EQ, anon_sym_RBRACE, anon_sym_in, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4975] = 5, - ACTIONS(354), 1, - sym_identifier, - ACTIONS(358), 1, - anon_sym_COLON_COLON, - STATE(222), 1, - sym_template_type_param, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(178), 3, - sym__type, - sym_array_type, - sym_template_global, - [4994] = 5, - ACTIONS(397), 1, + [4957] = 5, + ACTIONS(395), 1, anon_sym_COMMA, - STATE(11), 1, + STATE(12), 1, sym__comma, - STATE(122), 1, + STATE(121), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(395), 3, + ACTIONS(393), 3, anon_sym_EQ, anon_sym_RBRACE, anon_sym_LF, - [5013] = 4, - ACTIONS(376), 1, - anon_sym_COLON_COLON, - STATE(128), 1, - aux_sym_template_global_repeat1, + [4976] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + STATE(92), 1, + sym__comma, + STATE(113), 1, + aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(73), 3, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COMMA, - [5029] = 6, + ACTIONS(398), 3, + anon_sym_RBRACE, + anon_sym_DASH_GT, + anon_sym_LF, + [4995] = 6, ACTIONS(400), 1, anon_sym_EQ, ACTIONS(402), 1, anon_sym_RBRACE, ACTIONS(404), 1, anon_sym_LF, - STATE(2), 1, + STATE(4), 1, aux_sym__linebreak, - STATE(171), 1, + STATE(168), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5049] = 6, - ACTIONS(400), 1, - anon_sym_EQ, - ACTIONS(406), 1, - anon_sym_RBRACE, - ACTIONS(408), 1, - anon_sym_LF, - STATE(6), 1, - aux_sym__linebreak, - STATE(138), 1, - aux_sym_block_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5069] = 4, - ACTIONS(376), 1, + [5015] = 4, + ACTIONS(389), 1, anon_sym_COLON_COLON, - STATE(128), 1, + STATE(129), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(77), 3, + ACTIONS(70), 3, anon_sym_GT, anon_sym_LBRACK, anon_sym_COMMA, - [5085] = 4, - ACTIONS(358), 1, + [5031] = 4, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(410), 1, + ACTIONS(252), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(158), 3, + STATE(214), 3, sym__type, sym_array_type, sym_template_global, - [5101] = 4, - ACTIONS(412), 1, + [5047] = 4, + ACTIONS(389), 1, anon_sym_COLON_COLON, - STATE(128), 1, + STATE(124), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(81), 3, + ACTIONS(84), 3, anon_sym_GT, anon_sym_LBRACK, anon_sym_COMMA, - [5117] = 4, - ACTIONS(358), 1, + [5063] = 4, + ACTIONS(389), 1, anon_sym_COLON_COLON, - ACTIONS(410), 1, - sym_identifier, + STATE(129), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(200), 3, - sym__type, - sym_array_type, - sym_template_global, - [5133] = 4, - ACTIONS(376), 1, + ACTIONS(80), 3, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + [5079] = 4, + ACTIONS(389), 1, anon_sym_COLON_COLON, - STATE(126), 1, + STATE(127), 1, + aux_sym_template_global_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(76), 3, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + [5095] = 4, + ACTIONS(406), 1, + anon_sym_COLON_COLON, + STATE(129), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, @@ -8087,989 +8063,1015 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_LBRACK, anon_sym_COMMA, - [5149] = 4, - ACTIONS(39), 1, + [5111] = 6, + ACTIONS(400), 1, + anon_sym_EQ, + ACTIONS(409), 1, + anon_sym_RBRACE, + ACTIONS(411), 1, + anon_sym_LF, + STATE(9), 1, + aux_sym__linebreak, + STATE(141), 1, + aux_sym_block_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5131] = 4, + ACTIONS(356), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(413), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(212), 3, + STATE(203), 3, sym__type, sym_array_type, sym_template_global, - [5165] = 4, - ACTIONS(376), 1, + [5147] = 4, + ACTIONS(356), 1, anon_sym_COLON_COLON, - STATE(123), 1, - aux_sym_template_global_repeat1, + ACTIONS(413), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(69), 3, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COMMA, - [5181] = 4, + STATE(157), 3, + sym__type, + sym_array_type, + sym_template_global, + [5163] = 4, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(252), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(216), 3, + STATE(209), 3, sym__type, sym_array_type, sym_template_global, - [5197] = 5, - ACTIONS(415), 1, - anon_sym_RPAREN, + [5179] = 4, ACTIONS(417), 1, + anon_sym_COLON, + STATE(235), 1, + sym_interface_ports, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(415), 2, + anon_sym_RBRACE, + anon_sym_LF, + [5194] = 5, + ACTIONS(419), 1, + ts_builtin_sym_end, + ACTIONS(421), 1, + anon_sym_LF, + STATE(93), 1, + aux_sym__linebreak, + STATE(193), 1, + aux_sym_source_file_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5211] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(423), 4, + anon_sym_EQ, + anon_sym_RBRACE, anon_sym_COMMA, - STATE(71), 1, - sym__comma, - STATE(134), 1, - aux_sym_parenthesis_expression_list_repeat1, + anon_sym_LF, + [5222] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5214] = 2, + ACTIONS(425), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [5233] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(420), 4, + ACTIONS(427), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5225] = 3, - STATE(237), 1, - sym_global_object, + [5244] = 5, + ACTIONS(429), 1, + anon_sym_RBRACE, + ACTIONS(431), 1, + anon_sym_LF, + STATE(10), 1, + aux_sym__linebreak, + STATE(139), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(9), 3, - anon_sym_module, - anon_sym_function, - anon_sym_struct, - [5238] = 5, - ACTIONS(422), 1, + [5261] = 5, + ACTIONS(434), 1, anon_sym_RBRACE, - ACTIONS(424), 1, + ACTIONS(436), 1, anon_sym_LF, - STATE(5), 1, + STATE(2), 1, aux_sym__linebreak, - STATE(144), 1, + STATE(139), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5255] = 5, - ACTIONS(426), 1, + [5278] = 5, + ACTIONS(438), 1, anon_sym_RBRACE, - ACTIONS(428), 1, + ACTIONS(440), 1, anon_sym_LF, - STATE(4), 1, + STATE(3), 1, aux_sym__linebreak, - STATE(144), 1, + STATE(139), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5272] = 4, + [5295] = 4, ACTIONS(15), 1, anon_sym_LBRACE, - ACTIONS(430), 1, + ACTIONS(442), 1, anon_sym_if, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(226), 2, + STATE(238), 2, sym_block, sym_if_statement, - [5287] = 2, + [5310] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(432), 4, - anon_sym_EQ, + ACTIONS(425), 4, + ts_builtin_sym_end, anon_sym_RBRACE, - anon_sym_COMMA, + anon_sym_else, anon_sym_LF, - [5298] = 2, + [5321] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + ACTIONS(444), 1, + anon_sym_SEMI, + STATE(59), 1, + sym__comma, + STATE(202), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(434), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5309] = 5, + [5338] = 5, ACTIONS(215), 1, anon_sym_COMMA, - ACTIONS(436), 1, + ACTIONS(446), 1, anon_sym_SEMI, - STATE(62), 1, + STATE(59), 1, sym__comma, - STATE(199), 1, + STATE(144), 1, aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5326] = 4, - ACTIONS(321), 1, + [5355] = 4, + ACTIONS(317), 1, anon_sym_DASH_GT, - STATE(219), 1, + STATE(239), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(438), 2, + ACTIONS(448), 2, anon_sym_RBRACE, anon_sym_LF, - [5341] = 5, - ACTIONS(440), 1, - anon_sym_RBRACE, - ACTIONS(442), 1, - anon_sym_LF, - STATE(10), 1, - aux_sym__linebreak, - STATE(144), 1, - aux_sym_block_repeat1, + [5370] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + ACTIONS(450), 1, + anon_sym_GT, + STATE(117), 1, + sym__comma, + STATE(204), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5358] = 2, + [5387] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(434), 4, + ACTIONS(452), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5369] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(92), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5380] = 5, + [5398] = 5, ACTIONS(215), 1, anon_sym_COMMA, - ACTIONS(445), 1, - anon_sym_SEMI, - STATE(62), 1, + ACTIONS(454), 1, + anon_sym_GT, + STATE(117), 1, sym__comma, - STATE(142), 1, - aux_sym_template_params_repeat1, + STATE(147), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5397] = 2, + [5415] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + ACTIONS(456), 1, + anon_sym_GT, + STATE(117), 1, + sym__comma, + STATE(204), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(447), 4, + [5432] = 5, + ACTIONS(458), 1, ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, + ACTIONS(460), 1, anon_sym_LF, - [5408] = 2, + STATE(96), 1, + aux_sym__linebreak, + STATE(135), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(152), 4, + [5449] = 5, + ACTIONS(462), 1, anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, + ACTIONS(464), 1, anon_sym_COMMA, - [5419] = 5, + STATE(152), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(219), 1, + sym__comma, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5466] = 5, ACTIONS(215), 1, anon_sym_COMMA, - ACTIONS(449), 1, + ACTIONS(467), 1, anon_sym_GT, - STATE(121), 1, + STATE(117), 1, sym__comma, - STATE(202), 1, + STATE(150), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5436] = 2, + [5483] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + ACTIONS(469), 1, + anon_sym_GT, + STATE(117), 1, + sym__comma, + STATE(204), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(104), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5447] = 5, + [5500] = 5, ACTIONS(215), 1, anon_sym_COMMA, - ACTIONS(451), 1, + ACTIONS(471), 1, anon_sym_SEMI, - STATE(62), 1, + STATE(59), 1, sym__comma, - STATE(183), 1, + STATE(186), 1, aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5464] = 2, + [5517] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(453), 4, + ACTIONS(473), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5475] = 5, - ACTIONS(455), 1, - anon_sym_GT, - ACTIONS(457), 1, - anon_sym_COMMA, - STATE(154), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(233), 1, - sym__comma, + [5528] = 4, + ACTIONS(477), 1, + anon_sym_LBRACK, + STATE(162), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5492] = 2, + ACTIONS(475), 2, + anon_sym_GT, + anon_sym_COMMA, + [5543] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(453), 4, + ACTIONS(473), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5503] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, - ACTIONS(460), 1, - anon_sym_GT, - STATE(121), 1, - sym__comma, - STATE(150), 1, - aux_sym_template_params_repeat2, + [5554] = 5, + ACTIONS(409), 1, + anon_sym_RBRACE, + ACTIONS(411), 1, + anon_sym_LF, + STATE(9), 1, + aux_sym__linebreak, + STATE(140), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5520] = 5, + [5571] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(479), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [5582] = 5, ACTIONS(215), 1, anon_sym_COMMA, - ACTIONS(462), 1, + ACTIONS(481), 1, anon_sym_GT, - STATE(121), 1, + STATE(117), 1, sym__comma, - STATE(202), 1, + STATE(154), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5537] = 4, - ACTIONS(466), 1, - anon_sym_LBRACK, - STATE(167), 1, - sym_array_bracket_expression, + [5599] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(464), 2, + ACTIONS(483), 4, anon_sym_GT, + anon_sym_LBRACK, + sym_identifier, anon_sym_COMMA, - [5552] = 5, - ACTIONS(406), 1, - anon_sym_RBRACE, - ACTIONS(408), 1, - anon_sym_LF, - STATE(6), 1, - aux_sym__linebreak, - STATE(137), 1, - aux_sym_block_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5569] = 5, + [5610] = 5, ACTIONS(215), 1, anon_sym_COMMA, - ACTIONS(468), 1, + ACTIONS(485), 1, anon_sym_RPAREN, - STATE(71), 1, + STATE(78), 1, sym__comma, - STATE(134), 1, + STATE(189), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5586] = 2, + [5627] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(470), 4, + ACTIONS(487), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5597] = 2, + [5638] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(472), 4, + ACTIONS(489), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5608] = 2, + [5649] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(474), 4, - ts_builtin_sym_end, + ACTIONS(207), 4, + anon_sym_EQ, anon_sym_RBRACE, - anon_sym_else, + anon_sym_COMMA, anon_sym_LF, - [5619] = 2, + [5660] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(472), 4, + ACTIONS(489), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5630] = 5, - ACTIONS(476), 1, - ts_builtin_sym_end, - ACTIONS(478), 1, + [5671] = 5, + ACTIONS(491), 1, + anon_sym_RBRACE, + ACTIONS(493), 1, anon_sym_LF, - STATE(94), 1, + STATE(6), 1, aux_sym__linebreak, - STATE(176), 1, - aux_sym_source_file_repeat1, + STATE(139), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5647] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, - ACTIONS(480), 1, - anon_sym_GT, - STATE(121), 1, - sym__comma, - STATE(157), 1, - aux_sym_template_params_repeat2, + [5688] = 5, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(495), 1, + anon_sym_LT, + STATE(224), 1, + sym_block, + STATE(225), 1, + sym_template_declaration_arguments, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5664] = 2, + [5705] = 5, + ACTIONS(497), 1, + anon_sym_RBRACE, + ACTIONS(499), 1, + anon_sym_LF, + STATE(7), 1, + aux_sym__linebreak, + STATE(139), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(482), 4, - anon_sym_GT, - anon_sym_LBRACK, - sym_identifier, - anon_sym_COMMA, - [5675] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, - ACTIONS(484), 1, - anon_sym_GT, - STATE(121), 1, - sym__comma, - STATE(202), 1, - aux_sym_template_params_repeat2, + [5722] = 5, + ACTIONS(501), 1, + ts_builtin_sym_end, + ACTIONS(503), 1, + anon_sym_LF, + STATE(97), 1, + aux_sym__linebreak, + STATE(193), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5692] = 2, + [5739] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(207), 4, - anon_sym_EQ, + ACTIONS(505), 4, + ts_builtin_sym_end, anon_sym_RBRACE, - anon_sym_COMMA, + anon_sym_else, anon_sym_LF, - [5703] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, - ACTIONS(486), 1, - anon_sym_GT, - STATE(121), 1, - sym__comma, - STATE(168), 1, - aux_sym_template_params_repeat2, + [5750] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5720] = 5, - ACTIONS(488), 1, - anon_sym_RBRACE, - ACTIONS(490), 1, - anon_sym_LF, - STATE(7), 1, - aux_sym__linebreak, - STATE(144), 1, - aux_sym_block_repeat1, + ACTIONS(120), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5761] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5737] = 5, - ACTIONS(492), 1, - anon_sym_RBRACE, - ACTIONS(494), 1, - anon_sym_LF, - STATE(8), 1, - aux_sym__linebreak, - STATE(144), 1, - aux_sym_block_repeat1, + ACTIONS(124), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5772] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5754] = 5, - ACTIONS(15), 1, - anon_sym_LBRACE, - ACTIONS(496), 1, - anon_sym_LT, - STATE(228), 1, - sym_block, - STATE(234), 1, - sym_template_declaration_arguments, + ACTIONS(128), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5783] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5771] = 4, - ACTIONS(321), 1, + ACTIONS(132), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5794] = 4, + ACTIONS(317), 1, anon_sym_DASH_GT, - STATE(230), 1, + STATE(222), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(498), 2, + ACTIONS(507), 2, anon_sym_RBRACE, anon_sym_LF, - [5786] = 2, + [5809] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(120), 4, + ACTIONS(136), 4, anon_sym_GT, anon_sym_LBRACK, anon_sym_COLON_COLON, anon_sym_COMMA, - [5797] = 5, - ACTIONS(500), 1, - ts_builtin_sym_end, - ACTIONS(502), 1, - anon_sym_LF, - STATE(93), 1, - aux_sym__linebreak, - STATE(182), 1, - aux_sym_source_file_repeat1, + [5820] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5814] = 2, + ACTIONS(140), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5831] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(100), 4, + ACTIONS(144), 4, anon_sym_GT, anon_sym_LBRACK, anon_sym_COLON_COLON, anon_sym_COMMA, - [5825] = 4, - ACTIONS(466), 1, + [5842] = 4, + ACTIONS(477), 1, anon_sym_LBRACK, - STATE(167), 1, + STATE(162), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(504), 2, + ACTIONS(509), 2, anon_sym_GT, anon_sym_COMMA, - [5840] = 5, + [5857] = 5, ACTIONS(215), 1, anon_sym_COMMA, - ACTIONS(506), 1, + ACTIONS(511), 1, anon_sym_GT, - STATE(121), 1, + STATE(117), 1, sym__comma, - STATE(197), 1, + STATE(198), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5857] = 5, - ACTIONS(508), 1, - ts_builtin_sym_end, - ACTIONS(510), 1, - anon_sym_LF, - STATE(97), 1, - aux_sym__linebreak, - STATE(205), 1, - aux_sym_source_file_repeat1, + [5874] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + ACTIONS(513), 1, + anon_sym_GT, + STATE(152), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(219), 1, + sym__comma, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5874] = 4, - ACTIONS(514), 1, - anon_sym_COLON, - STATE(223), 1, - sym_interface_ports, + [5891] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(512), 2, - anon_sym_RBRACE, - anon_sym_LF, - [5889] = 5, - ACTIONS(516), 1, - ts_builtin_sym_end, - ACTIONS(518), 1, - anon_sym_LF, - STATE(98), 1, - aux_sym__linebreak, - STATE(182), 1, - aux_sym_source_file_repeat1, + ACTIONS(98), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5902] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5906] = 5, + ACTIONS(148), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5913] = 5, ACTIONS(215), 1, anon_sym_COMMA, - ACTIONS(521), 1, + ACTIONS(515), 1, anon_sym_SEMI, - STATE(62), 1, + STATE(59), 1, sym__comma, - STATE(199), 1, + STATE(202), 1, aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5923] = 2, + [5930] = 5, + ACTIONS(517), 1, + ts_builtin_sym_end, + ACTIONS(519), 1, + anon_sym_LF, + STATE(95), 1, + aux_sym__linebreak, + STATE(171), 1, + aux_sym_source_file_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5947] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(96), 4, + ACTIONS(152), 4, anon_sym_GT, anon_sym_LBRACK, anon_sym_COLON_COLON, anon_sym_COMMA, - [5934] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, + [5958] = 5, + ACTIONS(521), 1, + anon_sym_RPAREN, ACTIONS(523), 1, - anon_sym_GT, - STATE(154), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(233), 1, + anon_sym_COMMA, + STATE(78), 1, sym__comma, + STATE(189), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5951] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(88), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5962] = 2, + [5975] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(525), 4, + ACTIONS(526), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5973] = 2, + [5986] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(525), 4, + ACTIONS(526), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5984] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(108), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5995] = 2, + [5997] = 5, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(495), 1, + anon_sym_LT, + STATE(220), 1, + sym_block, + STATE(236), 1, + sym_template_declaration_arguments, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(527), 4, + [6014] = 5, + ACTIONS(528), 1, ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, + ACTIONS(530), 1, anon_sym_LF, - [6006] = 2, + STATE(103), 1, + aux_sym__linebreak, + STATE(193), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(529), 4, - anon_sym_RBRACE, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LF, - [6017] = 2, + [6031] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(112), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, + ACTIONS(533), 4, + anon_sym_RBRACE, + anon_sym_DASH_GT, anon_sym_COMMA, - [6028] = 2, + anon_sym_LF, + [6042] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(116), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, + ACTIONS(211), 4, + anon_sym_EQ, + anon_sym_RBRACE, anon_sym_COMMA, - [6039] = 5, + anon_sym_LF, + [6053] = 5, ACTIONS(215), 1, anon_sym_COMMA, - ACTIONS(531), 1, + ACTIONS(535), 1, anon_sym_GT, - STATE(121), 1, + STATE(117), 1, sym__comma, - STATE(202), 1, + STATE(204), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6056] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(211), 4, - anon_sym_EQ, - anon_sym_RBRACE, - anon_sym_COMMA, - anon_sym_LF, - [6067] = 5, + [6070] = 5, ACTIONS(402), 1, anon_sym_RBRACE, ACTIONS(404), 1, anon_sym_LF, - STATE(2), 1, + STATE(4), 1, aux_sym__linebreak, - STATE(172), 1, + STATE(170), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6084] = 5, + [6087] = 5, ACTIONS(215), 1, anon_sym_COMMA, - ACTIONS(533), 1, + ACTIONS(537), 1, anon_sym_GT, - STATE(121), 1, + STATE(117), 1, sym__comma, - STATE(202), 1, + STATE(204), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6101] = 5, + [6104] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(539), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [6115] = 5, ACTIONS(215), 1, anon_sym_COMMA, - ACTIONS(535), 1, + ACTIONS(541), 1, anon_sym_GT, - STATE(121), 1, + STATE(117), 1, sym__comma, - STATE(204), 1, + STATE(205), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6118] = 5, - ACTIONS(537), 1, + [6132] = 5, + ACTIONS(215), 1, + anon_sym_COMMA, + ACTIONS(543), 1, + anon_sym_GT, + STATE(183), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(219), 1, + sym__comma, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6149] = 5, + ACTIONS(545), 1, anon_sym_SEMI, - ACTIONS(539), 1, + ACTIONS(547), 1, anon_sym_COMMA, - STATE(62), 1, + STATE(59), 1, sym__comma, - STATE(199), 1, + STATE(202), 1, aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6135] = 4, - ACTIONS(466), 1, + [6166] = 4, + ACTIONS(477), 1, anon_sym_LBRACK, - STATE(167), 1, + STATE(162), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(542), 2, + ACTIONS(550), 2, anon_sym_GT, anon_sym_COMMA, - [6150] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(544), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [6161] = 5, - ACTIONS(546), 1, + [6181] = 5, + ACTIONS(552), 1, anon_sym_GT, - ACTIONS(548), 1, + ACTIONS(554), 1, anon_sym_COMMA, - STATE(121), 1, + STATE(117), 1, sym__comma, - STATE(202), 1, + STATE(204), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6178] = 5, + [6198] = 5, ACTIONS(215), 1, anon_sym_COMMA, - ACTIONS(551), 1, + ACTIONS(557), 1, anon_sym_GT, - STATE(185), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(233), 1, + STATE(117), 1, sym__comma, + STATE(204), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6195] = 5, + [6215] = 5, ACTIONS(215), 1, anon_sym_COMMA, - ACTIONS(553), 1, + ACTIONS(559), 1, anon_sym_GT, - STATE(121), 1, + STATE(117), 1, sym__comma, - STATE(202), 1, + STATE(196), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6212] = 5, - ACTIONS(555), 1, - ts_builtin_sym_end, - ACTIONS(557), 1, - anon_sym_LF, - STATE(92), 1, - aux_sym__linebreak, - STATE(182), 1, - aux_sym_source_file_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [6229] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, - ACTIONS(559), 1, - anon_sym_GT, - STATE(121), 1, - sym__comma, - STATE(194), 1, - aux_sym_template_params_repeat2, + [6232] = 4, + ACTIONS(94), 1, + anon_sym_LBRACK, + ACTIONS(561), 1, + sym_identifier, + STATE(162), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6246] = 3, - ACTIONS(563), 1, - anon_sym_EQ, + [6246] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(561), 2, - anon_sym_GT, - anon_sym_COMMA, - [6258] = 4, - ACTIONS(138), 1, + ACTIONS(563), 3, + anon_sym_module, + anon_sym_function, + anon_sym_struct, + [6256] = 4, + ACTIONS(94), 1, anon_sym_LBRACK, ACTIONS(565), 1, sym_identifier, - STATE(167), 1, + STATE(162), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6272] = 4, - ACTIONS(567), 1, - sym_identifier, + [6270] = 3, ACTIONS(569), 1, - anon_sym_LT, - STATE(177), 1, - sym_template_params, + anon_sym_EQ, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6286] = 4, - ACTIONS(571), 1, - sym_identifier, - ACTIONS(573), 1, + ACTIONS(567), 2, anon_sym_GT, - STATE(203), 1, - sym_template_declaration_type, + anon_sym_COMMA, + [6282] = 3, + ACTIONS(573), 1, + anon_sym_else, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6300] = 4, - ACTIONS(138), 1, - anon_sym_LBRACK, + ACTIONS(571), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6294] = 4, ACTIONS(575), 1, sym_identifier, - STATE(167), 1, - sym_array_bracket_expression, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [6314] = 4, - ACTIONS(138), 1, - anon_sym_LBRACK, ACTIONS(577), 1, - sym_identifier, - STATE(167), 1, - sym_array_bracket_expression, + anon_sym_LT, + STATE(188), 1, + sym_template_params, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6328] = 4, + [6308] = 4, ACTIONS(579), 1, sym_identifier, ACTIONS(581), 1, anon_sym_LT, - STATE(20), 1, + STATE(33), 1, sym_template_params, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6342] = 2, + [6322] = 4, + ACTIONS(94), 1, + anon_sym_LBRACK, + ACTIONS(583), 1, + sym_identifier, + STATE(162), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(156), 3, - anon_sym_GT, + [6336] = 4, + ACTIONS(94), 1, anon_sym_LBRACK, - anon_sym_COMMA, - [6352] = 3, ACTIONS(585), 1, - anon_sym_else, + sym_identifier, + STATE(162), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(583), 2, - anon_sym_RBRACE, - anon_sym_LF, - [6364] = 4, - ACTIONS(138), 1, - anon_sym_LBRACK, + [6350] = 4, ACTIONS(587), 1, sym_identifier, - STATE(167), 1, - sym_array_bracket_expression, + ACTIONS(589), 1, + anon_sym_GT, + STATE(201), 1, + sym_template_declaration_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6378] = 3, + [6364] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(156), 3, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + [6374] = 3, ACTIONS(400), 1, anon_sym_EQ, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(589), 2, + ACTIONS(591), 2, anon_sym_RBRACE, anon_sym_LF, - [6390] = 2, + [6386] = 3, + ACTIONS(587), 1, + sym_identifier, + STATE(237), 1, + sym_template_declaration_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(591), 2, - anon_sym_RBRACE, - anon_sym_LF, - [6399] = 2, + [6397] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(593), 2, - anon_sym_RBRACE, + ts_builtin_sym_end, anon_sym_LF, - [6408] = 2, + [6406] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(595), 2, anon_sym_RBRACE, anon_sym_LF, - [6417] = 2, + [6415] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(589), 2, + ACTIONS(597), 2, anon_sym_RBRACE, anon_sym_LF, - [6426] = 2, + [6424] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(597), 2, - anon_sym_GT, - anon_sym_COMMA, - [6435] = 2, + ACTIONS(599), 2, + ts_builtin_sym_end, + anon_sym_LF, + [6433] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(599), 2, - anon_sym_RBRACE, + ACTIONS(601), 2, + ts_builtin_sym_end, anon_sym_LF, - [6444] = 2, + [6442] = 3, + ACTIONS(15), 1, + anon_sym_LBRACE, + STATE(227), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(601), 2, - anon_sym_SEMI, - anon_sym_COMMA, [6453] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(603), 2, - anon_sym_GT, - anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_LF, [6462] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(605), 2, - anon_sym_RBRACE, + ts_builtin_sym_end, anon_sym_LF, [6471] = 2, ACTIONS(3), 2, @@ -9083,146 +9085,158 @@ static const uint16_t ts_small_parse_table[] = { sym_single_line_comment, sym_multi_line_comment, ACTIONS(609), 2, - ts_builtin_sym_end, + anon_sym_RBRACE, anon_sym_LF, [6489] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(611), 2, + ACTIONS(591), 2, anon_sym_RBRACE, anon_sym_LF, [6498] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(611), 2, + anon_sym_SEMI, + anon_sym_COMMA, + [6507] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(613), 2, anon_sym_RBRACE, anon_sym_LF, - [6507] = 2, + [6516] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(615), 2, - ts_builtin_sym_end, - anon_sym_LF, - [6516] = 2, + anon_sym_GT, + anon_sym_COMMA, + [6525] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(617), 2, anon_sym_RBRACE, anon_sym_LF, - [6525] = 3, - ACTIONS(571), 1, - sym_identifier, - STATE(225), 1, - sym_template_declaration_type, + [6534] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6536] = 3, + ACTIONS(619), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6543] = 3, ACTIONS(15), 1, anon_sym_LBRACE, - STATE(231), 1, + STATE(228), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6547] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(619), 2, - ts_builtin_sym_end, - anon_sym_LF, - [6556] = 2, + [6554] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(621), 2, - anon_sym_RBRACE, - anon_sym_LF, - [6565] = 2, + anon_sym_GT, + anon_sym_COMMA, + [6563] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(623), 2, - ts_builtin_sym_end, + anon_sym_RBRACE, anon_sym_LF, - [6574] = 2, + [6572] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(625), 2, anon_sym_RBRACE, anon_sym_LF, - [6583] = 2, - ACTIONS(627), 1, - anon_sym_in, + [6581] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6591] = 2, + ACTIONS(627), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6590] = 2, ACTIONS(629), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6599] = 2, + [6598] = 2, ACTIONS(631), 1, - anon_sym_LBRACE, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6607] = 2, + [6606] = 2, ACTIONS(633), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6615] = 2, + [6614] = 2, ACTIONS(635), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6623] = 2, + [6622] = 2, ACTIONS(637), 1, - sym_identifier, + anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6631] = 2, + [6630] = 2, ACTIONS(639), 1, anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6639] = 2, + [6638] = 2, ACTIONS(641), 1, - ts_builtin_sym_end, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6647] = 2, + [6646] = 2, ACTIONS(643), 1, - sym_identifier, + anon_sym_in, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6655] = 2, + [6654] = 2, ACTIONS(645), 1, - anon_sym_LBRACE, + ts_builtin_sym_end, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6663] = 2, + [6662] = 2, ACTIONS(647), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, + [6670] = 2, + ACTIONS(649), 1, + sym_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6678] = 2, + ACTIONS(651), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, }; static const uint32_t ts_small_parse_table_map[] = { @@ -9236,28 +9250,28 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(9)] = 721, [SMALL_STATE(10)] = 824, [SMALL_STATE(11)] = 924, - [SMALL_STATE(12)] = 992, + [SMALL_STATE(12)] = 968, [SMALL_STATE(13)] = 1036, [SMALL_STATE(14)] = 1080, [SMALL_STATE(15)] = 1124, [SMALL_STATE(16)] = 1168, [SMALL_STATE(17)] = 1212, - [SMALL_STATE(18)] = 1251, - [SMALL_STATE(19)] = 1290, - [SMALL_STATE(20)] = 1329, - [SMALL_STATE(21)] = 1368, - [SMALL_STATE(22)] = 1407, - [SMALL_STATE(23)] = 1446, - [SMALL_STATE(24)] = 1485, - [SMALL_STATE(25)] = 1524, - [SMALL_STATE(26)] = 1563, - [SMALL_STATE(27)] = 1620, - [SMALL_STATE(28)] = 1681, + [SMALL_STATE(18)] = 1261, + [SMALL_STATE(19)] = 1300, + [SMALL_STATE(20)] = 1363, + [SMALL_STATE(21)] = 1412, + [SMALL_STATE(22)] = 1451, + [SMALL_STATE(23)] = 1510, + [SMALL_STATE(24)] = 1549, + [SMALL_STATE(25)] = 1588, + [SMALL_STATE(26)] = 1627, + [SMALL_STATE(27)] = 1666, + [SMALL_STATE(28)] = 1705, [SMALL_STATE(29)] = 1744, - [SMALL_STATE(30)] = 1797, - [SMALL_STATE(31)] = 1846, - [SMALL_STATE(32)] = 1905, - [SMALL_STATE(33)] = 1944, + [SMALL_STATE(30)] = 1783, + [SMALL_STATE(31)] = 1844, + [SMALL_STATE(32)] = 1897, + [SMALL_STATE(33)] = 1954, [SMALL_STATE(34)] = 1993, [SMALL_STATE(35)] = 2031, [SMALL_STATE(36)] = 2068, @@ -9267,42 +9281,42 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(40)] = 2216, [SMALL_STATE(41)] = 2253, [SMALL_STATE(42)] = 2290, - [SMALL_STATE(43)] = 2343, + [SMALL_STATE(43)] = 2329, [SMALL_STATE(44)] = 2382, [SMALL_STATE(45)] = 2444, [SMALL_STATE(46)] = 2502, [SMALL_STATE(47)] = 2560, [SMALL_STATE(48)] = 2622, - [SMALL_STATE(49)] = 2657, + [SMALL_STATE(49)] = 2659, [SMALL_STATE(50)] = 2694, - [SMALL_STATE(51)] = 2748, - [SMALL_STATE(52)] = 2802, - [SMALL_STATE(53)] = 2858, - [SMALL_STATE(54)] = 2900, + [SMALL_STATE(51)] = 2736, + [SMALL_STATE(52)] = 2790, + [SMALL_STATE(53)] = 2832, + [SMALL_STATE(54)] = 2888, [SMALL_STATE(55)] = 2942, - [SMALL_STATE(56)] = 2996, - [SMALL_STATE(57)] = 3050, + [SMALL_STATE(56)] = 2998, + [SMALL_STATE(57)] = 3052, [SMALL_STATE(58)] = 3106, [SMALL_STATE(59)] = 3159, [SMALL_STATE(60)] = 3198, [SMALL_STATE(61)] = 3251, [SMALL_STATE(62)] = 3304, - [SMALL_STATE(63)] = 3343, + [SMALL_STATE(63)] = 3357, [SMALL_STATE(64)] = 3396, - [SMALL_STATE(65)] = 3428, - [SMALL_STATE(66)] = 3464, - [SMALL_STATE(67)] = 3500, - [SMALL_STATE(68)] = 3536, + [SMALL_STATE(65)] = 3432, + [SMALL_STATE(66)] = 3468, + [SMALL_STATE(67)] = 3504, + [SMALL_STATE(68)] = 3540, [SMALL_STATE(69)] = 3572, [SMALL_STATE(70)] = 3608, [SMALL_STATE(71)] = 3644, - [SMALL_STATE(72)] = 3680, - [SMALL_STATE(73)] = 3716, - [SMALL_STATE(74)] = 3752, - [SMALL_STATE(75)] = 3788, - [SMALL_STATE(76)] = 3824, - [SMALL_STATE(77)] = 3860, - [SMALL_STATE(78)] = 3896, + [SMALL_STATE(72)] = 3676, + [SMALL_STATE(73)] = 3712, + [SMALL_STATE(74)] = 3748, + [SMALL_STATE(75)] = 3784, + [SMALL_STATE(76)] = 3820, + [SMALL_STATE(77)] = 3856, + [SMALL_STATE(78)] = 3892, [SMALL_STATE(79)] = 3928, [SMALL_STATE(80)] = 3964, [SMALL_STATE(81)] = 4000, @@ -9311,169 +9325,172 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(84)] = 4102, [SMALL_STATE(85)] = 4132, [SMALL_STATE(86)] = 4157, - [SMALL_STATE(87)] = 4181, - [SMALL_STATE(88)] = 4223, + [SMALL_STATE(87)] = 4199, + [SMALL_STATE(88)] = 4241, [SMALL_STATE(89)] = 4265, [SMALL_STATE(90)] = 4301, [SMALL_STATE(91)] = 4337, [SMALL_STATE(92)] = 4364, - [SMALL_STATE(93)] = 4393, - [SMALL_STATE(94)] = 4422, - [SMALL_STATE(95)] = 4451, - [SMALL_STATE(96)] = 4478, - [SMALL_STATE(97)] = 4507, - [SMALL_STATE(98)] = 4536, - [SMALL_STATE(99)] = 4562, - [SMALL_STATE(100)] = 4581, - [SMALL_STATE(101)] = 4600, - [SMALL_STATE(102)] = 4619, - [SMALL_STATE(103)] = 4638, - [SMALL_STATE(104)] = 4657, - [SMALL_STATE(105)] = 4677, - [SMALL_STATE(106)] = 4699, - [SMALL_STATE(107)] = 4721, - [SMALL_STATE(108)] = 4743, - [SMALL_STATE(109)] = 4765, - [SMALL_STATE(110)] = 4787, - [SMALL_STATE(111)] = 4809, - [SMALL_STATE(112)] = 4828, - [SMALL_STATE(113)] = 4847, - [SMALL_STATE(114)] = 4866, - [SMALL_STATE(115)] = 4879, - [SMALL_STATE(116)] = 4898, - [SMALL_STATE(117)] = 4911, - [SMALL_STATE(118)] = 4930, - [SMALL_STATE(119)] = 4949, - [SMALL_STATE(120)] = 4962, - [SMALL_STATE(121)] = 4975, - [SMALL_STATE(122)] = 4994, - [SMALL_STATE(123)] = 5013, - [SMALL_STATE(124)] = 5029, - [SMALL_STATE(125)] = 5049, - [SMALL_STATE(126)] = 5069, - [SMALL_STATE(127)] = 5085, - [SMALL_STATE(128)] = 5101, - [SMALL_STATE(129)] = 5117, - [SMALL_STATE(130)] = 5133, - [SMALL_STATE(131)] = 5149, - [SMALL_STATE(132)] = 5165, - [SMALL_STATE(133)] = 5181, - [SMALL_STATE(134)] = 5197, - [SMALL_STATE(135)] = 5214, - [SMALL_STATE(136)] = 5225, - [SMALL_STATE(137)] = 5238, - [SMALL_STATE(138)] = 5255, - [SMALL_STATE(139)] = 5272, - [SMALL_STATE(140)] = 5287, - [SMALL_STATE(141)] = 5298, - [SMALL_STATE(142)] = 5309, - [SMALL_STATE(143)] = 5326, - [SMALL_STATE(144)] = 5341, - [SMALL_STATE(145)] = 5358, - [SMALL_STATE(146)] = 5369, - [SMALL_STATE(147)] = 5380, - [SMALL_STATE(148)] = 5397, - [SMALL_STATE(149)] = 5408, - [SMALL_STATE(150)] = 5419, - [SMALL_STATE(151)] = 5436, - [SMALL_STATE(152)] = 5447, - [SMALL_STATE(153)] = 5464, - [SMALL_STATE(154)] = 5475, - [SMALL_STATE(155)] = 5492, - [SMALL_STATE(156)] = 5503, - [SMALL_STATE(157)] = 5520, - [SMALL_STATE(158)] = 5537, - [SMALL_STATE(159)] = 5552, - [SMALL_STATE(160)] = 5569, - [SMALL_STATE(161)] = 5586, - [SMALL_STATE(162)] = 5597, - [SMALL_STATE(163)] = 5608, - [SMALL_STATE(164)] = 5619, - [SMALL_STATE(165)] = 5630, - [SMALL_STATE(166)] = 5647, - [SMALL_STATE(167)] = 5664, - [SMALL_STATE(168)] = 5675, - [SMALL_STATE(169)] = 5692, - [SMALL_STATE(170)] = 5703, - [SMALL_STATE(171)] = 5720, - [SMALL_STATE(172)] = 5737, - [SMALL_STATE(173)] = 5754, - [SMALL_STATE(174)] = 5771, - [SMALL_STATE(175)] = 5786, - [SMALL_STATE(176)] = 5797, - [SMALL_STATE(177)] = 5814, - [SMALL_STATE(178)] = 5825, - [SMALL_STATE(179)] = 5840, - [SMALL_STATE(180)] = 5857, - [SMALL_STATE(181)] = 5874, - [SMALL_STATE(182)] = 5889, - [SMALL_STATE(183)] = 5906, - [SMALL_STATE(184)] = 5923, - [SMALL_STATE(185)] = 5934, - [SMALL_STATE(186)] = 5951, - [SMALL_STATE(187)] = 5962, - [SMALL_STATE(188)] = 5973, - [SMALL_STATE(189)] = 5984, - [SMALL_STATE(190)] = 5995, - [SMALL_STATE(191)] = 6006, - [SMALL_STATE(192)] = 6017, - [SMALL_STATE(193)] = 6028, - [SMALL_STATE(194)] = 6039, - [SMALL_STATE(195)] = 6056, - [SMALL_STATE(196)] = 6067, - [SMALL_STATE(197)] = 6084, - [SMALL_STATE(198)] = 6101, - [SMALL_STATE(199)] = 6118, - [SMALL_STATE(200)] = 6135, - [SMALL_STATE(201)] = 6150, - [SMALL_STATE(202)] = 6161, - [SMALL_STATE(203)] = 6178, - [SMALL_STATE(204)] = 6195, - [SMALL_STATE(205)] = 6212, - [SMALL_STATE(206)] = 6229, - [SMALL_STATE(207)] = 6246, - [SMALL_STATE(208)] = 6258, - [SMALL_STATE(209)] = 6272, - [SMALL_STATE(210)] = 6286, - [SMALL_STATE(211)] = 6300, - [SMALL_STATE(212)] = 6314, - [SMALL_STATE(213)] = 6328, - [SMALL_STATE(214)] = 6342, - [SMALL_STATE(215)] = 6352, - [SMALL_STATE(216)] = 6364, - [SMALL_STATE(217)] = 6378, - [SMALL_STATE(218)] = 6390, - [SMALL_STATE(219)] = 6399, - [SMALL_STATE(220)] = 6408, - [SMALL_STATE(221)] = 6417, - [SMALL_STATE(222)] = 6426, - [SMALL_STATE(223)] = 6435, - [SMALL_STATE(224)] = 6444, - [SMALL_STATE(225)] = 6453, - [SMALL_STATE(226)] = 6462, - [SMALL_STATE(227)] = 6471, - [SMALL_STATE(228)] = 6480, - [SMALL_STATE(229)] = 6489, - [SMALL_STATE(230)] = 6498, - [SMALL_STATE(231)] = 6507, - [SMALL_STATE(232)] = 6516, - [SMALL_STATE(233)] = 6525, - [SMALL_STATE(234)] = 6536, - [SMALL_STATE(235)] = 6547, - [SMALL_STATE(236)] = 6556, - [SMALL_STATE(237)] = 6565, - [SMALL_STATE(238)] = 6574, - [SMALL_STATE(239)] = 6583, - [SMALL_STATE(240)] = 6591, - [SMALL_STATE(241)] = 6599, - [SMALL_STATE(242)] = 6607, - [SMALL_STATE(243)] = 6615, - [SMALL_STATE(244)] = 6623, - [SMALL_STATE(245)] = 6631, - [SMALL_STATE(246)] = 6639, - [SMALL_STATE(247)] = 6647, - [SMALL_STATE(248)] = 6655, - [SMALL_STATE(249)] = 6663, + [SMALL_STATE(93)] = 4391, + [SMALL_STATE(94)] = 4417, + [SMALL_STATE(95)] = 4443, + [SMALL_STATE(96)] = 4469, + [SMALL_STATE(97)] = 4495, + [SMALL_STATE(98)] = 4521, + [SMALL_STATE(99)] = 4540, + [SMALL_STATE(100)] = 4559, + [SMALL_STATE(101)] = 4578, + [SMALL_STATE(102)] = 4597, + [SMALL_STATE(103)] = 4616, + [SMALL_STATE(104)] = 4639, + [SMALL_STATE(105)] = 4661, + [SMALL_STATE(106)] = 4683, + [SMALL_STATE(107)] = 4705, + [SMALL_STATE(108)] = 4727, + [SMALL_STATE(109)] = 4747, + [SMALL_STATE(110)] = 4769, + [SMALL_STATE(111)] = 4791, + [SMALL_STATE(112)] = 4804, + [SMALL_STATE(113)] = 4823, + [SMALL_STATE(114)] = 4842, + [SMALL_STATE(115)] = 4861, + [SMALL_STATE(116)] = 4880, + [SMALL_STATE(117)] = 4893, + [SMALL_STATE(118)] = 4912, + [SMALL_STATE(119)] = 4925, + [SMALL_STATE(120)] = 4944, + [SMALL_STATE(121)] = 4957, + [SMALL_STATE(122)] = 4976, + [SMALL_STATE(123)] = 4995, + [SMALL_STATE(124)] = 5015, + [SMALL_STATE(125)] = 5031, + [SMALL_STATE(126)] = 5047, + [SMALL_STATE(127)] = 5063, + [SMALL_STATE(128)] = 5079, + [SMALL_STATE(129)] = 5095, + [SMALL_STATE(130)] = 5111, + [SMALL_STATE(131)] = 5131, + [SMALL_STATE(132)] = 5147, + [SMALL_STATE(133)] = 5163, + [SMALL_STATE(134)] = 5179, + [SMALL_STATE(135)] = 5194, + [SMALL_STATE(136)] = 5211, + [SMALL_STATE(137)] = 5222, + [SMALL_STATE(138)] = 5233, + [SMALL_STATE(139)] = 5244, + [SMALL_STATE(140)] = 5261, + [SMALL_STATE(141)] = 5278, + [SMALL_STATE(142)] = 5295, + [SMALL_STATE(143)] = 5310, + [SMALL_STATE(144)] = 5321, + [SMALL_STATE(145)] = 5338, + [SMALL_STATE(146)] = 5355, + [SMALL_STATE(147)] = 5370, + [SMALL_STATE(148)] = 5387, + [SMALL_STATE(149)] = 5398, + [SMALL_STATE(150)] = 5415, + [SMALL_STATE(151)] = 5432, + [SMALL_STATE(152)] = 5449, + [SMALL_STATE(153)] = 5466, + [SMALL_STATE(154)] = 5483, + [SMALL_STATE(155)] = 5500, + [SMALL_STATE(156)] = 5517, + [SMALL_STATE(157)] = 5528, + [SMALL_STATE(158)] = 5543, + [SMALL_STATE(159)] = 5554, + [SMALL_STATE(160)] = 5571, + [SMALL_STATE(161)] = 5582, + [SMALL_STATE(162)] = 5599, + [SMALL_STATE(163)] = 5610, + [SMALL_STATE(164)] = 5627, + [SMALL_STATE(165)] = 5638, + [SMALL_STATE(166)] = 5649, + [SMALL_STATE(167)] = 5660, + [SMALL_STATE(168)] = 5671, + [SMALL_STATE(169)] = 5688, + [SMALL_STATE(170)] = 5705, + [SMALL_STATE(171)] = 5722, + [SMALL_STATE(172)] = 5739, + [SMALL_STATE(173)] = 5750, + [SMALL_STATE(174)] = 5761, + [SMALL_STATE(175)] = 5772, + [SMALL_STATE(176)] = 5783, + [SMALL_STATE(177)] = 5794, + [SMALL_STATE(178)] = 5809, + [SMALL_STATE(179)] = 5820, + [SMALL_STATE(180)] = 5831, + [SMALL_STATE(181)] = 5842, + [SMALL_STATE(182)] = 5857, + [SMALL_STATE(183)] = 5874, + [SMALL_STATE(184)] = 5891, + [SMALL_STATE(185)] = 5902, + [SMALL_STATE(186)] = 5913, + [SMALL_STATE(187)] = 5930, + [SMALL_STATE(188)] = 5947, + [SMALL_STATE(189)] = 5958, + [SMALL_STATE(190)] = 5975, + [SMALL_STATE(191)] = 5986, + [SMALL_STATE(192)] = 5997, + [SMALL_STATE(193)] = 6014, + [SMALL_STATE(194)] = 6031, + [SMALL_STATE(195)] = 6042, + [SMALL_STATE(196)] = 6053, + [SMALL_STATE(197)] = 6070, + [SMALL_STATE(198)] = 6087, + [SMALL_STATE(199)] = 6104, + [SMALL_STATE(200)] = 6115, + [SMALL_STATE(201)] = 6132, + [SMALL_STATE(202)] = 6149, + [SMALL_STATE(203)] = 6166, + [SMALL_STATE(204)] = 6181, + [SMALL_STATE(205)] = 6198, + [SMALL_STATE(206)] = 6215, + [SMALL_STATE(207)] = 6232, + [SMALL_STATE(208)] = 6246, + [SMALL_STATE(209)] = 6256, + [SMALL_STATE(210)] = 6270, + [SMALL_STATE(211)] = 6282, + [SMALL_STATE(212)] = 6294, + [SMALL_STATE(213)] = 6308, + [SMALL_STATE(214)] = 6322, + [SMALL_STATE(215)] = 6336, + [SMALL_STATE(216)] = 6350, + [SMALL_STATE(217)] = 6364, + [SMALL_STATE(218)] = 6374, + [SMALL_STATE(219)] = 6386, + [SMALL_STATE(220)] = 6397, + [SMALL_STATE(221)] = 6406, + [SMALL_STATE(222)] = 6415, + [SMALL_STATE(223)] = 6424, + [SMALL_STATE(224)] = 6433, + [SMALL_STATE(225)] = 6442, + [SMALL_STATE(226)] = 6453, + [SMALL_STATE(227)] = 6462, + [SMALL_STATE(228)] = 6471, + [SMALL_STATE(229)] = 6480, + [SMALL_STATE(230)] = 6489, + [SMALL_STATE(231)] = 6498, + [SMALL_STATE(232)] = 6507, + [SMALL_STATE(233)] = 6516, + [SMALL_STATE(234)] = 6525, + [SMALL_STATE(235)] = 6534, + [SMALL_STATE(236)] = 6543, + [SMALL_STATE(237)] = 6554, + [SMALL_STATE(238)] = 6563, + [SMALL_STATE(239)] = 6572, + [SMALL_STATE(240)] = 6581, + [SMALL_STATE(241)] = 6590, + [SMALL_STATE(242)] = 6598, + [SMALL_STATE(243)] = 6606, + [SMALL_STATE(244)] = 6614, + [SMALL_STATE(245)] = 6622, + [SMALL_STATE(246)] = 6630, + [SMALL_STATE(247)] = 6638, + [SMALL_STATE(248)] = 6646, + [SMALL_STATE(249)] = 6654, + [SMALL_STATE(250)] = 6662, + [SMALL_STATE(251)] = 6670, + [SMALL_STATE(252)] = 6678, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -9481,99 +9498,99 @@ static const TSParseActionEntry ts_parse_actions[] = { [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 = true}}, SHIFT(136), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), - [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(250), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(86), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(88), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(91), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(244), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(242), - [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(104), - [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(131), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(241), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(247), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(108), + [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(125), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), - [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), - [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), - [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 15), - [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 15), - [65] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), - [67] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1, .production_id = 1), - [69] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1, .production_id = 1), - [71] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 4), - [73] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 4), - [75] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 26), - [77] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 26), - [79] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 7), - [81] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 7), - [83] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 7), SHIFT_REPEAT(213), - [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 51), - [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 51), - [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 5), - [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 5), - [94] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 7, .production_id = 52), - [96] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 7, .production_id = 52), - [98] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), - [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), - [102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 3), - [104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3), - [106] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 50), - [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 50), - [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 8), - [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 8), - [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 49), - [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 49), - [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 38), - [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 38), - [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 29), - [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 29), - [126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [128] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), - [130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [132] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80), - [134] = {.entry = {.count = 1, .reusable = false}}, SHIFT(243), - [136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 14), - [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 14), - [150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 31), - [152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 31), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), + [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), + [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), + [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), + [65] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(213), + [68] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 2), + [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 2), + [72] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), + [74] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 15), + [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 15), + [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 26), + [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 26), + [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1, .production_id = 1), + [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1, .production_id = 1), + [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 14), + [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 14), + [90] = {.entry = {.count = 1, .reusable = false}}, SHIFT(243), + [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [96] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 31), + [98] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 31), + [100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 29), + [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 29), + [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [106] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), + [108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [116] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), + [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 7, .production_id = 52), + [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 7, .production_id = 52), + [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 51), + [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 51), + [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 50), + [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 50), + [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 6), + [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 6), + [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 49), + [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 49), + [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 38), + [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 38), + [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 3), + [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 3), + [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 3), + [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3), + [150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), + [152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), [154] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 25), [156] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 25), - [158] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 19), - [160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 19), - [162] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 18), - [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 18), - [166] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 5), - [168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 5), - [170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 25), - [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 25), - [174] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 8), - [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 8), - [178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 30), - [180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 30), - [182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), - [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [188] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), - [190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), - [192] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(43), + [158] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 25), + [160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 25), + [162] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [166] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), + [168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 30), + [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 30), + [174] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 18), + [180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 18), + [182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 19), + [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 19), + [186] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), + [188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), + [190] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(42), + [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), [195] = {.entry = {.count = 1, .reusable = false}}, SHIFT(82), [197] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 25), [199] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 25), @@ -9581,220 +9598,222 @@ static const TSParseActionEntry ts_parse_actions[] = { [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), [205] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 16), [207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 16), - [209] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 10), - [211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 10), - [213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), - [219] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [223] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [226] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), - [228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 3, .production_id = 47), - [230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 1, .production_id = 37), - [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 27), - [242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), - [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214), - [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [258] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), - [260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), - [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [288] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), - [290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), - [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [302] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 11), - [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 11), - [306] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 7), - [308] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 7), SHIFT_REPEAT(85), - [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 7), + [209] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 9), + [211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 9), + [213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [217] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69), + [219] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), + [221] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [223] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [225] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), + [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), + [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 27), + [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 1, .production_id = 37), + [242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 3, .production_id = 47), + [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217), + [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [266] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), + [268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), + [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [274] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), + [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), + [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [302] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), + [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), + [306] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [308] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(85), + [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), [313] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [317] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 8), + [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [321] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), [329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 4), - [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), - [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 5), - [339] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(99), - [342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 17), - [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), + [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), + [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), + [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 17), + [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [343] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(99), [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 34), [348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 23), [350] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 24), - [352] = {.entry = {.count = 1, .reusable = false}}, SHIFT(133), - [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), - [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), - [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), - [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), - [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), - [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 4), + [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), + [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), + [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244), + [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180), + [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [364] = {.entry = {.count = 1, .reusable = false}}, SHIFT(133), + [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), + [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 44), [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), - [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), - [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), - [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 36), - [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), - [382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 44), - [384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 4), - [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 7), - [388] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 7), SHIFT_REPEAT(78), - [391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 35), - [393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 28), - [395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 7), - [397] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 7), SHIFT_REPEAT(78), - [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), - [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), - [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), - [412] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 7), SHIFT_REPEAT(209), - [415] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 7), - [417] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 7), SHIFT_REPEAT(78), - [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 5), - [422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), - [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), - [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [432] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), - [434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 8), - [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [438] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 33), - [440] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 7), - [442] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 7), SHIFT_REPEAT(10), - [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), - [447] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 5), - [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), - [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [453] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 8), - [455] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 7), - [457] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 7), SHIFT_REPEAT(78), - [460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), - [462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), - [464] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 3, .production_id = 20), - [466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 31), - [472] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 38), - [474] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [476] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), - [478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), - [482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 18), - [484] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), - [486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), - [488] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), - [490] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), - [494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), - [498] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 43), - [500] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 4), - [502] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [504] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 1, .production_id = 37), - [506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 5), - [510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), - [512] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 13), - [514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [516] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 7), - [518] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 7), SHIFT_REPEAT(98), - [521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), - [523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245), - [525] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 38), - [527] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 31), - [529] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), - [531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [537] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 7), - [539] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 7), SHIFT_REPEAT(78), - [542] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 3, .production_id = 47), - [544] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [546] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 7), - [548] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 7), SHIFT_REPEAT(78), - [551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), - [553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [555] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 8), - [557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [561] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1, .production_id = 9), - [563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), + [376] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(71), + [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), + [381] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), + [383] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 35), + [385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 36), + [387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), + [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), + [391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 28), + [393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), + [395] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(71), + [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), + [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), + [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [406] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(212), + [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), + [411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), + [415] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 13), + [417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), + [421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [423] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), + [425] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), + [427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 31), + [429] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), + [431] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), + [434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), + [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), + [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [448] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 33), + [450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), + [452] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), + [454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), + [456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), + [458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), + [460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), + [464] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), SHIFT_REPEAT(71), + [467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), + [469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), + [471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [473] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), + [475] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 3, .production_id = 20), + [477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [479] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), + [483] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 18), + [485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 31), + [489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 38), + [491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), + [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), + [497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), + [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), + [503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [505] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), + [507] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 43), + [509] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 1, .production_id = 37), + [511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245), + [515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), + [517] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), + [519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [521] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), + [523] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(71), + [526] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 38), + [528] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), + [530] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(103), + [533] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), + [535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [539] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252), + [545] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), + [547] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), SHIFT_REPEAT(71), + [550] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 3, .production_id = 47), + [552] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), + [554] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), SHIFT_REPEAT(71), + [557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), [565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), - [569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207), - [573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248), - [575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), - [577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [583] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 21), - [585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), - [587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), - [591] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 45), - [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 41), + [567] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1, .production_id = 8), + [569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), + [571] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 21), + [573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), + [575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), + [577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), + [589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246), + [591] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), + [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 4, .production_id = 7), [595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 48), - [597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), - [599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 22), - [601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), - [603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), - [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 39), - [607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), - [609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 3, .production_id = 6), - [611] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 32), - [613] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 46), - [615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 4, .production_id = 12), - [617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 40), - [619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_obj, 1, .production_id = 2), - [621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_domain_statement, 2, .production_id = 13), - [623] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_obj, 2, .production_id = 3), - [625] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 42), - [627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), - [631] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 5), - [633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), - [635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(236), - [639] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 8), - [641] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), - [645] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), - [647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 46), + [599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), + [601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 3, .production_id = 4), + [603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 45), + [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 4, .production_id = 11), + [607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 5, .production_id = 12), + [609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 32), + [611] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 3), + [613] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_domain_statement, 2, .production_id = 13), + [615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 3), + [617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 42), + [619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 22), + [621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 3), + [623] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 39), + [625] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 41), + [627] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 40), + [629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), + [631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), + [633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [637] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 6), + [639] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), + [641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), + [643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [645] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169), + [649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [651] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 3), }; #ifdef __cplusplus From 287af3644e51a97ad9835ed89f9e0b82f18cf2ef Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Sun, 11 Aug 2024 15:26:42 +0200 Subject: [PATCH 43/49] Get rid of default type args They weren't implemented yet, and blocked sharing code between structs & modules --- grammar.js | 6 +- src/grammar.json | 25 - src/node-types.json | 14 - src/parser.c | 4541 +++++++++++++++++++++---------------------- 4 files changed, 2252 insertions(+), 2334 deletions(-) diff --git a/grammar.js b/grammar.js index ee242c4..68d1f7a 100644 --- a/grammar.js +++ b/grammar.js @@ -67,11 +67,7 @@ module.exports = grammar({ ), template_declaration_type: $ => seq( - field('name', $.identifier), - optional(seq( - '=', - field('default_value', $._type) - )) + field('name', $.identifier) ), // Statements diff --git a/src/grammar.json b/src/grammar.json index 2a98464..af8770f 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -219,31 +219,6 @@ "type": "SYMBOL", "name": "identifier" } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "=" - }, - { - "type": "FIELD", - "name": "default_value", - "content": { - "type": "SYMBOL", - "name": "_type" - } - } - ] - }, - { - "type": "BLANK" - } - ] } ] }, diff --git a/src/node-types.json b/src/node-types.json index aa08ba2..b39f3da 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -1105,20 +1105,6 @@ "type": "template_declaration_type", "named": true, "fields": { - "default_value": { - "multiple": false, - "required": false, - "types": [ - { - "type": "array_type", - "named": true - }, - { - "type": "template_global", - "named": true - } - ] - }, "name": { "multiple": false, "required": true, diff --git a/src/parser.c b/src/parser.c index 65c54ec..2e461dd 100644 --- a/src/parser.c +++ b/src/parser.c @@ -5,15 +5,15 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 253 +#define STATE_COUNT 251 #define LARGE_STATE_COUNT 2 #define SYMBOL_COUNT 98 #define ALIAS_COUNT 0 #define TOKEN_COUNT 53 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 33 +#define FIELD_COUNT 32 #define MAX_ALIAS_SEQUENCE_LENGTH 7 -#define PRODUCTION_ID_COUNT 53 +#define PRODUCTION_ID_COUNT 52 enum ts_symbol_identifiers { sym_identifier = 1, @@ -24,9 +24,9 @@ enum ts_symbol_identifiers { anon_sym_struct = 6, anon_sym_LT = 7, anon_sym_GT = 8, - anon_sym_EQ = 9, - anon_sym_LBRACE = 10, - anon_sym_RBRACE = 11, + anon_sym_LBRACE = 9, + anon_sym_RBRACE = 10, + anon_sym_EQ = 11, anon_sym_reg = 12, anon_sym_initial = 13, anon_sym_if = 14, @@ -125,9 +125,9 @@ static const char * const ts_symbol_names[] = { [anon_sym_struct] = "struct", [anon_sym_LT] = "<", [anon_sym_GT] = ">", - [anon_sym_EQ] = "=", [anon_sym_LBRACE] = "{", [anon_sym_RBRACE] = "}", + [anon_sym_EQ] = "=", [anon_sym_reg] = "reg", [anon_sym_initial] = "initial", [anon_sym_if] = "if", @@ -226,9 +226,9 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_struct] = anon_sym_struct, [anon_sym_LT] = anon_sym_LT, [anon_sym_GT] = anon_sym_GT, - [anon_sym_EQ] = anon_sym_EQ, [anon_sym_LBRACE] = anon_sym_LBRACE, [anon_sym_RBRACE] = anon_sym_RBRACE, + [anon_sym_EQ] = anon_sym_EQ, [anon_sym_reg] = anon_sym_reg, [anon_sym_initial] = anon_sym_initial, [anon_sym_if] = anon_sym_if, @@ -354,15 +354,15 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_EQ] = { + [anon_sym_LBRACE] = { .visible = true, .named = false, }, - [anon_sym_LBRACE] = { + [anon_sym_RBRACE] = { .visible = true, .named = false, }, - [anon_sym_RBRACE] = { + [anon_sym_EQ] = { .visible = true, .named = false, }, @@ -723,29 +723,28 @@ enum ts_field_identifiers { field_condition = 8, field_content = 9, field_declaration_modifiers = 10, - field_default_value = 11, - field_else_block = 12, - field_expr_or_decl = 13, - field_extern_marker = 14, - field_for_decl = 15, - field_from = 16, - field_inputs = 17, - field_interface_ports = 18, - field_io_port_modifiers = 19, - field_is_global_path = 20, - field_item = 21, - field_latency_specifier = 22, - field_left = 23, - field_name = 24, - field_object_type = 25, - field_operator = 26, - field_outputs = 27, - field_right = 28, - field_template_declaration_arguments = 29, - field_then_block = 30, - field_to = 31, - field_type = 32, - field_write_modifiers = 33, + field_else_block = 11, + field_expr_or_decl = 12, + field_extern_marker = 13, + field_for_decl = 14, + field_from = 15, + field_inputs = 16, + field_interface_ports = 17, + field_io_port_modifiers = 18, + field_is_global_path = 19, + field_item = 20, + field_latency_specifier = 21, + field_left = 22, + field_name = 23, + field_object_type = 24, + field_operator = 25, + field_outputs = 26, + field_right = 27, + field_template_declaration_arguments = 28, + field_then_block = 29, + field_to = 30, + field_type = 31, + field_write_modifiers = 32, }; static const char * const ts_field_names[] = { @@ -760,7 +759,6 @@ static const char * const ts_field_names[] = { [field_condition] = "condition", [field_content] = "content", [field_declaration_modifiers] = "declaration_modifiers", - [field_default_value] = "default_value", [field_else_block] = "else_block", [field_expr_or_decl] = "expr_or_decl", [field_extern_marker] = "extern_marker", @@ -807,37 +805,36 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [19] = {.index = 38, .length = 2}, [20] = {.index = 40, .length = 2}, [21] = {.index = 42, .length = 2}, - [22] = {.index = 44, .length = 2}, - [23] = {.index = 46, .length = 3}, - [24] = {.index = 49, .length = 3}, - [25] = {.index = 52, .length = 1}, - [26] = {.index = 53, .length = 3}, - [27] = {.index = 56, .length = 2}, - [28] = {.index = 58, .length = 3}, - [29] = {.index = 61, .length = 3}, - [30] = {.index = 64, .length = 2}, - [31] = {.index = 66, .length = 1}, - [32] = {.index = 67, .length = 1}, - [33] = {.index = 68, .length = 1}, - [34] = {.index = 69, .length = 4}, - [35] = {.index = 73, .length = 4}, - [36] = {.index = 77, .length = 4}, - [37] = {.index = 81, .length = 1}, - [38] = {.index = 82, .length = 2}, - [39] = {.index = 84, .length = 3}, - [40] = {.index = 87, .length = 1}, - [41] = {.index = 88, .length = 2}, - [42] = {.index = 90, .length = 1}, - [43] = {.index = 91, .length = 1}, - [44] = {.index = 92, .length = 5}, - [45] = {.index = 97, .length = 1}, + [22] = {.index = 44, .length = 3}, + [23] = {.index = 47, .length = 3}, + [24] = {.index = 50, .length = 1}, + [25] = {.index = 51, .length = 3}, + [26] = {.index = 54, .length = 2}, + [27] = {.index = 56, .length = 3}, + [28] = {.index = 59, .length = 3}, + [29] = {.index = 62, .length = 2}, + [30] = {.index = 64, .length = 1}, + [31] = {.index = 65, .length = 1}, + [32] = {.index = 66, .length = 1}, + [33] = {.index = 67, .length = 4}, + [34] = {.index = 71, .length = 4}, + [35] = {.index = 75, .length = 4}, + [36] = {.index = 79, .length = 1}, + [37] = {.index = 80, .length = 2}, + [38] = {.index = 82, .length = 3}, + [39] = {.index = 85, .length = 1}, + [40] = {.index = 86, .length = 2}, + [41] = {.index = 88, .length = 1}, + [42] = {.index = 89, .length = 1}, + [43] = {.index = 90, .length = 5}, + [44] = {.index = 95, .length = 1}, + [45] = {.index = 96, .length = 2}, [46] = {.index = 98, .length = 2}, - [47] = {.index = 100, .length = 2}, - [48] = {.index = 102, .length = 4}, - [49] = {.index = 106, .length = 2}, - [50] = {.index = 108, .length = 3}, - [51] = {.index = 111, .length = 3}, - [52] = {.index = 114, .length = 4}, + [47] = {.index = 100, .length = 4}, + [48] = {.index = 104, .length = 2}, + [49] = {.index = 106, .length = 3}, + [50] = {.index = 109, .length = 3}, + [51] = {.index = 112, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -901,112 +898,109 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_arguments, 1}, {field_name, 0}, [40] = - {field_default_value, 2}, - {field_name, 0}, - [42] = {field_condition, 1}, {field_then_block, 2}, - [44] = + [42] = {field_interface_ports, 2}, {field_name, 1}, - [46] = + [44] = {field_io_port_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [49] = + [47] = {field_declaration_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [52] = + [50] = {field_content, 1}, - [53] = + [51] = {field_is_global_path, 0}, {field_item, 1}, {field_item, 2, .inherited = true}, - [56] = + [54] = {field_assign_left, 0}, {field_assign_value, 2}, - [58] = + [56] = {field_latency_specifier, 2}, {field_name, 1}, {field_type, 0}, - [61] = + [59] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [64] = + [62] = {field_left, 0}, {field_name, 2}, - [66] = + [64] = {field_item, 2}, - [67] = + [65] = {field_outputs, 1, .inherited = true}, - [68] = + [66] = {field_inputs, 1}, - [69] = + [67] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_name, 3}, {field_type, 2}, - [73] = + [71] = {field_io_port_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [77] = + [75] = {field_declaration_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [81] = + [79] = {field_arg, 0}, - [82] = + [80] = {field_item, 2}, {field_item, 3, .inherited = true}, - [84] = + [82] = {field_condition, 1}, {field_else_block, 4}, {field_then_block, 2}, - [87] = + [85] = {field_outputs, 1}, - [88] = + [86] = {field_inputs, 1}, {field_outputs, 2, .inherited = true}, - [90] = + [88] = {field_outputs, 2, .inherited = true}, - [91] = + [89] = {field_inputs, 2}, - [92] = + [90] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_latency_specifier, 4}, {field_name, 3}, {field_type, 2}, - [97] = + [95] = {field_outputs, 2}, - [98] = + [96] = {field_inputs, 2}, {field_outputs, 3, .inherited = true}, - [100] = + [98] = {field_arg, 2}, {field_name, 0}, - [102] = + [100] = {field_block, 6}, {field_for_decl, 1}, {field_from, 3}, {field_to, 5}, - [106] = + [104] = {field_item, 1}, {field_item, 3}, - [108] = + [106] = {field_item, 1}, {field_item, 3}, {field_item, 4, .inherited = true}, - [111] = + [109] = {field_item, 1}, {field_item, 2, .inherited = true}, {field_item, 4}, - [114] = + [112] = {field_item, 1}, {field_item, 2, .inherited = true}, {field_item, 4}, @@ -1074,24 +1068,24 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [49] = 49, [50] = 50, [51] = 51, - [52] = 50, + [52] = 52, [53] = 53, - [54] = 54, + [54] = 52, [55] = 55, [56] = 56, [57] = 57, [58] = 58, [59] = 59, - [60] = 58, + [60] = 60, [61] = 61, [62] = 62, - [63] = 63, + [63] = 60, [64] = 64, [65] = 65, [66] = 66, [67] = 67, [68] = 68, - [69] = 69, + [69] = 68, [70] = 70, [71] = 71, [72] = 72, @@ -1102,7 +1096,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [77] = 77, [78] = 78, [79] = 79, - [80] = 65, + [80] = 80, [81] = 81, [82] = 82, [83] = 83, @@ -1121,18 +1115,18 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [96] = 96, [97] = 97, [98] = 98, - [99] = 42, + [99] = 99, [100] = 100, - [101] = 101, + [101] = 42, [102] = 102, [103] = 103, [104] = 104, [105] = 105, - [106] = 104, - [107] = 107, + [106] = 106, + [107] = 104, [108] = 108, - [109] = 105, - [110] = 107, + [109] = 106, + [110] = 108, [111] = 111, [112] = 112, [113] = 113, @@ -1146,15 +1140,15 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [121] = 121, [122] = 122, [123] = 123, - [124] = 13, - [125] = 125, - [126] = 16, - [127] = 15, - [128] = 14, - [129] = 11, + [124] = 11, + [125] = 14, + [126] = 126, + [127] = 13, + [128] = 128, + [129] = 129, [130] = 130, - [131] = 131, - [132] = 132, + [131] = 16, + [132] = 15, [133] = 133, [134] = 134, [135] = 135, @@ -1175,71 +1169,71 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [150] = 150, [151] = 151, [152] = 152, - [153] = 153, + [153] = 136, [154] = 154, - [155] = 145, + [155] = 155, [156] = 156, - [157] = 157, - [158] = 158, - [159] = 159, + [157] = 30, + [158] = 28, + [159] = 26, [160] = 160, [161] = 161, [162] = 162, [163] = 163, [164] = 164, [165] = 165, - [166] = 166, - [167] = 167, - [168] = 168, - [169] = 169, - [170] = 170, - [171] = 171, + [166] = 17, + [167] = 24, + [168] = 23, + [169] = 21, + [170] = 20, + [171] = 19, [172] = 172, - [173] = 21, - [174] = 23, - [175] = 24, - [176] = 25, + [173] = 18, + [174] = 174, + [175] = 175, + [176] = 176, [177] = 177, - [178] = 26, - [179] = 27, - [180] = 28, + [178] = 178, + [179] = 179, + [180] = 155, [181] = 181, - [182] = 161, + [182] = 182, [183] = 183, - [184] = 18, - [185] = 29, - [186] = 144, + [184] = 135, + [185] = 141, + [186] = 186, [187] = 187, - [188] = 33, + [188] = 188, [189] = 189, - [190] = 190, - [191] = 191, + [190] = 142, + [191] = 143, [192] = 192, [193] = 193, [194] = 194, [195] = 195, - [196] = 147, + [196] = 196, [197] = 197, - [198] = 154, + [198] = 149, [199] = 199, - [200] = 153, - [201] = 201, + [200] = 200, + [201] = 144, [202] = 202, [203] = 203, [204] = 204, - [205] = 150, - [206] = 149, + [205] = 34, + [206] = 206, [207] = 207, [208] = 208, [209] = 209, [210] = 210, - [211] = 211, + [211] = 206, [212] = 212, - [213] = 212, + [213] = 213, [214] = 214, [215] = 215, [216] = 216, - [217] = 34, + [217] = 217, [218] = 218, [219] = 219, [220] = 220, @@ -1267,14 +1261,12 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [242] = 242, [243] = 243, [244] = 244, - [245] = 245, + [245] = 241, [246] = 246, [247] = 247, [248] = 248, [249] = 249, [250] = 250, - [251] = 244, - [252] = 252, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -3209,14 +3201,14 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == ':') ADVANCE(17); if (lookahead == ';') ADVANCE(40); if (lookahead == '<') ADVANCE(9); - if (lookahead == '=') ADVANCE(13); + if (lookahead == '=') ADVANCE(15); if (lookahead == '>') ADVANCE(11); if (lookahead == '[') ADVANCE(37); if (lookahead == ']') ADVANCE(38); if (lookahead == '^') ADVANCE(27); - if (lookahead == '{') ADVANCE(14); + if (lookahead == '{') ADVANCE(12); if (lookahead == '|') ADVANCE(25); - if (lookahead == '}') ADVANCE(15); + if (lookahead == '}') ADVANCE(13); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(0) @@ -3236,13 +3228,13 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '/') ADVANCE(3); if (lookahead == ':') ADVANCE(6); if (lookahead == ';') ADVANCE(40); - if (lookahead == '=') ADVANCE(12); + if (lookahead == '=') ADVANCE(14); if (lookahead == '>') ADVANCE(10); if (lookahead == '[') ADVANCE(37); if (lookahead == '^') ADVANCE(27); - if (lookahead == '{') ADVANCE(14); + if (lookahead == '{') ADVANCE(12); if (lookahead == '|') ADVANCE(25); - if (lookahead == '}') ADVANCE(15); + if (lookahead == '}') ADVANCE(13); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(1) @@ -3265,14 +3257,14 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == ':') ADVANCE(6); if (lookahead == ';') ADVANCE(40); if (lookahead == '<') ADVANCE(9); - if (lookahead == '=') ADVANCE(13); + if (lookahead == '=') ADVANCE(15); if (lookahead == '>') ADVANCE(11); if (lookahead == '[') ADVANCE(37); if (lookahead == ']') ADVANCE(38); if (lookahead == '^') ADVANCE(27); - if (lookahead == '{') ADVANCE(14); + if (lookahead == '{') ADVANCE(12); if (lookahead == '|') ADVANCE(25); - if (lookahead == '}') ADVANCE(15); + if (lookahead == '}') ADVANCE(13); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(2) @@ -3312,17 +3304,17 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '=') ADVANCE(31); END_STATE(); case 12: - ACCEPT_TOKEN(anon_sym_EQ); + ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); case 13: - ACCEPT_TOKEN(anon_sym_EQ); - if (lookahead == '=') ADVANCE(28); + ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); case 14: - ACCEPT_TOKEN(anon_sym_LBRACE); + ACCEPT_TOKEN(anon_sym_EQ); END_STATE(); case 15: - ACCEPT_TOKEN(anon_sym_RBRACE); + ACCEPT_TOKEN(anon_sym_EQ); + if (lookahead == '=') ADVANCE(28); END_STATE(); case 16: ACCEPT_TOKEN(anon_sym_DOT_DOT); @@ -3757,11 +3749,11 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [47] = {.lex_state = 2}, [48] = {.lex_state = 2}, [49] = {.lex_state = 2}, - [50] = {.lex_state = 1}, + [50] = {.lex_state = 2}, [51] = {.lex_state = 2}, [52] = {.lex_state = 1}, [53] = {.lex_state = 2}, - [54] = {.lex_state = 2}, + [54] = {.lex_state = 1}, [55] = {.lex_state = 2}, [56] = {.lex_state = 2}, [57] = {.lex_state = 2}, @@ -3769,8 +3761,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [59] = {.lex_state = 1}, [60] = {.lex_state = 2}, [61] = {.lex_state = 2}, - [62] = {.lex_state = 2}, - [63] = {.lex_state = 1}, + [62] = {.lex_state = 1}, + [63] = {.lex_state = 2}, [64] = {.lex_state = 1}, [65] = {.lex_state = 1}, [66] = {.lex_state = 1}, @@ -3819,14 +3811,14 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [109] = {.lex_state = 1}, [110] = {.lex_state = 1}, [111] = {.lex_state = 0}, - [112] = {.lex_state = 0}, + [112] = {.lex_state = 1}, [113] = {.lex_state = 0}, [114] = {.lex_state = 0}, [115] = {.lex_state = 0}, [116] = {.lex_state = 0}, [117] = {.lex_state = 1}, [118] = {.lex_state = 0}, - [119] = {.lex_state = 1}, + [119] = {.lex_state = 0}, [120] = {.lex_state = 0}, [121] = {.lex_state = 0}, [122] = {.lex_state = 0}, @@ -3836,11 +3828,11 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [126] = {.lex_state = 1}, [127] = {.lex_state = 1}, [128] = {.lex_state = 1}, - [129] = {.lex_state = 1}, - [130] = {.lex_state = 0}, + [129] = {.lex_state = 0}, + [130] = {.lex_state = 1}, [131] = {.lex_state = 1}, [132] = {.lex_state = 1}, - [133] = {.lex_state = 1}, + [133] = {.lex_state = 0}, [134] = {.lex_state = 0}, [135] = {.lex_state = 0}, [136] = {.lex_state = 0}, @@ -3848,57 +3840,57 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [138] = {.lex_state = 0}, [139] = {.lex_state = 0}, [140] = {.lex_state = 0}, - [141] = {.lex_state = 0}, - [142] = {.lex_state = 0}, - [143] = {.lex_state = 0}, - [144] = {.lex_state = 0}, + [141] = {.lex_state = 1}, + [142] = {.lex_state = 1}, + [143] = {.lex_state = 1}, + [144] = {.lex_state = 1}, [145] = {.lex_state = 0}, [146] = {.lex_state = 0}, - [147] = {.lex_state = 1}, + [147] = {.lex_state = 0}, [148] = {.lex_state = 0}, [149] = {.lex_state = 1}, - [150] = {.lex_state = 1}, + [150] = {.lex_state = 0}, [151] = {.lex_state = 0}, [152] = {.lex_state = 1}, - [153] = {.lex_state = 1}, - [154] = {.lex_state = 1}, - [155] = {.lex_state = 0}, + [153] = {.lex_state = 0}, + [154] = {.lex_state = 0}, + [155] = {.lex_state = 1}, [156] = {.lex_state = 0}, [157] = {.lex_state = 1}, - [158] = {.lex_state = 0}, - [159] = {.lex_state = 0}, + [158] = {.lex_state = 1}, + [159] = {.lex_state = 1}, [160] = {.lex_state = 0}, - [161] = {.lex_state = 1}, - [162] = {.lex_state = 1}, + [161] = {.lex_state = 0}, + [162] = {.lex_state = 0}, [163] = {.lex_state = 0}, [164] = {.lex_state = 0}, [165] = {.lex_state = 0}, - [166] = {.lex_state = 0}, - [167] = {.lex_state = 0}, - [168] = {.lex_state = 0}, - [169] = {.lex_state = 0}, - [170] = {.lex_state = 0}, - [171] = {.lex_state = 0}, - [172] = {.lex_state = 0}, + [166] = {.lex_state = 1}, + [167] = {.lex_state = 1}, + [168] = {.lex_state = 1}, + [169] = {.lex_state = 1}, + [170] = {.lex_state = 1}, + [171] = {.lex_state = 1}, + [172] = {.lex_state = 1}, [173] = {.lex_state = 1}, [174] = {.lex_state = 1}, - [175] = {.lex_state = 1}, - [176] = {.lex_state = 1}, + [175] = {.lex_state = 0}, + [176] = {.lex_state = 0}, [177] = {.lex_state = 0}, - [178] = {.lex_state = 1}, + [178] = {.lex_state = 0}, [179] = {.lex_state = 1}, [180] = {.lex_state = 1}, - [181] = {.lex_state = 1}, - [182] = {.lex_state = 1}, + [181] = {.lex_state = 0}, + [182] = {.lex_state = 0}, [183] = {.lex_state = 1}, - [184] = {.lex_state = 1}, + [184] = {.lex_state = 0}, [185] = {.lex_state = 1}, [186] = {.lex_state = 0}, [187] = {.lex_state = 0}, - [188] = {.lex_state = 1}, + [188] = {.lex_state = 0}, [189] = {.lex_state = 0}, - [190] = {.lex_state = 0}, - [191] = {.lex_state = 0}, + [190] = {.lex_state = 1}, + [191] = {.lex_state = 1}, [192] = {.lex_state = 0}, [193] = {.lex_state = 0}, [194] = {.lex_state = 0}, @@ -3907,28 +3899,28 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [197] = {.lex_state = 0}, [198] = {.lex_state = 1}, [199] = {.lex_state = 0}, - [200] = {.lex_state = 1}, + [200] = {.lex_state = 0}, [201] = {.lex_state = 1}, [202] = {.lex_state = 0}, [203] = {.lex_state = 1}, - [204] = {.lex_state = 1}, + [204] = {.lex_state = 0}, [205] = {.lex_state = 1}, - [206] = {.lex_state = 1}, + [206] = {.lex_state = 0}, [207] = {.lex_state = 0}, [208] = {.lex_state = 0}, - [209] = {.lex_state = 0}, - [210] = {.lex_state = 1}, + [209] = {.lex_state = 1}, + [210] = {.lex_state = 0}, [211] = {.lex_state = 0}, [212] = {.lex_state = 0}, [213] = {.lex_state = 0}, [214] = {.lex_state = 0}, [215] = {.lex_state = 0}, - [216] = {.lex_state = 1}, - [217] = {.lex_state = 1}, + [216] = {.lex_state = 0}, + [217] = {.lex_state = 0}, [218] = {.lex_state = 0}, [219] = {.lex_state = 0}, [220] = {.lex_state = 0}, - [221] = {.lex_state = 0}, + [221] = {.lex_state = 1}, [222] = {.lex_state = 0}, [223] = {.lex_state = 0}, [224] = {.lex_state = 0}, @@ -3938,14 +3930,14 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [228] = {.lex_state = 0}, [229] = {.lex_state = 0}, [230] = {.lex_state = 0}, - [231] = {.lex_state = 0}, + [231] = {.lex_state = 1}, [232] = {.lex_state = 0}, - [233] = {.lex_state = 1}, + [233] = {.lex_state = 0}, [234] = {.lex_state = 0}, [235] = {.lex_state = 0}, [236] = {.lex_state = 0}, - [237] = {.lex_state = 1}, - [238] = {.lex_state = 0}, + [237] = {.lex_state = 0}, + [238] = {.lex_state = 1}, [239] = {.lex_state = 0}, [240] = {.lex_state = 0}, [241] = {.lex_state = 0}, @@ -3958,8 +3950,6 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [248] = {.lex_state = 0}, [249] = {.lex_state = 0}, [250] = {.lex_state = 0}, - [251] = {.lex_state = 0}, - [252] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -3973,9 +3963,9 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_struct] = ACTIONS(1), [anon_sym_LT] = ACTIONS(1), [anon_sym_GT] = ACTIONS(1), - [anon_sym_EQ] = ACTIONS(1), [anon_sym_LBRACE] = ACTIONS(1), [anon_sym_RBRACE] = ACTIONS(1), + [anon_sym_EQ] = ACTIONS(1), [anon_sym_reg] = ACTIONS(1), [anon_sym_initial] = ACTIONS(1), [anon_sym_if] = ACTIONS(1), @@ -4018,9 +4008,9 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(249), - [sym_global_object] = STATE(151), - [aux_sym__linebreak] = STATE(94), + [sym_source_file] = STATE(240), + [sym_global_object] = STATE(182), + [aux_sym__linebreak] = STATE(97), [ts_builtin_sym_end] = ACTIONS(5), [anon_sym___builtin__] = ACTIONS(7), [anon_sym_extern] = ACTIONS(7), @@ -4067,14 +4057,14 @@ static const uint16_t ts_small_parse_table[] = { sym_write_modifiers, STATE(49), 1, sym_template_global, - STATE(83), 1, + STATE(84), 1, aux_sym_write_modifiers_repeat1, - STATE(112), 1, + STATE(115), 1, sym_assign_to, - STATE(195), 1, - sym_declaration, - STATE(218), 1, + STATE(123), 1, sym_assign_left_side, + STATE(160), 1, + sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4084,10 +4074,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(207), 2, + STATE(208), 2, sym__type, sym_array_type, - STATE(230), 6, + STATE(178), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4102,7 +4092,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(46), 7, + STATE(47), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4143,13 +4133,13 @@ static const uint16_t ts_small_parse_table[] = { sym_write_modifiers, STATE(49), 1, sym_template_global, - STATE(83), 1, + STATE(84), 1, aux_sym_write_modifiers_repeat1, - STATE(112), 1, + STATE(115), 1, sym_assign_to, - STATE(195), 1, + STATE(160), 1, sym_declaration, - STATE(218), 1, + STATE(207), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4160,10 +4150,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(207), 2, + STATE(208), 2, sym__type, sym_array_type, - STATE(230), 6, + STATE(218), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4178,7 +4168,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(46), 7, + STATE(47), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4219,13 +4209,13 @@ static const uint16_t ts_small_parse_table[] = { sym_write_modifiers, STATE(49), 1, sym_template_global, - STATE(83), 1, + STATE(84), 1, aux_sym_write_modifiers_repeat1, - STATE(112), 1, + STATE(115), 1, sym_assign_to, - STATE(195), 1, + STATE(160), 1, sym_declaration, - STATE(218), 1, + STATE(207), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4236,10 +4226,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(207), 2, + STATE(208), 2, sym__type, sym_array_type, - STATE(230), 6, + STATE(218), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4254,7 +4244,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(46), 7, + STATE(47), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4295,14 +4285,14 @@ static const uint16_t ts_small_parse_table[] = { sym_write_modifiers, STATE(49), 1, sym_template_global, - STATE(83), 1, + STATE(84), 1, aux_sym_write_modifiers_repeat1, - STATE(112), 1, + STATE(115), 1, sym_assign_to, - STATE(130), 1, - sym_assign_left_side, - STATE(195), 1, + STATE(160), 1, sym_declaration, + STATE(207), 1, + sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4312,10 +4302,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(207), 2, + STATE(208), 2, sym__type, sym_array_type, - STATE(159), 6, + STATE(218), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4330,7 +4320,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(46), 7, + STATE(47), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4371,13 +4361,13 @@ static const uint16_t ts_small_parse_table[] = { sym_write_modifiers, STATE(49), 1, sym_template_global, - STATE(83), 1, + STATE(84), 1, aux_sym_write_modifiers_repeat1, - STATE(112), 1, + STATE(115), 1, sym_assign_to, - STATE(195), 1, + STATE(160), 1, sym_declaration, - STATE(218), 1, + STATE(207), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4388,10 +4378,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(207), 2, + STATE(208), 2, sym__type, sym_array_type, - STATE(230), 6, + STATE(218), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4406,7 +4396,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(46), 7, + STATE(47), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4447,13 +4437,13 @@ static const uint16_t ts_small_parse_table[] = { sym_write_modifiers, STATE(49), 1, sym_template_global, - STATE(83), 1, + STATE(84), 1, aux_sym_write_modifiers_repeat1, - STATE(112), 1, + STATE(115), 1, sym_assign_to, - STATE(195), 1, + STATE(160), 1, sym_declaration, - STATE(218), 1, + STATE(207), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4464,10 +4454,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(207), 2, + STATE(208), 2, sym__type, sym_array_type, - STATE(230), 6, + STATE(218), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4482,7 +4472,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(46), 7, + STATE(47), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4513,24 +4503,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(41), 1, sym_number, + ACTIONS(43), 1, + anon_sym_LF, ACTIONS(55), 1, anon_sym_RBRACE, - ACTIONS(57), 1, - anon_sym_LF, - STATE(5), 1, + STATE(42), 1, aux_sym__linebreak, STATE(43), 1, sym_write_modifiers, STATE(49), 1, sym_template_global, - STATE(83), 1, + STATE(84), 1, aux_sym_write_modifiers_repeat1, - STATE(112), 1, + STATE(115), 1, sym_assign_to, - STATE(123), 1, - sym_assign_left_side, - STATE(195), 1, + STATE(160), 1, sym_declaration, + STATE(207), 1, + sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4540,10 +4530,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(207), 2, + STATE(208), 2, sym__type, sym_array_type, - STATE(197), 6, + STATE(218), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4558,7 +4548,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(46), 7, + STATE(47), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4589,24 +4579,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(41), 1, sym_number, - ACTIONS(43), 1, - anon_sym_LF, - ACTIONS(59), 1, + ACTIONS(57), 1, anon_sym_RBRACE, - STATE(42), 1, + ACTIONS(59), 1, + anon_sym_LF, + STATE(2), 1, aux_sym__linebreak, STATE(43), 1, sym_write_modifiers, STATE(49), 1, sym_template_global, - STATE(83), 1, + STATE(84), 1, aux_sym_write_modifiers_repeat1, - STATE(112), 1, + STATE(115), 1, sym_assign_to, - STATE(195), 1, - sym_declaration, - STATE(218), 1, + STATE(129), 1, sym_assign_left_side, + STATE(160), 1, + sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4616,10 +4606,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(207), 2, + STATE(208), 2, sym__type, sym_array_type, - STATE(230), 6, + STATE(204), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4634,7 +4624,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(46), 7, + STATE(47), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4673,13 +4663,13 @@ static const uint16_t ts_small_parse_table[] = { sym_write_modifiers, STATE(49), 1, sym_template_global, - STATE(83), 1, + STATE(84), 1, aux_sym_write_modifiers_repeat1, - STATE(112), 1, + STATE(115), 1, sym_assign_to, - STATE(195), 1, + STATE(160), 1, sym_declaration, - STATE(218), 1, + STATE(207), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4690,10 +4680,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(207), 2, + STATE(208), 2, sym__type, sym_array_type, - STATE(230), 6, + STATE(218), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4708,7 +4698,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(46), 7, + STATE(47), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4772,11 +4762,11 @@ static const uint16_t ts_small_parse_table[] = { sym_write_modifiers, STATE(49), 1, sym_template_global, - STATE(83), 1, + STATE(84), 1, aux_sym_write_modifiers_repeat1, - STATE(136), 1, + STATE(140), 1, sym_assign_to, - STATE(195), 1, + STATE(160), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -4787,7 +4777,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(207), 2, + STATE(208), 2, sym__type, sym_array_type, ACTIONS(35), 7, @@ -4798,7 +4788,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(46), 7, + STATE(47), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4809,7 +4799,7 @@ static const uint16_t ts_small_parse_table[] = { [1036] = 5, ACTIONS(72), 1, anon_sym_COLON_COLON, - STATE(11), 1, + STATE(16), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, @@ -4848,7 +4838,7 @@ static const uint16_t ts_small_parse_table[] = { [1080] = 5, ACTIONS(72), 1, anon_sym_COLON_COLON, - STATE(15), 1, + STATE(11), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, @@ -4887,7 +4877,7 @@ static const uint16_t ts_small_parse_table[] = { [1124] = 5, ACTIONS(72), 1, anon_sym_COLON_COLON, - STATE(11), 1, + STATE(14), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, @@ -4926,7 +4916,7 @@ static const uint16_t ts_small_parse_table[] = { [1168] = 5, ACTIONS(72), 1, anon_sym_COLON_COLON, - STATE(13), 1, + STATE(11), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, @@ -4962,30 +4952,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1212] = 8, - ACTIONS(90), 1, - anon_sym_DOT, - ACTIONS(92), 1, - anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - STATE(40), 1, - sym_array_bracket_expression, - STATE(41), 1, - sym_parenthesis_expression_list, + [1212] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 5, + ACTIONS(86), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, + anon_sym_in, anon_sym_DASH, anon_sym_SLASH, - ACTIONS(88), 20, + anon_sym_DOT, + sym_identifier, + ACTIONS(88), 22, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, anon_sym_PLUS, @@ -4998,16 +4980,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1261] = 3, + [1251] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(96), 8, + ACTIONS(90), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5016,7 +5001,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(98), 22, + ACTIONS(92), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5039,78 +5024,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1300] = 15, - ACTIONS(90), 1, - anon_sym_DOT, - ACTIONS(92), 1, - anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(104), 1, - anon_sym_PLUS, - ACTIONS(106), 1, - anon_sym_DASH, - ACTIONS(110), 1, - anon_sym_PIPE, - ACTIONS(112), 1, - anon_sym_AMP, - ACTIONS(114), 1, - anon_sym_CARET, - ACTIONS(116), 1, - anon_sym_SLASH, - STATE(40), 1, - sym_array_bracket_expression, - STATE(41), 1, - sym_parenthesis_expression_list, + [1290] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(108), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(100), 3, + ACTIONS(94), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(102), 14, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(96), 22, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1363] = 8, - ACTIONS(90), 1, - anon_sym_DOT, - ACTIONS(92), 1, - anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - STATE(40), 1, - sym_array_bracket_expression, - STATE(41), 1, - sym_parenthesis_expression_list, + [1329] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(100), 5, + ACTIONS(98), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, + anon_sym_in, anon_sym_DASH, anon_sym_SLASH, - ACTIONS(102), 20, + anon_sym_DOT, + sym_identifier, + ACTIONS(100), 22, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, anon_sym_PLUS, @@ -5123,16 +5088,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1412] = 3, + [1368] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(118), 8, + ACTIONS(102), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5141,7 +5109,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(120), 22, + ACTIONS(104), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5164,57 +5132,52 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1451] = 13, - ACTIONS(90), 1, + [1407] = 8, + ACTIONS(110), 1, anon_sym_DOT, - ACTIONS(92), 1, + ACTIONS(112), 1, anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(104), 1, - anon_sym_PLUS, - ACTIONS(106), 1, - anon_sym_DASH, ACTIONS(114), 1, - anon_sym_CARET, - ACTIONS(116), 1, - anon_sym_SLASH, - STATE(40), 1, - sym_array_bracket_expression, - STATE(41), 1, + anon_sym_LBRACK, + STATE(38), 1, sym_parenthesis_expression_list, + STATE(41), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(108), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(100), 3, + ACTIONS(106), 5, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(102), 16, + anon_sym_DASH, + anon_sym_SLASH, + ACTIONS(108), 20, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1510] = 3, + [1456] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(122), 8, + ACTIONS(116), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5223,7 +5186,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(124), 22, + ACTIONS(118), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5246,11 +5209,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1549] = 3, + [1495] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(126), 8, + ACTIONS(120), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5259,7 +5222,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(128), 22, + ACTIONS(122), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5282,47 +5245,57 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1588] = 3, + [1534] = 13, + ACTIONS(110), 1, + anon_sym_DOT, + ACTIONS(112), 1, + anon_sym_LPAREN, + ACTIONS(114), 1, + anon_sym_LBRACK, + ACTIONS(128), 1, + anon_sym_PLUS, + ACTIONS(130), 1, + anon_sym_DASH, + ACTIONS(134), 1, + anon_sym_CARET, + ACTIONS(136), 1, + anon_sym_SLASH, + STATE(38), 1, + sym_parenthesis_expression_list, + STATE(41), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(130), 8, + ACTIONS(132), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(124), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(132), 22, + ACTIONS(126), 16, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1627] = 3, + [1593] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(134), 8, + ACTIONS(138), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5331,7 +5304,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(136), 22, + ACTIONS(140), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5354,47 +5327,59 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1666] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(138), 8, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, + [1632] = 15, + ACTIONS(110), 1, anon_sym_DOT, - sym_identifier, - ACTIONS(140), 22, + ACTIONS(112), 1, + anon_sym_LPAREN, + ACTIONS(114), 1, + anon_sym_LBRACK, + ACTIONS(128), 1, + anon_sym_PLUS, + ACTIONS(130), 1, + anon_sym_DASH, + ACTIONS(134), 1, + anon_sym_CARET, + ACTIONS(136), 1, + anon_sym_SLASH, + ACTIONS(142), 1, + anon_sym_PIPE, + ACTIONS(144), 1, + anon_sym_AMP, + STATE(38), 1, + sym_parenthesis_expression_list, + STATE(41), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(132), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(124), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ, + ACTIONS(126), 14, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1705] = 3, + [1695] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(142), 8, + ACTIONS(146), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5403,7 +5388,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(144), 22, + ACTIONS(148), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5426,26 +5411,37 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1744] = 3, + [1734] = 10, + ACTIONS(110), 1, + anon_sym_DOT, + ACTIONS(112), 1, + anon_sym_LPAREN, + ACTIONS(114), 1, + anon_sym_LBRACK, + ACTIONS(136), 1, + anon_sym_SLASH, + STATE(38), 1, + sym_parenthesis_expression_list, + STATE(41), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(146), 8, + ACTIONS(132), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(124), 4, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(148), 22, + ACTIONS(126), 18, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, anon_sym_PLUS, - anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -5453,93 +5449,75 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1783] = 14, - ACTIONS(90), 1, - anon_sym_DOT, - ACTIONS(92), 1, - anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(104), 1, - anon_sym_PLUS, - ACTIONS(106), 1, - anon_sym_DASH, - ACTIONS(110), 1, - anon_sym_PIPE, - ACTIONS(114), 1, - anon_sym_CARET, - ACTIONS(116), 1, - anon_sym_SLASH, - STATE(40), 1, - sym_array_bracket_expression, - STATE(41), 1, - sym_parenthesis_expression_list, + [1787] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(108), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(100), 3, + ACTIONS(150), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(102), 15, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(152), 22, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1844] = 10, - ACTIONS(90), 1, + [1826] = 8, + ACTIONS(110), 1, anon_sym_DOT, - ACTIONS(92), 1, + ACTIONS(112), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(114), 1, anon_sym_LBRACK, - ACTIONS(116), 1, - anon_sym_SLASH, - STATE(40), 1, - sym_array_bracket_expression, - STATE(41), 1, + STATE(38), 1, sym_parenthesis_expression_list, + STATE(41), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(108), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(100), 4, + ACTIONS(124), 5, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, - ACTIONS(102), 18, + anon_sym_SLASH, + ACTIONS(126), 20, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -5547,39 +5525,40 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1897] = 12, - ACTIONS(90), 1, + [1875] = 12, + ACTIONS(110), 1, anon_sym_DOT, - ACTIONS(92), 1, + ACTIONS(112), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(114), 1, anon_sym_LBRACK, - ACTIONS(104), 1, + ACTIONS(128), 1, anon_sym_PLUS, - ACTIONS(106), 1, + ACTIONS(130), 1, anon_sym_DASH, - ACTIONS(116), 1, + ACTIONS(136), 1, anon_sym_SLASH, - STATE(40), 1, - sym_array_bracket_expression, - STATE(41), 1, + STATE(38), 1, sym_parenthesis_expression_list, + STATE(41), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(108), 2, + ACTIONS(132), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(100), 3, + ACTIONS(124), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(102), 17, + ACTIONS(126), 17, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, @@ -5597,39 +5576,50 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1954] = 3, + [1932] = 14, + ACTIONS(110), 1, + anon_sym_DOT, + ACTIONS(112), 1, + anon_sym_LPAREN, + ACTIONS(114), 1, + anon_sym_LBRACK, + ACTIONS(128), 1, + anon_sym_PLUS, + ACTIONS(130), 1, + anon_sym_DASH, + ACTIONS(134), 1, + anon_sym_CARET, + ACTIONS(136), 1, + anon_sym_SLASH, + ACTIONS(142), 1, + anon_sym_PIPE, + STATE(38), 1, + sym_parenthesis_expression_list, + STATE(41), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(150), 8, + ACTIONS(132), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(124), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(152), 22, + ACTIONS(126), 15, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, @@ -5951,7 +5941,7 @@ static const uint16_t ts_small_parse_table[] = { sym_number, STATE(49), 1, sym_template_global, - STATE(166), 1, + STATE(134), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -5962,7 +5952,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(207), 2, + STATE(208), 2, sym__type, sym_array_type, ACTIONS(35), 7, @@ -5973,7 +5963,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(45), 7, + STATE(46), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -5982,34 +5972,34 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, [2382] = 17, - ACTIONS(92), 1, + ACTIONS(112), 1, anon_sym_LPAREN, - ACTIONS(94), 1, + ACTIONS(114), 1, anon_sym_LBRACK, - ACTIONS(104), 1, + ACTIONS(128), 1, anon_sym_PLUS, - ACTIONS(106), 1, + ACTIONS(130), 1, anon_sym_DASH, - ACTIONS(110), 1, - anon_sym_PIPE, - ACTIONS(112), 1, - anon_sym_AMP, - ACTIONS(114), 1, + ACTIONS(134), 1, anon_sym_CARET, - ACTIONS(116), 1, + ACTIONS(136), 1, anon_sym_SLASH, - ACTIONS(197), 1, + ACTIONS(142), 1, + anon_sym_PIPE, + ACTIONS(144), 1, + anon_sym_AMP, + ACTIONS(199), 1, anon_sym_EQ, ACTIONS(203), 1, anon_sym_DOT, - STATE(40), 1, - sym_array_bracket_expression, - STATE(41), 1, + STATE(38), 1, sym_parenthesis_expression_list, + STATE(41), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(108), 2, + ACTIONS(132), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(195), 2, @@ -6020,88 +6010,90 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(199), 5, + ACTIONS(197), 5, anon_sym_RBRACE, anon_sym_in, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [2444] = 16, - ACTIONS(92), 1, - anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(110), 1, - anon_sym_PIPE, + [2444] = 18, ACTIONS(112), 1, - anon_sym_AMP, + anon_sym_LPAREN, ACTIONS(114), 1, + anon_sym_LBRACK, + ACTIONS(134), 1, anon_sym_CARET, - ACTIONS(116), 1, + ACTIONS(136), 1, anon_sym_SLASH, + ACTIONS(142), 1, + anon_sym_PIPE, + ACTIONS(144), 1, + anon_sym_AMP, ACTIONS(203), 1, anon_sym_DOT, ACTIONS(205), 1, - anon_sym_EQ, - STATE(40), 1, - sym_array_bracket_expression, - STATE(41), 1, + anon_sym_RPAREN, + ACTIONS(207), 1, + anon_sym_COMMA, + STATE(38), 1, sym_parenthesis_expression_list, + STATE(41), 1, + sym_array_bracket_expression, + STATE(77), 1, + sym__comma, + STATE(161), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(104), 2, + ACTIONS(128), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(108), 2, + ACTIONS(132), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(195), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(207), 3, - anon_sym_RBRACE, - anon_sym_COMMA, - anon_sym_LF, ACTIONS(201), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2502] = 16, - ACTIONS(92), 1, - anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(110), 1, - anon_sym_PIPE, + [2506] = 16, ACTIONS(112), 1, - anon_sym_AMP, + anon_sym_LPAREN, ACTIONS(114), 1, + anon_sym_LBRACK, + ACTIONS(134), 1, anon_sym_CARET, - ACTIONS(116), 1, + ACTIONS(136), 1, anon_sym_SLASH, + ACTIONS(142), 1, + anon_sym_PIPE, + ACTIONS(144), 1, + anon_sym_AMP, ACTIONS(203), 1, anon_sym_DOT, - ACTIONS(209), 1, + ACTIONS(211), 1, anon_sym_EQ, - STATE(40), 1, - sym_array_bracket_expression, - STATE(41), 1, + STATE(38), 1, sym_parenthesis_expression_list, + STATE(41), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(104), 2, + ACTIONS(128), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(108), 2, + ACTIONS(132), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(195), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(211), 3, + ACTIONS(209), 3, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, @@ -6110,45 +6102,43 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2560] = 18, - ACTIONS(92), 1, - anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(110), 1, - anon_sym_PIPE, + [2564] = 16, ACTIONS(112), 1, - anon_sym_AMP, + anon_sym_LPAREN, ACTIONS(114), 1, + anon_sym_LBRACK, + ACTIONS(134), 1, anon_sym_CARET, - ACTIONS(116), 1, + ACTIONS(136), 1, anon_sym_SLASH, + ACTIONS(142), 1, + anon_sym_PIPE, + ACTIONS(144), 1, + anon_sym_AMP, ACTIONS(203), 1, anon_sym_DOT, - ACTIONS(213), 1, - anon_sym_RPAREN, ACTIONS(215), 1, - anon_sym_COMMA, - STATE(40), 1, - sym_array_bracket_expression, - STATE(41), 1, + anon_sym_EQ, + STATE(38), 1, sym_parenthesis_expression_list, - STATE(78), 1, - sym__comma, - STATE(163), 1, - aux_sym_parenthesis_expression_list_repeat1, + STATE(41), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(104), 2, + ACTIONS(128), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(108), 2, + ACTIONS(132), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(195), 2, anon_sym_LT, anon_sym_GT, + ACTIONS(213), 3, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LF, ACTIONS(201), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, @@ -6159,16 +6149,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(217), 1, anon_sym_EQ, - STATE(13), 1, + STATE(16), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(82), 3, + ACTIONS(68), 3, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - ACTIONS(84), 16, + ACTIONS(70), 16, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6215,90 +6205,96 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COMMA, anon_sym_LF, - [2694] = 9, - ACTIONS(37), 1, - anon_sym_LPAREN, - ACTIONS(39), 1, - anon_sym_COLON_COLON, - ACTIONS(228), 1, - sym_identifier, - ACTIONS(230), 1, - anon_sym_SEMI, - ACTIONS(232), 1, - sym_number, - STATE(145), 1, - sym_template_value_param, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(35), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(56), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_template_global, - [2736] = 15, - ACTIONS(92), 1, - anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(110), 1, - anon_sym_PIPE, + [2694] = 15, ACTIONS(112), 1, - anon_sym_AMP, + anon_sym_LPAREN, ACTIONS(114), 1, + anon_sym_LBRACK, + ACTIONS(134), 1, anon_sym_CARET, - ACTIONS(116), 1, + ACTIONS(136), 1, anon_sym_SLASH, + ACTIONS(142), 1, + anon_sym_PIPE, + ACTIONS(144), 1, + anon_sym_AMP, ACTIONS(203), 1, anon_sym_DOT, - STATE(40), 1, - sym_array_bracket_expression, - STATE(41), 1, + STATE(38), 1, sym_parenthesis_expression_list, + STATE(41), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(104), 2, + ACTIONS(128), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(108), 2, + ACTIONS(132), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(195), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(234), 2, - anon_sym_RPAREN, + ACTIONS(228), 2, + anon_sym_SEMI, + anon_sym_COMMA, + ACTIONS(201), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [2748] = 15, + ACTIONS(112), 1, + anon_sym_LPAREN, + ACTIONS(114), 1, + anon_sym_LBRACK, + ACTIONS(134), 1, + anon_sym_CARET, + ACTIONS(136), 1, + anon_sym_SLASH, + ACTIONS(142), 1, + anon_sym_PIPE, + ACTIONS(144), 1, + anon_sym_AMP, + ACTIONS(203), 1, + anon_sym_DOT, + STATE(38), 1, + sym_parenthesis_expression_list, + STATE(41), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(128), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(132), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(195), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(230), 2, + anon_sym_RPAREN, anon_sym_COMMA, ACTIONS(201), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2790] = 9, + [2802] = 9, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(228), 1, - sym_identifier, ACTIONS(232), 1, - sym_number, - ACTIONS(236), 1, + sym_identifier, + ACTIONS(234), 1, anon_sym_SEMI, - STATE(155), 1, + ACTIONS(236), 1, + sym_number, + STATE(136), 1, sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, @@ -6311,7 +6307,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(56), 8, + STATE(50), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6320,36 +6316,36 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2832] = 16, + [2844] = 16, ACTIONS(15), 1, anon_sym_LBRACE, - ACTIONS(92), 1, - anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(110), 1, - anon_sym_PIPE, ACTIONS(112), 1, - anon_sym_AMP, + anon_sym_LPAREN, ACTIONS(114), 1, + anon_sym_LBRACK, + ACTIONS(134), 1, anon_sym_CARET, - ACTIONS(116), 1, + ACTIONS(136), 1, anon_sym_SLASH, + ACTIONS(142), 1, + anon_sym_PIPE, + ACTIONS(144), 1, + anon_sym_AMP, ACTIONS(203), 1, anon_sym_DOT, - STATE(40), 1, - sym_array_bracket_expression, - STATE(41), 1, + STATE(38), 1, sym_parenthesis_expression_list, - STATE(221), 1, + STATE(41), 1, + sym_array_bracket_expression, + STATE(219), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(104), 2, + ACTIONS(128), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(108), 2, + ACTIONS(132), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(195), 2, @@ -6360,191 +6356,185 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2888] = 15, - ACTIONS(92), 1, + [2900] = 9, + ACTIONS(37), 1, anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(110), 1, - anon_sym_PIPE, - ACTIONS(112), 1, - anon_sym_AMP, - ACTIONS(114), 1, - anon_sym_CARET, - ACTIONS(116), 1, - anon_sym_SLASH, - ACTIONS(203), 1, - anon_sym_DOT, - STATE(40), 1, - sym_array_bracket_expression, - STATE(41), 1, - sym_parenthesis_expression_list, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + ACTIONS(232), 1, + sym_identifier, + ACTIONS(236), 1, + sym_number, + ACTIONS(238), 1, + anon_sym_SEMI, + STATE(153), 1, + sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(104), 2, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(108), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(195), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(238), 2, - anon_sym_RBRACE, - anon_sym_LF, - ACTIONS(201), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [2942] = 16, - ACTIONS(15), 1, - anon_sym_LBRACE, - ACTIONS(92), 1, - anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(110), 1, + anon_sym_BANG, anon_sym_PIPE, - ACTIONS(112), 1, anon_sym_AMP, + anon_sym_CARET, + STATE(50), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_template_global, + [2942] = 15, + ACTIONS(112), 1, + anon_sym_LPAREN, ACTIONS(114), 1, + anon_sym_LBRACK, + ACTIONS(134), 1, anon_sym_CARET, - ACTIONS(116), 1, + ACTIONS(136), 1, anon_sym_SLASH, + ACTIONS(142), 1, + anon_sym_PIPE, + ACTIONS(144), 1, + anon_sym_AMP, ACTIONS(203), 1, anon_sym_DOT, - STATE(40), 1, - sym_array_bracket_expression, - STATE(41), 1, + STATE(38), 1, sym_parenthesis_expression_list, - STATE(211), 1, - sym_block, + STATE(41), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(104), 2, + ACTIONS(128), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(108), 2, + ACTIONS(132), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(195), 2, anon_sym_LT, anon_sym_GT, + ACTIONS(240), 2, + anon_sym_SEMI, + anon_sym_COMMA, ACTIONS(201), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2998] = 15, - ACTIONS(92), 1, - anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(110), 1, - anon_sym_PIPE, + [2996] = 15, ACTIONS(112), 1, - anon_sym_AMP, + anon_sym_LPAREN, ACTIONS(114), 1, + anon_sym_LBRACK, + ACTIONS(134), 1, anon_sym_CARET, - ACTIONS(116), 1, + ACTIONS(136), 1, anon_sym_SLASH, + ACTIONS(142), 1, + anon_sym_PIPE, + ACTIONS(144), 1, + anon_sym_AMP, ACTIONS(203), 1, anon_sym_DOT, - STATE(40), 1, - sym_array_bracket_expression, - STATE(41), 1, + STATE(38), 1, sym_parenthesis_expression_list, + STATE(41), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(104), 2, + ACTIONS(128), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(108), 2, + ACTIONS(132), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(195), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(240), 2, - anon_sym_SEMI, - anon_sym_COMMA, + ACTIONS(242), 2, + anon_sym_RBRACE, + anon_sym_LF, ACTIONS(201), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3052] = 15, - ACTIONS(92), 1, - anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(110), 1, - anon_sym_PIPE, + [3050] = 16, + ACTIONS(15), 1, + anon_sym_LBRACE, ACTIONS(112), 1, - anon_sym_AMP, + anon_sym_LPAREN, ACTIONS(114), 1, + anon_sym_LBRACK, + ACTIONS(134), 1, anon_sym_CARET, - ACTIONS(116), 1, + ACTIONS(136), 1, anon_sym_SLASH, + ACTIONS(142), 1, + anon_sym_PIPE, + ACTIONS(144), 1, + anon_sym_AMP, ACTIONS(203), 1, anon_sym_DOT, - STATE(40), 1, - sym_array_bracket_expression, - STATE(41), 1, + STATE(38), 1, sym_parenthesis_expression_list, + STATE(41), 1, + sym_array_bracket_expression, + STATE(215), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(104), 2, + ACTIONS(128), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(108), 2, + ACTIONS(132), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(195), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(242), 2, - anon_sym_SEMI, - anon_sym_COMMA, ACTIONS(201), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, [3106] = 15, - ACTIONS(92), 1, - anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(110), 1, - anon_sym_PIPE, ACTIONS(112), 1, - anon_sym_AMP, + anon_sym_LPAREN, ACTIONS(114), 1, + anon_sym_LBRACK, + ACTIONS(134), 1, anon_sym_CARET, - ACTIONS(116), 1, + ACTIONS(136), 1, anon_sym_SLASH, + ACTIONS(142), 1, + anon_sym_PIPE, + ACTIONS(144), 1, + anon_sym_AMP, ACTIONS(203), 1, anon_sym_DOT, ACTIONS(244), 1, - anon_sym_RBRACK, - STATE(40), 1, - sym_array_bracket_expression, - STATE(41), 1, + anon_sym_RPAREN, + STATE(38), 1, sym_parenthesis_expression_list, + STATE(41), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(104), 2, + ACTIONS(128), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(108), 2, + ACTIONS(132), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(195), 2, @@ -6560,12 +6550,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(228), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(232), 1, + ACTIONS(248), 1, + anon_sym_RPAREN, + ACTIONS(250), 1, sym_number, - STATE(231), 1, - sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6577,7 +6567,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(56), 8, + STATE(45), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6587,33 +6577,33 @@ static const uint16_t ts_small_parse_table[] = { sym_parenthesis_expression, sym_template_global, [3198] = 15, - ACTIONS(92), 1, - anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(110), 1, - anon_sym_PIPE, ACTIONS(112), 1, - anon_sym_AMP, + anon_sym_LPAREN, ACTIONS(114), 1, + anon_sym_LBRACK, + ACTIONS(134), 1, anon_sym_CARET, - ACTIONS(116), 1, + ACTIONS(136), 1, anon_sym_SLASH, + ACTIONS(142), 1, + anon_sym_PIPE, + ACTIONS(144), 1, + anon_sym_AMP, ACTIONS(203), 1, anon_sym_DOT, - ACTIONS(246), 1, + ACTIONS(252), 1, anon_sym_RBRACK, - STATE(40), 1, - sym_array_bracket_expression, - STATE(41), 1, + STATE(38), 1, sym_parenthesis_expression_list, + STATE(41), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(104), 2, + ACTIONS(128), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(108), 2, + ACTIONS(132), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(195), 2, @@ -6625,71 +6615,33 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, [3251] = 15, - ACTIONS(92), 1, - anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, ACTIONS(110), 1, - anon_sym_PIPE, + anon_sym_DOT, ACTIONS(112), 1, - anon_sym_AMP, + anon_sym_LPAREN, ACTIONS(114), 1, + anon_sym_LBRACK, + ACTIONS(134), 1, anon_sym_CARET, - ACTIONS(116), 1, + ACTIONS(136), 1, anon_sym_SLASH, - ACTIONS(203), 1, - anon_sym_DOT, - ACTIONS(248), 1, - anon_sym_RPAREN, - STATE(40), 1, - sym_array_bracket_expression, - STATE(41), 1, - sym_parenthesis_expression_list, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(104), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(108), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(195), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(201), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [3304] = 15, - ACTIONS(90), 1, - anon_sym_DOT, - ACTIONS(92), 1, - anon_sym_LPAREN, - ACTIONS(94), 1, - anon_sym_LBRACK, - ACTIONS(110), 1, + ACTIONS(142), 1, anon_sym_PIPE, - ACTIONS(112), 1, + ACTIONS(144), 1, anon_sym_AMP, - ACTIONS(114), 1, - anon_sym_CARET, - ACTIONS(116), 1, - anon_sym_SLASH, - ACTIONS(250), 1, + ACTIONS(254), 1, anon_sym_DOT_DOT, - STATE(40), 1, - sym_array_bracket_expression, - STATE(41), 1, + STATE(38), 1, sym_parenthesis_expression_list, + STATE(41), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(104), 2, + ACTIONS(128), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(108), 2, + ACTIONS(132), 2, anon_sym_STAR, anon_sym_PERCENT, ACTIONS(195), 2, @@ -6700,17 +6652,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3357] = 8, + [3304] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(252), 1, + ACTIONS(232), 1, sym_identifier, - ACTIONS(254), 1, - anon_sym_RPAREN, - ACTIONS(256), 1, + ACTIONS(236), 1, sym_number, + STATE(220), 1, + sym_template_value_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6722,7 +6674,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 8, + STATE(50), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6731,16 +6683,54 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3396] = 7, - ACTIONS(37), 1, + [3343] = 15, + ACTIONS(112), 1, anon_sym_LPAREN, - ACTIONS(39), 1, - anon_sym_COLON_COLON, - ACTIONS(252), 1, - sym_identifier, - ACTIONS(258), 1, - sym_number, - ACTIONS(3), 2, + ACTIONS(114), 1, + anon_sym_LBRACK, + ACTIONS(134), 1, + anon_sym_CARET, + ACTIONS(136), 1, + anon_sym_SLASH, + ACTIONS(142), 1, + anon_sym_PIPE, + ACTIONS(144), 1, + anon_sym_AMP, + ACTIONS(203), 1, + anon_sym_DOT, + ACTIONS(256), 1, + anon_sym_RBRACK, + STATE(38), 1, + sym_parenthesis_expression_list, + STATE(41), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(128), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(132), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(195), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(201), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [3396] = 7, + ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + ACTIONS(246), 1, + sym_identifier, + ACTIONS(258), 1, + sym_number, + ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(35), 7, @@ -6751,7 +6741,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(17), 8, + STATE(44), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6765,7 +6755,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(252), 1, + ACTIONS(246), 1, sym_identifier, ACTIONS(260), 1, sym_number, @@ -6780,7 +6770,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(60), 8, + STATE(32), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6794,7 +6784,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(252), 1, + ACTIONS(246), 1, sym_identifier, ACTIONS(262), 1, sym_number, @@ -6809,7 +6799,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(55), 8, + STATE(22), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6823,7 +6813,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(252), 1, + ACTIONS(246), 1, sym_identifier, ACTIONS(264), 1, sym_number, @@ -6838,7 +6828,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(32), 8, + STATE(58), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6847,41 +6837,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3540] = 5, - ACTIONS(43), 1, - anon_sym_LF, - STATE(42), 1, - aux_sym__linebreak, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(266), 7, - anon_sym_reg, - anon_sym_initial, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(268), 10, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_COLON_COLON, - sym_number, - [3572] = 7, + [3540] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(252), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(270), 1, + ACTIONS(266), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6894,7 +6857,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(57), 8, + STATE(63), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6903,14 +6866,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3608] = 7, + [3576] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(252), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(272), 1, + ACTIONS(268), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6923,7 +6886,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(30), 8, + STATE(60), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6932,41 +6895,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3644] = 5, - ACTIONS(278), 1, - anon_sym_LF, - STATE(68), 1, - aux_sym__linebreak, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(274), 7, - anon_sym_reg, - anon_sym_initial, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(276), 10, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_COLON_COLON, - sym_number, - [3676] = 7, + [3612] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(252), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(280), 1, + ACTIONS(270), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -6979,7 +6915,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(53), 8, + STATE(27), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6988,14 +6924,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3712] = 7, + [3648] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(252), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(282), 1, + ACTIONS(272), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7008,7 +6944,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(62), 8, + STATE(31), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7017,14 +6953,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3748] = 7, + [3684] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(252), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(284), 1, + ACTIONS(274), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7037,7 +6973,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(22), 8, + STATE(25), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7046,14 +6982,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3784] = 7, + [3720] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(252), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(286), 1, + ACTIONS(276), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7066,7 +7002,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(54), 8, + STATE(56), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7075,14 +7011,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3820] = 7, + [3756] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(252), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(278), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7095,7 +7031,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(20), 8, + STATE(57), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7104,14 +7040,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3856] = 7, + [3792] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(252), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(290), 1, + ACTIONS(280), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7124,7 +7060,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(44), 8, + STATE(33), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7133,14 +7069,41 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3892] = 7, + [3828] = 5, + ACTIONS(286), 1, + anon_sym_LF, + STATE(82), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(282), 7, + anon_sym_reg, + anon_sym_initial, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(284), 10, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, + [3860] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(252), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(292), 1, + ACTIONS(288), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7162,14 +7125,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3928] = 7, + [3896] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(252), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(294), 1, + ACTIONS(290), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7182,7 +7145,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(31), 8, + STATE(29), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7191,14 +7154,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3964] = 7, + [3932] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(252), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(296), 1, + ACTIONS(292), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7211,7 +7174,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(58), 8, + STATE(61), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7220,14 +7183,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [4000] = 7, + [3968] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(252), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(298), 1, + ACTIONS(294), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7240,7 +7203,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(61), 8, + STATE(53), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7249,14 +7212,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [4036] = 7, + [4004] = 7, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(252), 1, + ACTIONS(246), 1, sym_identifier, - ACTIONS(300), 1, + ACTIONS(296), 1, sym_number, ACTIONS(3), 2, sym_single_line_comment, @@ -7269,7 +7232,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(19), 8, + STATE(55), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7278,10 +7241,37 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, + [4040] = 5, + ACTIONS(43), 1, + anon_sym_LF, + STATE(42), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(298), 7, + anon_sym_reg, + anon_sym_initial, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + sym_identifier, + ACTIONS(300), 10, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, [4072] = 5, - ACTIONS(19), 1, + ACTIONS(304), 1, anon_sym_reg, - STATE(84), 1, + STATE(83), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, @@ -7292,7 +7282,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(304), 10, + ACTIONS(307), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7304,14 +7294,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, sym_number, [4102] = 5, - ACTIONS(308), 1, + ACTIONS(19), 1, anon_sym_reg, - STATE(84), 1, + STATE(83), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(306), 5, + ACTIONS(309), 5, anon_sym_input, anon_sym_output, anon_sym_state, @@ -7351,36 +7341,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, sym_number, [4157] = 12, - ACTIONS(13), 1, - sym_identifier, - ACTIONS(39), 1, - anon_sym_COLON_COLON, - ACTIONS(43), 1, - anon_sym_LF, - ACTIONS(317), 1, - anon_sym_DASH_GT, - STATE(42), 1, - aux_sym__linebreak, - STATE(115), 1, - sym_declaration, - STATE(177), 1, - sym_declaration_list, - STATE(234), 1, - sym__interface_ports_output, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(31), 2, - anon_sym_input, - anon_sym_output, - ACTIONS(33), 2, - anon_sym_state, - anon_sym_gen, - STATE(207), 3, - sym__type, - sym_array_type, - sym_template_global, - [4199] = 12, ACTIONS(13), 1, sym_identifier, ACTIONS(39), 1, @@ -7389,13 +7349,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_GT, ACTIONS(319), 1, anon_sym_LF, - STATE(86), 1, + STATE(88), 1, aux_sym__linebreak, - STATE(115), 1, + STATE(119), 1, sym_declaration, - STATE(146), 1, + STATE(150), 1, sym_declaration_list, - STATE(229), 1, + STATE(217), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, @@ -7406,11 +7366,11 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(207), 3, + STATE(208), 3, sym__type, sym_array_type, sym_template_global, - [4241] = 3, + [4199] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -7431,19 +7391,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [4265] = 10, + [4223] = 12, ACTIONS(13), 1, sym_identifier, ACTIONS(39), 1, anon_sym_COLON_COLON, ACTIONS(43), 1, anon_sym_LF, + ACTIONS(317), 1, + anon_sym_DASH_GT, STATE(42), 1, aux_sym__linebreak, - STATE(115), 1, + STATE(119), 1, sym_declaration, - STATE(226), 1, + STATE(175), 1, sym_declaration_list, + STATE(224), 1, + sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -7453,22 +7417,22 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(207), 3, + STATE(208), 3, sym__type, sym_array_type, sym_template_global, - [4301] = 10, + [4265] = 10, ACTIONS(13), 1, sym_identifier, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(325), 1, + ACTIONS(43), 1, anon_sym_LF, - STATE(89), 1, + STATE(42), 1, aux_sym__linebreak, - STATE(115), 1, + STATE(119), 1, sym_declaration, - STATE(240), 1, + STATE(225), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, @@ -7479,7 +7443,33 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(207), 3, + STATE(208), 3, + sym__type, + sym_array_type, + sym_template_global, + [4301] = 10, + ACTIONS(13), 1, + sym_identifier, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + ACTIONS(325), 1, + anon_sym_LF, + STATE(89), 1, + aux_sym__linebreak, + STATE(119), 1, + sym_declaration, + STATE(228), 1, + sym_declaration_list, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(31), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(33), 2, + anon_sym_state, + anon_sym_gen, + STATE(208), 3, sym__type, sym_array_type, sym_template_global, @@ -7488,7 +7478,7 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(39), 1, anon_sym_COLON_COLON, - STATE(248), 1, + STATE(192), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -7499,7 +7489,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(207), 3, + STATE(208), 3, sym__type, sym_array_type, sym_template_global, @@ -7508,7 +7498,7 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(39), 1, anon_sym_COLON_COLON, - STATE(194), 1, + STATE(247), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -7519,7 +7509,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(207), 3, + STATE(208), 3, sym__type, sym_array_type, sym_template_global, @@ -7528,9 +7518,9 @@ static const uint16_t ts_small_parse_table[] = { ts_builtin_sym_end, ACTIONS(329), 1, anon_sym_LF, - STATE(99), 1, + STATE(101), 1, aux_sym__linebreak, - STATE(223), 1, + STATE(216), 1, sym_global_object, ACTIONS(3), 2, sym_single_line_comment, @@ -7547,9 +7537,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(331), 1, ts_builtin_sym_end, - STATE(99), 1, + STATE(101), 1, aux_sym__linebreak, - STATE(187), 1, + STATE(216), 1, sym_global_object, ACTIONS(3), 2, sym_single_line_comment, @@ -7566,9 +7556,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(333), 1, ts_builtin_sym_end, - STATE(99), 1, + STATE(101), 1, aux_sym__linebreak, - STATE(223), 1, + STATE(216), 1, sym_global_object, ACTIONS(3), 2, sym_single_line_comment, @@ -7585,9 +7575,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(335), 1, ts_builtin_sym_end, - STATE(99), 1, + STATE(101), 1, aux_sym__linebreak, - STATE(223), 1, + STATE(216), 1, sym_global_object, ACTIONS(3), 2, sym_single_line_comment, @@ -7604,9 +7594,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(337), 1, ts_builtin_sym_end, - STATE(99), 1, + STATE(101), 1, aux_sym__linebreak, - STATE(223), 1, + STATE(202), 1, sym_global_object, ACTIONS(3), 2, sym_single_line_comment, @@ -7621,34 +7611,36 @@ static const uint16_t ts_small_parse_table[] = { [4521] = 4, ACTIONS(341), 1, anon_sym_SQUOTE, - STATE(120), 1, + STATE(116), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(339), 6, - anon_sym_EQ, anon_sym_RBRACE, + anon_sym_EQ, anon_sym_in, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4540] = 4, - ACTIONS(343), 1, + [4540] = 6, + ACTIONS(329), 1, anon_sym_LF, - STATE(99), 1, + STATE(101), 1, aux_sym__linebreak, + STATE(216), 1, + sym_global_object, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(188), 6, - ts_builtin_sym_end, + ACTIONS(7), 2, anon_sym___builtin__, anon_sym_extern, + ACTIONS(9), 3, anon_sym_module, anon_sym_function, anon_sym_struct, - [4559] = 4, + [4563] = 4, ACTIONS(341), 1, anon_sym_SQUOTE, STATE(111), 1, @@ -7656,60 +7648,58 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(346), 6, - anon_sym_EQ, + ACTIONS(343), 6, anon_sym_RBRACE, + anon_sym_EQ, anon_sym_in, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4578] = 4, + [4582] = 4, + ACTIONS(345), 1, + anon_sym_LF, + STATE(101), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(188), 6, + ts_builtin_sym_end, + anon_sym___builtin__, + anon_sym_extern, + anon_sym_module, + anon_sym_function, + anon_sym_struct, + [4601] = 4, ACTIONS(341), 1, anon_sym_SQUOTE, - STATE(116), 1, + STATE(113), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(348), 6, - anon_sym_EQ, anon_sym_RBRACE, + anon_sym_EQ, anon_sym_in, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4597] = 4, + [4620] = 4, ACTIONS(341), 1, anon_sym_SQUOTE, - STATE(118), 1, + STATE(121), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(350), 6, - anon_sym_EQ, anon_sym_RBRACE, + anon_sym_EQ, anon_sym_in, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4616] = 6, - ACTIONS(329), 1, - anon_sym_LF, - STATE(99), 1, - aux_sym__linebreak, - STATE(223), 1, - sym_global_object, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(7), 2, - anon_sym___builtin__, - anon_sym_extern, - ACTIONS(9), 3, - anon_sym_module, - anon_sym_function, - anon_sym_struct, [4639] = 6, ACTIONS(352), 1, sym_identifier, @@ -7717,75 +7707,75 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, ACTIONS(356), 1, anon_sym_COLON_COLON, - STATE(149), 1, + STATE(201), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(181), 3, + STATE(179), 3, sym__type, sym_array_type, sym_template_global, - [4661] = 6, - ACTIONS(352), 1, + [4661] = 5, + ACTIONS(13), 1, sym_identifier, - ACTIONS(356), 1, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(358), 1, - anon_sym_GT, - STATE(153), 1, - sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(181), 3, + ACTIONS(358), 2, + anon_sym_state, + anon_sym_gen, + STATE(214), 3, sym__type, sym_array_type, sym_template_global, - [4683] = 6, + [4681] = 6, ACTIONS(352), 1, sym_identifier, ACTIONS(356), 1, anon_sym_COLON_COLON, ACTIONS(360), 1, anon_sym_GT, - STATE(206), 1, + STATE(142), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(181), 3, + STATE(179), 3, sym__type, sym_array_type, sym_template_global, - [4705] = 6, + [4703] = 6, ACTIONS(352), 1, sym_identifier, ACTIONS(356), 1, anon_sym_COLON_COLON, ACTIONS(362), 1, anon_sym_GT, - STATE(182), 1, + STATE(144), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(181), 3, + STATE(179), 3, sym__type, sym_array_type, sym_template_global, - [4727] = 5, - ACTIONS(13), 1, + [4725] = 6, + ACTIONS(352), 1, sym_identifier, - ACTIONS(39), 1, + ACTIONS(356), 1, anon_sym_COLON_COLON, + ACTIONS(364), 1, + anon_sym_GT, + STATE(155), 1, + sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(364), 2, - anon_sym_state, - anon_sym_gen, - STATE(215), 3, + STATE(179), 3, sym__type, sym_array_type, sym_template_global, @@ -7796,12 +7786,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(366), 1, anon_sym_GT, - STATE(200), 1, + STATE(190), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(181), 3, + STATE(179), 3, sym__type, sym_array_type, sym_template_global, @@ -7812,12 +7802,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(368), 1, anon_sym_GT, - STATE(161), 1, + STATE(180), 1, sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(181), 3, + STATE(179), 3, sym__type, sym_array_type, sym_template_global, @@ -7826,32 +7816,43 @@ static const uint16_t ts_small_parse_table[] = { sym_single_line_comment, sym_multi_line_comment, ACTIONS(370), 6, - anon_sym_EQ, anon_sym_RBRACE, + anon_sym_EQ, anon_sym_in, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, [4804] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, - STATE(12), 1, - sym__comma, - STATE(114), 1, - aux_sym_assign_left_side_repeat1, + ACTIONS(352), 1, + sym_identifier, + ACTIONS(356), 1, + anon_sym_COLON_COLON, + STATE(231), 1, + sym_template_type_param, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(372), 3, - anon_sym_EQ, + STATE(179), 3, + sym__type, + sym_array_type, + sym_template_global, + [4823] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(372), 6, anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_LF, - [4823] = 5, + [4836] = 5, ACTIONS(376), 1, anon_sym_COMMA, - STATE(92), 1, + STATE(91), 1, sym__comma, - STATE(113), 1, + STATE(114), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, @@ -7860,1383 +7861,1347 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_DASH_GT, anon_sym_LF, - [4842] = 5, - ACTIONS(215), 1, + [4855] = 5, + ACTIONS(207), 1, anon_sym_COMMA, STATE(12), 1, sym__comma, - STATE(121), 1, + STATE(122), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(379), 3, - anon_sym_EQ, anon_sym_RBRACE, + anon_sym_EQ, anon_sym_LF, - [4861] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, - STATE(92), 1, - sym__comma, - STATE(122), 1, - aux_sym_declaration_list_repeat1, + [4874] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(381), 3, + ACTIONS(381), 6, anon_sym_RBRACE, - anon_sym_DASH_GT, - anon_sym_LF, - [4880] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(383), 6, anon_sym_EQ, - anon_sym_RBRACE, anon_sym_in, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4893] = 5, - ACTIONS(352), 1, - sym_identifier, - ACTIONS(356), 1, + [4887] = 5, + ACTIONS(383), 1, + anon_sym_EQ, + ACTIONS(385), 1, anon_sym_COLON_COLON, - STATE(233), 1, - sym_template_type_param, + STATE(131), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(181), 3, - sym__type, - sym_array_type, - sym_template_global, - [4912] = 2, + ACTIONS(70), 3, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + [4906] = 5, + ACTIONS(389), 1, + anon_sym_COMMA, + STATE(12), 1, + sym__comma, + STATE(118), 1, + aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(385), 6, - anon_sym_EQ, + ACTIONS(387), 3, anon_sym_RBRACE, - anon_sym_in, - anon_sym_DASH_GT, - anon_sym_COMMA, + anon_sym_EQ, anon_sym_LF, [4925] = 5, - ACTIONS(387), 1, - anon_sym_EQ, - ACTIONS(389), 1, - anon_sym_COLON_COLON, - STATE(124), 1, - aux_sym_template_global_repeat1, + ACTIONS(207), 1, + anon_sym_COMMA, + STATE(91), 1, + sym__comma, + STATE(120), 1, + aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(84), 3, - anon_sym_GT, - anon_sym_LBRACK, + ACTIONS(392), 3, + anon_sym_RBRACE, + anon_sym_DASH_GT, + anon_sym_LF, + [4944] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - [4944] = 2, + STATE(91), 1, + sym__comma, + STATE(114), 1, + aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(391), 6, - anon_sym_EQ, + ACTIONS(394), 3, anon_sym_RBRACE, - anon_sym_in, anon_sym_DASH_GT, - anon_sym_COMMA, anon_sym_LF, - [4957] = 5, - ACTIONS(395), 1, - anon_sym_COMMA, - STATE(12), 1, - sym__comma, - STATE(121), 1, - aux_sym_assign_left_side_repeat1, + [4963] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(393), 3, - anon_sym_EQ, + ACTIONS(396), 6, anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_LF, [4976] = 5, - ACTIONS(215), 1, + ACTIONS(207), 1, anon_sym_COMMA, - STATE(92), 1, + STATE(12), 1, sym__comma, - STATE(113), 1, - aux_sym_declaration_list_repeat1, + STATE(118), 1, + aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(398), 3, anon_sym_RBRACE, - anon_sym_DASH_GT, + anon_sym_EQ, anon_sym_LF, [4995] = 6, ACTIONS(400), 1, - anon_sym_EQ, - ACTIONS(402), 1, anon_sym_RBRACE, + ACTIONS(402), 1, + anon_sym_EQ, ACTIONS(404), 1, anon_sym_LF, STATE(4), 1, aux_sym__linebreak, - STATE(168), 1, + STATE(147), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, [5015] = 4, - ACTIONS(389), 1, + ACTIONS(406), 1, anon_sym_COLON_COLON, - STATE(129), 1, + STATE(124), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(70), 3, + ACTIONS(63), 3, anon_sym_GT, anon_sym_LBRACK, anon_sym_COMMA, [5031] = 4, + ACTIONS(385), 1, + anon_sym_COLON_COLON, + STATE(124), 1, + aux_sym_template_global_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(76), 3, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + [5047] = 4, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(252), 1, + ACTIONS(246), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(214), 3, + STATE(213), 3, sym__type, sym_array_type, sym_template_global, - [5047] = 4, - ACTIONS(389), 1, + [5063] = 4, + ACTIONS(385), 1, anon_sym_COLON_COLON, - STATE(124), 1, + STATE(131), 1, aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(84), 3, + ACTIONS(70), 3, anon_sym_GT, anon_sym_LBRACK, anon_sym_COMMA, - [5063] = 4, - ACTIONS(389), 1, + [5079] = 4, + ACTIONS(356), 1, anon_sym_COLON_COLON, - STATE(129), 1, - aux_sym_template_global_repeat1, + ACTIONS(409), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(80), 3, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COMMA, - [5079] = 4, - ACTIONS(389), 1, - anon_sym_COLON_COLON, - STATE(127), 1, - aux_sym_template_global_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(76), 3, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COMMA, - [5095] = 4, - ACTIONS(406), 1, - anon_sym_COLON_COLON, - STATE(129), 1, - aux_sym_template_global_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(63), 3, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COMMA, - [5111] = 6, - ACTIONS(400), 1, + STATE(203), 3, + sym__type, + sym_array_type, + sym_template_global, + [5095] = 6, + ACTIONS(402), 1, anon_sym_EQ, - ACTIONS(409), 1, - anon_sym_RBRACE, ACTIONS(411), 1, + anon_sym_RBRACE, + ACTIONS(413), 1, anon_sym_LF, - STATE(9), 1, + STATE(8), 1, aux_sym__linebreak, - STATE(141), 1, + STATE(195), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5131] = 4, - ACTIONS(356), 1, + [5115] = 4, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(413), 1, + ACTIONS(246), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(203), 3, + STATE(212), 3, sym__type, sym_array_type, sym_template_global, - [5147] = 4, - ACTIONS(356), 1, + [5131] = 4, + ACTIONS(385), 1, anon_sym_COLON_COLON, - ACTIONS(413), 1, - sym_identifier, + STATE(124), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(157), 3, - sym__type, - sym_array_type, - sym_template_global, - [5163] = 4, - ACTIONS(39), 1, + ACTIONS(84), 3, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + [5147] = 4, + ACTIONS(385), 1, anon_sym_COLON_COLON, - ACTIONS(252), 1, - sym_identifier, + STATE(125), 1, + aux_sym_template_global_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(209), 3, - sym__type, - sym_array_type, - sym_template_global, - [5179] = 4, + ACTIONS(80), 3, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COMMA, + [5163] = 5, + ACTIONS(415), 1, + anon_sym_SEMI, ACTIONS(417), 1, - anon_sym_COLON, - STATE(235), 1, - sym_interface_ports, + anon_sym_COMMA, + STATE(62), 1, + sym__comma, + STATE(133), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(415), 2, - anon_sym_RBRACE, - anon_sym_LF, - [5194] = 5, - ACTIONS(419), 1, - ts_builtin_sym_end, - ACTIONS(421), 1, - anon_sym_LF, - STATE(93), 1, - aux_sym__linebreak, - STATE(193), 1, - aux_sym_source_file_repeat1, + [5180] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5211] = 2, + ACTIONS(209), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COMMA, + anon_sym_LF, + [5191] = 5, + ACTIONS(207), 1, + anon_sym_COMMA, + ACTIONS(420), 1, + anon_sym_SEMI, + STATE(62), 1, + sym__comma, + STATE(133), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(423), 4, - anon_sym_EQ, - anon_sym_RBRACE, + [5208] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - anon_sym_LF, - [5222] = 2, + ACTIONS(422), 1, + anon_sym_SEMI, + STATE(62), 1, + sym__comma, + STATE(135), 1, + aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(425), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5233] = 2, + [5225] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(427), 4, + ACTIONS(424), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5244] = 5, - ACTIONS(429), 1, + [5236] = 5, + ACTIONS(426), 1, anon_sym_RBRACE, - ACTIONS(431), 1, + ACTIONS(428), 1, anon_sym_LF, STATE(10), 1, aux_sym__linebreak, - STATE(139), 1, + STATE(138), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5261] = 5, - ACTIONS(434), 1, - anon_sym_RBRACE, - ACTIONS(436), 1, - anon_sym_LF, - STATE(2), 1, - aux_sym__linebreak, - STATE(139), 1, - aux_sym_block_repeat1, + [5253] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5278] = 5, - ACTIONS(438), 1, + ACTIONS(424), 4, + ts_builtin_sym_end, anon_sym_RBRACE, - ACTIONS(440), 1, + anon_sym_else, anon_sym_LF, - STATE(3), 1, - aux_sym__linebreak, - STATE(139), 1, - aux_sym_block_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5295] = 4, - ACTIONS(15), 1, - anon_sym_LBRACE, - ACTIONS(442), 1, - anon_sym_if, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(238), 2, - sym_block, - sym_if_statement, - [5310] = 2, + [5264] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(425), 4, - ts_builtin_sym_end, + ACTIONS(431), 4, anon_sym_RBRACE, - anon_sym_else, + anon_sym_EQ, + anon_sym_COMMA, anon_sym_LF, - [5321] = 5, - ACTIONS(215), 1, + [5275] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(444), 1, - anon_sym_SEMI, - STATE(59), 1, + ACTIONS(433), 1, + anon_sym_GT, + STATE(112), 1, sym__comma, - STATE(202), 1, - aux_sym_template_params_repeat1, + STATE(196), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5338] = 5, - ACTIONS(215), 1, + [5292] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(446), 1, - anon_sym_SEMI, - STATE(59), 1, + ACTIONS(435), 1, + anon_sym_GT, + STATE(112), 1, sym__comma, - STATE(144), 1, - aux_sym_template_params_repeat1, + STATE(141), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5355] = 4, - ACTIONS(317), 1, - anon_sym_DASH_GT, - STATE(239), 1, - sym__interface_ports_output, + [5309] = 5, + ACTIONS(207), 1, + anon_sym_COMMA, + ACTIONS(437), 1, + anon_sym_GT, + STATE(112), 1, + sym__comma, + STATE(196), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(448), 2, - anon_sym_RBRACE, - anon_sym_LF, - [5370] = 5, - ACTIONS(215), 1, + [5326] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(450), 1, + ACTIONS(439), 1, anon_sym_GT, - STATE(117), 1, + STATE(112), 1, sym__comma, - STATE(204), 1, + STATE(143), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5387] = 2, + [5343] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(452), 4, + ACTIONS(441), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5398] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, - ACTIONS(454), 1, - anon_sym_GT, - STATE(117), 1, - sym__comma, - STATE(147), 1, - aux_sym_template_params_repeat2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5415] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, - ACTIONS(456), 1, - anon_sym_GT, - STATE(117), 1, - sym__comma, - STATE(204), 1, - aux_sym_template_params_repeat2, + [5354] = 5, + ACTIONS(443), 1, + anon_sym_RBRACE, + ACTIONS(445), 1, + anon_sym_LF, + STATE(6), 1, + aux_sym__linebreak, + STATE(138), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5432] = 5, - ACTIONS(458), 1, - ts_builtin_sym_end, - ACTIONS(460), 1, + [5371] = 5, + ACTIONS(447), 1, + anon_sym_RBRACE, + ACTIONS(449), 1, anon_sym_LF, - STATE(96), 1, + STATE(7), 1, aux_sym__linebreak, - STATE(135), 1, - aux_sym_source_file_repeat1, + STATE(138), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5449] = 5, - ACTIONS(462), 1, - anon_sym_GT, - ACTIONS(464), 1, - anon_sym_COMMA, - STATE(152), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(219), 1, - sym__comma, + [5388] = 4, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(451), 1, + anon_sym_if, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5466] = 5, - ACTIONS(215), 1, + STATE(230), 2, + sym_block, + sym_if_statement, + [5403] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(467), 1, + ACTIONS(453), 1, anon_sym_GT, - STATE(117), 1, + STATE(112), 1, sym__comma, - STATE(150), 1, + STATE(196), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5483] = 5, - ACTIONS(215), 1, + [5420] = 4, + ACTIONS(317), 1, + anon_sym_DASH_GT, + STATE(227), 1, + sym__interface_ports_output, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(455), 2, + anon_sym_RBRACE, + anon_sym_LF, + [5435] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(457), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [5446] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(469), 1, + ACTIONS(459), 1, anon_sym_GT, - STATE(117), 1, + STATE(174), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(226), 1, sym__comma, - STATE(204), 1, - aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5500] = 5, - ACTIONS(215), 1, + [5463] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(471), 1, + ACTIONS(461), 1, anon_sym_SEMI, - STATE(59), 1, + STATE(62), 1, sym__comma, - STATE(186), 1, + STATE(184), 1, aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5517] = 2, + [5480] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(473), 4, + ACTIONS(463), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5528] = 4, - ACTIONS(477), 1, - anon_sym_LBRACK, - STATE(162), 1, - sym_array_bracket_expression, + [5491] = 5, + ACTIONS(207), 1, + anon_sym_COMMA, + ACTIONS(465), 1, + anon_sym_GT, + STATE(112), 1, + sym__comma, + STATE(149), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(475), 2, - anon_sym_GT, - anon_sym_COMMA, - [5543] = 2, + [5508] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(473), 4, + ACTIONS(463), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5554] = 5, - ACTIONS(409), 1, - anon_sym_RBRACE, - ACTIONS(411), 1, - anon_sym_LF, - STATE(9), 1, - aux_sym__linebreak, - STATE(140), 1, - aux_sym_block_repeat1, + [5519] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5571] = 2, + ACTIONS(152), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5530] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(479), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5582] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, - ACTIONS(481), 1, + ACTIONS(148), 4, anon_sym_GT, - STATE(117), 1, - sym__comma, - STATE(154), 1, - aux_sym_template_params_repeat2, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5541] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5599] = 2, + ACTIONS(140), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5552] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(483), 4, - anon_sym_GT, - anon_sym_LBRACK, - sym_identifier, + ACTIONS(213), 4, + anon_sym_RBRACE, + anon_sym_EQ, anon_sym_COMMA, - [5610] = 5, - ACTIONS(215), 1, + anon_sym_LF, + [5563] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(485), 1, + ACTIONS(467), 1, anon_sym_RPAREN, - STATE(78), 1, + STATE(77), 1, sym__comma, - STATE(189), 1, + STATE(187), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5627] = 2, + [5580] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(487), 4, + ACTIONS(469), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5638] = 2, + [5591] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(489), 4, + ACTIONS(471), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5649] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(207), 4, - anon_sym_EQ, - anon_sym_RBRACE, - anon_sym_COMMA, - anon_sym_LF, - [5660] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(489), 4, + [5602] = 5, + ACTIONS(473), 1, ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, + ACTIONS(475), 1, anon_sym_LF, - [5671] = 5, - ACTIONS(491), 1, - anon_sym_RBRACE, - ACTIONS(493), 1, - anon_sym_LF, - STATE(6), 1, + STATE(96), 1, aux_sym__linebreak, - STATE(139), 1, - aux_sym_block_repeat1, + STATE(177), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5688] = 5, - ACTIONS(15), 1, - anon_sym_LBRACE, - ACTIONS(495), 1, - anon_sym_LT, - STATE(224), 1, - sym_block, - STATE(225), 1, - sym_template_declaration_arguments, + [5619] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5705] = 5, - ACTIONS(497), 1, + ACTIONS(471), 4, + ts_builtin_sym_end, anon_sym_RBRACE, - ACTIONS(499), 1, + anon_sym_else, anon_sym_LF, - STATE(7), 1, - aux_sym__linebreak, - STATE(139), 1, - aux_sym_block_repeat1, + [5630] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5722] = 5, - ACTIONS(501), 1, - ts_builtin_sym_end, - ACTIONS(503), 1, - anon_sym_LF, - STATE(97), 1, - aux_sym__linebreak, - STATE(193), 1, - aux_sym_source_file_repeat1, + ACTIONS(88), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5641] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5739] = 2, + ACTIONS(122), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5652] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(505), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5750] = 2, + ACTIONS(118), 4, + anon_sym_GT, + anon_sym_LBRACK, + anon_sym_COLON_COLON, + anon_sym_COMMA, + [5663] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(120), 4, + ACTIONS(104), 4, anon_sym_GT, anon_sym_LBRACK, anon_sym_COLON_COLON, anon_sym_COMMA, - [5761] = 2, + [5674] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(124), 4, + ACTIONS(100), 4, anon_sym_GT, anon_sym_LBRACK, anon_sym_COLON_COLON, anon_sym_COMMA, - [5772] = 2, + [5685] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 4, + ACTIONS(96), 4, anon_sym_GT, anon_sym_LBRACK, anon_sym_COLON_COLON, anon_sym_COMMA, - [5783] = 2, + [5696] = 5, + ACTIONS(477), 1, + anon_sym_GT, + ACTIONS(479), 1, + anon_sym_COMMA, + STATE(172), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(226), 1, + sym__comma, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(132), 4, + [5713] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(92), 4, anon_sym_GT, anon_sym_LBRACK, anon_sym_COLON_COLON, anon_sym_COMMA, - [5794] = 4, + [5724] = 5, + ACTIONS(207), 1, + anon_sym_COMMA, + ACTIONS(482), 1, + anon_sym_GT, + STATE(172), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(226), 1, + sym__comma, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5741] = 4, ACTIONS(317), 1, anon_sym_DASH_GT, - STATE(222), 1, + STATE(223), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(507), 2, + ACTIONS(484), 2, anon_sym_RBRACE, anon_sym_LF, - [5809] = 2, + [5756] = 4, + ACTIONS(488), 1, + anon_sym_COLON, + STATE(229), 1, + sym_interface_ports, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(136), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5820] = 2, + ACTIONS(486), 2, + anon_sym_RBRACE, + anon_sym_LF, + [5771] = 5, + ACTIONS(490), 1, + ts_builtin_sym_end, + ACTIONS(492), 1, + anon_sym_LF, + STATE(99), 1, + aux_sym__linebreak, + STATE(177), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(140), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5831] = 2, + [5788] = 5, + ACTIONS(400), 1, + anon_sym_RBRACE, + ACTIONS(404), 1, + anon_sym_LF, + STATE(4), 1, + aux_sym__linebreak, + STATE(146), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(144), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5842] = 4, - ACTIONS(477), 1, + [5805] = 4, + ACTIONS(497), 1, anon_sym_LBRACK, - STATE(162), 1, + STATE(183), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(509), 2, + ACTIONS(495), 2, anon_sym_GT, anon_sym_COMMA, - [5857] = 5, - ACTIONS(215), 1, + [5820] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(511), 1, + ACTIONS(499), 1, anon_sym_GT, - STATE(117), 1, + STATE(112), 1, sym__comma, STATE(198), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5874] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, - ACTIONS(513), 1, - anon_sym_GT, - STATE(152), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(219), 1, - sym__comma, + [5837] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5891] = 2, + ACTIONS(501), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [5848] = 5, + ACTIONS(503), 1, + ts_builtin_sym_end, + ACTIONS(505), 1, + anon_sym_LF, + STATE(93), 1, + aux_sym__linebreak, + STATE(194), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(98), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5902] = 2, + [5865] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(148), 4, + ACTIONS(507), 4, anon_sym_GT, anon_sym_LBRACK, - anon_sym_COLON_COLON, + sym_identifier, anon_sym_COMMA, - [5913] = 5, - ACTIONS(215), 1, + [5876] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(515), 1, + ACTIONS(509), 1, anon_sym_SEMI, - STATE(59), 1, + STATE(62), 1, sym__comma, - STATE(202), 1, + STATE(133), 1, aux_sym_template_params_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5930] = 5, - ACTIONS(517), 1, - ts_builtin_sym_end, - ACTIONS(519), 1, - anon_sym_LF, - STATE(95), 1, - aux_sym__linebreak, - STATE(171), 1, - aux_sym_source_file_repeat1, + [5893] = 5, + ACTIONS(207), 1, + anon_sym_COMMA, + ACTIONS(511), 1, + anon_sym_GT, + STATE(112), 1, + sym__comma, + STATE(196), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5947] = 2, + [5910] = 5, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(513), 1, + anon_sym_LT, + STATE(235), 1, + sym_block, + STATE(236), 1, + sym_template_declaration_arguments, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(152), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5958] = 5, - ACTIONS(521), 1, + [5927] = 5, + ACTIONS(515), 1, anon_sym_RPAREN, - ACTIONS(523), 1, + ACTIONS(517), 1, anon_sym_COMMA, - STATE(78), 1, + STATE(77), 1, sym__comma, - STATE(189), 1, + STATE(187), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5975] = 2, + [5944] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(526), 4, + ACTIONS(520), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5986] = 2, + [5955] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(526), 4, + ACTIONS(520), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5997] = 5, - ACTIONS(15), 1, - anon_sym_LBRACE, - ACTIONS(495), 1, - anon_sym_LT, - STATE(220), 1, - sym_block, - STATE(236), 1, - sym_template_declaration_arguments, + [5966] = 5, + ACTIONS(207), 1, + anon_sym_COMMA, + ACTIONS(522), 1, + anon_sym_GT, + STATE(112), 1, + sym__comma, + STATE(185), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6014] = 5, - ACTIONS(528), 1, - ts_builtin_sym_end, - ACTIONS(530), 1, - anon_sym_LF, - STATE(103), 1, - aux_sym__linebreak, - STATE(193), 1, - aux_sym_source_file_repeat1, + [5983] = 5, + ACTIONS(207), 1, + anon_sym_COMMA, + ACTIONS(524), 1, + anon_sym_GT, + STATE(112), 1, + sym__comma, + STATE(196), 1, + aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6031] = 2, + [6000] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(533), 4, + ACTIONS(526), 4, anon_sym_RBRACE, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [6042] = 2, + [6011] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(211), 4, - anon_sym_EQ, + ACTIONS(528), 4, + ts_builtin_sym_end, anon_sym_RBRACE, - anon_sym_COMMA, + anon_sym_else, anon_sym_LF, - [6053] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, - ACTIONS(535), 1, + [6022] = 5, + ACTIONS(530), 1, + ts_builtin_sym_end, + ACTIONS(532), 1, + anon_sym_LF, + STATE(95), 1, + aux_sym__linebreak, + STATE(177), 1, + aux_sym_source_file_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6039] = 5, + ACTIONS(534), 1, + anon_sym_RBRACE, + ACTIONS(536), 1, + anon_sym_LF, + STATE(5), 1, + aux_sym__linebreak, + STATE(138), 1, + aux_sym_block_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6056] = 5, + ACTIONS(538), 1, anon_sym_GT, - STATE(117), 1, + ACTIONS(540), 1, + anon_sym_COMMA, + STATE(112), 1, sym__comma, - STATE(204), 1, + STATE(196), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6070] = 5, - ACTIONS(402), 1, + [6073] = 5, + ACTIONS(543), 1, anon_sym_RBRACE, - ACTIONS(404), 1, + ACTIONS(545), 1, anon_sym_LF, - STATE(4), 1, + STATE(3), 1, aux_sym__linebreak, - STATE(170), 1, + STATE(138), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6087] = 5, - ACTIONS(215), 1, + [6090] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(537), 1, + ACTIONS(547), 1, anon_sym_GT, - STATE(117), 1, + STATE(112), 1, sym__comma, - STATE(204), 1, + STATE(196), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6104] = 2, + [6107] = 5, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(513), 1, + anon_sym_LT, + STATE(232), 1, + sym_template_declaration_arguments, + STATE(233), 1, + sym_block, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6124] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(539), 4, + ACTIONS(549), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [6115] = 5, - ACTIONS(215), 1, + [6135] = 5, + ACTIONS(207), 1, anon_sym_COMMA, - ACTIONS(541), 1, + ACTIONS(551), 1, anon_sym_GT, - STATE(117), 1, + STATE(112), 1, sym__comma, - STATE(205), 1, + STATE(191), 1, aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6132] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, - ACTIONS(543), 1, - anon_sym_GT, - STATE(183), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(219), 1, - sym__comma, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [6149] = 5, - ACTIONS(545), 1, - anon_sym_SEMI, - ACTIONS(547), 1, - anon_sym_COMMA, - STATE(59), 1, - sym__comma, - STATE(202), 1, - aux_sym_template_params_repeat1, + [6152] = 5, + ACTIONS(553), 1, + ts_builtin_sym_end, + ACTIONS(555), 1, + anon_sym_LF, + STATE(94), 1, + aux_sym__linebreak, + STATE(164), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6166] = 4, - ACTIONS(477), 1, + [6169] = 4, + ACTIONS(497), 1, anon_sym_LBRACK, - STATE(162), 1, + STATE(183), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(550), 2, - anon_sym_GT, - anon_sym_COMMA, - [6181] = 5, - ACTIONS(552), 1, + ACTIONS(557), 2, anon_sym_GT, - ACTIONS(554), 1, anon_sym_COMMA, - STATE(117), 1, - sym__comma, - STATE(204), 1, - aux_sym_template_params_repeat2, + [6184] = 5, + ACTIONS(411), 1, + anon_sym_RBRACE, + ACTIONS(413), 1, + anon_sym_LF, + STATE(8), 1, + aux_sym__linebreak, + STATE(197), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6198] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, - ACTIONS(557), 1, - anon_sym_GT, - STATE(117), 1, - sym__comma, - STATE(204), 1, - aux_sym_template_params_repeat2, + [6201] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6215] = 5, - ACTIONS(215), 1, - anon_sym_COMMA, - ACTIONS(559), 1, + ACTIONS(156), 3, anon_sym_GT, - STATE(117), 1, - sym__comma, - STATE(196), 1, - aux_sym_template_params_repeat2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [6232] = 4, - ACTIONS(94), 1, anon_sym_LBRACK, - ACTIONS(561), 1, + anon_sym_COMMA, + [6211] = 4, + ACTIONS(559), 1, sym_identifier, - STATE(162), 1, - sym_array_bracket_expression, + ACTIONS(561), 1, + anon_sym_LT, + STATE(18), 1, + sym_template_params, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6246] = 2, + [6225] = 3, + ACTIONS(402), 1, + anon_sym_EQ, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(563), 3, - anon_sym_module, - anon_sym_function, - anon_sym_struct, - [6256] = 4, - ACTIONS(94), 1, + ACTIONS(563), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6237] = 4, + ACTIONS(114), 1, anon_sym_LBRACK, ACTIONS(565), 1, sym_identifier, - STATE(162), 1, + STATE(183), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6270] = 3, + [6251] = 4, + ACTIONS(567), 1, + sym_identifier, ACTIONS(569), 1, - anon_sym_EQ, + anon_sym_GT, + STATE(152), 1, + sym_template_declaration_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(567), 2, - anon_sym_GT, - anon_sym_COMMA, - [6282] = 3, - ACTIONS(573), 1, - anon_sym_else, + [6265] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(571), 2, - anon_sym_RBRACE, - anon_sym_LF, - [6294] = 4, - ACTIONS(575), 1, + ACTIONS(571), 3, + anon_sym_module, + anon_sym_function, + anon_sym_struct, + [6275] = 4, + ACTIONS(573), 1, sym_identifier, - ACTIONS(577), 1, + ACTIONS(575), 1, anon_sym_LT, - STATE(188), 1, + STATE(173), 1, sym_template_params, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6308] = 4, - ACTIONS(579), 1, + [6289] = 4, + ACTIONS(114), 1, + anon_sym_LBRACK, + ACTIONS(577), 1, sym_identifier, - ACTIONS(581), 1, - anon_sym_LT, - STATE(33), 1, - sym_template_params, + STATE(183), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6322] = 4, - ACTIONS(94), 1, + [6303] = 4, + ACTIONS(114), 1, anon_sym_LBRACK, - ACTIONS(583), 1, + ACTIONS(579), 1, sym_identifier, - STATE(162), 1, + STATE(183), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6336] = 4, - ACTIONS(94), 1, + [6317] = 4, + ACTIONS(114), 1, anon_sym_LBRACK, - ACTIONS(585), 1, + ACTIONS(581), 1, sym_identifier, - STATE(162), 1, + STATE(183), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6350] = 4, - ACTIONS(587), 1, - sym_identifier, - ACTIONS(589), 1, - anon_sym_GT, - STATE(201), 1, - sym_template_declaration_type, + [6331] = 3, + ACTIONS(585), 1, + anon_sym_else, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6364] = 2, + ACTIONS(583), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6343] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(156), 3, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COMMA, - [6374] = 3, - ACTIONS(400), 1, - anon_sym_EQ, + ACTIONS(587), 2, + ts_builtin_sym_end, + anon_sym_LF, + [6352] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(591), 2, + ACTIONS(589), 2, anon_sym_RBRACE, anon_sym_LF, - [6386] = 3, - ACTIONS(587), 1, - sym_identifier, - STATE(237), 1, - sym_template_declaration_type, + [6361] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6397] = 2, + ACTIONS(563), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6370] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(593), 2, - ts_builtin_sym_end, + ACTIONS(591), 2, + anon_sym_RBRACE, anon_sym_LF, - [6406] = 2, + [6379] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(593), 2, + anon_sym_SEMI, + anon_sym_COMMA, + [6388] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(595), 2, - anon_sym_RBRACE, - anon_sym_LF, - [6415] = 2, + anon_sym_GT, + anon_sym_COMMA, + [6397] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(597), 2, anon_sym_RBRACE, anon_sym_LF, - [6424] = 2, + [6406] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(599), 2, - ts_builtin_sym_end, + anon_sym_RBRACE, anon_sym_LF, - [6433] = 2, + [6415] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(601), 2, - ts_builtin_sym_end, + anon_sym_RBRACE, anon_sym_LF, - [6442] = 3, - ACTIONS(15), 1, - anon_sym_LBRACE, - STATE(227), 1, - sym_block, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [6453] = 2, + [6424] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(603), 2, anon_sym_RBRACE, anon_sym_LF, - [6462] = 2, + [6433] = 3, + ACTIONS(567), 1, + sym_identifier, + STATE(221), 1, + sym_template_declaration_type, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6444] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(605), 2, - ts_builtin_sym_end, + anon_sym_RBRACE, anon_sym_LF, - [6471] = 2, + [6453] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(607), 2, - ts_builtin_sym_end, + anon_sym_RBRACE, anon_sym_LF, - [6480] = 2, + [6462] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(609), 2, anon_sym_RBRACE, anon_sym_LF, - [6489] = 2, + [6471] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(591), 2, + ACTIONS(611), 2, anon_sym_RBRACE, anon_sym_LF, - [6498] = 2, + [6480] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(611), 2, - anon_sym_SEMI, + ACTIONS(613), 2, + anon_sym_GT, anon_sym_COMMA, - [6507] = 2, + [6489] = 3, + ACTIONS(15), 1, + anon_sym_LBRACE, + STATE(237), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(613), 2, - anon_sym_RBRACE, - anon_sym_LF, - [6516] = 2, + [6500] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(615), 2, - anon_sym_GT, - anon_sym_COMMA, - [6525] = 2, + ts_builtin_sym_end, + anon_sym_LF, + [6509] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(617), 2, - anon_sym_RBRACE, + ts_builtin_sym_end, anon_sym_LF, - [6534] = 2, + [6518] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(619), 2, - anon_sym_RBRACE, + ts_builtin_sym_end, anon_sym_LF, - [6543] = 3, + [6527] = 3, ACTIONS(15), 1, anon_sym_LBRACE, - STATE(228), 1, + STATE(234), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6554] = 2, + [6538] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(621), 2, - anon_sym_GT, - anon_sym_COMMA, - [6563] = 2, + ts_builtin_sym_end, + anon_sym_LF, + [6547] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(623), 2, - anon_sym_RBRACE, - anon_sym_LF, - [6572] = 2, + anon_sym_GT, + anon_sym_COMMA, + [6556] = 2, + ACTIONS(625), 1, + anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(625), 2, - anon_sym_RBRACE, - anon_sym_LF, - [6581] = 2, + [6564] = 2, + ACTIONS(627), 1, + ts_builtin_sym_end, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(627), 2, - anon_sym_RBRACE, - anon_sym_LF, - [6590] = 2, + [6572] = 2, ACTIONS(629), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6598] = 2, + [6580] = 2, ACTIONS(631), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6606] = 2, + [6588] = 2, ACTIONS(633), 1, - sym_identifier, + anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6614] = 2, + [6596] = 2, ACTIONS(635), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6622] = 2, + [6604] = 2, ACTIONS(637), 1, - anon_sym_LBRACE, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6630] = 2, + [6612] = 2, ACTIONS(639), 1, anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6638] = 2, + [6620] = 2, ACTIONS(641), 1, - sym_identifier, + anon_sym_in, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6646] = 2, + [6628] = 2, ACTIONS(643), 1, - anon_sym_in, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6654] = 2, + [6636] = 2, ACTIONS(645), 1, - ts_builtin_sym_end, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [6662] = 2, - ACTIONS(647), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6670] = 2, - ACTIONS(649), 1, + [6644] = 2, + ACTIONS(647), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6678] = 2, - ACTIONS(651), 1, - anon_sym_LBRACE, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, }; static const uint32_t ts_small_parse_table_map[] = { @@ -9256,22 +9221,22 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(15)] = 1124, [SMALL_STATE(16)] = 1168, [SMALL_STATE(17)] = 1212, - [SMALL_STATE(18)] = 1261, - [SMALL_STATE(19)] = 1300, - [SMALL_STATE(20)] = 1363, - [SMALL_STATE(21)] = 1412, - [SMALL_STATE(22)] = 1451, - [SMALL_STATE(23)] = 1510, - [SMALL_STATE(24)] = 1549, - [SMALL_STATE(25)] = 1588, - [SMALL_STATE(26)] = 1627, - [SMALL_STATE(27)] = 1666, - [SMALL_STATE(28)] = 1705, - [SMALL_STATE(29)] = 1744, - [SMALL_STATE(30)] = 1783, - [SMALL_STATE(31)] = 1844, - [SMALL_STATE(32)] = 1897, - [SMALL_STATE(33)] = 1954, + [SMALL_STATE(18)] = 1251, + [SMALL_STATE(19)] = 1290, + [SMALL_STATE(20)] = 1329, + [SMALL_STATE(21)] = 1368, + [SMALL_STATE(22)] = 1407, + [SMALL_STATE(23)] = 1456, + [SMALL_STATE(24)] = 1495, + [SMALL_STATE(25)] = 1534, + [SMALL_STATE(26)] = 1593, + [SMALL_STATE(27)] = 1632, + [SMALL_STATE(28)] = 1695, + [SMALL_STATE(29)] = 1734, + [SMALL_STATE(30)] = 1787, + [SMALL_STATE(31)] = 1826, + [SMALL_STATE(32)] = 1875, + [SMALL_STATE(33)] = 1932, [SMALL_STATE(34)] = 1993, [SMALL_STATE(35)] = 2031, [SMALL_STATE(36)] = 2068, @@ -9284,49 +9249,49 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(43)] = 2329, [SMALL_STATE(44)] = 2382, [SMALL_STATE(45)] = 2444, - [SMALL_STATE(46)] = 2502, - [SMALL_STATE(47)] = 2560, + [SMALL_STATE(46)] = 2506, + [SMALL_STATE(47)] = 2564, [SMALL_STATE(48)] = 2622, [SMALL_STATE(49)] = 2659, [SMALL_STATE(50)] = 2694, - [SMALL_STATE(51)] = 2736, - [SMALL_STATE(52)] = 2790, - [SMALL_STATE(53)] = 2832, - [SMALL_STATE(54)] = 2888, + [SMALL_STATE(51)] = 2748, + [SMALL_STATE(52)] = 2802, + [SMALL_STATE(53)] = 2844, + [SMALL_STATE(54)] = 2900, [SMALL_STATE(55)] = 2942, - [SMALL_STATE(56)] = 2998, - [SMALL_STATE(57)] = 3052, + [SMALL_STATE(56)] = 2996, + [SMALL_STATE(57)] = 3050, [SMALL_STATE(58)] = 3106, [SMALL_STATE(59)] = 3159, [SMALL_STATE(60)] = 3198, [SMALL_STATE(61)] = 3251, [SMALL_STATE(62)] = 3304, - [SMALL_STATE(63)] = 3357, + [SMALL_STATE(63)] = 3343, [SMALL_STATE(64)] = 3396, [SMALL_STATE(65)] = 3432, [SMALL_STATE(66)] = 3468, [SMALL_STATE(67)] = 3504, [SMALL_STATE(68)] = 3540, - [SMALL_STATE(69)] = 3572, - [SMALL_STATE(70)] = 3608, - [SMALL_STATE(71)] = 3644, - [SMALL_STATE(72)] = 3676, - [SMALL_STATE(73)] = 3712, - [SMALL_STATE(74)] = 3748, - [SMALL_STATE(75)] = 3784, - [SMALL_STATE(76)] = 3820, - [SMALL_STATE(77)] = 3856, - [SMALL_STATE(78)] = 3892, - [SMALL_STATE(79)] = 3928, - [SMALL_STATE(80)] = 3964, - [SMALL_STATE(81)] = 4000, - [SMALL_STATE(82)] = 4036, + [SMALL_STATE(69)] = 3576, + [SMALL_STATE(70)] = 3612, + [SMALL_STATE(71)] = 3648, + [SMALL_STATE(72)] = 3684, + [SMALL_STATE(73)] = 3720, + [SMALL_STATE(74)] = 3756, + [SMALL_STATE(75)] = 3792, + [SMALL_STATE(76)] = 3828, + [SMALL_STATE(77)] = 3860, + [SMALL_STATE(78)] = 3896, + [SMALL_STATE(79)] = 3932, + [SMALL_STATE(80)] = 3968, + [SMALL_STATE(81)] = 4004, + [SMALL_STATE(82)] = 4040, [SMALL_STATE(83)] = 4072, [SMALL_STATE(84)] = 4102, [SMALL_STATE(85)] = 4132, [SMALL_STATE(86)] = 4157, [SMALL_STATE(87)] = 4199, - [SMALL_STATE(88)] = 4241, + [SMALL_STATE(88)] = 4223, [SMALL_STATE(89)] = 4265, [SMALL_STATE(90)] = 4301, [SMALL_STATE(91)] = 4337, @@ -9338,28 +9303,28 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(97)] = 4495, [SMALL_STATE(98)] = 4521, [SMALL_STATE(99)] = 4540, - [SMALL_STATE(100)] = 4559, - [SMALL_STATE(101)] = 4578, - [SMALL_STATE(102)] = 4597, - [SMALL_STATE(103)] = 4616, + [SMALL_STATE(100)] = 4563, + [SMALL_STATE(101)] = 4582, + [SMALL_STATE(102)] = 4601, + [SMALL_STATE(103)] = 4620, [SMALL_STATE(104)] = 4639, [SMALL_STATE(105)] = 4661, - [SMALL_STATE(106)] = 4683, - [SMALL_STATE(107)] = 4705, - [SMALL_STATE(108)] = 4727, + [SMALL_STATE(106)] = 4681, + [SMALL_STATE(107)] = 4703, + [SMALL_STATE(108)] = 4725, [SMALL_STATE(109)] = 4747, [SMALL_STATE(110)] = 4769, [SMALL_STATE(111)] = 4791, [SMALL_STATE(112)] = 4804, [SMALL_STATE(113)] = 4823, - [SMALL_STATE(114)] = 4842, - [SMALL_STATE(115)] = 4861, - [SMALL_STATE(116)] = 4880, - [SMALL_STATE(117)] = 4893, - [SMALL_STATE(118)] = 4912, + [SMALL_STATE(114)] = 4836, + [SMALL_STATE(115)] = 4855, + [SMALL_STATE(116)] = 4874, + [SMALL_STATE(117)] = 4887, + [SMALL_STATE(118)] = 4906, [SMALL_STATE(119)] = 4925, [SMALL_STATE(120)] = 4944, - [SMALL_STATE(121)] = 4957, + [SMALL_STATE(121)] = 4963, [SMALL_STATE(122)] = 4976, [SMALL_STATE(123)] = 4995, [SMALL_STATE(124)] = 5015, @@ -9368,129 +9333,127 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(127)] = 5063, [SMALL_STATE(128)] = 5079, [SMALL_STATE(129)] = 5095, - [SMALL_STATE(130)] = 5111, + [SMALL_STATE(130)] = 5115, [SMALL_STATE(131)] = 5131, [SMALL_STATE(132)] = 5147, [SMALL_STATE(133)] = 5163, - [SMALL_STATE(134)] = 5179, - [SMALL_STATE(135)] = 5194, - [SMALL_STATE(136)] = 5211, - [SMALL_STATE(137)] = 5222, - [SMALL_STATE(138)] = 5233, - [SMALL_STATE(139)] = 5244, - [SMALL_STATE(140)] = 5261, - [SMALL_STATE(141)] = 5278, - [SMALL_STATE(142)] = 5295, - [SMALL_STATE(143)] = 5310, - [SMALL_STATE(144)] = 5321, - [SMALL_STATE(145)] = 5338, - [SMALL_STATE(146)] = 5355, - [SMALL_STATE(147)] = 5370, - [SMALL_STATE(148)] = 5387, - [SMALL_STATE(149)] = 5398, - [SMALL_STATE(150)] = 5415, - [SMALL_STATE(151)] = 5432, - [SMALL_STATE(152)] = 5449, - [SMALL_STATE(153)] = 5466, - [SMALL_STATE(154)] = 5483, - [SMALL_STATE(155)] = 5500, - [SMALL_STATE(156)] = 5517, - [SMALL_STATE(157)] = 5528, - [SMALL_STATE(158)] = 5543, - [SMALL_STATE(159)] = 5554, - [SMALL_STATE(160)] = 5571, - [SMALL_STATE(161)] = 5582, - [SMALL_STATE(162)] = 5599, - [SMALL_STATE(163)] = 5610, - [SMALL_STATE(164)] = 5627, - [SMALL_STATE(165)] = 5638, - [SMALL_STATE(166)] = 5649, - [SMALL_STATE(167)] = 5660, - [SMALL_STATE(168)] = 5671, - [SMALL_STATE(169)] = 5688, - [SMALL_STATE(170)] = 5705, - [SMALL_STATE(171)] = 5722, - [SMALL_STATE(172)] = 5739, - [SMALL_STATE(173)] = 5750, - [SMALL_STATE(174)] = 5761, - [SMALL_STATE(175)] = 5772, - [SMALL_STATE(176)] = 5783, - [SMALL_STATE(177)] = 5794, - [SMALL_STATE(178)] = 5809, - [SMALL_STATE(179)] = 5820, - [SMALL_STATE(180)] = 5831, - [SMALL_STATE(181)] = 5842, - [SMALL_STATE(182)] = 5857, - [SMALL_STATE(183)] = 5874, - [SMALL_STATE(184)] = 5891, - [SMALL_STATE(185)] = 5902, - [SMALL_STATE(186)] = 5913, - [SMALL_STATE(187)] = 5930, - [SMALL_STATE(188)] = 5947, - [SMALL_STATE(189)] = 5958, - [SMALL_STATE(190)] = 5975, - [SMALL_STATE(191)] = 5986, - [SMALL_STATE(192)] = 5997, - [SMALL_STATE(193)] = 6014, - [SMALL_STATE(194)] = 6031, - [SMALL_STATE(195)] = 6042, - [SMALL_STATE(196)] = 6053, - [SMALL_STATE(197)] = 6070, - [SMALL_STATE(198)] = 6087, - [SMALL_STATE(199)] = 6104, - [SMALL_STATE(200)] = 6115, - [SMALL_STATE(201)] = 6132, - [SMALL_STATE(202)] = 6149, - [SMALL_STATE(203)] = 6166, - [SMALL_STATE(204)] = 6181, - [SMALL_STATE(205)] = 6198, - [SMALL_STATE(206)] = 6215, - [SMALL_STATE(207)] = 6232, - [SMALL_STATE(208)] = 6246, - [SMALL_STATE(209)] = 6256, - [SMALL_STATE(210)] = 6270, - [SMALL_STATE(211)] = 6282, - [SMALL_STATE(212)] = 6294, - [SMALL_STATE(213)] = 6308, - [SMALL_STATE(214)] = 6322, - [SMALL_STATE(215)] = 6336, - [SMALL_STATE(216)] = 6350, - [SMALL_STATE(217)] = 6364, - [SMALL_STATE(218)] = 6374, - [SMALL_STATE(219)] = 6386, - [SMALL_STATE(220)] = 6397, - [SMALL_STATE(221)] = 6406, - [SMALL_STATE(222)] = 6415, - [SMALL_STATE(223)] = 6424, - [SMALL_STATE(224)] = 6433, - [SMALL_STATE(225)] = 6442, - [SMALL_STATE(226)] = 6453, - [SMALL_STATE(227)] = 6462, - [SMALL_STATE(228)] = 6471, - [SMALL_STATE(229)] = 6480, - [SMALL_STATE(230)] = 6489, - [SMALL_STATE(231)] = 6498, - [SMALL_STATE(232)] = 6507, - [SMALL_STATE(233)] = 6516, - [SMALL_STATE(234)] = 6525, - [SMALL_STATE(235)] = 6534, - [SMALL_STATE(236)] = 6543, - [SMALL_STATE(237)] = 6554, - [SMALL_STATE(238)] = 6563, - [SMALL_STATE(239)] = 6572, - [SMALL_STATE(240)] = 6581, - [SMALL_STATE(241)] = 6590, - [SMALL_STATE(242)] = 6598, - [SMALL_STATE(243)] = 6606, - [SMALL_STATE(244)] = 6614, - [SMALL_STATE(245)] = 6622, - [SMALL_STATE(246)] = 6630, - [SMALL_STATE(247)] = 6638, - [SMALL_STATE(248)] = 6646, - [SMALL_STATE(249)] = 6654, - [SMALL_STATE(250)] = 6662, - [SMALL_STATE(251)] = 6670, - [SMALL_STATE(252)] = 6678, + [SMALL_STATE(134)] = 5180, + [SMALL_STATE(135)] = 5191, + [SMALL_STATE(136)] = 5208, + [SMALL_STATE(137)] = 5225, + [SMALL_STATE(138)] = 5236, + [SMALL_STATE(139)] = 5253, + [SMALL_STATE(140)] = 5264, + [SMALL_STATE(141)] = 5275, + [SMALL_STATE(142)] = 5292, + [SMALL_STATE(143)] = 5309, + [SMALL_STATE(144)] = 5326, + [SMALL_STATE(145)] = 5343, + [SMALL_STATE(146)] = 5354, + [SMALL_STATE(147)] = 5371, + [SMALL_STATE(148)] = 5388, + [SMALL_STATE(149)] = 5403, + [SMALL_STATE(150)] = 5420, + [SMALL_STATE(151)] = 5435, + [SMALL_STATE(152)] = 5446, + [SMALL_STATE(153)] = 5463, + [SMALL_STATE(154)] = 5480, + [SMALL_STATE(155)] = 5491, + [SMALL_STATE(156)] = 5508, + [SMALL_STATE(157)] = 5519, + [SMALL_STATE(158)] = 5530, + [SMALL_STATE(159)] = 5541, + [SMALL_STATE(160)] = 5552, + [SMALL_STATE(161)] = 5563, + [SMALL_STATE(162)] = 5580, + [SMALL_STATE(163)] = 5591, + [SMALL_STATE(164)] = 5602, + [SMALL_STATE(165)] = 5619, + [SMALL_STATE(166)] = 5630, + [SMALL_STATE(167)] = 5641, + [SMALL_STATE(168)] = 5652, + [SMALL_STATE(169)] = 5663, + [SMALL_STATE(170)] = 5674, + [SMALL_STATE(171)] = 5685, + [SMALL_STATE(172)] = 5696, + [SMALL_STATE(173)] = 5713, + [SMALL_STATE(174)] = 5724, + [SMALL_STATE(175)] = 5741, + [SMALL_STATE(176)] = 5756, + [SMALL_STATE(177)] = 5771, + [SMALL_STATE(178)] = 5788, + [SMALL_STATE(179)] = 5805, + [SMALL_STATE(180)] = 5820, + [SMALL_STATE(181)] = 5837, + [SMALL_STATE(182)] = 5848, + [SMALL_STATE(183)] = 5865, + [SMALL_STATE(184)] = 5876, + [SMALL_STATE(185)] = 5893, + [SMALL_STATE(186)] = 5910, + [SMALL_STATE(187)] = 5927, + [SMALL_STATE(188)] = 5944, + [SMALL_STATE(189)] = 5955, + [SMALL_STATE(190)] = 5966, + [SMALL_STATE(191)] = 5983, + [SMALL_STATE(192)] = 6000, + [SMALL_STATE(193)] = 6011, + [SMALL_STATE(194)] = 6022, + [SMALL_STATE(195)] = 6039, + [SMALL_STATE(196)] = 6056, + [SMALL_STATE(197)] = 6073, + [SMALL_STATE(198)] = 6090, + [SMALL_STATE(199)] = 6107, + [SMALL_STATE(200)] = 6124, + [SMALL_STATE(201)] = 6135, + [SMALL_STATE(202)] = 6152, + [SMALL_STATE(203)] = 6169, + [SMALL_STATE(204)] = 6184, + [SMALL_STATE(205)] = 6201, + [SMALL_STATE(206)] = 6211, + [SMALL_STATE(207)] = 6225, + [SMALL_STATE(208)] = 6237, + [SMALL_STATE(209)] = 6251, + [SMALL_STATE(210)] = 6265, + [SMALL_STATE(211)] = 6275, + [SMALL_STATE(212)] = 6289, + [SMALL_STATE(213)] = 6303, + [SMALL_STATE(214)] = 6317, + [SMALL_STATE(215)] = 6331, + [SMALL_STATE(216)] = 6343, + [SMALL_STATE(217)] = 6352, + [SMALL_STATE(218)] = 6361, + [SMALL_STATE(219)] = 6370, + [SMALL_STATE(220)] = 6379, + [SMALL_STATE(221)] = 6388, + [SMALL_STATE(222)] = 6397, + [SMALL_STATE(223)] = 6406, + [SMALL_STATE(224)] = 6415, + [SMALL_STATE(225)] = 6424, + [SMALL_STATE(226)] = 6433, + [SMALL_STATE(227)] = 6444, + [SMALL_STATE(228)] = 6453, + [SMALL_STATE(229)] = 6462, + [SMALL_STATE(230)] = 6471, + [SMALL_STATE(231)] = 6480, + [SMALL_STATE(232)] = 6489, + [SMALL_STATE(233)] = 6500, + [SMALL_STATE(234)] = 6509, + [SMALL_STATE(235)] = 6518, + [SMALL_STATE(236)] = 6527, + [SMALL_STATE(237)] = 6538, + [SMALL_STATE(238)] = 6547, + [SMALL_STATE(239)] = 6556, + [SMALL_STATE(240)] = 6564, + [SMALL_STATE(241)] = 6572, + [SMALL_STATE(242)] = 6580, + [SMALL_STATE(243)] = 6588, + [SMALL_STATE(244)] = 6596, + [SMALL_STATE(245)] = 6604, + [SMALL_STATE(246)] = 6612, + [SMALL_STATE(247)] = 6620, + [SMALL_STATE(248)] = 6628, + [SMALL_STATE(249)] = 6636, + [SMALL_STATE(250)] = 6644, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -9498,322 +9461,320 @@ static const TSParseActionEntry ts_parse_actions[] = { [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 = true}}, SHIFT(208), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(250), - [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(88), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(91), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(241), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(247), - [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(108), - [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(125), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(92), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(242), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(244), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(105), + [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(130), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), - [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), - [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), + [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), + [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), + [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), + [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), - [65] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(213), - [68] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 2), - [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 2), - [72] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), - [74] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 15), - [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 15), - [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 26), - [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 26), - [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1, .production_id = 1), - [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1, .production_id = 1), - [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 14), - [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 14), - [90] = {.entry = {.count = 1, .reusable = false}}, SHIFT(243), - [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [96] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 31), - [98] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 31), - [100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 29), - [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 29), - [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [106] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), - [108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [116] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), - [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 7, .production_id = 52), - [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 7, .production_id = 52), - [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 51), - [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 51), - [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 50), - [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 50), - [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 6), - [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 6), - [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 49), - [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 49), - [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 38), - [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 38), - [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 3), - [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 3), - [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 3), - [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3), - [150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), - [152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), - [154] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 25), - [156] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 25), - [158] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 25), - [160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 25), - [162] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [166] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), - [170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 30), - [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 30), - [174] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 18), - [180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 18), - [182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 19), - [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 19), + [65] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(206), + [68] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1, .production_id = 1), + [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1, .production_id = 1), + [72] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), + [74] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 25), + [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 25), + [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 15), + [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 15), + [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 2), + [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 2), + [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 6), + [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 6), + [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), + [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), + [94] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 3), + [96] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3), + [98] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 30), + [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 30), + [102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 3), + [104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 3), + [106] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 14), + [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 14), + [110] = {.entry = {.count = 1, .reusable = false}}, SHIFT(249), + [112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 37), + [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 37), + [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 48), + [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 48), + [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 28), + [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 28), + [128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [130] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), + [132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [136] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), + [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 49), + [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 49), + [142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 50), + [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 50), + [150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 7, .production_id = 51), + [152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 7, .production_id = 51), + [154] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 24), + [156] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 24), + [158] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), + [160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [162] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [166] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 29), + [168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 29), + [170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 19), + [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 19), + [174] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 24), + [180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 24), + [182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 18), + [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 18), [186] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), [188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), [190] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(42), - [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [195] = {.entry = {.count = 1, .reusable = false}}, SHIFT(82), - [197] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 25), - [199] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 25), - [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), - [205] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 16), - [207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 16), - [209] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 9), - [211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 9), - [213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [217] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69), + [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [195] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), + [197] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 24), + [199] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 24), + [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), + [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 16), + [211] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 16), + [213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 9), + [215] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 9), + [217] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), [219] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), [221] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), [223] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), [225] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), - [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), - [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 27), - [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 1, .production_id = 37), - [242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 3, .production_id = 47), - [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217), + [228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 1, .production_id = 36), + [230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), + [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 3, .production_id = 46), + [242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 26), + [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [266] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), - [268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), - [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [274] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), - [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), - [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [302] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), - [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), - [306] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [308] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(85), - [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), + [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [282] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), + [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), + [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [298] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), + [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), + [302] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [304] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(85), + [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [309] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), + [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), [313] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), [321] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), - [329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), - [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), - [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), + [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), + [329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), + [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), + [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), + [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 17), - [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [343] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(99), - [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 34), + [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 33), + [345] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(101), [348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 23), - [350] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 24), - [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), - [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), - [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244), - [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180), - [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [364] = {.entry = {.count = 1, .reusable = false}}, SHIFT(133), - [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), - [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 44), - [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), + [350] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 22), + [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), + [358] = {.entry = {.count = 1, .reusable = false}}, SHIFT(126), + [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), + [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169), + [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), + [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 43), + [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 35), [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), - [376] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(71), - [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), - [381] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), - [383] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 35), - [385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 36), - [387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), - [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), - [391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 28), - [393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), - [395] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(71), - [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), - [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), + [376] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(76), + [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), + [381] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 27), + [383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), + [387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), + [389] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(76), + [392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), + [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), + [396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 34), + [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), + [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), + [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [406] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(212), - [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), - [411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), - [415] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 13), - [417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), - [421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [423] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), - [425] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), - [427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 31), - [429] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), - [431] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), - [434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), - [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), - [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [448] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 33), - [450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), - [452] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), - [454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), - [456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), - [458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), - [460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), - [464] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), SHIFT_REPEAT(71), - [467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), - [469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), - [471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [473] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), - [475] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 3, .production_id = 20), - [477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [479] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), - [483] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 18), - [485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 31), - [489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 38), - [491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), - [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), - [497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), - [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), - [503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), - [505] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), - [507] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 43), - [509] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 1, .production_id = 37), - [511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245), - [515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), - [517] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), - [519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [521] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), - [523] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(71), - [526] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 38), - [528] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), - [530] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(103), - [533] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), - [535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [539] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252), - [545] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), - [547] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), SHIFT_REPEAT(71), - [550] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 3, .production_id = 47), - [552] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), - [554] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), SHIFT_REPEAT(71), - [557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), - [565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [567] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1, .production_id = 8), - [569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), - [571] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 21), - [573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), - [575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), - [577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), - [585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), - [589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246), - [591] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), - [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 4, .production_id = 7), - [595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 48), - [597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 46), - [599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), - [601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 3, .production_id = 4), - [603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 45), - [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 4, .production_id = 11), - [607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 5, .production_id = 12), - [609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 32), - [611] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 3), - [613] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_domain_statement, 2, .production_id = 13), - [615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 3), - [617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 42), - [619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 22), - [621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 3), - [623] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 39), - [625] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 41), - [627] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 40), - [629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), - [631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), - [633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), - [637] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 6), - [639] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), - [641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), - [643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [645] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169), - [649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [651] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 3), + [406] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(211), + [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), + [413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [415] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), + [417] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), SHIFT_REPEAT(76), + [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), + [422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), + [426] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), + [428] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), + [431] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), + [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), + [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), + [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), + [441] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 30), + [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), + [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), + [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), + [455] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 32), + [457] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(239), + [461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), + [465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), + [467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [469] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 30), + [471] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 37), + [473] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), + [475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [477] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), + [479] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), SHIFT_REPEAT(76), + [482] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246), + [484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 42), + [486] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 13), + [488] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), + [492] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(99), + [495] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 1, .production_id = 36), + [497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [503] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), + [505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [507] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 18), + [509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), + [515] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), + [517] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(76), + [520] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 37), + [522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [526] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), + [528] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), + [530] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), + [532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [534] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), + [536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [538] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), + [540] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), SHIFT_REPEAT(76), + [543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), + [545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [549] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), + [551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [553] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), + [555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [557] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 3, .production_id = 46), + [559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [563] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), + [565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), + [569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), + [571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(250), + [573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), + [575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [583] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 20), + [585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), + [587] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), + [589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 31), + [591] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 47), + [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 3), + [595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 3), + [597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_domain_statement, 2, .production_id = 13), + [599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 45), + [601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 41), + [603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 44), + [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 40), + [607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 39), + [609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 21), + [611] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 38), + [613] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 3), + [615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 4, .production_id = 7), + [617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 4, .production_id = 11), + [619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 3, .production_id = 4), + [621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 5, .production_id = 12), + [623] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1, .production_id = 8), + [625] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 3), + [627] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), + [631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), + [633] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), + [635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), + [637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [639] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 6), + [641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), + [645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), }; #ifdef __cplusplus From ef231e772b78e409c3b52e11beb0faa91046c21f Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Tue, 20 Aug 2024 15:42:17 +0200 Subject: [PATCH 44/49] Move & add utility scripts --- .gitignore | 1 + build_wasm.sh | 1 + tree.sh | 4 ++++ 3 files changed, 6 insertions(+) create mode 100755 build_wasm.sh create mode 100755 tree.sh diff --git a/.gitignore b/.gitignore index 6985cf1..7b7740a 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ Cargo.lock # MSVC Windows builds of rustc generate these, which store debugging information *.pdb +*.wasm diff --git a/build_wasm.sh b/build_wasm.sh new file mode 100755 index 0000000..4296e94 --- /dev/null +++ b/build_wasm.sh @@ -0,0 +1 @@ +tree-sitter build --wasm -o tree-sitter-sus.wasm diff --git a/tree.sh b/tree.sh new file mode 100755 index 0000000..a7834e4 --- /dev/null +++ b/tree.sh @@ -0,0 +1,4 @@ +tree-sitter generate && +tree-sitter parse ../tinyTestFile.sus && +head -n 16 src/parser.c + From b487044a90c0fcb94b2648996244cb21dc498c04 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Fri, 23 Aug 2024 14:24:41 +0200 Subject: [PATCH 45/49] Use #() for template instantiations --- build_wasm.sh | 1 - grammar.js | 49 +- playground.sh | 4 + src/grammar.json | 221 +- src/node-types.json | 182 +- src/parser.c | 5953 ++++++++++++++++++------------------------- tree.sh | 3 +- 7 files changed, 2681 insertions(+), 3732 deletions(-) delete mode 100755 build_wasm.sh create mode 100755 playground.sh diff --git a/build_wasm.sh b/build_wasm.sh deleted file mode 100755 index 4296e94..0000000 --- a/build_wasm.sh +++ /dev/null @@ -1 +0,0 @@ -tree-sitter build --wasm -o tree-sitter-sus.wasm diff --git a/grammar.js b/grammar.js index 68d1f7a..72fa7bb 100644 --- a/grammar.js +++ b/grammar.js @@ -33,8 +33,7 @@ const PREC = { additive: 6, multiplicative: 7, unary: 8, - postscript_op : 9, - namespace_path : 10 + postscript_op : 9 } module.exports = grammar({ @@ -267,37 +266,34 @@ module.exports = grammar({ // Utilities + namespace_list: $ => sepSeq1($.identifier, '::'), + // myFunc:: - template_global: $ => prec(PREC.namespace_path, seq( + template_global: $ => seq( optional(field('is_global_path', '::')), - field('item', $.identifier), - repeat(seq( - '::', - field('item', choice($.identifier, $.template_params)) - )) - )), + $.namespace_list, + + // Template + optional(field('template_args', $.template_args)) + ), - template_type_param : $ => seq( - optional(seq( - field('name', $.identifier), - '=' - )), - field('arg', $._type) + template_args: $ => seq( + '#(', + sepSeq($.template_arg, $._comma), + ')' ), - template_value_param : $ => seq( + + template_arg : $ => seq( + field('name', $.identifier), optional(seq( - field('name', $.identifier), - '=' + ':', + choice( + seq('type', field('type_arg', $._type)), + field('val_arg', $._expression) + ) )), - field('arg', $._expression) - ), - template_params: $ => seq( - '<', - sepSeq($.template_value_param, $._comma), - ';', - sepSeq($.template_type_param, $._comma), - '>' ), + identifier: $ => /[\p{Alphabetic}_][\p{Alphabetic}_\p{Decimal_Number}]*/, number: $ => /\d[\d_]*/, @@ -316,7 +312,6 @@ module.exports = grammar({ conflicts: $ => [ [$._type, $._expression], // Just because LR(1) is too weak to resolve 'ident[] a' vs 'type_name[]'. Tree sitter resolves this itself with more expensive GLR. NOT a precedence relation. - //[$.binary_op, $.template_params] ], word: $=> $.identifier, diff --git a/playground.sh b/playground.sh new file mode 100755 index 0000000..b085310 --- /dev/null +++ b/playground.sh @@ -0,0 +1,4 @@ +tree-sitter generate && +tree-sitter build --wasm -o tree-sitter-sus.wasm && +head -n 16 src/parser.c && +tree-sitter playground --grammar-path . diff --git a/src/grammar.json b/src/grammar.json index af8770f..7f3cdc8 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -1412,90 +1412,52 @@ } ] }, - "template_global": { - "type": "PREC", - "value": 10, - "content": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", + "namespace_list": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "item", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", "members": [ + { + "type": "STRING", + "value": "::" + }, { "type": "FIELD", - "name": "is_global_path", + "name": "item", "content": { - "type": "STRING", - "value": "::" + "type": "SYMBOL", + "name": "identifier" } - }, - { - "type": "BLANK" } ] - }, - { - "type": "FIELD", - "name": "item", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "::" - }, - { - "type": "FIELD", - "name": "item", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "SYMBOL", - "name": "template_params" - } - ] - } - } - ] - } } - ] - } + } + ] }, - "template_type_param": { + "template_global": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - }, - { - "type": "STRING", - "value": "=" - } - ] + "type": "FIELD", + "name": "is_global_path", + "content": { + "type": "STRING", + "value": "::" + } }, { "type": "BLANK" @@ -1503,59 +1465,33 @@ ] }, { - "type": "FIELD", - "name": "arg", - "content": { - "type": "SYMBOL", - "name": "_type" - } - } - ] - }, - "template_value_param": { - "type": "SEQ", - "members": [ + "type": "SYMBOL", + "name": "namespace_list" + }, { "type": "CHOICE", "members": [ { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - }, - { - "type": "STRING", - "value": "=" - } - ] + "type": "FIELD", + "name": "template_args", + "content": { + "type": "SYMBOL", + "name": "template_args" + } }, { "type": "BLANK" } ] - }, - { - "type": "FIELD", - "name": "arg", - "content": { - "type": "SYMBOL", - "name": "_expression" - } } ] }, - "template_params": { + "template_args": { "type": "SEQ", "members": [ { "type": "STRING", - "value": "<" + "value": "#(" }, { "type": "CHOICE", @@ -1568,7 +1504,7 @@ "name": "item", "content": { "type": "SYMBOL", - "name": "template_value_param" + "name": "template_arg" } }, { @@ -1585,7 +1521,7 @@ "name": "item", "content": { "type": "SYMBOL", - "name": "template_value_param" + "name": "template_arg" } } ] @@ -1600,7 +1536,20 @@ }, { "type": "STRING", - "value": ";" + "value": ")" + } + ] + }, + "template_arg": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } }, { "type": "CHOICE", @@ -1609,32 +1558,38 @@ "type": "SEQ", "members": [ { - "type": "FIELD", - "name": "item", - "content": { - "type": "SYMBOL", - "name": "template_type_param" - } + "type": "STRING", + "value": ":" }, { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_comma" - }, - { - "type": "FIELD", - "name": "item", - "content": { - "type": "SYMBOL", - "name": "template_type_param" + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "type" + }, + { + "type": "FIELD", + "name": "type_arg", + "content": { + "type": "SYMBOL", + "name": "_type" + } } + ] + }, + { + "type": "FIELD", + "name": "val_arg", + "content": { + "type": "SYMBOL", + "name": "_expression" } - ] - } + } + ] } ] }, @@ -1642,10 +1597,6 @@ "type": "BLANK" } ] - }, - { - "type": "STRING", - "value": ">" } ] }, diff --git a/src/node-types.json b/src/node-types.json index b39f3da..ce8ab1e 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -981,6 +981,22 @@ } } }, + { + "type": "namespace_list", + "named": true, + "fields": { + "item": { + "multiple": true, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + } + }, { "type": "parenthesis_expression", "named": true, @@ -1086,23 +1102,7 @@ } }, { - "type": "template_declaration_arguments", - "named": true, - "fields": { - "item": { - "multiple": true, - "required": false, - "types": [ - { - "type": "template_declaration_type", - "named": true - } - ] - } - } - }, - { - "type": "template_declaration_type", + "type": "template_arg", "named": true, "fields": { "name": { @@ -1114,33 +1114,55 @@ "named": true } ] - } - } - }, - { - "type": "template_global", - "named": true, - "fields": { - "is_global_path": { + }, + "type_arg": { "multiple": false, "required": false, "types": [ { - "type": "::", - "named": false + "type": "array_type", + "named": true + }, + { + "type": "template_global", + "named": true } ] }, - "item": { - "multiple": true, - "required": true, + "val_arg": { + "multiple": false, + "required": false, "types": [ { - "type": "identifier", + "type": "array_op", + "named": true + }, + { + "type": "binary_op", + "named": true + }, + { + "type": "field_access", + "named": true + }, + { + "type": "func_call", "named": true }, { - "type": "template_params", + "type": "number", + "named": true + }, + { + "type": "parenthesis_expression", + "named": true + }, + { + "type": "template_global", + "named": true + }, + { + "type": "unary_op", "named": true } ] @@ -1148,7 +1170,7 @@ } }, { - "type": "template_params", + "type": "template_args", "named": true, "fields": { "item": { @@ -1156,11 +1178,7 @@ "required": false, "types": [ { - "type": "template_type_param", - "named": true - }, - { - "type": "template_value_param", + "type": "template_arg", "named": true } ] @@ -1168,26 +1186,28 @@ } }, { - "type": "template_type_param", + "type": "template_declaration_arguments", "named": true, "fields": { - "arg": { - "multiple": false, - "required": true, + "item": { + "multiple": true, + "required": false, "types": [ { - "type": "array_type", - "named": true - }, - { - "type": "template_global", + "type": "template_declaration_type", "named": true } ] - }, + } + } + }, + { + "type": "template_declaration_type", + "named": true, + "fields": { "name": { "multiple": false, - "required": false, + "required": true, "types": [ { "type": "identifier", @@ -1198,57 +1218,39 @@ } }, { - "type": "template_value_param", + "type": "template_global", "named": true, "fields": { - "arg": { + "is_global_path": { "multiple": false, - "required": true, + "required": false, "types": [ { - "type": "array_op", - "named": true - }, - { - "type": "binary_op", - "named": true - }, - { - "type": "field_access", - "named": true - }, - { - "type": "func_call", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "parenthesis_expression", - "named": true - }, - { - "type": "template_global", - "named": true - }, - { - "type": "unary_op", - "named": true + "type": "::", + "named": false } ] }, - "name": { + "template_args": { "multiple": false, "required": false, "types": [ { - "type": "identifier", + "type": "template_args", "named": true } ] } + }, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "namespace_list", + "named": true + } + ] } }, { @@ -1361,6 +1363,10 @@ "type": "!=", "named": false }, + { + "type": "#(", + "named": false + }, { "type": "%", "named": false @@ -1421,10 +1427,6 @@ "type": "::", "named": false }, - { - "type": ";", - "named": false - }, { "type": "<", "named": false @@ -1545,6 +1547,10 @@ "type": "struct", "named": false }, + { + "type": "type", + "named": false + }, { "type": "{", "named": false diff --git a/src/parser.c b/src/parser.c index 2e461dd..0ac1095 100644 --- a/src/parser.c +++ b/src/parser.c @@ -5,15 +5,15 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 251 +#define STATE_COUNT 200 #define LARGE_STATE_COUNT 2 #define SYMBOL_COUNT 98 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 53 +#define TOKEN_COUNT 54 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 32 +#define FIELD_COUNT 34 #define MAX_ALIAS_SEQUENCE_LENGTH 7 -#define PRODUCTION_ID_COUNT 52 +#define PRODUCTION_ID_COUNT 49 enum ts_symbol_identifiers { sym_identifier = 1, @@ -62,57 +62,57 @@ enum ts_symbol_identifiers { anon_sym_LBRACK = 44, anon_sym_RBRACK = 45, anon_sym_COLON_COLON = 46, - anon_sym_SEMI = 47, - sym_number = 48, - anon_sym_COMMA = 49, - anon_sym_LF = 50, - sym_single_line_comment = 51, - sym_multi_line_comment = 52, - sym_source_file = 53, - sym_global_object = 54, - sym_template_declaration_arguments = 55, - sym_template_declaration_type = 56, - sym_block = 57, - sym_decl_assign_statement = 58, - sym_assign_left_side = 59, - sym_assign_to = 60, - sym_write_modifiers = 61, - sym_if_statement = 62, - sym_for_statement = 63, - sym_domain_statement = 64, - sym_interface_statement = 65, - sym_interface_ports = 66, - sym__interface_ports_output = 67, - sym_declaration_list = 68, - sym_declaration = 69, - sym_latency_specifier = 70, - sym__type = 71, - sym_array_type = 72, - sym__expression = 73, - sym_unary_op = 74, - sym_binary_op = 75, - sym_array_op = 76, - sym_func_call = 77, - sym_field_access = 78, - sym_parenthesis_expression_list = 79, - sym_parenthesis_expression = 80, - sym_array_bracket_expression = 81, - sym_template_global = 82, - sym_template_type_param = 83, - sym_template_value_param = 84, - sym_template_params = 85, - sym__comma = 86, - aux_sym__linebreak = 87, - aux_sym_source_file_repeat1 = 88, - aux_sym_template_declaration_arguments_repeat1 = 89, - aux_sym_block_repeat1 = 90, - aux_sym_assign_left_side_repeat1 = 91, - aux_sym_write_modifiers_repeat1 = 92, - aux_sym_declaration_list_repeat1 = 93, - aux_sym_parenthesis_expression_list_repeat1 = 94, - aux_sym_template_global_repeat1 = 95, - aux_sym_template_params_repeat1 = 96, - aux_sym_template_params_repeat2 = 97, + anon_sym_POUND_LPAREN = 47, + anon_sym_type = 48, + sym_number = 49, + anon_sym_COMMA = 50, + anon_sym_LF = 51, + sym_single_line_comment = 52, + sym_multi_line_comment = 53, + sym_source_file = 54, + sym_global_object = 55, + sym_template_declaration_arguments = 56, + sym_template_declaration_type = 57, + sym_block = 58, + sym_decl_assign_statement = 59, + sym_assign_left_side = 60, + sym_assign_to = 61, + sym_write_modifiers = 62, + sym_if_statement = 63, + sym_for_statement = 64, + sym_domain_statement = 65, + sym_interface_statement = 66, + sym_interface_ports = 67, + sym__interface_ports_output = 68, + sym_declaration_list = 69, + sym_declaration = 70, + sym_latency_specifier = 71, + sym__type = 72, + sym_array_type = 73, + sym__expression = 74, + sym_unary_op = 75, + sym_binary_op = 76, + sym_array_op = 77, + sym_func_call = 78, + sym_field_access = 79, + sym_parenthesis_expression_list = 80, + sym_parenthesis_expression = 81, + sym_array_bracket_expression = 82, + sym_namespace_list = 83, + sym_template_global = 84, + sym_template_args = 85, + sym_template_arg = 86, + sym__comma = 87, + aux_sym__linebreak = 88, + aux_sym_source_file_repeat1 = 89, + aux_sym_template_declaration_arguments_repeat1 = 90, + aux_sym_block_repeat1 = 91, + aux_sym_assign_left_side_repeat1 = 92, + aux_sym_write_modifiers_repeat1 = 93, + aux_sym_declaration_list_repeat1 = 94, + aux_sym_parenthesis_expression_list_repeat1 = 95, + aux_sym_namespace_list_repeat1 = 96, + aux_sym_template_args_repeat1 = 97, }; static const char * const ts_symbol_names[] = { @@ -163,7 +163,8 @@ static const char * const ts_symbol_names[] = { [anon_sym_LBRACK] = "[", [anon_sym_RBRACK] = "]", [anon_sym_COLON_COLON] = "::", - [anon_sym_SEMI] = ";", + [anon_sym_POUND_LPAREN] = "#(", + [anon_sym_type] = "type", [sym_number] = "number", [anon_sym_COMMA] = ",", [anon_sym_LF] = "\n", @@ -198,10 +199,10 @@ static const char * const ts_symbol_names[] = { [sym_parenthesis_expression_list] = "parenthesis_expression_list", [sym_parenthesis_expression] = "parenthesis_expression", [sym_array_bracket_expression] = "array_bracket_expression", + [sym_namespace_list] = "namespace_list", [sym_template_global] = "template_global", - [sym_template_type_param] = "template_type_param", - [sym_template_value_param] = "template_value_param", - [sym_template_params] = "template_params", + [sym_template_args] = "template_args", + [sym_template_arg] = "template_arg", [sym__comma] = "_comma", [aux_sym__linebreak] = "_linebreak", [aux_sym_source_file_repeat1] = "source_file_repeat1", @@ -211,9 +212,8 @@ static const char * const ts_symbol_names[] = { [aux_sym_write_modifiers_repeat1] = "write_modifiers_repeat1", [aux_sym_declaration_list_repeat1] = "declaration_list_repeat1", [aux_sym_parenthesis_expression_list_repeat1] = "parenthesis_expression_list_repeat1", - [aux_sym_template_global_repeat1] = "template_global_repeat1", - [aux_sym_template_params_repeat1] = "template_params_repeat1", - [aux_sym_template_params_repeat2] = "template_params_repeat2", + [aux_sym_namespace_list_repeat1] = "namespace_list_repeat1", + [aux_sym_template_args_repeat1] = "template_args_repeat1", }; static const TSSymbol ts_symbol_map[] = { @@ -264,7 +264,8 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_LBRACK] = anon_sym_LBRACK, [anon_sym_RBRACK] = anon_sym_RBRACK, [anon_sym_COLON_COLON] = anon_sym_COLON_COLON, - [anon_sym_SEMI] = anon_sym_SEMI, + [anon_sym_POUND_LPAREN] = anon_sym_POUND_LPAREN, + [anon_sym_type] = anon_sym_type, [sym_number] = sym_number, [anon_sym_COMMA] = anon_sym_COMMA, [anon_sym_LF] = anon_sym_LF, @@ -299,10 +300,10 @@ static const TSSymbol ts_symbol_map[] = { [sym_parenthesis_expression_list] = sym_parenthesis_expression_list, [sym_parenthesis_expression] = sym_parenthesis_expression, [sym_array_bracket_expression] = sym_array_bracket_expression, + [sym_namespace_list] = sym_namespace_list, [sym_template_global] = sym_template_global, - [sym_template_type_param] = sym_template_type_param, - [sym_template_value_param] = sym_template_value_param, - [sym_template_params] = sym_template_params, + [sym_template_args] = sym_template_args, + [sym_template_arg] = sym_template_arg, [sym__comma] = sym__comma, [aux_sym__linebreak] = aux_sym__linebreak, [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1, @@ -312,9 +313,8 @@ static const TSSymbol ts_symbol_map[] = { [aux_sym_write_modifiers_repeat1] = aux_sym_write_modifiers_repeat1, [aux_sym_declaration_list_repeat1] = aux_sym_declaration_list_repeat1, [aux_sym_parenthesis_expression_list_repeat1] = aux_sym_parenthesis_expression_list_repeat1, - [aux_sym_template_global_repeat1] = aux_sym_template_global_repeat1, - [aux_sym_template_params_repeat1] = aux_sym_template_params_repeat1, - [aux_sym_template_params_repeat2] = aux_sym_template_params_repeat2, + [aux_sym_namespace_list_repeat1] = aux_sym_namespace_list_repeat1, + [aux_sym_template_args_repeat1] = aux_sym_template_args_repeat1, }; static const TSSymbolMetadata ts_symbol_metadata[] = { @@ -506,7 +506,11 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_SEMI] = { + [anon_sym_POUND_LPAREN] = { + .visible = true, + .named = false, + }, + [anon_sym_type] = { .visible = true, .named = false, }, @@ -646,19 +650,19 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_template_global] = { + [sym_namespace_list] = { .visible = true, .named = true, }, - [sym_template_type_param] = { + [sym_template_global] = { .visible = true, .named = true, }, - [sym_template_value_param] = { + [sym_template_args] = { .visible = true, .named = true, }, - [sym_template_params] = { + [sym_template_arg] = { .visible = true, .named = true, }, @@ -698,58 +702,55 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, - [aux_sym_template_global_repeat1] = { - .visible = false, - .named = false, - }, - [aux_sym_template_params_repeat1] = { + [aux_sym_namespace_list_repeat1] = { .visible = false, .named = false, }, - [aux_sym_template_params_repeat2] = { + [aux_sym_template_args_repeat1] = { .visible = false, .named = false, }, }; enum ts_field_identifiers { - field_arg = 1, - field_arguments = 2, - field_arr = 3, - field_arr_idx = 4, - field_assign_left = 5, - field_assign_value = 6, - field_block = 7, - field_condition = 8, - field_content = 9, - field_declaration_modifiers = 10, - field_else_block = 11, - field_expr_or_decl = 12, - field_extern_marker = 13, - field_for_decl = 14, - field_from = 15, - field_inputs = 16, - field_interface_ports = 17, - field_io_port_modifiers = 18, - field_is_global_path = 19, - field_item = 20, - field_latency_specifier = 21, - field_left = 22, - field_name = 23, - field_object_type = 24, - field_operator = 25, - field_outputs = 26, - field_right = 27, + field_arguments = 1, + field_arr = 2, + field_arr_idx = 3, + field_assign_left = 4, + field_assign_value = 5, + field_block = 6, + field_condition = 7, + field_content = 8, + field_declaration_modifiers = 9, + field_else_block = 10, + field_expr_or_decl = 11, + field_extern_marker = 12, + field_for_decl = 13, + field_from = 14, + field_inputs = 15, + field_interface_ports = 16, + field_io_port_modifiers = 17, + field_is_global_path = 18, + field_item = 19, + field_latency_specifier = 20, + field_left = 21, + field_name = 22, + field_object_type = 23, + field_operator = 24, + field_outputs = 25, + field_right = 26, + field_template_args = 27, field_template_declaration_arguments = 28, field_then_block = 29, field_to = 30, field_type = 31, - field_write_modifiers = 32, + field_type_arg = 32, + field_val_arg = 33, + field_write_modifiers = 34, }; static const char * const ts_field_names[] = { [0] = NULL, - [field_arg] = "arg", [field_arguments] = "arguments", [field_arr] = "arr", [field_arr_idx] = "arr_idx", @@ -776,10 +777,13 @@ static const char * const ts_field_names[] = { [field_operator] = "operator", [field_outputs] = "outputs", [field_right] = "right", + [field_template_args] = "template_args", [field_template_declaration_arguments] = "template_declaration_arguments", [field_then_block] = "then_block", [field_to] = "to", [field_type] = "type", + [field_type_arg] = "type_arg", + [field_val_arg] = "val_arg", [field_write_modifiers] = "write_modifiers", }; @@ -798,43 +802,40 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [12] = {.index = 22, .length = 5}, [13] = {.index = 27, .length = 1}, [14] = {.index = 28, .length = 2}, - [15] = {.index = 30, .length = 2}, - [16] = {.index = 32, .length = 2}, - [17] = {.index = 34, .length = 2}, - [18] = {.index = 36, .length = 2}, - [19] = {.index = 38, .length = 2}, - [20] = {.index = 40, .length = 2}, - [21] = {.index = 42, .length = 2}, - [22] = {.index = 44, .length = 3}, - [23] = {.index = 47, .length = 3}, - [24] = {.index = 50, .length = 1}, - [25] = {.index = 51, .length = 3}, - [26] = {.index = 54, .length = 2}, - [27] = {.index = 56, .length = 3}, - [28] = {.index = 59, .length = 3}, - [29] = {.index = 62, .length = 2}, - [30] = {.index = 64, .length = 1}, - [31] = {.index = 65, .length = 1}, - [32] = {.index = 66, .length = 1}, - [33] = {.index = 67, .length = 4}, - [34] = {.index = 71, .length = 4}, - [35] = {.index = 75, .length = 4}, - [36] = {.index = 79, .length = 1}, - [37] = {.index = 80, .length = 2}, - [38] = {.index = 82, .length = 3}, - [39] = {.index = 85, .length = 1}, - [40] = {.index = 86, .length = 2}, - [41] = {.index = 88, .length = 1}, - [42] = {.index = 89, .length = 1}, - [43] = {.index = 90, .length = 5}, - [44] = {.index = 95, .length = 1}, - [45] = {.index = 96, .length = 2}, - [46] = {.index = 98, .length = 2}, - [47] = {.index = 100, .length = 4}, - [48] = {.index = 104, .length = 2}, - [49] = {.index = 106, .length = 3}, - [50] = {.index = 109, .length = 3}, - [51] = {.index = 112, .length = 4}, + [15] = {.index = 30, .length = 1}, + [16] = {.index = 31, .length = 2}, + [17] = {.index = 33, .length = 2}, + [18] = {.index = 35, .length = 2}, + [19] = {.index = 37, .length = 2}, + [20] = {.index = 39, .length = 1}, + [21] = {.index = 40, .length = 2}, + [22] = {.index = 42, .length = 2}, + [23] = {.index = 44, .length = 3}, + [24] = {.index = 47, .length = 3}, + [25] = {.index = 50, .length = 1}, + [26] = {.index = 51, .length = 2}, + [27] = {.index = 53, .length = 2}, + [28] = {.index = 55, .length = 3}, + [29] = {.index = 58, .length = 3}, + [30] = {.index = 61, .length = 2}, + [31] = {.index = 63, .length = 1}, + [32] = {.index = 64, .length = 1}, + [33] = {.index = 65, .length = 1}, + [34] = {.index = 66, .length = 4}, + [35] = {.index = 70, .length = 4}, + [36] = {.index = 74, .length = 4}, + [37] = {.index = 78, .length = 2}, + [38] = {.index = 80, .length = 3}, + [39] = {.index = 83, .length = 1}, + [40] = {.index = 84, .length = 2}, + [41] = {.index = 86, .length = 1}, + [42] = {.index = 87, .length = 1}, + [43] = {.index = 88, .length = 5}, + [44] = {.index = 93, .length = 2}, + [45] = {.index = 95, .length = 1}, + [46] = {.index = 96, .length = 2}, + [47] = {.index = 98, .length = 2}, + [48] = {.index = 100, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -884,19 +885,20 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_right, 1}, [30] = {field_is_global_path, 0}, - {field_item, 1}, - [32] = + [31] = {field_expr_or_decl, 1}, {field_write_modifiers, 0}, - [34] = + [33] = {field_name, 1}, {field_type, 0}, - [36] = + [35] = {field_arr, 0}, {field_arr_idx, 1}, - [38] = + [37] = {field_arguments, 1}, {field_name, 0}, + [39] = + {field_template_args, 1}, [40] = {field_condition, 1}, {field_then_block, 2}, @@ -915,96 +917,80 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_content, 1}, [51] = {field_is_global_path, 0}, - {field_item, 1}, - {field_item, 2, .inherited = true}, - [54] = + {field_template_args, 2}, + [53] = {field_assign_left, 0}, {field_assign_value, 2}, - [56] = + [55] = {field_latency_specifier, 2}, {field_name, 1}, {field_type, 0}, - [59] = + [58] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [62] = + [61] = {field_left, 0}, {field_name, 2}, - [64] = + [63] = {field_item, 2}, - [65] = + [64] = {field_outputs, 1, .inherited = true}, - [66] = + [65] = {field_inputs, 1}, - [67] = + [66] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_name, 3}, {field_type, 2}, - [71] = + [70] = {field_io_port_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [75] = + [74] = {field_declaration_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [79] = - {field_arg, 0}, - [80] = + [78] = {field_item, 2}, {field_item, 3, .inherited = true}, - [82] = + [80] = {field_condition, 1}, {field_else_block, 4}, {field_then_block, 2}, - [85] = + [83] = {field_outputs, 1}, - [86] = + [84] = {field_inputs, 1}, {field_outputs, 2, .inherited = true}, - [88] = + [86] = {field_outputs, 2, .inherited = true}, - [89] = + [87] = {field_inputs, 2}, - [90] = + [88] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_latency_specifier, 4}, {field_name, 3}, {field_type, 2}, + [93] = + {field_name, 0}, + {field_val_arg, 2}, [95] = {field_outputs, 2}, [96] = {field_inputs, 2}, {field_outputs, 3, .inherited = true}, [98] = - {field_arg, 2}, {field_name, 0}, + {field_type_arg, 3}, [100] = {field_block, 6}, {field_for_decl, 1}, {field_from, 3}, {field_to, 5}, - [104] = - {field_item, 1}, - {field_item, 3}, - [106] = - {field_item, 1}, - {field_item, 3}, - {field_item, 4, .inherited = true}, - [109] = - {field_item, 1}, - {field_item, 2, .inherited = true}, - {field_item, 4}, - [112] = - {field_item, 1}, - {field_item, 2, .inherited = true}, - {field_item, 4}, - {field_item, 5, .inherited = true}, }; static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { @@ -1070,7 +1056,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [51] = 51, [52] = 52, [53] = 53, - [54] = 52, + [54] = 54, [55] = 55, [56] = 56, [57] = 57, @@ -1079,13 +1065,13 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [60] = 60, [61] = 61, [62] = 62, - [63] = 60, + [63] = 63, [64] = 64, [65] = 65, [66] = 66, [67] = 67, [68] = 68, - [69] = 68, + [69] = 69, [70] = 70, [71] = 71, [72] = 72, @@ -1103,7 +1089,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [84] = 84, [85] = 85, [86] = 86, - [87] = 87, + [87] = 39, [88] = 88, [89] = 89, [90] = 90, @@ -1117,16 +1103,16 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [98] = 98, [99] = 99, [100] = 100, - [101] = 42, + [101] = 101, [102] = 102, [103] = 103, [104] = 104, [105] = 105, [106] = 106, - [107] = 104, + [107] = 107, [108] = 108, - [109] = 106, - [110] = 108, + [109] = 109, + [110] = 110, [111] = 111, [112] = 112, [113] = 113, @@ -1140,15 +1126,15 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [121] = 121, [122] = 122, [123] = 123, - [124] = 11, - [125] = 14, + [124] = 124, + [125] = 125, [126] = 126, - [127] = 13, + [127] = 127, [128] = 128, [129] = 129, [130] = 130, - [131] = 16, - [132] = 15, + [131] = 131, + [132] = 132, [133] = 133, [134] = 134, [135] = 135, @@ -1169,104 +1155,53 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [150] = 150, [151] = 151, [152] = 152, - [153] = 136, + [153] = 153, [154] = 154, [155] = 155, [156] = 156, - [157] = 30, - [158] = 28, - [159] = 26, + [157] = 157, + [158] = 158, + [159] = 159, [160] = 160, [161] = 161, [162] = 162, [163] = 163, [164] = 164, [165] = 165, - [166] = 17, - [167] = 24, - [168] = 23, - [169] = 21, - [170] = 20, - [171] = 19, + [166] = 166, + [167] = 167, + [168] = 168, + [169] = 169, + [170] = 170, + [171] = 171, [172] = 172, - [173] = 18, + [173] = 173, [174] = 174, [175] = 175, [176] = 176, [177] = 177, [178] = 178, [179] = 179, - [180] = 155, + [180] = 180, [181] = 181, [182] = 182, [183] = 183, - [184] = 135, - [185] = 141, + [184] = 184, + [185] = 185, [186] = 186, [187] = 187, [188] = 188, [189] = 189, - [190] = 142, - [191] = 143, + [190] = 190, + [191] = 191, [192] = 192, [193] = 193, [194] = 194, [195] = 195, [196] = 196, [197] = 197, - [198] = 149, + [198] = 198, [199] = 199, - [200] = 200, - [201] = 144, - [202] = 202, - [203] = 203, - [204] = 204, - [205] = 34, - [206] = 206, - [207] = 207, - [208] = 208, - [209] = 209, - [210] = 210, - [211] = 206, - [212] = 212, - [213] = 213, - [214] = 214, - [215] = 215, - [216] = 216, - [217] = 217, - [218] = 218, - [219] = 219, - [220] = 220, - [221] = 221, - [222] = 222, - [223] = 223, - [224] = 224, - [225] = 225, - [226] = 226, - [227] = 227, - [228] = 228, - [229] = 229, - [230] = 230, - [231] = 231, - [232] = 232, - [233] = 233, - [234] = 234, - [235] = 235, - [236] = 236, - [237] = 237, - [238] = 238, - [239] = 239, - [240] = 240, - [241] = 241, - [242] = 242, - [243] = 243, - [244] = 244, - [245] = 241, - [246] = 246, - [247] = 247, - [248] = 248, - [249] = 249, - [250] = 250, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -3184,124 +3119,119 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (eof) ADVANCE(8); - if (lookahead == '\n') ADVANCE(44); - if (lookahead == '!') ADVANCE(24); - if (lookahead == '%') ADVANCE(33); - if (lookahead == '&') ADVANCE(26); - if (lookahead == '\'') ADVANCE(19); - if (lookahead == '(') ADVANCE(35); - if (lookahead == ')') ADVANCE(36); - if (lookahead == '*') ADVANCE(22); - if (lookahead == '+') ADVANCE(20); - if (lookahead == ',') ADVANCE(43); - if (lookahead == '-') ADVANCE(21); - if (lookahead == '.') ADVANCE(34); - if (lookahead == '/') ADVANCE(32); - if (lookahead == ':') ADVANCE(17); - if (lookahead == ';') ADVANCE(40); - if (lookahead == '<') ADVANCE(9); - if (lookahead == '=') ADVANCE(15); + if (eof) ADVANCE(9); + if (lookahead == '\n') ADVANCE(43); + if (lookahead == '!') ADVANCE(23); + if (lookahead == '#') ADVANCE(3); + if (lookahead == '%') ADVANCE(32); + if (lookahead == '&') ADVANCE(25); + if (lookahead == '\'') ADVANCE(18); + if (lookahead == '(') ADVANCE(34); + if (lookahead == ')') ADVANCE(35); + if (lookahead == '*') ADVANCE(21); + if (lookahead == '+') ADVANCE(19); + if (lookahead == ',') ADVANCE(42); + if (lookahead == '-') ADVANCE(20); + if (lookahead == '.') ADVANCE(33); + if (lookahead == '/') ADVANCE(31); + if (lookahead == ':') ADVANCE(16); + if (lookahead == '<') ADVANCE(10); + if (lookahead == '=') ADVANCE(14); if (lookahead == '>') ADVANCE(11); - if (lookahead == '[') ADVANCE(37); - if (lookahead == ']') ADVANCE(38); - if (lookahead == '^') ADVANCE(27); + if (lookahead == '[') ADVANCE(36); + if (lookahead == ']') ADVANCE(37); + if (lookahead == '^') ADVANCE(26); if (lookahead == '{') ADVANCE(12); - if (lookahead == '|') ADVANCE(25); + if (lookahead == '|') ADVANCE(24); if (lookahead == '}') ADVANCE(13); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(0) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(41); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(41); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(40); END_STATE(); case 1: - if (lookahead == '\n') ADVANCE(44); - if (lookahead == '!') ADVANCE(23); - if (lookahead == '&') ADVANCE(26); - if (lookahead == '(') ADVANCE(35); - if (lookahead == ')') ADVANCE(36); - if (lookahead == '*') ADVANCE(22); - if (lookahead == '+') ADVANCE(20); - if (lookahead == ',') ADVANCE(43); - if (lookahead == '-') ADVANCE(21); - if (lookahead == '/') ADVANCE(3); - if (lookahead == ':') ADVANCE(6); - if (lookahead == ';') ADVANCE(40); - if (lookahead == '=') ADVANCE(14); - if (lookahead == '>') ADVANCE(10); - if (lookahead == '[') ADVANCE(37); - if (lookahead == '^') ADVANCE(27); + if (lookahead == '\n') ADVANCE(43); + if (lookahead == '!') ADVANCE(22); + if (lookahead == '&') ADVANCE(25); + if (lookahead == '(') ADVANCE(34); + if (lookahead == ')') ADVANCE(35); + if (lookahead == '*') ADVANCE(21); + if (lookahead == '+') ADVANCE(19); + if (lookahead == '-') ADVANCE(20); + if (lookahead == '/') ADVANCE(4); + if (lookahead == ':') ADVANCE(7); + if (lookahead == '^') ADVANCE(26); if (lookahead == '{') ADVANCE(12); - if (lookahead == '|') ADVANCE(25); + if (lookahead == '|') ADVANCE(24); if (lookahead == '}') ADVANCE(13); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(1) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(41); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(41); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(40); END_STATE(); case 2: - if (lookahead == '\n') ADVANCE(44); - if (lookahead == '!') ADVANCE(7); - if (lookahead == '%') ADVANCE(33); - if (lookahead == '&') ADVANCE(26); - if (lookahead == '(') ADVANCE(35); - if (lookahead == ')') ADVANCE(36); - if (lookahead == '*') ADVANCE(22); - if (lookahead == '+') ADVANCE(20); - if (lookahead == ',') ADVANCE(43); - if (lookahead == '-') ADVANCE(21); - if (lookahead == '.') ADVANCE(34); - if (lookahead == '/') ADVANCE(32); - if (lookahead == ':') ADVANCE(6); - if (lookahead == ';') ADVANCE(40); - if (lookahead == '<') ADVANCE(9); - if (lookahead == '=') ADVANCE(15); + if (lookahead == '\n') ADVANCE(43); + if (lookahead == '!') ADVANCE(8); + if (lookahead == '#') ADVANCE(3); + if (lookahead == '%') ADVANCE(32); + if (lookahead == '&') ADVANCE(25); + if (lookahead == '(') ADVANCE(34); + if (lookahead == ')') ADVANCE(35); + if (lookahead == '*') ADVANCE(21); + if (lookahead == '+') ADVANCE(19); + if (lookahead == ',') ADVANCE(42); + if (lookahead == '-') ADVANCE(20); + if (lookahead == '.') ADVANCE(33); + if (lookahead == '/') ADVANCE(31); + if (lookahead == ':') ADVANCE(7); + if (lookahead == '<') ADVANCE(10); + if (lookahead == '=') ADVANCE(14); if (lookahead == '>') ADVANCE(11); - if (lookahead == '[') ADVANCE(37); - if (lookahead == ']') ADVANCE(38); - if (lookahead == '^') ADVANCE(27); + if (lookahead == '[') ADVANCE(36); + if (lookahead == ']') ADVANCE(37); + if (lookahead == '^') ADVANCE(26); if (lookahead == '{') ADVANCE(12); - if (lookahead == '|') ADVANCE(25); + if (lookahead == '|') ADVANCE(24); if (lookahead == '}') ADVANCE(13); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(2) - if (sym_identifier_character_set_1(lookahead)) ADVANCE(41); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(40); END_STATE(); case 3: - if (lookahead == '*') ADVANCE(5); - if (lookahead == '/') ADVANCE(45); + if (lookahead == '(') ADVANCE(39); END_STATE(); case 4: - if (lookahead == '*') ADVANCE(4); - if (lookahead == '/') ADVANCE(46); - if (lookahead != 0) ADVANCE(5); + if (lookahead == '*') ADVANCE(6); + if (lookahead == '/') ADVANCE(44); END_STATE(); case 5: - if (lookahead == '*') ADVANCE(4); - if (lookahead != 0) ADVANCE(5); + if (lookahead == '*') ADVANCE(5); + if (lookahead == '/') ADVANCE(45); + if (lookahead != 0) ADVANCE(6); END_STATE(); case 6: - if (lookahead == ':') ADVANCE(39); + if (lookahead == '*') ADVANCE(5); + if (lookahead != 0) ADVANCE(6); END_STATE(); case 7: - if (lookahead == '=') ADVANCE(29); + if (lookahead == ':') ADVANCE(38); END_STATE(); case 8: - ACCEPT_TOKEN(ts_builtin_sym_end); + if (lookahead == '=') ADVANCE(28); END_STATE(); case 9: - ACCEPT_TOKEN(anon_sym_LT); - if (lookahead == '=') ADVANCE(30); + ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); case 10: - ACCEPT_TOKEN(anon_sym_GT); + ACCEPT_TOKEN(anon_sym_LT); + if (lookahead == '=') ADVANCE(29); END_STATE(); case 11: ACCEPT_TOKEN(anon_sym_GT); - if (lookahead == '=') ADVANCE(31); + if (lookahead == '=') ADVANCE(30); END_STATE(); case 12: ACCEPT_TOKEN(anon_sym_LBRACE); @@ -3311,112 +3241,109 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 14: ACCEPT_TOKEN(anon_sym_EQ); + if (lookahead == '=') ADVANCE(27); END_STATE(); case 15: - ACCEPT_TOKEN(anon_sym_EQ); - if (lookahead == '=') ADVANCE(28); + ACCEPT_TOKEN(anon_sym_DOT_DOT); END_STATE(); case 16: - ACCEPT_TOKEN(anon_sym_DOT_DOT); + ACCEPT_TOKEN(anon_sym_COLON); END_STATE(); case 17: - ACCEPT_TOKEN(anon_sym_COLON); + ACCEPT_TOKEN(anon_sym_DASH_GT); END_STATE(); case 18: - ACCEPT_TOKEN(anon_sym_DASH_GT); + ACCEPT_TOKEN(anon_sym_SQUOTE); END_STATE(); case 19: - ACCEPT_TOKEN(anon_sym_SQUOTE); + ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); case 20: - ACCEPT_TOKEN(anon_sym_PLUS); + ACCEPT_TOKEN(anon_sym_DASH); + if (lookahead == '>') ADVANCE(17); END_STATE(); case 21: - ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '>') ADVANCE(18); + ACCEPT_TOKEN(anon_sym_STAR); END_STATE(); case 22: - ACCEPT_TOKEN(anon_sym_STAR); + ACCEPT_TOKEN(anon_sym_BANG); END_STATE(); case 23: ACCEPT_TOKEN(anon_sym_BANG); + if (lookahead == '=') ADVANCE(28); END_STATE(); case 24: - ACCEPT_TOKEN(anon_sym_BANG); - if (lookahead == '=') ADVANCE(29); + ACCEPT_TOKEN(anon_sym_PIPE); END_STATE(); case 25: - ACCEPT_TOKEN(anon_sym_PIPE); + ACCEPT_TOKEN(anon_sym_AMP); END_STATE(); case 26: - ACCEPT_TOKEN(anon_sym_AMP); + ACCEPT_TOKEN(anon_sym_CARET); END_STATE(); case 27: - ACCEPT_TOKEN(anon_sym_CARET); + ACCEPT_TOKEN(anon_sym_EQ_EQ); END_STATE(); case 28: - ACCEPT_TOKEN(anon_sym_EQ_EQ); + ACCEPT_TOKEN(anon_sym_BANG_EQ); END_STATE(); case 29: - ACCEPT_TOKEN(anon_sym_BANG_EQ); + ACCEPT_TOKEN(anon_sym_LT_EQ); END_STATE(); case 30: - ACCEPT_TOKEN(anon_sym_LT_EQ); + ACCEPT_TOKEN(anon_sym_GT_EQ); END_STATE(); case 31: - ACCEPT_TOKEN(anon_sym_GT_EQ); + ACCEPT_TOKEN(anon_sym_SLASH); + if (lookahead == '*') ADVANCE(6); + if (lookahead == '/') ADVANCE(44); END_STATE(); case 32: - ACCEPT_TOKEN(anon_sym_SLASH); - if (lookahead == '*') ADVANCE(5); - if (lookahead == '/') ADVANCE(45); + ACCEPT_TOKEN(anon_sym_PERCENT); END_STATE(); case 33: - ACCEPT_TOKEN(anon_sym_PERCENT); + ACCEPT_TOKEN(anon_sym_DOT); + if (lookahead == '.') ADVANCE(15); END_STATE(); case 34: - ACCEPT_TOKEN(anon_sym_DOT); - if (lookahead == '.') ADVANCE(16); + ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); case 35: - ACCEPT_TOKEN(anon_sym_LPAREN); + ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); case 36: - ACCEPT_TOKEN(anon_sym_RPAREN); + ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); case 37: - ACCEPT_TOKEN(anon_sym_LBRACK); + ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); case 38: - ACCEPT_TOKEN(anon_sym_RBRACK); + ACCEPT_TOKEN(anon_sym_COLON_COLON); END_STATE(); case 39: - ACCEPT_TOKEN(anon_sym_COLON_COLON); + ACCEPT_TOKEN(anon_sym_POUND_LPAREN); END_STATE(); case 40: - ACCEPT_TOKEN(anon_sym_SEMI); - END_STATE(); - case 41: ACCEPT_TOKEN(sym_identifier); - if (sym_identifier_character_set_2(lookahead)) ADVANCE(41); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(40); END_STATE(); - case 42: + case 41: ACCEPT_TOKEN(sym_number); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(42); + lookahead == '_') ADVANCE(41); END_STATE(); - case 43: + case 42: ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); - case 44: + case 43: ACCEPT_TOKEN(anon_sym_LF); END_STATE(); - case 45: + case 44: ACCEPT_TOKEN(sym_single_line_comment); if (lookahead != 0 && - lookahead != '\n') ADVANCE(45); + lookahead != '\n') ADVANCE(44); END_STATE(); - case 46: + case 45: ACCEPT_TOKEN(sym_multi_line_comment); END_STATE(); default: @@ -3439,258 +3366,271 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { if (lookahead == 'o') ADVANCE(8); if (lookahead == 'r') ADVANCE(9); if (lookahead == 's') ADVANCE(10); + if (lookahead == 't') ADVANCE(11); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(0) END_STATE(); case 1: - if (lookahead == '_') ADVANCE(11); + if (lookahead == '_') ADVANCE(12); END_STATE(); case 2: - if (lookahead == 'o') ADVANCE(12); + if (lookahead == 'o') ADVANCE(13); END_STATE(); case 3: - if (lookahead == 'l') ADVANCE(13); - if (lookahead == 'x') ADVANCE(14); + if (lookahead == 'l') ADVANCE(14); + if (lookahead == 'x') ADVANCE(15); END_STATE(); case 4: - if (lookahead == 'o') ADVANCE(15); - if (lookahead == 'u') ADVANCE(16); + if (lookahead == 'o') ADVANCE(16); + if (lookahead == 'u') ADVANCE(17); END_STATE(); case 5: - if (lookahead == 'e') ADVANCE(17); + if (lookahead == 'e') ADVANCE(18); END_STATE(); case 6: - if (lookahead == 'f') ADVANCE(18); - if (lookahead == 'n') ADVANCE(19); + if (lookahead == 'f') ADVANCE(19); + if (lookahead == 'n') ADVANCE(20); END_STATE(); case 7: - if (lookahead == 'o') ADVANCE(20); + if (lookahead == 'o') ADVANCE(21); END_STATE(); case 8: - if (lookahead == 'u') ADVANCE(21); + if (lookahead == 'u') ADVANCE(22); END_STATE(); case 9: - if (lookahead == 'e') ADVANCE(22); + if (lookahead == 'e') ADVANCE(23); END_STATE(); case 10: - if (lookahead == 't') ADVANCE(23); + if (lookahead == 't') ADVANCE(24); END_STATE(); case 11: - if (lookahead == 'b') ADVANCE(24); + if (lookahead == 'y') ADVANCE(25); END_STATE(); case 12: - if (lookahead == 'm') ADVANCE(25); + if (lookahead == 'b') ADVANCE(26); END_STATE(); case 13: - if (lookahead == 's') ADVANCE(26); + if (lookahead == 'm') ADVANCE(27); END_STATE(); case 14: - if (lookahead == 't') ADVANCE(27); + if (lookahead == 's') ADVANCE(28); END_STATE(); case 15: - if (lookahead == 'r') ADVANCE(28); + if (lookahead == 't') ADVANCE(29); END_STATE(); case 16: - if (lookahead == 'n') ADVANCE(29); + if (lookahead == 'r') ADVANCE(30); END_STATE(); case 17: - if (lookahead == 'n') ADVANCE(30); + if (lookahead == 'n') ADVANCE(31); END_STATE(); case 18: - ACCEPT_TOKEN(anon_sym_if); + if (lookahead == 'n') ADVANCE(32); END_STATE(); case 19: - ACCEPT_TOKEN(anon_sym_in); - if (lookahead == 'i') ADVANCE(31); - if (lookahead == 'p') ADVANCE(32); - if (lookahead == 't') ADVANCE(33); + ACCEPT_TOKEN(anon_sym_if); END_STATE(); case 20: - if (lookahead == 'd') ADVANCE(34); + ACCEPT_TOKEN(anon_sym_in); + if (lookahead == 'i') ADVANCE(33); + if (lookahead == 'p') ADVANCE(34); + if (lookahead == 't') ADVANCE(35); END_STATE(); case 21: - if (lookahead == 't') ADVANCE(35); + if (lookahead == 'd') ADVANCE(36); END_STATE(); case 22: - if (lookahead == 'g') ADVANCE(36); + if (lookahead == 't') ADVANCE(37); END_STATE(); case 23: - if (lookahead == 'a') ADVANCE(37); - if (lookahead == 'r') ADVANCE(38); + if (lookahead == 'g') ADVANCE(38); END_STATE(); case 24: - if (lookahead == 'u') ADVANCE(39); + if (lookahead == 'a') ADVANCE(39); + if (lookahead == 'r') ADVANCE(40); END_STATE(); case 25: - if (lookahead == 'a') ADVANCE(40); + if (lookahead == 'p') ADVANCE(41); END_STATE(); case 26: - if (lookahead == 'e') ADVANCE(41); + if (lookahead == 'u') ADVANCE(42); END_STATE(); case 27: - if (lookahead == 'e') ADVANCE(42); + if (lookahead == 'a') ADVANCE(43); END_STATE(); case 28: - ACCEPT_TOKEN(anon_sym_for); + if (lookahead == 'e') ADVANCE(44); END_STATE(); case 29: - if (lookahead == 'c') ADVANCE(43); + if (lookahead == 'e') ADVANCE(45); END_STATE(); case 30: - ACCEPT_TOKEN(anon_sym_gen); + ACCEPT_TOKEN(anon_sym_for); END_STATE(); case 31: - if (lookahead == 't') ADVANCE(44); + if (lookahead == 'c') ADVANCE(46); END_STATE(); case 32: - if (lookahead == 'u') ADVANCE(45); + ACCEPT_TOKEN(anon_sym_gen); END_STATE(); case 33: - if (lookahead == 'e') ADVANCE(46); + if (lookahead == 't') ADVANCE(47); END_STATE(); case 34: - if (lookahead == 'u') ADVANCE(47); + if (lookahead == 'u') ADVANCE(48); END_STATE(); case 35: - if (lookahead == 'p') ADVANCE(48); + if (lookahead == 'e') ADVANCE(49); END_STATE(); case 36: - ACCEPT_TOKEN(anon_sym_reg); + if (lookahead == 'u') ADVANCE(50); END_STATE(); case 37: - if (lookahead == 't') ADVANCE(49); + if (lookahead == 'p') ADVANCE(51); END_STATE(); case 38: - if (lookahead == 'u') ADVANCE(50); + ACCEPT_TOKEN(anon_sym_reg); END_STATE(); case 39: - if (lookahead == 'i') ADVANCE(51); + if (lookahead == 't') ADVANCE(52); END_STATE(); case 40: - if (lookahead == 'i') ADVANCE(52); + if (lookahead == 'u') ADVANCE(53); END_STATE(); case 41: - ACCEPT_TOKEN(anon_sym_else); + if (lookahead == 'e') ADVANCE(54); END_STATE(); case 42: - if (lookahead == 'r') ADVANCE(53); + if (lookahead == 'i') ADVANCE(55); END_STATE(); case 43: - if (lookahead == 't') ADVANCE(54); + if (lookahead == 'i') ADVANCE(56); END_STATE(); case 44: - if (lookahead == 'i') ADVANCE(55); + ACCEPT_TOKEN(anon_sym_else); END_STATE(); case 45: - if (lookahead == 't') ADVANCE(56); + if (lookahead == 'r') ADVANCE(57); END_STATE(); case 46: - if (lookahead == 'r') ADVANCE(57); + if (lookahead == 't') ADVANCE(58); END_STATE(); case 47: - if (lookahead == 'l') ADVANCE(58); + if (lookahead == 'i') ADVANCE(59); END_STATE(); case 48: - if (lookahead == 'u') ADVANCE(59); + if (lookahead == 't') ADVANCE(60); END_STATE(); case 49: - if (lookahead == 'e') ADVANCE(60); + if (lookahead == 'r') ADVANCE(61); END_STATE(); case 50: - if (lookahead == 'c') ADVANCE(61); + if (lookahead == 'l') ADVANCE(62); END_STATE(); case 51: - if (lookahead == 'l') ADVANCE(62); + if (lookahead == 'u') ADVANCE(63); END_STATE(); case 52: - if (lookahead == 'n') ADVANCE(63); + if (lookahead == 'e') ADVANCE(64); END_STATE(); case 53: - if (lookahead == 'n') ADVANCE(64); + if (lookahead == 'c') ADVANCE(65); END_STATE(); case 54: - if (lookahead == 'i') ADVANCE(65); + ACCEPT_TOKEN(anon_sym_type); END_STATE(); case 55: - if (lookahead == 'a') ADVANCE(66); + if (lookahead == 'l') ADVANCE(66); END_STATE(); case 56: - ACCEPT_TOKEN(anon_sym_input); + if (lookahead == 'n') ADVANCE(67); END_STATE(); case 57: - if (lookahead == 'f') ADVANCE(67); + if (lookahead == 'n') ADVANCE(68); END_STATE(); case 58: - if (lookahead == 'e') ADVANCE(68); + if (lookahead == 'i') ADVANCE(69); END_STATE(); case 59: - if (lookahead == 't') ADVANCE(69); + if (lookahead == 'a') ADVANCE(70); END_STATE(); case 60: - ACCEPT_TOKEN(anon_sym_state); + ACCEPT_TOKEN(anon_sym_input); END_STATE(); case 61: - if (lookahead == 't') ADVANCE(70); + if (lookahead == 'f') ADVANCE(71); END_STATE(); case 62: - if (lookahead == 't') ADVANCE(71); + if (lookahead == 'e') ADVANCE(72); END_STATE(); case 63: - ACCEPT_TOKEN(anon_sym_domain); + if (lookahead == 't') ADVANCE(73); END_STATE(); case 64: - ACCEPT_TOKEN(anon_sym_extern); + ACCEPT_TOKEN(anon_sym_state); END_STATE(); case 65: - if (lookahead == 'o') ADVANCE(72); + if (lookahead == 't') ADVANCE(74); END_STATE(); case 66: - if (lookahead == 'l') ADVANCE(73); + if (lookahead == 't') ADVANCE(75); END_STATE(); case 67: - if (lookahead == 'a') ADVANCE(74); + ACCEPT_TOKEN(anon_sym_domain); END_STATE(); case 68: - ACCEPT_TOKEN(anon_sym_module); + ACCEPT_TOKEN(anon_sym_extern); END_STATE(); case 69: - ACCEPT_TOKEN(anon_sym_output); + if (lookahead == 'o') ADVANCE(76); END_STATE(); case 70: - ACCEPT_TOKEN(anon_sym_struct); + if (lookahead == 'l') ADVANCE(77); END_STATE(); case 71: - if (lookahead == 'i') ADVANCE(75); + if (lookahead == 'a') ADVANCE(78); END_STATE(); case 72: - if (lookahead == 'n') ADVANCE(76); + ACCEPT_TOKEN(anon_sym_module); END_STATE(); case 73: - ACCEPT_TOKEN(anon_sym_initial); + ACCEPT_TOKEN(anon_sym_output); END_STATE(); case 74: - if (lookahead == 'c') ADVANCE(77); + ACCEPT_TOKEN(anon_sym_struct); END_STATE(); case 75: - if (lookahead == 'n') ADVANCE(78); + if (lookahead == 'i') ADVANCE(79); END_STATE(); case 76: - ACCEPT_TOKEN(anon_sym_function); + if (lookahead == 'n') ADVANCE(80); END_STATE(); case 77: - if (lookahead == 'e') ADVANCE(79); + ACCEPT_TOKEN(anon_sym_initial); END_STATE(); case 78: - if (lookahead == '_') ADVANCE(80); + if (lookahead == 'c') ADVANCE(81); END_STATE(); case 79: - ACCEPT_TOKEN(anon_sym_interface); + if (lookahead == 'n') ADVANCE(82); END_STATE(); case 80: - if (lookahead == '_') ADVANCE(81); + ACCEPT_TOKEN(anon_sym_function); END_STATE(); case 81: + if (lookahead == 'e') ADVANCE(83); + END_STATE(); + case 82: + if (lookahead == '_') ADVANCE(84); + END_STATE(); + case 83: + ACCEPT_TOKEN(anon_sym_interface); + END_STATE(); + case 84: + if (lookahead == '_') ADVANCE(85); + END_STATE(); + case 85: ACCEPT_TOKEN(anon_sym___builtin__); END_STATE(); default: @@ -3710,8 +3650,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [8] = {.lex_state = 1}, [9] = {.lex_state = 1}, [10] = {.lex_state = 1}, - [11] = {.lex_state = 2}, - [12] = {.lex_state = 1}, + [11] = {.lex_state = 1}, + [12] = {.lex_state = 2}, [13] = {.lex_state = 2}, [14] = {.lex_state = 2}, [15] = {.lex_state = 2}, @@ -3735,38 +3675,38 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [33] = {.lex_state = 2}, [34] = {.lex_state = 2}, [35] = {.lex_state = 2}, - [36] = {.lex_state = 2}, + [36] = {.lex_state = 1}, [37] = {.lex_state = 2}, [38] = {.lex_state = 2}, - [39] = {.lex_state = 2}, + [39] = {.lex_state = 1}, [40] = {.lex_state = 2}, [41] = {.lex_state = 2}, - [42] = {.lex_state = 1}, - [43] = {.lex_state = 1}, + [42] = {.lex_state = 2}, + [43] = {.lex_state = 2}, [44] = {.lex_state = 2}, - [45] = {.lex_state = 2}, + [45] = {.lex_state = 1}, [46] = {.lex_state = 2}, [47] = {.lex_state = 2}, [48] = {.lex_state = 2}, [49] = {.lex_state = 2}, [50] = {.lex_state = 2}, - [51] = {.lex_state = 2}, - [52] = {.lex_state = 1}, - [53] = {.lex_state = 2}, + [51] = {.lex_state = 1}, + [52] = {.lex_state = 2}, + [53] = {.lex_state = 1}, [54] = {.lex_state = 1}, - [55] = {.lex_state = 2}, - [56] = {.lex_state = 2}, - [57] = {.lex_state = 2}, - [58] = {.lex_state = 2}, + [55] = {.lex_state = 1}, + [56] = {.lex_state = 1}, + [57] = {.lex_state = 1}, + [58] = {.lex_state = 1}, [59] = {.lex_state = 1}, - [60] = {.lex_state = 2}, - [61] = {.lex_state = 2}, + [60] = {.lex_state = 1}, + [61] = {.lex_state = 1}, [62] = {.lex_state = 1}, - [63] = {.lex_state = 2}, + [63] = {.lex_state = 1}, [64] = {.lex_state = 1}, [65] = {.lex_state = 1}, - [66] = {.lex_state = 1}, - [67] = {.lex_state = 1}, + [66] = {.lex_state = 2}, + [67] = {.lex_state = 2}, [68] = {.lex_state = 1}, [69] = {.lex_state = 1}, [70] = {.lex_state = 1}, @@ -3781,57 +3721,57 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [79] = {.lex_state = 1}, [80] = {.lex_state = 1}, [81] = {.lex_state = 1}, - [82] = {.lex_state = 1}, - [83] = {.lex_state = 1}, - [84] = {.lex_state = 1}, - [85] = {.lex_state = 1}, - [86] = {.lex_state = 1}, - [87] = {.lex_state = 1}, - [88] = {.lex_state = 1}, - [89] = {.lex_state = 1}, - [90] = {.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 = 1}, - [92] = {.lex_state = 1}, + [92] = {.lex_state = 0}, [93] = {.lex_state = 0}, [94] = {.lex_state = 0}, - [95] = {.lex_state = 0}, - [96] = {.lex_state = 0}, + [95] = {.lex_state = 1}, + [96] = {.lex_state = 1}, [97] = {.lex_state = 0}, [98] = {.lex_state = 0}, [99] = {.lex_state = 0}, - [100] = {.lex_state = 0}, + [100] = {.lex_state = 1}, [101] = {.lex_state = 0}, [102] = {.lex_state = 0}, [103] = {.lex_state = 0}, - [104] = {.lex_state = 1}, - [105] = {.lex_state = 1}, - [106] = {.lex_state = 1}, - [107] = {.lex_state = 1}, - [108] = {.lex_state = 1}, - [109] = {.lex_state = 1}, - [110] = {.lex_state = 1}, + [104] = {.lex_state = 0}, + [105] = {.lex_state = 0}, + [106] = {.lex_state = 0}, + [107] = {.lex_state = 0}, + [108] = {.lex_state = 0}, + [109] = {.lex_state = 0}, + [110] = {.lex_state = 0}, [111] = {.lex_state = 0}, - [112] = {.lex_state = 1}, + [112] = {.lex_state = 0}, [113] = {.lex_state = 0}, [114] = {.lex_state = 0}, [115] = {.lex_state = 0}, [116] = {.lex_state = 0}, - [117] = {.lex_state = 1}, + [117] = {.lex_state = 0}, [118] = {.lex_state = 0}, [119] = {.lex_state = 0}, [120] = {.lex_state = 0}, [121] = {.lex_state = 0}, [122] = {.lex_state = 0}, [123] = {.lex_state = 0}, - [124] = {.lex_state = 1}, - [125] = {.lex_state = 1}, - [126] = {.lex_state = 1}, - [127] = {.lex_state = 1}, - [128] = {.lex_state = 1}, + [124] = {.lex_state = 0}, + [125] = {.lex_state = 0}, + [126] = {.lex_state = 0}, + [127] = {.lex_state = 0}, + [128] = {.lex_state = 0}, [129] = {.lex_state = 0}, - [130] = {.lex_state = 1}, - [131] = {.lex_state = 1}, - [132] = {.lex_state = 1}, + [130] = {.lex_state = 0}, + [131] = {.lex_state = 0}, + [132] = {.lex_state = 0}, [133] = {.lex_state = 0}, [134] = {.lex_state = 0}, [135] = {.lex_state = 0}, @@ -3840,116 +3780,65 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [138] = {.lex_state = 0}, [139] = {.lex_state = 0}, [140] = {.lex_state = 0}, - [141] = {.lex_state = 1}, - [142] = {.lex_state = 1}, - [143] = {.lex_state = 1}, - [144] = {.lex_state = 1}, + [141] = {.lex_state = 0}, + [142] = {.lex_state = 0}, + [143] = {.lex_state = 0}, + [144] = {.lex_state = 0}, [145] = {.lex_state = 0}, [146] = {.lex_state = 0}, [147] = {.lex_state = 0}, [148] = {.lex_state = 0}, - [149] = {.lex_state = 1}, + [149] = {.lex_state = 0}, [150] = {.lex_state = 0}, [151] = {.lex_state = 0}, - [152] = {.lex_state = 1}, + [152] = {.lex_state = 0}, [153] = {.lex_state = 0}, [154] = {.lex_state = 0}, - [155] = {.lex_state = 1}, + [155] = {.lex_state = 0}, [156] = {.lex_state = 0}, - [157] = {.lex_state = 1}, - [158] = {.lex_state = 1}, - [159] = {.lex_state = 1}, + [157] = {.lex_state = 0}, + [158] = {.lex_state = 0}, + [159] = {.lex_state = 0}, [160] = {.lex_state = 0}, [161] = {.lex_state = 0}, [162] = {.lex_state = 0}, [163] = {.lex_state = 0}, [164] = {.lex_state = 0}, [165] = {.lex_state = 0}, - [166] = {.lex_state = 1}, - [167] = {.lex_state = 1}, - [168] = {.lex_state = 1}, - [169] = {.lex_state = 1}, - [170] = {.lex_state = 1}, - [171] = {.lex_state = 1}, - [172] = {.lex_state = 1}, - [173] = {.lex_state = 1}, - [174] = {.lex_state = 1}, + [166] = {.lex_state = 0}, + [167] = {.lex_state = 0}, + [168] = {.lex_state = 0}, + [169] = {.lex_state = 0}, + [170] = {.lex_state = 0}, + [171] = {.lex_state = 0}, + [172] = {.lex_state = 0}, + [173] = {.lex_state = 0}, + [174] = {.lex_state = 0}, [175] = {.lex_state = 0}, [176] = {.lex_state = 0}, [177] = {.lex_state = 0}, [178] = {.lex_state = 0}, - [179] = {.lex_state = 1}, - [180] = {.lex_state = 1}, + [179] = {.lex_state = 0}, + [180] = {.lex_state = 0}, [181] = {.lex_state = 0}, [182] = {.lex_state = 0}, - [183] = {.lex_state = 1}, + [183] = {.lex_state = 0}, [184] = {.lex_state = 0}, - [185] = {.lex_state = 1}, + [185] = {.lex_state = 0}, [186] = {.lex_state = 0}, [187] = {.lex_state = 0}, [188] = {.lex_state = 0}, [189] = {.lex_state = 0}, - [190] = {.lex_state = 1}, - [191] = {.lex_state = 1}, + [190] = {.lex_state = 0}, + [191] = {.lex_state = 0}, [192] = {.lex_state = 0}, [193] = {.lex_state = 0}, [194] = {.lex_state = 0}, [195] = {.lex_state = 0}, - [196] = {.lex_state = 1}, + [196] = {.lex_state = 0}, [197] = {.lex_state = 0}, - [198] = {.lex_state = 1}, + [198] = {.lex_state = 0}, [199] = {.lex_state = 0}, - [200] = {.lex_state = 0}, - [201] = {.lex_state = 1}, - [202] = {.lex_state = 0}, - [203] = {.lex_state = 1}, - [204] = {.lex_state = 0}, - [205] = {.lex_state = 1}, - [206] = {.lex_state = 0}, - [207] = {.lex_state = 0}, - [208] = {.lex_state = 0}, - [209] = {.lex_state = 1}, - [210] = {.lex_state = 0}, - [211] = {.lex_state = 0}, - [212] = {.lex_state = 0}, - [213] = {.lex_state = 0}, - [214] = {.lex_state = 0}, - [215] = {.lex_state = 0}, - [216] = {.lex_state = 0}, - [217] = {.lex_state = 0}, - [218] = {.lex_state = 0}, - [219] = {.lex_state = 0}, - [220] = {.lex_state = 0}, - [221] = {.lex_state = 1}, - [222] = {.lex_state = 0}, - [223] = {.lex_state = 0}, - [224] = {.lex_state = 0}, - [225] = {.lex_state = 0}, - [226] = {.lex_state = 0}, - [227] = {.lex_state = 0}, - [228] = {.lex_state = 0}, - [229] = {.lex_state = 0}, - [230] = {.lex_state = 0}, - [231] = {.lex_state = 1}, - [232] = {.lex_state = 0}, - [233] = {.lex_state = 0}, - [234] = {.lex_state = 0}, - [235] = {.lex_state = 0}, - [236] = {.lex_state = 0}, - [237] = {.lex_state = 0}, - [238] = {.lex_state = 1}, - [239] = {.lex_state = 0}, - [240] = {.lex_state = 0}, - [241] = {.lex_state = 0}, - [242] = {.lex_state = 0}, - [243] = {.lex_state = 0}, - [244] = {.lex_state = 0}, - [245] = {.lex_state = 0}, - [246] = {.lex_state = 0}, - [247] = {.lex_state = 0}, - [248] = {.lex_state = 0}, - [249] = {.lex_state = 0}, - [250] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -4000,7 +3889,8 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_RPAREN] = ACTIONS(1), [anon_sym_LBRACK] = ACTIONS(1), [anon_sym_RBRACK] = ACTIONS(1), - [anon_sym_SEMI] = ACTIONS(1), + [anon_sym_POUND_LPAREN] = ACTIONS(1), + [anon_sym_type] = ACTIONS(1), [sym_number] = ACTIONS(1), [anon_sym_COMMA] = ACTIONS(1), [anon_sym_LF] = ACTIONS(1), @@ -4008,9 +3898,9 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(240), - [sym_global_object] = STATE(182), - [aux_sym__linebreak] = STATE(97), + [sym_source_file] = STATE(192), + [sym_global_object] = STATE(144), + [aux_sym__linebreak] = STATE(82), [ts_builtin_sym_end] = ACTIONS(5), [anon_sym___builtin__] = ACTIONS(7), [anon_sym_extern] = ACTIONS(7), @@ -4024,7 +3914,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { }; static const uint16_t ts_small_parse_table[] = { - [0] = 27, + [0] = 28, ACTIONS(13), 1, sym_identifier, ACTIONS(15), 1, @@ -4051,20 +3941,22 @@ static const uint16_t ts_small_parse_table[] = { sym_number, ACTIONS(43), 1, anon_sym_LF, - STATE(42), 1, - aux_sym__linebreak, - STATE(43), 1, + STATE(16), 1, + sym_namespace_list, + STATE(36), 1, sym_write_modifiers, - STATE(49), 1, + STATE(39), 1, + aux_sym__linebreak, + STATE(44), 1, sym_template_global, - STATE(84), 1, + STATE(73), 1, aux_sym_write_modifiers_repeat1, - STATE(115), 1, + STATE(103), 1, sym_assign_to, - STATE(123), 1, - sym_assign_left_side, - STATE(160), 1, + STATE(112), 1, sym_declaration, + STATE(164), 1, + sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4074,10 +3966,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 2, + STATE(160), 2, sym__type, sym_array_type, - STATE(178), 6, + STATE(173), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4092,7 +3984,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(43), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4100,7 +3992,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [103] = 27, + [106] = 28, ACTIONS(13), 1, sym_identifier, ACTIONS(15), 1, @@ -4127,19 +4019,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(45), 1, anon_sym_RBRACE, - STATE(42), 1, - aux_sym__linebreak, - STATE(43), 1, + STATE(16), 1, + sym_namespace_list, + STATE(36), 1, sym_write_modifiers, - STATE(49), 1, + STATE(39), 1, + aux_sym__linebreak, + STATE(44), 1, sym_template_global, - STATE(84), 1, + STATE(73), 1, aux_sym_write_modifiers_repeat1, - STATE(115), 1, + STATE(103), 1, sym_assign_to, - STATE(160), 1, + STATE(112), 1, sym_declaration, - STATE(207), 1, + STATE(164), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4150,10 +4044,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 2, + STATE(160), 2, sym__type, sym_array_type, - STATE(218), 6, + STATE(173), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4168,7 +4062,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(43), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4176,7 +4070,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [206] = 27, + [212] = 28, ACTIONS(13), 1, sym_identifier, ACTIONS(15), 1, @@ -4203,19 +4097,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(47), 1, anon_sym_RBRACE, - STATE(42), 1, - aux_sym__linebreak, - STATE(43), 1, + STATE(16), 1, + sym_namespace_list, + STATE(36), 1, sym_write_modifiers, - STATE(49), 1, + STATE(39), 1, + aux_sym__linebreak, + STATE(44), 1, sym_template_global, - STATE(84), 1, + STATE(73), 1, aux_sym_write_modifiers_repeat1, - STATE(115), 1, + STATE(103), 1, sym_assign_to, - STATE(160), 1, + STATE(112), 1, sym_declaration, - STATE(207), 1, + STATE(164), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4226,10 +4122,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 2, + STATE(160), 2, sym__type, sym_array_type, - STATE(218), 6, + STATE(173), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4244,7 +4140,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(43), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4252,7 +4148,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [309] = 27, + [318] = 28, ACTIONS(13), 1, sym_identifier, ACTIONS(15), 1, @@ -4275,24 +4171,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(41), 1, sym_number, - ACTIONS(43), 1, - anon_sym_LF, ACTIONS(49), 1, anon_sym_RBRACE, - STATE(42), 1, + ACTIONS(51), 1, + anon_sym_LF, + STATE(7), 1, aux_sym__linebreak, - STATE(43), 1, + STATE(16), 1, + sym_namespace_list, + STATE(36), 1, sym_write_modifiers, - STATE(49), 1, + STATE(44), 1, sym_template_global, - STATE(84), 1, + STATE(73), 1, aux_sym_write_modifiers_repeat1, - STATE(115), 1, + STATE(103), 1, sym_assign_to, - STATE(160), 1, - sym_declaration, - STATE(207), 1, + STATE(107), 1, sym_assign_left_side, + STATE(112), 1, + sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4302,10 +4200,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 2, + STATE(160), 2, sym__type, sym_array_type, - STATE(218), 6, + STATE(114), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4320,7 +4218,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(43), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4328,7 +4226,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [412] = 27, + [424] = 28, ACTIONS(13), 1, sym_identifier, ACTIONS(15), 1, @@ -4353,21 +4251,23 @@ static const uint16_t ts_small_parse_table[] = { sym_number, ACTIONS(43), 1, anon_sym_LF, - ACTIONS(51), 1, + ACTIONS(53), 1, anon_sym_RBRACE, - STATE(42), 1, - aux_sym__linebreak, - STATE(43), 1, + STATE(16), 1, + sym_namespace_list, + STATE(36), 1, sym_write_modifiers, - STATE(49), 1, + STATE(39), 1, + aux_sym__linebreak, + STATE(44), 1, sym_template_global, - STATE(84), 1, + STATE(73), 1, aux_sym_write_modifiers_repeat1, - STATE(115), 1, + STATE(103), 1, sym_assign_to, - STATE(160), 1, + STATE(112), 1, sym_declaration, - STATE(207), 1, + STATE(164), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4378,10 +4278,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 2, + STATE(160), 2, sym__type, sym_array_type, - STATE(218), 6, + STATE(173), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4396,7 +4296,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(43), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4404,7 +4304,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [515] = 27, + [530] = 28, ACTIONS(13), 1, sym_identifier, ACTIONS(15), 1, @@ -4429,22 +4329,24 @@ static const uint16_t ts_small_parse_table[] = { sym_number, ACTIONS(43), 1, anon_sym_LF, - ACTIONS(53), 1, + ACTIONS(55), 1, anon_sym_RBRACE, - STATE(42), 1, - aux_sym__linebreak, - STATE(43), 1, + STATE(16), 1, + sym_namespace_list, + STATE(36), 1, sym_write_modifiers, - STATE(49), 1, + STATE(39), 1, + aux_sym__linebreak, + STATE(44), 1, sym_template_global, - STATE(84), 1, + STATE(73), 1, aux_sym_write_modifiers_repeat1, - STATE(115), 1, + STATE(103), 1, sym_assign_to, - STATE(160), 1, - sym_declaration, - STATE(207), 1, + STATE(108), 1, sym_assign_left_side, + STATE(112), 1, + sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4454,10 +4356,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 2, + STATE(160), 2, sym__type, sym_array_type, - STATE(218), 6, + STATE(130), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4472,7 +4374,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(43), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4480,7 +4382,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [618] = 27, + [636] = 28, ACTIONS(13), 1, sym_identifier, ACTIONS(15), 1, @@ -4505,21 +4407,23 @@ static const uint16_t ts_small_parse_table[] = { sym_number, ACTIONS(43), 1, anon_sym_LF, - ACTIONS(55), 1, + ACTIONS(57), 1, anon_sym_RBRACE, - STATE(42), 1, - aux_sym__linebreak, - STATE(43), 1, + STATE(16), 1, + sym_namespace_list, + STATE(36), 1, sym_write_modifiers, - STATE(49), 1, + STATE(39), 1, + aux_sym__linebreak, + STATE(44), 1, sym_template_global, - STATE(84), 1, + STATE(73), 1, aux_sym_write_modifiers_repeat1, - STATE(115), 1, + STATE(103), 1, sym_assign_to, - STATE(160), 1, + STATE(112), 1, sym_declaration, - STATE(207), 1, + STATE(164), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4530,10 +4434,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 2, + STATE(160), 2, sym__type, sym_array_type, - STATE(218), 6, + STATE(173), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4548,7 +4452,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(43), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4556,7 +4460,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [721] = 27, + [742] = 28, ACTIONS(13), 1, sym_identifier, ACTIONS(15), 1, @@ -4579,24 +4483,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(41), 1, sym_number, - ACTIONS(57), 1, - anon_sym_RBRACE, - ACTIONS(59), 1, + ACTIONS(43), 1, anon_sym_LF, - STATE(2), 1, - aux_sym__linebreak, - STATE(43), 1, + ACTIONS(59), 1, + anon_sym_RBRACE, + STATE(16), 1, + sym_namespace_list, + STATE(36), 1, sym_write_modifiers, - STATE(49), 1, + STATE(39), 1, + aux_sym__linebreak, + STATE(44), 1, sym_template_global, - STATE(84), 1, + STATE(73), 1, aux_sym_write_modifiers_repeat1, - STATE(115), 1, + STATE(103), 1, sym_assign_to, - STATE(129), 1, - sym_assign_left_side, - STATE(160), 1, + STATE(112), 1, sym_declaration, + STATE(164), 1, + sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4606,10 +4512,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 2, + STATE(160), 2, sym__type, sym_array_type, - STATE(204), 6, + STATE(173), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4624,7 +4530,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(43), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4632,7 +4538,7 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [824] = 26, + [848] = 27, ACTIONS(13), 1, sym_identifier, ACTIONS(15), 1, @@ -4657,19 +4563,21 @@ static const uint16_t ts_small_parse_table[] = { sym_number, ACTIONS(43), 1, anon_sym_LF, - STATE(42), 1, - aux_sym__linebreak, - STATE(43), 1, + STATE(16), 1, + sym_namespace_list, + STATE(36), 1, sym_write_modifiers, - STATE(49), 1, + STATE(39), 1, + aux_sym__linebreak, + STATE(44), 1, sym_template_global, - STATE(84), 1, + STATE(73), 1, aux_sym_write_modifiers_repeat1, - STATE(115), 1, + STATE(103), 1, sym_assign_to, - STATE(160), 1, + STATE(112), 1, sym_declaration, - STATE(207), 1, + STATE(164), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4680,10 +4588,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 2, + STATE(160), 2, sym__type, sym_array_type, - STATE(218), 6, + STATE(173), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4698,7 +4606,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(43), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4706,47 +4614,8 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [924] = 5, - ACTIONS(65), 1, - anon_sym_COLON_COLON, - STATE(11), 1, - aux_sym_template_global_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(61), 8, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(63), 21, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DOT_DOT, - anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_LF, - [968] = 17, - ACTIONS(13), 1, + [951] = 18, + ACTIONS(13), 1, sym_identifier, ACTIONS(19), 1, anon_sym_reg, @@ -4758,15 +4627,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(41), 1, sym_number, - STATE(43), 1, + STATE(16), 1, + sym_namespace_list, + STATE(36), 1, sym_write_modifiers, - STATE(49), 1, + STATE(44), 1, sym_template_global, - STATE(84), 1, + STATE(73), 1, aux_sym_write_modifiers_repeat1, - STATE(140), 1, + STATE(110), 1, sym_assign_to, - STATE(160), 1, + STATE(112), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -4777,7 +4648,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 2, + STATE(160), 2, sym__type, sym_array_type, ACTIONS(35), 7, @@ -4788,7 +4659,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 7, + STATE(43), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4796,15 +4667,15 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [1036] = 5, - ACTIONS(72), 1, + [1022] = 5, + ACTIONS(65), 1, anon_sym_COLON_COLON, - STATE(16), 1, - aux_sym_template_global_repeat1, + STATE(13), 1, + aux_sym_namespace_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(68), 8, + ACTIONS(61), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4813,7 +4684,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(70), 21, + ACTIONS(63), 21, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4832,18 +4703,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_SEMI, + anon_sym_POUND_LPAREN, anon_sym_COMMA, anon_sym_LF, - [1080] = 5, - ACTIONS(72), 1, + [1066] = 5, + ACTIONS(71), 1, anon_sym_COLON_COLON, - STATE(11), 1, - aux_sym_template_global_repeat1, + STATE(13), 1, + aux_sym_namespace_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 8, + ACTIONS(67), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4852,7 +4723,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(76), 21, + ACTIONS(69), 21, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4871,18 +4742,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_SEMI, + anon_sym_POUND_LPAREN, anon_sym_COMMA, anon_sym_LF, - [1124] = 5, - ACTIONS(72), 1, + [1110] = 5, + ACTIONS(65), 1, anon_sym_COLON_COLON, - STATE(14), 1, - aux_sym_template_global_repeat1, + STATE(12), 1, + aux_sym_namespace_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 8, + ACTIONS(74), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4891,7 +4762,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(80), 21, + ACTIONS(76), 21, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4910,18 +4781,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_SEMI, + anon_sym_POUND_LPAREN, anon_sym_COMMA, anon_sym_LF, - [1168] = 5, - ACTIONS(72), 1, - anon_sym_COLON_COLON, - STATE(11), 1, - aux_sym_template_global_repeat1, + [1154] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(82), 8, + ACTIONS(78), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4930,7 +4797,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(84), 21, + ACTIONS(80), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4949,14 +4816,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_SEMI, + anon_sym_COLON_COLON, + anon_sym_POUND_LPAREN, anon_sym_COMMA, anon_sym_LF, - [1212] = 3, + [1193] = 5, + ACTIONS(86), 1, + anon_sym_POUND_LPAREN, + STATE(30), 1, + sym_template_args, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(86), 8, + ACTIONS(82), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -4965,7 +4837,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(88), 22, + ACTIONS(84), 20, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4984,15 +4856,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, - anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1251] = 3, + [1236] = 5, + ACTIONS(86), 1, + anon_sym_POUND_LPAREN, + STATE(27), 1, + sym_template_args, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(90), 8, + ACTIONS(88), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5001,7 +4875,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(92), 22, + ACTIONS(90), 20, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5020,30 +4894,41 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, - anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1290] = 3, + [1279] = 12, + ACTIONS(96), 1, + anon_sym_PLUS, + ACTIONS(98), 1, + anon_sym_DASH, + ACTIONS(102), 1, + anon_sym_SLASH, + ACTIONS(104), 1, + anon_sym_DOT, + ACTIONS(106), 1, + anon_sym_LPAREN, + ACTIONS(108), 1, + anon_sym_LBRACK, + STATE(31), 1, + sym_parenthesis_expression_list, + STATE(38), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(94), 8, + ACTIONS(100), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(92), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(96), 22, + ACTIONS(94), 16, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -5051,31 +4936,34 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, - anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1329] = 3, + [1335] = 8, + ACTIONS(104), 1, + anon_sym_DOT, + ACTIONS(106), 1, + anon_sym_LPAREN, + ACTIONS(108), 1, + anon_sym_LBRACK, + STATE(31), 1, + sym_parenthesis_expression_list, + STATE(38), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(98), 8, + ACTIONS(110), 5, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, anon_sym_DASH, anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(100), 22, + ACTIONS(112), 19, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, anon_sym_PLUS, @@ -5088,107 +4976,125 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, - anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1368] = 3, + [1383] = 14, + ACTIONS(96), 1, + anon_sym_PLUS, + ACTIONS(98), 1, + anon_sym_DASH, + ACTIONS(102), 1, + anon_sym_SLASH, + ACTIONS(104), 1, + anon_sym_DOT, + ACTIONS(106), 1, + anon_sym_LPAREN, + ACTIONS(108), 1, + anon_sym_LBRACK, + ACTIONS(114), 1, + anon_sym_PIPE, + ACTIONS(116), 1, + anon_sym_CARET, + STATE(31), 1, + sym_parenthesis_expression_list, + STATE(38), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(102), 8, + ACTIONS(100), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(92), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(104), 22, + ACTIONS(94), 14, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, - anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1407] = 8, - ACTIONS(110), 1, + [1443] = 13, + ACTIONS(96), 1, + anon_sym_PLUS, + ACTIONS(98), 1, + anon_sym_DASH, + ACTIONS(102), 1, + anon_sym_SLASH, + ACTIONS(104), 1, anon_sym_DOT, - ACTIONS(112), 1, + ACTIONS(106), 1, anon_sym_LPAREN, - ACTIONS(114), 1, + ACTIONS(108), 1, anon_sym_LBRACK, - STATE(38), 1, + ACTIONS(116), 1, + anon_sym_CARET, + STATE(31), 1, sym_parenthesis_expression_list, - STATE(41), 1, + STATE(38), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(106), 5, + ACTIONS(100), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(92), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_DASH, - anon_sym_SLASH, - ACTIONS(108), 20, + ACTIONS(94), 15, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, anon_sym_RPAREN, anon_sym_RBRACK, - anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1456] = 3, + [1501] = 8, + ACTIONS(104), 1, + anon_sym_DOT, + ACTIONS(106), 1, + anon_sym_LPAREN, + ACTIONS(108), 1, + anon_sym_LBRACK, + STATE(31), 1, + sym_parenthesis_expression_list, + STATE(38), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(116), 8, + ACTIONS(92), 5, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, anon_sym_DASH, anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(118), 22, + ACTIONS(94), 19, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, anon_sym_PLUS, @@ -5201,34 +5107,41 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, - anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1495] = 3, + [1549] = 10, + ACTIONS(102), 1, + anon_sym_SLASH, + ACTIONS(104), 1, + anon_sym_DOT, + ACTIONS(106), 1, + anon_sym_LPAREN, + ACTIONS(108), 1, + anon_sym_LBRACK, + STATE(31), 1, + sym_parenthesis_expression_list, + STATE(38), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(120), 8, + ACTIONS(100), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(92), 4, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - anon_sym_in, anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(122), 22, + ACTIONS(94), 17, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, anon_sym_PLUS, - anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -5236,66 +5149,62 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, anon_sym_RPAREN, - anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, - anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1534] = 13, - ACTIONS(110), 1, + [1601] = 15, + ACTIONS(96), 1, + anon_sym_PLUS, + ACTIONS(98), 1, + anon_sym_DASH, + ACTIONS(102), 1, + anon_sym_SLASH, + ACTIONS(104), 1, anon_sym_DOT, - ACTIONS(112), 1, + ACTIONS(106), 1, anon_sym_LPAREN, - ACTIONS(114), 1, + ACTIONS(108), 1, anon_sym_LBRACK, - ACTIONS(128), 1, - anon_sym_PLUS, - ACTIONS(130), 1, - anon_sym_DASH, - ACTIONS(134), 1, + ACTIONS(114), 1, + anon_sym_PIPE, + ACTIONS(116), 1, anon_sym_CARET, - ACTIONS(136), 1, - anon_sym_SLASH, - STATE(38), 1, + ACTIONS(118), 1, + anon_sym_AMP, + STATE(31), 1, sym_parenthesis_expression_list, - STATE(41), 1, + STATE(38), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(132), 2, + ACTIONS(100), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(124), 3, + ACTIONS(92), 3, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(126), 16, + ACTIONS(94), 13, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, - anon_sym_PIPE, - anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_RPAREN, anon_sym_RBRACK, - anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1593] = 3, + [1663] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(138), 8, + ACTIONS(120), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5304,7 +5213,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(140), 22, + ACTIONS(122), 20, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5323,63 +5232,47 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, - anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1632] = 15, - ACTIONS(110), 1, - anon_sym_DOT, - ACTIONS(112), 1, - anon_sym_LPAREN, - ACTIONS(114), 1, - anon_sym_LBRACK, - ACTIONS(128), 1, - anon_sym_PLUS, - ACTIONS(130), 1, - anon_sym_DASH, - ACTIONS(134), 1, - anon_sym_CARET, - ACTIONS(136), 1, - anon_sym_SLASH, - ACTIONS(142), 1, - anon_sym_PIPE, - ACTIONS(144), 1, - anon_sym_AMP, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(41), 1, - sym_array_bracket_expression, + [1700] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(132), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(124), 3, + ACTIONS(124), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(126), 14, + anon_sym_in, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(126), 20, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1695] = 3, + [1737] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(146), 8, + ACTIONS(128), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5388,7 +5281,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(148), 22, + ACTIONS(130), 20, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5407,41 +5300,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, - anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1734] = 10, - ACTIONS(110), 1, - anon_sym_DOT, - ACTIONS(112), 1, - anon_sym_LPAREN, - ACTIONS(114), 1, - anon_sym_LBRACK, - ACTIONS(136), 1, - anon_sym_SLASH, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(41), 1, - sym_array_bracket_expression, + [1774] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(132), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(124), 4, + ACTIONS(132), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, + anon_sym_in, anon_sym_DASH, - ACTIONS(126), 18, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(134), 20, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -5449,16 +5329,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1787] = 3, + [1811] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(150), 8, + ACTIONS(136), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, @@ -5467,7 +5349,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(152), 22, + ACTIONS(138), 20, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5486,34 +5368,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, - anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1826] = 8, - ACTIONS(110), 1, - anon_sym_DOT, - ACTIONS(112), 1, - anon_sym_LPAREN, - ACTIONS(114), 1, - anon_sym_LBRACK, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(41), 1, - sym_array_bracket_expression, + [1848] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(124), 5, + ACTIONS(140), 8, anon_sym_LT, anon_sym_GT, anon_sym_EQ, + anon_sym_in, anon_sym_DASH, anon_sym_SLASH, - ACTIONS(126), 20, + anon_sym_DOT, + sym_identifier, + ACTIONS(142), 20, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, anon_sym_PLUS, @@ -5526,44 +5398,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [1875] = 12, - ACTIONS(110), 1, - anon_sym_DOT, - ACTIONS(112), 1, - anon_sym_LPAREN, - ACTIONS(114), 1, - anon_sym_LBRACK, - ACTIONS(128), 1, - anon_sym_PLUS, - ACTIONS(130), 1, - anon_sym_DASH, - ACTIONS(136), 1, - anon_sym_SLASH, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(41), 1, - sym_array_bracket_expression, + [1885] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(132), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(124), 3, + ACTIONS(144), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, - ACTIONS(126), 17, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(146), 21, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -5571,105 +5430,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_LF, - [1932] = 14, - ACTIONS(110), 1, - anon_sym_DOT, - ACTIONS(112), 1, - anon_sym_LPAREN, - ACTIONS(114), 1, - anon_sym_LBRACK, - ACTIONS(128), 1, - anon_sym_PLUS, - ACTIONS(130), 1, - anon_sym_DASH, - ACTIONS(134), 1, - anon_sym_CARET, - ACTIONS(136), 1, - anon_sym_SLASH, - ACTIONS(142), 1, - anon_sym_PIPE, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(41), 1, - sym_array_bracket_expression, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(132), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(124), 3, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - ACTIONS(126), 15, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DOT_DOT, - anon_sym_DASH_GT, - anon_sym_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_LF, - [1993] = 3, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(154), 8, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - anon_sym_in, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - sym_identifier, - ACTIONS(156), 21, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DOT_DOT, - anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, + anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [2031] = 3, + [1921] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(158), 6, + ACTIONS(148), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(160), 22, + ACTIONS(150), 21, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, @@ -5689,21 +5468,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [2068] = 3, + [1957] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(162), 6, + ACTIONS(152), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(164), 22, + ACTIONS(154), 21, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, @@ -5723,21 +5501,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [2105] = 3, + [1993] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(166), 6, + ACTIONS(156), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(168), 22, + ACTIONS(158), 21, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, @@ -5757,21 +5534,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [2142] = 3, + [2029] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(170), 6, + ACTIONS(160), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(172), 22, + ACTIONS(162), 21, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, @@ -5791,55 +5567,63 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [2179] = 3, + [2065] = 13, + ACTIONS(13), 1, + sym_identifier, + ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + ACTIONS(164), 1, + sym_number, + STATE(16), 1, + sym_namespace_list, + STATE(44), 1, + sym_template_global, + STATE(109), 1, + sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(174), 6, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_DOT, - ACTIONS(176), 22, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_in, - anon_sym_DOT_DOT, - anon_sym_DASH_GT, + ACTIONS(31), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(33), 2, + anon_sym_state, + anon_sym_gen, + STATE(160), 2, + sym__type, + sym_array_type, + ACTIONS(35), 7, anon_sym_PLUS, + anon_sym_DASH, anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_LF, - [2216] = 3, + STATE(42), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + [2121] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(178), 6, + ACTIONS(166), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(180), 22, + ACTIONS(168), 21, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, @@ -5859,21 +5643,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [2253] = 3, + [2157] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(182), 6, + ACTIONS(170), 6, anon_sym_LT, anon_sym_GT, anon_sym_EQ, anon_sym_DASH, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(184), 22, + ACTIONS(172), 21, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, @@ -5893,18 +5676,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_SEMI, anon_sym_COMMA, anon_sym_LF, - [2290] = 5, - ACTIONS(190), 1, + [2193] = 5, + ACTIONS(178), 1, anon_sym_LF, - STATE(42), 1, + STATE(39), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(186), 12, + ACTIONS(174), 12, anon_sym_reg, anon_sym_initial, anon_sym_if, @@ -5917,7 +5699,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_gen, anon_sym_DASH, sym_identifier, - ACTIONS(188), 12, + ACTIONS(176), 12, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DASH_GT, @@ -5930,235 +5712,194 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [2329] = 12, - ACTIONS(13), 1, - sym_identifier, - ACTIONS(37), 1, - anon_sym_LPAREN, - ACTIONS(39), 1, - anon_sym_COLON_COLON, - ACTIONS(193), 1, - sym_number, - STATE(49), 1, - sym_template_global, - STATE(134), 1, - sym_declaration, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(31), 2, - anon_sym_input, - anon_sym_output, - ACTIONS(33), 2, - anon_sym_state, - anon_sym_gen, - STATE(208), 2, - sym__type, - sym_array_type, - ACTIONS(35), 7, + [2232] = 17, + ACTIONS(96), 1, anon_sym_PLUS, + ACTIONS(98), 1, anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(46), 7, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - [2382] = 17, - ACTIONS(112), 1, + ACTIONS(102), 1, + anon_sym_SLASH, + ACTIONS(106), 1, anon_sym_LPAREN, - ACTIONS(114), 1, + ACTIONS(108), 1, anon_sym_LBRACK, - ACTIONS(128), 1, - anon_sym_PLUS, - ACTIONS(130), 1, - anon_sym_DASH, - ACTIONS(134), 1, - anon_sym_CARET, - ACTIONS(136), 1, - anon_sym_SLASH, - ACTIONS(142), 1, + ACTIONS(114), 1, anon_sym_PIPE, - ACTIONS(144), 1, + ACTIONS(116), 1, + anon_sym_CARET, + ACTIONS(118), 1, anon_sym_AMP, - ACTIONS(199), 1, + ACTIONS(185), 1, anon_sym_EQ, - ACTIONS(203), 1, + ACTIONS(189), 1, anon_sym_DOT, - STATE(38), 1, + STATE(31), 1, sym_parenthesis_expression_list, - STATE(41), 1, + STATE(38), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(132), 2, + ACTIONS(100), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(195), 2, + ACTIONS(181), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(201), 4, + ACTIONS(187), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(197), 5, + ACTIONS(183), 5, anon_sym_RBRACE, anon_sym_in, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [2444] = 18, - ACTIONS(112), 1, + [2294] = 18, + ACTIONS(102), 1, + anon_sym_SLASH, + ACTIONS(106), 1, anon_sym_LPAREN, - ACTIONS(114), 1, + ACTIONS(108), 1, anon_sym_LBRACK, - ACTIONS(134), 1, - anon_sym_CARET, - ACTIONS(136), 1, - anon_sym_SLASH, - ACTIONS(142), 1, + ACTIONS(114), 1, anon_sym_PIPE, - ACTIONS(144), 1, + ACTIONS(116), 1, + anon_sym_CARET, + ACTIONS(118), 1, anon_sym_AMP, - ACTIONS(203), 1, + ACTIONS(189), 1, anon_sym_DOT, - ACTIONS(205), 1, + ACTIONS(191), 1, anon_sym_RPAREN, - ACTIONS(207), 1, + ACTIONS(193), 1, anon_sym_COMMA, - STATE(38), 1, + STATE(31), 1, sym_parenthesis_expression_list, - STATE(41), 1, + STATE(38), 1, sym_array_bracket_expression, - STATE(77), 1, + STATE(56), 1, sym__comma, - STATE(161), 1, + STATE(154), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 2, + ACTIONS(96), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(132), 2, + ACTIONS(100), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(195), 2, + ACTIONS(181), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(201), 4, + ACTIONS(187), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2506] = 16, - ACTIONS(112), 1, + [2356] = 16, + ACTIONS(102), 1, + anon_sym_SLASH, + ACTIONS(106), 1, anon_sym_LPAREN, - ACTIONS(114), 1, + ACTIONS(108), 1, anon_sym_LBRACK, - ACTIONS(134), 1, - anon_sym_CARET, - ACTIONS(136), 1, - anon_sym_SLASH, - ACTIONS(142), 1, + ACTIONS(114), 1, anon_sym_PIPE, - ACTIONS(144), 1, + ACTIONS(116), 1, + anon_sym_CARET, + ACTIONS(118), 1, anon_sym_AMP, - ACTIONS(203), 1, + ACTIONS(189), 1, anon_sym_DOT, - ACTIONS(211), 1, + ACTIONS(197), 1, anon_sym_EQ, - STATE(38), 1, + STATE(31), 1, sym_parenthesis_expression_list, - STATE(41), 1, + STATE(38), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 2, + ACTIONS(96), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(132), 2, + ACTIONS(100), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(195), 2, + ACTIONS(181), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(209), 3, + ACTIONS(195), 3, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, - ACTIONS(201), 4, + ACTIONS(187), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2564] = 16, - ACTIONS(112), 1, + [2414] = 16, + ACTIONS(102), 1, + anon_sym_SLASH, + ACTIONS(106), 1, anon_sym_LPAREN, - ACTIONS(114), 1, + ACTIONS(108), 1, anon_sym_LBRACK, - ACTIONS(134), 1, - anon_sym_CARET, - ACTIONS(136), 1, - anon_sym_SLASH, - ACTIONS(142), 1, + ACTIONS(114), 1, anon_sym_PIPE, - ACTIONS(144), 1, + ACTIONS(116), 1, + anon_sym_CARET, + ACTIONS(118), 1, anon_sym_AMP, - ACTIONS(203), 1, + ACTIONS(189), 1, anon_sym_DOT, - ACTIONS(215), 1, + ACTIONS(201), 1, anon_sym_EQ, - STATE(38), 1, + STATE(31), 1, sym_parenthesis_expression_list, - STATE(41), 1, + STATE(38), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 2, + ACTIONS(96), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(132), 2, + ACTIONS(100), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(195), 2, + ACTIONS(181), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(213), 3, + ACTIONS(199), 3, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, - ACTIONS(201), 4, + ACTIONS(187), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2622] = 6, - ACTIONS(72), 1, - anon_sym_COLON_COLON, - ACTIONS(217), 1, - anon_sym_EQ, - STATE(16), 1, - aux_sym_template_global_repeat1, + [2472] = 5, + ACTIONS(203), 1, + sym_identifier, + ACTIONS(209), 1, + anon_sym_LBRACK, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(68), 3, + ACTIONS(205), 4, anon_sym_LT, anon_sym_GT, + anon_sym_EQ, anon_sym_SLASH, - ACTIONS(70), 16, + ACTIONS(207), 16, + anon_sym_RBRACE, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6172,390 +5913,251 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_DOT, anon_sym_LPAREN, - anon_sym_LBRACK, - anon_sym_SEMI, anon_sym_COMMA, - [2659] = 5, - ACTIONS(219), 1, + anon_sym_LF, + [2507] = 9, + ACTIONS(37), 1, + anon_sym_LPAREN, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + ACTIONS(212), 1, sym_identifier, - ACTIONS(225), 1, - anon_sym_LBRACK, + ACTIONS(214), 1, + anon_sym_RPAREN, + ACTIONS(216), 1, + sym_number, + STATE(16), 1, + sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(221), 4, - anon_sym_LT, - anon_sym_GT, - anon_sym_EQ, - anon_sym_SLASH, - ACTIONS(223), 16, - anon_sym_RBRACE, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, + anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_LF, - [2694] = 15, - ACTIONS(112), 1, + STATE(41), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_template_global, + [2549] = 16, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(102), 1, + anon_sym_SLASH, + ACTIONS(106), 1, anon_sym_LPAREN, - ACTIONS(114), 1, + ACTIONS(108), 1, anon_sym_LBRACK, - ACTIONS(134), 1, - anon_sym_CARET, - ACTIONS(136), 1, - anon_sym_SLASH, - ACTIONS(142), 1, + ACTIONS(114), 1, anon_sym_PIPE, - ACTIONS(144), 1, + ACTIONS(116), 1, + anon_sym_CARET, + ACTIONS(118), 1, anon_sym_AMP, - ACTIONS(203), 1, + ACTIONS(189), 1, anon_sym_DOT, - STATE(38), 1, + STATE(31), 1, sym_parenthesis_expression_list, - STATE(41), 1, + STATE(38), 1, sym_array_bracket_expression, + STATE(168), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 2, + ACTIONS(96), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(132), 2, + ACTIONS(100), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(195), 2, + ACTIONS(181), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(228), 2, - anon_sym_SEMI, - anon_sym_COMMA, - ACTIONS(201), 4, + ACTIONS(187), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2748] = 15, - ACTIONS(112), 1, + [2605] = 15, + ACTIONS(102), 1, + anon_sym_SLASH, + ACTIONS(106), 1, anon_sym_LPAREN, - ACTIONS(114), 1, + ACTIONS(108), 1, anon_sym_LBRACK, - ACTIONS(134), 1, - anon_sym_CARET, - ACTIONS(136), 1, - anon_sym_SLASH, - ACTIONS(142), 1, + ACTIONS(114), 1, anon_sym_PIPE, - ACTIONS(144), 1, + ACTIONS(116), 1, + anon_sym_CARET, + ACTIONS(118), 1, anon_sym_AMP, - ACTIONS(203), 1, + ACTIONS(189), 1, anon_sym_DOT, - STATE(38), 1, + STATE(31), 1, sym_parenthesis_expression_list, - STATE(41), 1, + STATE(38), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 2, + ACTIONS(96), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(132), 2, + ACTIONS(100), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(195), 2, + ACTIONS(181), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(230), 2, + ACTIONS(218), 2, anon_sym_RPAREN, anon_sym_COMMA, - ACTIONS(201), 4, + ACTIONS(187), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2802] = 9, - ACTIONS(37), 1, - anon_sym_LPAREN, - ACTIONS(39), 1, - anon_sym_COLON_COLON, - ACTIONS(232), 1, - sym_identifier, - ACTIONS(234), 1, - anon_sym_SEMI, - ACTIONS(236), 1, - sym_number, - STATE(136), 1, - sym_template_value_param, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(35), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(50), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_template_global, - [2844] = 16, - ACTIONS(15), 1, - anon_sym_LBRACE, - ACTIONS(112), 1, - anon_sym_LPAREN, - ACTIONS(114), 1, - anon_sym_LBRACK, - ACTIONS(134), 1, - anon_sym_CARET, - ACTIONS(136), 1, + [2659] = 15, + ACTIONS(102), 1, anon_sym_SLASH, - ACTIONS(142), 1, - anon_sym_PIPE, - ACTIONS(144), 1, - anon_sym_AMP, - ACTIONS(203), 1, - anon_sym_DOT, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(41), 1, - sym_array_bracket_expression, - STATE(219), 1, - sym_block, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(128), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(132), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(195), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(201), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [2900] = 9, - ACTIONS(37), 1, - anon_sym_LPAREN, - ACTIONS(39), 1, - anon_sym_COLON_COLON, - ACTIONS(232), 1, - sym_identifier, - ACTIONS(236), 1, - sym_number, - ACTIONS(238), 1, - anon_sym_SEMI, - STATE(153), 1, - sym_template_value_param, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(35), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(50), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_template_global, - [2942] = 15, - ACTIONS(112), 1, + ACTIONS(106), 1, anon_sym_LPAREN, - ACTIONS(114), 1, + ACTIONS(108), 1, anon_sym_LBRACK, - ACTIONS(134), 1, - anon_sym_CARET, - ACTIONS(136), 1, - anon_sym_SLASH, - ACTIONS(142), 1, - anon_sym_PIPE, - ACTIONS(144), 1, - anon_sym_AMP, - ACTIONS(203), 1, - anon_sym_DOT, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(41), 1, - sym_array_bracket_expression, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(128), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(132), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(195), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(240), 2, - anon_sym_SEMI, - anon_sym_COMMA, - ACTIONS(201), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [2996] = 15, - ACTIONS(112), 1, - anon_sym_LPAREN, ACTIONS(114), 1, - anon_sym_LBRACK, - ACTIONS(134), 1, - anon_sym_CARET, - ACTIONS(136), 1, - anon_sym_SLASH, - ACTIONS(142), 1, anon_sym_PIPE, - ACTIONS(144), 1, + ACTIONS(116), 1, + anon_sym_CARET, + ACTIONS(118), 1, anon_sym_AMP, - ACTIONS(203), 1, + ACTIONS(189), 1, anon_sym_DOT, - STATE(38), 1, + STATE(31), 1, sym_parenthesis_expression_list, - STATE(41), 1, + STATE(38), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 2, + ACTIONS(96), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(132), 2, + ACTIONS(100), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(195), 2, + ACTIONS(181), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(242), 2, + ACTIONS(220), 2, anon_sym_RBRACE, anon_sym_LF, - ACTIONS(201), 4, + ACTIONS(187), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3050] = 16, - ACTIONS(15), 1, - anon_sym_LBRACE, - ACTIONS(112), 1, + [2713] = 15, + ACTIONS(102), 1, + anon_sym_SLASH, + ACTIONS(106), 1, anon_sym_LPAREN, - ACTIONS(114), 1, + ACTIONS(108), 1, anon_sym_LBRACK, - ACTIONS(134), 1, - anon_sym_CARET, - ACTIONS(136), 1, - anon_sym_SLASH, - ACTIONS(142), 1, + ACTIONS(114), 1, anon_sym_PIPE, - ACTIONS(144), 1, + ACTIONS(116), 1, + anon_sym_CARET, + ACTIONS(118), 1, anon_sym_AMP, - ACTIONS(203), 1, + ACTIONS(189), 1, anon_sym_DOT, - STATE(38), 1, + STATE(31), 1, sym_parenthesis_expression_list, - STATE(41), 1, + STATE(38), 1, sym_array_bracket_expression, - STATE(215), 1, - sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 2, + ACTIONS(96), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(132), 2, + ACTIONS(100), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(195), 2, + ACTIONS(181), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(201), 4, + ACTIONS(222), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + ACTIONS(187), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3106] = 15, - ACTIONS(112), 1, + [2767] = 16, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(102), 1, + anon_sym_SLASH, + ACTIONS(106), 1, anon_sym_LPAREN, - ACTIONS(114), 1, + ACTIONS(108), 1, anon_sym_LBRACK, - ACTIONS(134), 1, - anon_sym_CARET, - ACTIONS(136), 1, - anon_sym_SLASH, - ACTIONS(142), 1, + ACTIONS(114), 1, anon_sym_PIPE, - ACTIONS(144), 1, + ACTIONS(116), 1, + anon_sym_CARET, + ACTIONS(118), 1, anon_sym_AMP, - ACTIONS(203), 1, + ACTIONS(189), 1, anon_sym_DOT, - ACTIONS(244), 1, - anon_sym_RPAREN, - STATE(38), 1, + STATE(31), 1, sym_parenthesis_expression_list, - STATE(41), 1, + STATE(38), 1, sym_array_bracket_expression, + STATE(155), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 2, + ACTIONS(96), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(132), 2, + ACTIONS(100), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(195), 2, + ACTIONS(181), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(201), 4, + ACTIONS(187), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3159] = 8, + [2823] = 9, + ACTIONS(13), 1, + sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, - sym_identifier, - ACTIONS(248), 1, - anon_sym_RPAREN, - ACTIONS(250), 1, + ACTIONS(224), 1, + anon_sym_type, + ACTIONS(226), 1, sym_number, + STATE(16), 1, + sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6567,7 +6169,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(45), 8, + STATE(47), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6576,93 +6178,55 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3198] = 15, - ACTIONS(112), 1, - anon_sym_LPAREN, - ACTIONS(114), 1, - anon_sym_LBRACK, - ACTIONS(134), 1, - anon_sym_CARET, - ACTIONS(136), 1, + [2865] = 15, + ACTIONS(102), 1, anon_sym_SLASH, - ACTIONS(142), 1, - anon_sym_PIPE, - ACTIONS(144), 1, - anon_sym_AMP, - ACTIONS(203), 1, - anon_sym_DOT, - ACTIONS(252), 1, - anon_sym_RBRACK, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(41), 1, - sym_array_bracket_expression, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(128), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(132), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(195), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(201), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [3251] = 15, - ACTIONS(110), 1, + ACTIONS(104), 1, anon_sym_DOT, - ACTIONS(112), 1, + ACTIONS(106), 1, anon_sym_LPAREN, - ACTIONS(114), 1, + ACTIONS(108), 1, anon_sym_LBRACK, - ACTIONS(134), 1, - anon_sym_CARET, - ACTIONS(136), 1, - anon_sym_SLASH, - ACTIONS(142), 1, + ACTIONS(114), 1, anon_sym_PIPE, - ACTIONS(144), 1, + ACTIONS(116), 1, + anon_sym_CARET, + ACTIONS(118), 1, anon_sym_AMP, - ACTIONS(254), 1, + ACTIONS(228), 1, anon_sym_DOT_DOT, - STATE(38), 1, + STATE(31), 1, sym_parenthesis_expression_list, - STATE(41), 1, + STATE(38), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 2, + ACTIONS(96), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(132), 2, + ACTIONS(100), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(195), 2, + ACTIONS(181), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(201), 4, + ACTIONS(187), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3304] = 8, + [2918] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(232), 1, + ACTIONS(212), 1, sym_identifier, - ACTIONS(236), 1, + ACTIONS(230), 1, sym_number, - STATE(220), 1, - sym_template_value_param, + STATE(16), 1, + sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6674,7 +6238,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(50), 8, + STATE(48), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6683,53 +6247,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3343] = 15, - ACTIONS(112), 1, - anon_sym_LPAREN, - ACTIONS(114), 1, - anon_sym_LBRACK, - ACTIONS(134), 1, - anon_sym_CARET, - ACTIONS(136), 1, - anon_sym_SLASH, - ACTIONS(142), 1, - anon_sym_PIPE, - ACTIONS(144), 1, - anon_sym_AMP, - ACTIONS(203), 1, - anon_sym_DOT, - ACTIONS(256), 1, - anon_sym_RBRACK, - STATE(38), 1, - sym_parenthesis_expression_list, - STATE(41), 1, - sym_array_bracket_expression, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(128), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(132), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(195), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(201), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [3396] = 7, + [2957] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(212), 1, sym_identifier, - ACTIONS(258), 1, + ACTIONS(232), 1, sym_number, + STATE(16), 1, + sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6741,7 +6269,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(44), 8, + STATE(50), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6750,15 +6278,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3432] = 7, + [2996] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(212), 1, sym_identifier, - ACTIONS(260), 1, + ACTIONS(234), 1, sym_number, + STATE(16), 1, + sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6770,7 +6300,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(32), 8, + STATE(18), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6779,15 +6309,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3468] = 7, + [3035] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(212), 1, sym_identifier, - ACTIONS(262), 1, + ACTIONS(236), 1, sym_number, + STATE(16), 1, + sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6799,7 +6331,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(22), 8, + STATE(49), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6808,15 +6340,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3504] = 7, + [3074] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(212), 1, sym_identifier, - ACTIONS(264), 1, + ACTIONS(238), 1, sym_number, + STATE(16), 1, + sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6828,7 +6362,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(58), 8, + STATE(67), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6837,15 +6371,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3540] = 7, + [3113] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(212), 1, sym_identifier, - ACTIONS(266), 1, + ACTIONS(240), 1, sym_number, + STATE(16), 1, + sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6857,7 +6393,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(63), 8, + STATE(52), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6866,15 +6402,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3576] = 7, + [3152] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(212), 1, sym_identifier, - ACTIONS(268), 1, + ACTIONS(242), 1, sym_number, + STATE(16), 1, + sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6886,7 +6424,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(60), 8, + STATE(46), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6895,15 +6433,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3612] = 7, + [3191] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(212), 1, sym_identifier, - ACTIONS(270), 1, + ACTIONS(244), 1, sym_number, + STATE(16), 1, + sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6915,7 +6455,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(27), 8, + STATE(66), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6924,15 +6464,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3648] = 7, + [3230] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(212), 1, sym_identifier, - ACTIONS(272), 1, + ACTIONS(246), 1, sym_number, + STATE(16), 1, + sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6944,7 +6486,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(31), 8, + STATE(24), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6953,15 +6495,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3684] = 7, + [3269] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(212), 1, sym_identifier, - ACTIONS(274), 1, + ACTIONS(248), 1, sym_number, + STATE(16), 1, + sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -6973,7 +6517,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(25), 8, + STATE(23), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6982,15 +6526,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3720] = 7, + [3308] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(212), 1, sym_identifier, - ACTIONS(276), 1, + ACTIONS(250), 1, sym_number, + STATE(16), 1, + sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -7002,7 +6548,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(56), 8, + STATE(22), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7011,15 +6557,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3756] = 7, + [3347] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(212), 1, sym_identifier, - ACTIONS(278), 1, + ACTIONS(252), 1, sym_number, + STATE(16), 1, + sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -7031,7 +6579,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(57), 8, + STATE(21), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7040,15 +6588,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3792] = 7, + [3386] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(212), 1, sym_identifier, - ACTIONS(280), 1, + ACTIONS(254), 1, sym_number, + STATE(16), 1, + sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -7060,7 +6610,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(33), 8, + STATE(19), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7069,129 +6619,93 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3828] = 5, - ACTIONS(286), 1, - anon_sym_LF, - STATE(82), 1, - aux_sym__linebreak, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(282), 7, - anon_sym_reg, - anon_sym_initial, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, - sym_identifier, - ACTIONS(284), 10, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_COLON_COLON, - sym_number, - [3860] = 7, - ACTIONS(37), 1, + [3425] = 15, + ACTIONS(102), 1, + anon_sym_SLASH, + ACTIONS(106), 1, anon_sym_LPAREN, - ACTIONS(39), 1, - anon_sym_COLON_COLON, - ACTIONS(246), 1, - sym_identifier, - ACTIONS(288), 1, - sym_number, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(35), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, + ACTIONS(108), 1, + anon_sym_LBRACK, + ACTIONS(114), 1, anon_sym_PIPE, - anon_sym_AMP, + ACTIONS(116), 1, anon_sym_CARET, - STATE(51), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_template_global, - [3896] = 7, - ACTIONS(37), 1, - anon_sym_LPAREN, - ACTIONS(39), 1, - anon_sym_COLON_COLON, - ACTIONS(246), 1, - sym_identifier, - ACTIONS(290), 1, - sym_number, + ACTIONS(118), 1, + anon_sym_AMP, + ACTIONS(189), 1, + anon_sym_DOT, + ACTIONS(256), 1, + anon_sym_RPAREN, + STATE(31), 1, + sym_parenthesis_expression_list, + STATE(38), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(35), 7, + ACTIONS(96), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(100), 2, anon_sym_STAR, - anon_sym_BANG, + anon_sym_PERCENT, + ACTIONS(181), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(187), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [3478] = 15, + ACTIONS(102), 1, + anon_sym_SLASH, + ACTIONS(106), 1, + anon_sym_LPAREN, + ACTIONS(108), 1, + anon_sym_LBRACK, + ACTIONS(114), 1, anon_sym_PIPE, - anon_sym_AMP, + ACTIONS(116), 1, anon_sym_CARET, - STATE(29), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_template_global, - [3932] = 7, - ACTIONS(37), 1, - anon_sym_LPAREN, - ACTIONS(39), 1, - anon_sym_COLON_COLON, - ACTIONS(246), 1, - sym_identifier, - ACTIONS(292), 1, - sym_number, + ACTIONS(118), 1, + anon_sym_AMP, + ACTIONS(189), 1, + anon_sym_DOT, + ACTIONS(258), 1, + anon_sym_RBRACK, + STATE(31), 1, + sym_parenthesis_expression_list, + STATE(38), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(35), 7, + ACTIONS(96), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(100), 2, anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(61), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_template_global, - [3968] = 7, + anon_sym_PERCENT, + ACTIONS(181), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(187), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [3531] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(212), 1, sym_identifier, - ACTIONS(294), 1, + ACTIONS(260), 1, sym_number, + STATE(16), 1, + sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -7203,7 +6717,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(53), 8, + STATE(20), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7212,15 +6726,17 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [4004] = 7, + [3570] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(246), 1, + ACTIONS(212), 1, sym_identifier, - ACTIONS(296), 1, + ACTIONS(262), 1, sym_number, + STATE(16), 1, + sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -7232,7 +6748,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(55), 8, + STATE(40), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7241,15 +6757,15 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [4040] = 5, + [3609] = 5, ACTIONS(43), 1, anon_sym_LF, - STATE(42), 1, + STATE(39), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(298), 7, + ACTIONS(264), 7, anon_sym_reg, anon_sym_initial, anon_sym_input, @@ -7257,7 +6773,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(300), 10, + ACTIONS(266), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7268,21 +6784,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [4072] = 5, - ACTIONS(304), 1, - anon_sym_reg, - STATE(83), 1, - aux_sym_write_modifiers_repeat1, + [3641] = 5, + ACTIONS(272), 1, + anon_sym_LF, + STATE(70), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(302), 5, + ACTIONS(268), 7, + anon_sym_reg, + anon_sym_initial, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(307), 10, + ACTIONS(270), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7293,21 +6811,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [4102] = 5, - ACTIONS(19), 1, + [3673] = 5, + ACTIONS(276), 1, anon_sym_reg, - STATE(83), 1, + STATE(72), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(309), 5, + ACTIONS(274), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(311), 10, + ACTIONS(279), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7318,18 +6836,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [4132] = 3, + [3703] = 5, + ACTIONS(19), 1, + anon_sym_reg, + STATE(72), 1, + aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(313), 6, - anon_sym_reg, + ACTIONS(281), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(315), 10, + ACTIONS(283), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7340,22 +6861,56 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [4157] = 12, + [3733] = 13, ACTIONS(13), 1, sym_identifier, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(317), 1, + ACTIONS(285), 1, anon_sym_DASH_GT, - ACTIONS(319), 1, + ACTIONS(287), 1, anon_sym_LF, - STATE(88), 1, + STATE(16), 1, + sym_namespace_list, + STATE(75), 1, aux_sym__linebreak, - STATE(119), 1, + STATE(94), 1, + sym_declaration, + STATE(145), 1, + sym_declaration_list, + STATE(165), 1, + sym__interface_ports_output, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(31), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(33), 2, + anon_sym_state, + anon_sym_gen, + STATE(160), 3, + sym__type, + sym_array_type, + sym_template_global, + [3778] = 13, + ACTIONS(13), 1, + sym_identifier, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + ACTIONS(43), 1, + anon_sym_LF, + ACTIONS(285), 1, + anon_sym_DASH_GT, + STATE(16), 1, + sym_namespace_list, + STATE(39), 1, + aux_sym__linebreak, + STATE(94), 1, sym_declaration, - STATE(150), 1, + STATE(131), 1, sym_declaration_list, - STATE(217), 1, + STATE(179), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, @@ -7366,21 +6921,22 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 3, + STATE(160), 3, sym__type, sym_array_type, sym_template_global, - [4199] = 3, + [3823] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(321), 5, + ACTIONS(289), 6, + anon_sym_reg, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(323), 10, + ACTIONS(291), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7391,48 +6947,41 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [4223] = 12, - ACTIONS(13), 1, - sym_identifier, - ACTIONS(39), 1, - anon_sym_COLON_COLON, - ACTIONS(43), 1, - anon_sym_LF, - ACTIONS(317), 1, - anon_sym_DASH_GT, - STATE(42), 1, - aux_sym__linebreak, - STATE(119), 1, - sym_declaration, - STATE(175), 1, - sym_declaration_list, - STATE(224), 1, - sym__interface_ports_output, + [3848] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 2, + ACTIONS(293), 5, anon_sym_input, anon_sym_output, - ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 3, - sym__type, - sym_array_type, - sym_template_global, - [4265] = 10, + sym_identifier, + ACTIONS(295), 10, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, + [3872] = 11, ACTIONS(13), 1, sym_identifier, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(43), 1, + ACTIONS(297), 1, anon_sym_LF, - STATE(42), 1, + STATE(16), 1, + sym_namespace_list, + STATE(79), 1, aux_sym__linebreak, - STATE(119), 1, + STATE(94), 1, sym_declaration, - STATE(225), 1, + STATE(174), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, @@ -7443,22 +6992,24 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 3, + STATE(160), 3, sym__type, sym_array_type, sym_template_global, - [4301] = 10, + [3911] = 11, ACTIONS(13), 1, sym_identifier, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(325), 1, + ACTIONS(43), 1, anon_sym_LF, - STATE(89), 1, + STATE(16), 1, + sym_namespace_list, + STATE(39), 1, aux_sym__linebreak, - STATE(119), 1, + STATE(94), 1, sym_declaration, - STATE(228), 1, + STATE(183), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, @@ -7469,16 +7020,18 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 3, + STATE(160), 3, sym__type, sym_array_type, sym_template_global, - [4337] = 7, + [3950] = 8, ACTIONS(13), 1, sym_identifier, ACTIONS(39), 1, anon_sym_COLON_COLON, - STATE(192), 1, + STATE(16), 1, + sym_namespace_list, + STATE(152), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -7489,16 +7042,18 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 3, + STATE(160), 3, sym__type, sym_array_type, sym_template_global, - [4364] = 7, + [3980] = 8, ACTIONS(13), 1, sym_identifier, ACTIONS(39), 1, anon_sym_COLON_COLON, - STATE(247), 1, + STATE(16), 1, + sym_namespace_list, + STATE(191), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -7509,18 +7064,18 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(208), 3, + STATE(160), 3, sym__type, sym_array_type, sym_template_global, - [4391] = 7, - ACTIONS(327), 1, + [4010] = 7, + ACTIONS(299), 1, ts_builtin_sym_end, - ACTIONS(329), 1, + ACTIONS(301), 1, anon_sym_LF, - STATE(101), 1, + STATE(87), 1, aux_sym__linebreak, - STATE(216), 1, + STATE(119), 1, sym_global_object, ACTIONS(3), 2, sym_single_line_comment, @@ -7532,14 +7087,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_module, anon_sym_function, anon_sym_struct, - [4417] = 7, - ACTIONS(329), 1, + [4036] = 7, + ACTIONS(301), 1, anon_sym_LF, - ACTIONS(331), 1, + ACTIONS(303), 1, ts_builtin_sym_end, - STATE(101), 1, + STATE(87), 1, aux_sym__linebreak, - STATE(216), 1, + STATE(188), 1, sym_global_object, ACTIONS(3), 2, sym_single_line_comment, @@ -7551,14 +7106,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_module, anon_sym_function, anon_sym_struct, - [4443] = 7, - ACTIONS(329), 1, + [4062] = 7, + ACTIONS(301), 1, anon_sym_LF, - ACTIONS(333), 1, + ACTIONS(305), 1, ts_builtin_sym_end, - STATE(101), 1, + STATE(87), 1, aux_sym__linebreak, - STATE(216), 1, + STATE(188), 1, sym_global_object, ACTIONS(3), 2, sym_single_line_comment, @@ -7570,14 +7125,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_module, anon_sym_function, anon_sym_struct, - [4469] = 7, - ACTIONS(329), 1, + [4088] = 7, + ACTIONS(301), 1, anon_sym_LF, - ACTIONS(335), 1, + ACTIONS(307), 1, ts_builtin_sym_end, - STATE(101), 1, + STATE(87), 1, aux_sym__linebreak, - STATE(216), 1, + STATE(188), 1, sym_global_object, ACTIONS(3), 2, sym_single_line_comment, @@ -7589,14 +7144,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_module, anon_sym_function, anon_sym_struct, - [4495] = 7, - ACTIONS(329), 1, + [4114] = 7, + ACTIONS(301), 1, anon_sym_LF, - ACTIONS(337), 1, + ACTIONS(309), 1, ts_builtin_sym_end, - STATE(101), 1, + STATE(87), 1, aux_sym__linebreak, - STATE(202), 1, + STATE(188), 1, sym_global_object, ACTIONS(3), 2, sym_single_line_comment, @@ -7608,27 +7163,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_module, anon_sym_function, anon_sym_struct, - [4521] = 4, - ACTIONS(341), 1, - anon_sym_SQUOTE, - STATE(116), 1, - sym_latency_specifier, + [4140] = 4, + ACTIONS(311), 1, + anon_sym_LF, + STATE(87), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(339), 6, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LF, - [4540] = 6, - ACTIONS(329), 1, + ACTIONS(176), 6, + ts_builtin_sym_end, + anon_sym___builtin__, + anon_sym_extern, + anon_sym_module, + anon_sym_function, + anon_sym_struct, + [4159] = 6, + ACTIONS(301), 1, anon_sym_LF, - STATE(101), 1, + STATE(87), 1, aux_sym__linebreak, - STATE(216), 1, + STATE(188), 1, sym_global_object, ACTIONS(3), 2, sym_single_line_comment, @@ -7640,1564 +7195,1101 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_module, anon_sym_function, anon_sym_struct, - [4563] = 4, - ACTIONS(341), 1, + [4182] = 4, + ACTIONS(316), 1, anon_sym_SQUOTE, - STATE(111), 1, + STATE(102), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(343), 6, + ACTIONS(314), 6, anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4582] = 4, - ACTIONS(345), 1, - anon_sym_LF, - STATE(101), 1, - aux_sym__linebreak, + [4201] = 4, + ACTIONS(316), 1, + anon_sym_SQUOTE, + STATE(98), 1, + sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(188), 6, - ts_builtin_sym_end, - anon_sym___builtin__, - anon_sym_extern, - anon_sym_module, - anon_sym_function, - anon_sym_struct, - [4601] = 4, - ACTIONS(341), 1, + ACTIONS(318), 6, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LF, + [4220] = 6, + ACTIONS(13), 1, + sym_identifier, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + STATE(16), 1, + sym_namespace_list, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(320), 2, + anon_sym_state, + anon_sym_gen, + STATE(156), 3, + sym__type, + sym_array_type, + sym_template_global, + [4243] = 4, + ACTIONS(316), 1, anon_sym_SQUOTE, - STATE(113), 1, + STATE(101), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(348), 6, + ACTIONS(322), 6, anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4620] = 4, - ACTIONS(341), 1, + [4262] = 4, + ACTIONS(316), 1, anon_sym_SQUOTE, - STATE(121), 1, + STATE(105), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(350), 6, + ACTIONS(324), 6, anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4639] = 6, - ACTIONS(352), 1, - sym_identifier, - ACTIONS(354), 1, - anon_sym_GT, - ACTIONS(356), 1, - anon_sym_COLON_COLON, - STATE(201), 1, - sym_template_type_param, + [4281] = 5, + ACTIONS(193), 1, + anon_sym_COMMA, + STATE(80), 1, + sym__comma, + STATE(104), 1, + aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(179), 3, - sym__type, - sym_array_type, - sym_template_global, - [4661] = 5, - ACTIONS(13), 1, - sym_identifier, + ACTIONS(326), 3, + anon_sym_RBRACE, + anon_sym_DASH_GT, + anon_sym_LF, + [4300] = 5, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(358), 2, - anon_sym_state, - anon_sym_gen, - STATE(214), 3, - sym__type, - sym_array_type, - sym_template_global, - [4681] = 6, - ACTIONS(352), 1, - sym_identifier, - ACTIONS(356), 1, - anon_sym_COLON_COLON, - ACTIONS(360), 1, - anon_sym_GT, - STATE(142), 1, - sym_template_type_param, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(179), 3, - sym__type, - sym_array_type, - sym_template_global, - [4703] = 6, - ACTIONS(352), 1, - sym_identifier, - ACTIONS(356), 1, - anon_sym_COLON_COLON, - ACTIONS(362), 1, - anon_sym_GT, - STATE(144), 1, - sym_template_type_param, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(179), 3, - sym__type, - sym_array_type, - sym_template_global, - [4725] = 6, - ACTIONS(352), 1, + ACTIONS(212), 1, sym_identifier, - ACTIONS(356), 1, - anon_sym_COLON_COLON, - ACTIONS(364), 1, - anon_sym_GT, - STATE(155), 1, - sym_template_type_param, + STATE(16), 1, + sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(179), 3, + STATE(163), 3, sym__type, sym_array_type, sym_template_global, - [4747] = 6, - ACTIONS(352), 1, - sym_identifier, - ACTIONS(356), 1, + [4319] = 5, + ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(366), 1, - anon_sym_GT, - STATE(190), 1, - sym_template_type_param, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(179), 3, - sym__type, - sym_array_type, - sym_template_global, - [4769] = 6, - ACTIONS(352), 1, + ACTIONS(212), 1, sym_identifier, - ACTIONS(356), 1, - anon_sym_COLON_COLON, - ACTIONS(368), 1, - anon_sym_GT, - STATE(180), 1, - sym_template_type_param, + STATE(16), 1, + sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(179), 3, + STATE(121), 3, sym__type, sym_array_type, sym_template_global, - [4791] = 2, + [4338] = 5, + ACTIONS(193), 1, + anon_sym_COMMA, + STATE(11), 1, + sym__comma, + STATE(99), 1, + aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(370), 6, + ACTIONS(328), 3, anon_sym_RBRACE, anon_sym_EQ, - anon_sym_in, - anon_sym_DASH_GT, - anon_sym_COMMA, anon_sym_LF, - [4804] = 5, - ACTIONS(352), 1, - sym_identifier, - ACTIONS(356), 1, - anon_sym_COLON_COLON, - STATE(231), 1, - sym_template_type_param, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(179), 3, - sym__type, - sym_array_type, - sym_template_global, - [4823] = 2, + [4357] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(372), 6, + ACTIONS(330), 6, anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4836] = 5, - ACTIONS(376), 1, + [4370] = 5, + ACTIONS(334), 1, anon_sym_COMMA, - STATE(91), 1, + STATE(11), 1, sym__comma, - STATE(114), 1, - aux_sym_declaration_list_repeat1, + STATE(99), 1, + aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(374), 3, + ACTIONS(332), 3, anon_sym_RBRACE, - anon_sym_DASH_GT, + anon_sym_EQ, anon_sym_LF, - [4855] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - STATE(12), 1, - sym__comma, - STATE(122), 1, - aux_sym_assign_left_side_repeat1, + [4389] = 5, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + ACTIONS(212), 1, + sym_identifier, + STATE(16), 1, + sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(379), 3, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_LF, - [4874] = 2, + STATE(158), 3, + sym__type, + sym_array_type, + sym_template_global, + [4408] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(381), 6, + ACTIONS(337), 6, anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4887] = 5, - ACTIONS(383), 1, - anon_sym_EQ, - ACTIONS(385), 1, - anon_sym_COLON_COLON, - STATE(131), 1, - aux_sym_template_global_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(70), 3, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COMMA, - [4906] = 5, - ACTIONS(389), 1, - anon_sym_COMMA, - STATE(12), 1, - sym__comma, - STATE(118), 1, - aux_sym_assign_left_side_repeat1, + [4421] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(387), 3, + ACTIONS(339), 6, anon_sym_RBRACE, anon_sym_EQ, + anon_sym_in, + anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_LF, - [4925] = 5, - ACTIONS(207), 1, + [4434] = 5, + ACTIONS(193), 1, anon_sym_COMMA, - STATE(91), 1, + STATE(11), 1, sym__comma, - STATE(120), 1, - aux_sym_declaration_list_repeat1, + STATE(97), 1, + aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(392), 3, + ACTIONS(341), 3, anon_sym_RBRACE, - anon_sym_DASH_GT, + anon_sym_EQ, anon_sym_LF, - [4944] = 5, - ACTIONS(207), 1, + [4453] = 5, + ACTIONS(193), 1, anon_sym_COMMA, - STATE(91), 1, + STATE(80), 1, sym__comma, - STATE(114), 1, + STATE(106), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(394), 3, + ACTIONS(343), 3, anon_sym_RBRACE, anon_sym_DASH_GT, anon_sym_LF, - [4963] = 2, + [4472] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(396), 6, + ACTIONS(345), 6, anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4976] = 5, - ACTIONS(207), 1, + [4485] = 5, + ACTIONS(349), 1, anon_sym_COMMA, - STATE(12), 1, + STATE(80), 1, sym__comma, - STATE(118), 1, - aux_sym_assign_left_side_repeat1, + STATE(106), 1, + aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(398), 3, + ACTIONS(347), 3, anon_sym_RBRACE, - anon_sym_EQ, + anon_sym_DASH_GT, anon_sym_LF, - [4995] = 6, - ACTIONS(400), 1, + [4504] = 6, + ACTIONS(352), 1, anon_sym_RBRACE, - ACTIONS(402), 1, + ACTIONS(354), 1, + anon_sym_EQ, + ACTIONS(356), 1, + anon_sym_LF, + STATE(2), 1, + aux_sym__linebreak, + STATE(132), 1, + aux_sym_block_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [4524] = 6, + ACTIONS(354), 1, anon_sym_EQ, - ACTIONS(404), 1, + ACTIONS(358), 1, + anon_sym_RBRACE, + ACTIONS(360), 1, anon_sym_LF, STATE(4), 1, aux_sym__linebreak, - STATE(147), 1, + STATE(141), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5015] = 4, - ACTIONS(406), 1, - anon_sym_COLON_COLON, - STATE(124), 1, - aux_sym_template_global_repeat1, + [4544] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(63), 3, - anon_sym_GT, - anon_sym_LBRACK, + ACTIONS(195), 4, + anon_sym_RBRACE, + anon_sym_EQ, anon_sym_COMMA, - [5031] = 4, - ACTIONS(385), 1, - anon_sym_COLON_COLON, - STATE(124), 1, - aux_sym_template_global_repeat1, + anon_sym_LF, + [4555] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(76), 3, + ACTIONS(362), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COMMA, + anon_sym_LF, + [4566] = 5, + ACTIONS(364), 1, anon_sym_GT, - anon_sym_LBRACK, + ACTIONS(366), 1, anon_sym_COMMA, - [5047] = 4, - ACTIONS(39), 1, - anon_sym_COLON_COLON, - ACTIONS(246), 1, - sym_identifier, + STATE(111), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(182), 1, + sym__comma, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(213), 3, - sym__type, - sym_array_type, - sym_template_global, - [5063] = 4, - ACTIONS(385), 1, - anon_sym_COLON_COLON, - STATE(131), 1, - aux_sym_template_global_repeat1, + [4583] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(70), 3, - anon_sym_GT, - anon_sym_LBRACK, + ACTIONS(199), 4, + anon_sym_RBRACE, + anon_sym_EQ, anon_sym_COMMA, - [5079] = 4, - ACTIONS(356), 1, - anon_sym_COLON_COLON, - ACTIONS(409), 1, - sym_identifier, + anon_sym_LF, + [4594] = 5, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(369), 1, + anon_sym_LT, + STATE(175), 1, + sym_block, + STATE(178), 1, + sym_template_declaration_arguments, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(203), 3, - sym__type, - sym_array_type, - sym_template_global, - [5095] = 6, - ACTIONS(402), 1, - anon_sym_EQ, - ACTIONS(411), 1, + [4611] = 5, + ACTIONS(352), 1, anon_sym_RBRACE, - ACTIONS(413), 1, + ACTIONS(356), 1, anon_sym_LF, - STATE(8), 1, + STATE(2), 1, aux_sym__linebreak, - STATE(195), 1, + STATE(135), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5115] = 4, - ACTIONS(39), 1, - anon_sym_COLON_COLON, - ACTIONS(246), 1, - sym_identifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - STATE(212), 3, - sym__type, - sym_array_type, - sym_template_global, - [5131] = 4, - ACTIONS(385), 1, - anon_sym_COLON_COLON, - STATE(124), 1, - aux_sym_template_global_repeat1, + [4628] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(84), 3, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COMMA, - [5147] = 4, - ACTIONS(385), 1, - anon_sym_COLON_COLON, - STATE(125), 1, - aux_sym_template_global_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(80), 3, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COMMA, - [5163] = 5, - ACTIONS(415), 1, - anon_sym_SEMI, - ACTIONS(417), 1, - anon_sym_COMMA, - STATE(62), 1, - sym__comma, - STATE(133), 1, - aux_sym_template_params_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5180] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(209), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COMMA, - anon_sym_LF, - [5191] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - ACTIONS(420), 1, - anon_sym_SEMI, - STATE(62), 1, - sym__comma, - STATE(133), 1, - aux_sym_template_params_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5208] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - ACTIONS(422), 1, - anon_sym_SEMI, - STATE(62), 1, - sym__comma, - STATE(135), 1, - aux_sym_template_params_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5225] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(424), 4, + ACTIONS(371), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5236] = 5, - ACTIONS(426), 1, - anon_sym_RBRACE, - ACTIONS(428), 1, + [4639] = 5, + ACTIONS(373), 1, + ts_builtin_sym_end, + ACTIONS(375), 1, anon_sym_LF, - STATE(10), 1, + STATE(83), 1, aux_sym__linebreak, - STATE(138), 1, - aux_sym_block_repeat1, + STATE(143), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5253] = 2, + [4656] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(424), 4, + ACTIONS(377), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5264] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(431), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COMMA, - anon_sym_LF, - [5275] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - ACTIONS(433), 1, - anon_sym_GT, - STATE(112), 1, - sym__comma, - STATE(196), 1, - aux_sym_template_params_repeat2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5292] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - ACTIONS(435), 1, - anon_sym_GT, - STATE(112), 1, - sym__comma, - STATE(141), 1, - aux_sym_template_params_repeat2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5309] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - ACTIONS(437), 1, - anon_sym_GT, - STATE(112), 1, - sym__comma, - STATE(196), 1, - aux_sym_template_params_repeat2, + [4667] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5326] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - ACTIONS(439), 1, - anon_sym_GT, - STATE(112), 1, - sym__comma, - STATE(143), 1, - aux_sym_template_params_repeat2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5343] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(441), 4, + ACTIONS(379), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5354] = 5, - ACTIONS(443), 1, - anon_sym_RBRACE, - ACTIONS(445), 1, + [4678] = 5, + ACTIONS(381), 1, + ts_builtin_sym_end, + ACTIONS(383), 1, anon_sym_LF, - STATE(6), 1, + STATE(86), 1, aux_sym__linebreak, - STATE(138), 1, - aux_sym_block_repeat1, + STATE(136), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5371] = 5, - ACTIONS(447), 1, + [4695] = 5, + ACTIONS(385), 1, anon_sym_RBRACE, - ACTIONS(449), 1, + ACTIONS(387), 1, anon_sym_LF, - STATE(7), 1, + STATE(10), 1, aux_sym__linebreak, - STATE(138), 1, + STATE(120), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5388] = 4, - ACTIONS(15), 1, - anon_sym_LBRACE, - ACTIONS(451), 1, - anon_sym_if, + [4712] = 4, + ACTIONS(108), 1, + anon_sym_LBRACK, + STATE(129), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(230), 2, - sym_block, - sym_if_statement, - [5403] = 5, - ACTIONS(207), 1, + ACTIONS(390), 2, + anon_sym_RPAREN, anon_sym_COMMA, - ACTIONS(453), 1, - anon_sym_GT, - STATE(112), 1, - sym__comma, - STATE(196), 1, - aux_sym_template_params_repeat2, + [4727] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5420] = 4, - ACTIONS(317), 1, - anon_sym_DASH_GT, - STATE(227), 1, - sym__interface_ports_output, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(455), 2, - anon_sym_RBRACE, - anon_sym_LF, - [5435] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(457), 4, + ACTIONS(379), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5446] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - ACTIONS(459), 1, - anon_sym_GT, - STATE(174), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(226), 1, - sym__comma, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5463] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - ACTIONS(461), 1, - anon_sym_SEMI, - STATE(62), 1, - sym__comma, - STATE(184), 1, - aux_sym_template_params_repeat1, + [4738] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5480] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(463), 4, + ACTIONS(392), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5491] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - ACTIONS(465), 1, - anon_sym_GT, - STATE(112), 1, - sym__comma, - STATE(149), 1, - aux_sym_template_params_repeat2, + [4749] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5508] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(463), 4, + ACTIONS(394), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5519] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(152), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5530] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(148), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5541] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(140), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5552] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(213), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COMMA, - anon_sym_LF, - [5563] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - ACTIONS(467), 1, - anon_sym_RPAREN, - STATE(77), 1, - sym__comma, - STATE(187), 1, - aux_sym_parenthesis_expression_list_repeat1, + [4760] = 5, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(369), 1, + anon_sym_LT, + STATE(180), 1, + sym_template_declaration_arguments, + STATE(184), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5580] = 2, + [4777] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(469), 4, + ACTIONS(377), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5591] = 2, + [4788] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(471), 4, + ACTIONS(396), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5602] = 5, - ACTIONS(473), 1, - ts_builtin_sym_end, - ACTIONS(475), 1, - anon_sym_LF, - STATE(96), 1, - aux_sym__linebreak, - STATE(177), 1, - aux_sym_source_file_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5619] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(471), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5630] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(88), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5641] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(122), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5652] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(118), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5663] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(104), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5674] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(100), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5685] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(96), 4, - anon_sym_GT, - anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5696] = 5, - ACTIONS(477), 1, - anon_sym_GT, - ACTIONS(479), 1, + [4799] = 5, + ACTIONS(398), 1, + anon_sym_RPAREN, + ACTIONS(400), 1, anon_sym_COMMA, - STATE(172), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(226), 1, + STATE(56), 1, sym__comma, + STATE(128), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5713] = 2, + [4816] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(92), 4, - anon_sym_GT, + ACTIONS(403), 4, + anon_sym_RPAREN, anon_sym_LBRACK, - anon_sym_COLON_COLON, - anon_sym_COMMA, - [5724] = 5, - ACTIONS(207), 1, + sym_identifier, anon_sym_COMMA, - ACTIONS(482), 1, - anon_sym_GT, - STATE(172), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(226), 1, - sym__comma, + [4827] = 5, + ACTIONS(358), 1, + anon_sym_RBRACE, + ACTIONS(360), 1, + anon_sym_LF, + STATE(4), 1, + aux_sym__linebreak, + STATE(140), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5741] = 4, - ACTIONS(317), 1, + [4844] = 4, + ACTIONS(285), 1, anon_sym_DASH_GT, - STATE(223), 1, + STATE(181), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(484), 2, + ACTIONS(405), 2, anon_sym_RBRACE, anon_sym_LF, - [5756] = 4, - ACTIONS(488), 1, - anon_sym_COLON, - STATE(229), 1, - sym_interface_ports, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(486), 2, + [4859] = 5, + ACTIONS(407), 1, anon_sym_RBRACE, + ACTIONS(409), 1, anon_sym_LF, - [5771] = 5, - ACTIONS(490), 1, - ts_builtin_sym_end, - ACTIONS(492), 1, - anon_sym_LF, - STATE(99), 1, - aux_sym__linebreak, - STATE(177), 1, - aux_sym_source_file_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5788] = 5, - ACTIONS(400), 1, - anon_sym_RBRACE, - ACTIONS(404), 1, - anon_sym_LF, - STATE(4), 1, + STATE(3), 1, aux_sym__linebreak, - STATE(146), 1, + STATE(120), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5805] = 4, - ACTIONS(497), 1, - anon_sym_LBRACK, - STATE(183), 1, - sym_array_bracket_expression, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(495), 2, - anon_sym_GT, - anon_sym_COMMA, - [5820] = 5, - ACTIONS(207), 1, + [4876] = 5, + ACTIONS(411), 1, + anon_sym_RPAREN, + ACTIONS(413), 1, anon_sym_COMMA, - ACTIONS(499), 1, - anon_sym_GT, - STATE(112), 1, + STATE(133), 1, + aux_sym_template_args_repeat1, + STATE(186), 1, sym__comma, - STATE(198), 1, - aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5837] = 2, + [4893] = 5, + ACTIONS(193), 1, + anon_sym_COMMA, + ACTIONS(416), 1, + anon_sym_RPAREN, + STATE(133), 1, + aux_sym_template_args_repeat1, + STATE(186), 1, + sym__comma, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(501), 4, - ts_builtin_sym_end, + [4910] = 5, + ACTIONS(418), 1, anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5848] = 5, - ACTIONS(503), 1, - ts_builtin_sym_end, - ACTIONS(505), 1, + ACTIONS(420), 1, anon_sym_LF, - STATE(93), 1, + STATE(6), 1, aux_sym__linebreak, - STATE(194), 1, - aux_sym_source_file_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5865] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(507), 4, - anon_sym_GT, - anon_sym_LBRACK, - sym_identifier, - anon_sym_COMMA, - [5876] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - ACTIONS(509), 1, - anon_sym_SEMI, - STATE(62), 1, - sym__comma, - STATE(133), 1, - aux_sym_template_params_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5893] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - ACTIONS(511), 1, - anon_sym_GT, - STATE(112), 1, - sym__comma, - STATE(196), 1, - aux_sym_template_params_repeat2, + STATE(120), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, - sym_multi_line_comment, - [5910] = 5, - ACTIONS(15), 1, - anon_sym_LBRACE, - ACTIONS(513), 1, - anon_sym_LT, - STATE(235), 1, - sym_block, - STATE(236), 1, - sym_template_declaration_arguments, + sym_multi_line_comment, + [4927] = 5, + ACTIONS(422), 1, + ts_builtin_sym_end, + ACTIONS(424), 1, + anon_sym_LF, + STATE(84), 1, + aux_sym__linebreak, + STATE(143), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5927] = 5, - ACTIONS(515), 1, - anon_sym_RPAREN, - ACTIONS(517), 1, + [4944] = 5, + ACTIONS(193), 1, anon_sym_COMMA, - STATE(77), 1, + ACTIONS(426), 1, + anon_sym_RPAREN, + STATE(134), 1, + aux_sym_template_args_repeat1, + STATE(186), 1, sym__comma, - STATE(187), 1, - aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5944] = 2, + [4961] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(520), 4, + ACTIONS(428), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5955] = 2, + [4972] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(520), 4, + ACTIONS(430), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5966] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - ACTIONS(522), 1, - anon_sym_GT, - STATE(112), 1, - sym__comma, - STATE(185), 1, - aux_sym_template_params_repeat2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5983] = 5, - ACTIONS(207), 1, - anon_sym_COMMA, - ACTIONS(524), 1, - anon_sym_GT, - STATE(112), 1, - sym__comma, - STATE(196), 1, - aux_sym_template_params_repeat2, + [4983] = 5, + ACTIONS(432), 1, + anon_sym_RBRACE, + ACTIONS(434), 1, + anon_sym_LF, + STATE(8), 1, + aux_sym__linebreak, + STATE(120), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6000] = 2, + [5000] = 5, + ACTIONS(436), 1, + anon_sym_RBRACE, + ACTIONS(438), 1, + anon_sym_LF, + STATE(9), 1, + aux_sym__linebreak, + STATE(120), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(526), 4, - anon_sym_RBRACE, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LF, - [6011] = 2, + [5017] = 4, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(440), 1, + anon_sym_if, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(528), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [6022] = 5, - ACTIONS(530), 1, + STATE(172), 2, + sym_block, + sym_if_statement, + [5032] = 5, + ACTIONS(442), 1, ts_builtin_sym_end, - ACTIONS(532), 1, + ACTIONS(444), 1, anon_sym_LF, - STATE(95), 1, + STATE(88), 1, aux_sym__linebreak, - STATE(177), 1, + STATE(143), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6039] = 5, - ACTIONS(534), 1, - anon_sym_RBRACE, - ACTIONS(536), 1, + [5049] = 5, + ACTIONS(447), 1, + ts_builtin_sym_end, + ACTIONS(449), 1, anon_sym_LF, - STATE(5), 1, + STATE(85), 1, aux_sym__linebreak, - STATE(138), 1, - aux_sym_block_repeat1, + STATE(116), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6056] = 5, - ACTIONS(538), 1, - anon_sym_GT, - ACTIONS(540), 1, - anon_sym_COMMA, - STATE(112), 1, - sym__comma, - STATE(196), 1, - aux_sym_template_params_repeat2, + [5066] = 4, + ACTIONS(285), 1, + anon_sym_DASH_GT, + STATE(176), 1, + sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6073] = 5, - ACTIONS(543), 1, + ACTIONS(451), 2, anon_sym_RBRACE, - ACTIONS(545), 1, anon_sym_LF, - STATE(3), 1, - aux_sym__linebreak, - STATE(138), 1, - aux_sym_block_repeat1, + [5081] = 4, + ACTIONS(455), 1, + anon_sym_COLON, + STATE(177), 1, + sym_interface_ports, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6090] = 5, - ACTIONS(207), 1, + ACTIONS(453), 2, + anon_sym_RBRACE, + anon_sym_LF, + [5096] = 5, + ACTIONS(193), 1, anon_sym_COMMA, - ACTIONS(547), 1, + ACTIONS(457), 1, anon_sym_GT, - STATE(112), 1, + STATE(149), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(182), 1, sym__comma, - STATE(196), 1, - aux_sym_template_params_repeat2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [6107] = 5, - ACTIONS(15), 1, - anon_sym_LBRACE, - ACTIONS(513), 1, - anon_sym_LT, - STATE(232), 1, - sym_template_declaration_arguments, - STATE(233), 1, - sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6124] = 2, + [5113] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(549), 4, + ACTIONS(459), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [6135] = 5, - ACTIONS(207), 1, + [5124] = 5, + ACTIONS(193), 1, anon_sym_COMMA, - ACTIONS(551), 1, + ACTIONS(461), 1, anon_sym_GT, - STATE(112), 1, + STATE(111), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(182), 1, sym__comma, - STATE(191), 1, - aux_sym_template_params_repeat2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6152] = 5, - ACTIONS(553), 1, - ts_builtin_sym_end, - ACTIONS(555), 1, - anon_sym_LF, - STATE(94), 1, - aux_sym__linebreak, - STATE(164), 1, - aux_sym_source_file_repeat1, + [5141] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6169] = 4, - ACTIONS(497), 1, - anon_sym_LBRACK, - STATE(183), 1, - sym_array_bracket_expression, + ACTIONS(459), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [5152] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(557), 2, - anon_sym_GT, - anon_sym_COMMA, - [6184] = 5, - ACTIONS(411), 1, + ACTIONS(463), 4, + ts_builtin_sym_end, anon_sym_RBRACE, - ACTIONS(413), 1, + anon_sym_else, anon_sym_LF, - STATE(8), 1, - aux_sym__linebreak, - STATE(197), 1, - aux_sym_block_repeat1, + [5163] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6201] = 2, + ACTIONS(465), 4, + anon_sym_RBRACE, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LF, + [5174] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(156), 3, - anon_sym_GT, - anon_sym_LBRACK, + ACTIONS(463), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [5185] = 5, + ACTIONS(193), 1, anon_sym_COMMA, - [6211] = 4, - ACTIONS(559), 1, - sym_identifier, - ACTIONS(561), 1, - anon_sym_LT, - STATE(18), 1, - sym_template_params, + ACTIONS(467), 1, + anon_sym_RPAREN, + STATE(56), 1, + sym__comma, + STATE(128), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6225] = 3, - ACTIONS(402), 1, - anon_sym_EQ, + [5202] = 3, + ACTIONS(471), 1, + anon_sym_else, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(563), 2, + ACTIONS(469), 2, anon_sym_RBRACE, anon_sym_LF, - [6237] = 4, - ACTIONS(114), 1, + [5214] = 4, + ACTIONS(108), 1, anon_sym_LBRACK, - ACTIONS(565), 1, + ACTIONS(473), 1, sym_identifier, - STATE(183), 1, + STATE(129), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6251] = 4, - ACTIONS(567), 1, - sym_identifier, - ACTIONS(569), 1, - anon_sym_GT, - STATE(152), 1, - sym_template_declaration_type, + [5228] = 3, + ACTIONS(475), 1, + anon_sym_COLON, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6265] = 2, + ACTIONS(477), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [5240] = 4, + ACTIONS(108), 1, + anon_sym_LBRACK, + ACTIONS(479), 1, + sym_identifier, + STATE(129), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(571), 3, - anon_sym_module, - anon_sym_function, - anon_sym_struct, - [6275] = 4, - ACTIONS(573), 1, + [5254] = 4, + ACTIONS(481), 1, sym_identifier, - ACTIONS(575), 1, - anon_sym_LT, - STATE(173), 1, - sym_template_params, + ACTIONS(483), 1, + anon_sym_RPAREN, + STATE(137), 1, + sym_template_arg, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6289] = 4, - ACTIONS(114), 1, + [5268] = 4, + ACTIONS(108), 1, anon_sym_LBRACK, - ACTIONS(577), 1, + ACTIONS(485), 1, sym_identifier, - STATE(183), 1, + STATE(129), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6303] = 4, - ACTIONS(114), 1, - anon_sym_LBRACK, - ACTIONS(579), 1, + [5282] = 4, + ACTIONS(487), 1, sym_identifier, - STATE(183), 1, - sym_array_bracket_expression, + ACTIONS(489), 1, + anon_sym_GT, + STATE(147), 1, + sym_template_declaration_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6317] = 4, - ACTIONS(114), 1, + [5296] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(491), 3, + anon_sym_module, + anon_sym_function, + anon_sym_struct, + [5306] = 4, + ACTIONS(108), 1, anon_sym_LBRACK, - ACTIONS(581), 1, + ACTIONS(493), 1, sym_identifier, - STATE(183), 1, + STATE(129), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6331] = 3, - ACTIONS(585), 1, - anon_sym_else, + [5320] = 3, + ACTIONS(354), 1, + anon_sym_EQ, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(583), 2, + ACTIONS(495), 2, anon_sym_RBRACE, anon_sym_LF, - [6343] = 2, + [5332] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(587), 2, - ts_builtin_sym_end, + ACTIONS(497), 2, + anon_sym_RBRACE, anon_sym_LF, - [6352] = 2, + [5341] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(589), 2, - anon_sym_RBRACE, - anon_sym_LF, - [6361] = 2, + ACTIONS(499), 2, + anon_sym_GT, + anon_sym_COMMA, + [5350] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(563), 2, - anon_sym_RBRACE, - anon_sym_LF, - [6370] = 2, + ACTIONS(501), 2, + anon_sym_GT, + anon_sym_COMMA, + [5359] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(591), 2, + ACTIONS(503), 2, anon_sym_RBRACE, anon_sym_LF, - [6379] = 2, + [5368] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(593), 2, - anon_sym_SEMI, - anon_sym_COMMA, - [6388] = 2, + ACTIONS(505), 2, + ts_builtin_sym_end, + anon_sym_LF, + [5377] = 3, + ACTIONS(212), 1, + sym_identifier, + STATE(17), 1, + sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(595), 2, - anon_sym_GT, - anon_sym_COMMA, - [6397] = 2, + [5388] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(597), 2, - anon_sym_RBRACE, + ACTIONS(507), 2, + ts_builtin_sym_end, anon_sym_LF, - [6406] = 2, + [5397] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(599), 2, + ACTIONS(509), 2, anon_sym_RBRACE, anon_sym_LF, - [6415] = 2, + [5406] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(601), 2, + ACTIONS(495), 2, anon_sym_RBRACE, anon_sym_LF, - [6424] = 2, + [5415] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(603), 2, + ACTIONS(511), 2, anon_sym_RBRACE, anon_sym_LF, - [6433] = 3, - ACTIONS(567), 1, - sym_identifier, - STATE(221), 1, - sym_template_declaration_type, + [5424] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6444] = 2, + ACTIONS(513), 2, + ts_builtin_sym_end, + anon_sym_LF, + [5433] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(605), 2, + ACTIONS(515), 2, anon_sym_RBRACE, anon_sym_LF, - [6453] = 2, + [5442] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(607), 2, + ACTIONS(517), 2, anon_sym_RBRACE, anon_sym_LF, - [6462] = 2, + [5451] = 3, + ACTIONS(15), 1, + anon_sym_LBRACE, + STATE(169), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(609), 2, - anon_sym_RBRACE, - anon_sym_LF, - [6471] = 2, + [5462] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(611), 2, + ACTIONS(519), 2, anon_sym_RBRACE, anon_sym_LF, - [6480] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(613), 2, - anon_sym_GT, - anon_sym_COMMA, - [6489] = 3, + [5471] = 3, ACTIONS(15), 1, anon_sym_LBRACE, - STATE(237), 1, + STATE(171), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6500] = 2, + [5482] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(615), 2, - ts_builtin_sym_end, + ACTIONS(521), 2, + anon_sym_RBRACE, anon_sym_LF, - [6509] = 2, + [5491] = 3, + ACTIONS(487), 1, + sym_identifier, + STATE(166), 1, + sym_template_declaration_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(617), 2, - ts_builtin_sym_end, + [5502] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(523), 2, + anon_sym_RBRACE, anon_sym_LF, - [6518] = 2, + [5511] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(619), 2, + ACTIONS(525), 2, ts_builtin_sym_end, anon_sym_LF, - [6527] = 3, - ACTIONS(15), 1, - anon_sym_LBRACE, - STATE(234), 1, - sym_block, + [5520] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6538] = 2, + ACTIONS(527), 2, + anon_sym_RBRACE, + anon_sym_LF, + [5529] = 3, + ACTIONS(481), 1, + sym_identifier, + STATE(187), 1, + sym_template_arg, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(621), 2, - ts_builtin_sym_end, - anon_sym_LF, - [6547] = 2, + [5540] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(623), 2, - anon_sym_GT, + ACTIONS(529), 2, + anon_sym_RPAREN, anon_sym_COMMA, - [6556] = 2, - ACTIONS(625), 1, - anon_sym_LBRACE, + [5549] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6564] = 2, - ACTIONS(627), 1, + ACTIONS(531), 2, ts_builtin_sym_end, + anon_sym_LF, + [5558] = 2, + ACTIONS(533), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6572] = 2, - ACTIONS(629), 1, + [5566] = 2, + ACTIONS(535), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6580] = 2, - ACTIONS(631), 1, - sym_identifier, + [5574] = 2, + ACTIONS(537), 1, + anon_sym_in, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6588] = 2, - ACTIONS(633), 1, - anon_sym_LBRACE, + [5582] = 2, + ACTIONS(539), 1, + ts_builtin_sym_end, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6596] = 2, - ACTIONS(635), 1, + [5590] = 2, + ACTIONS(541), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6604] = 2, - ACTIONS(637), 1, - sym_identifier, + [5598] = 2, + ACTIONS(543), 1, + anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6612] = 2, - ACTIONS(639), 1, + [5606] = 2, + ACTIONS(545), 1, anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6620] = 2, - ACTIONS(641), 1, - anon_sym_in, + [5614] = 2, + ACTIONS(547), 1, + anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6628] = 2, - ACTIONS(643), 1, + [5622] = 2, + ACTIONS(549), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6636] = 2, - ACTIONS(645), 1, + [5630] = 2, + ACTIONS(551), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6644] = 2, - ACTIONS(647), 1, + [5638] = 2, + ACTIONS(553), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, @@ -9206,254 +8298,203 @@ static const uint16_t ts_small_parse_table[] = { static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(2)] = 0, - [SMALL_STATE(3)] = 103, - [SMALL_STATE(4)] = 206, - [SMALL_STATE(5)] = 309, - [SMALL_STATE(6)] = 412, - [SMALL_STATE(7)] = 515, - [SMALL_STATE(8)] = 618, - [SMALL_STATE(9)] = 721, - [SMALL_STATE(10)] = 824, - [SMALL_STATE(11)] = 924, - [SMALL_STATE(12)] = 968, - [SMALL_STATE(13)] = 1036, - [SMALL_STATE(14)] = 1080, - [SMALL_STATE(15)] = 1124, - [SMALL_STATE(16)] = 1168, - [SMALL_STATE(17)] = 1212, - [SMALL_STATE(18)] = 1251, - [SMALL_STATE(19)] = 1290, - [SMALL_STATE(20)] = 1329, - [SMALL_STATE(21)] = 1368, - [SMALL_STATE(22)] = 1407, - [SMALL_STATE(23)] = 1456, - [SMALL_STATE(24)] = 1495, - [SMALL_STATE(25)] = 1534, - [SMALL_STATE(26)] = 1593, - [SMALL_STATE(27)] = 1632, - [SMALL_STATE(28)] = 1695, - [SMALL_STATE(29)] = 1734, - [SMALL_STATE(30)] = 1787, - [SMALL_STATE(31)] = 1826, - [SMALL_STATE(32)] = 1875, - [SMALL_STATE(33)] = 1932, + [SMALL_STATE(3)] = 106, + [SMALL_STATE(4)] = 212, + [SMALL_STATE(5)] = 318, + [SMALL_STATE(6)] = 424, + [SMALL_STATE(7)] = 530, + [SMALL_STATE(8)] = 636, + [SMALL_STATE(9)] = 742, + [SMALL_STATE(10)] = 848, + [SMALL_STATE(11)] = 951, + [SMALL_STATE(12)] = 1022, + [SMALL_STATE(13)] = 1066, + [SMALL_STATE(14)] = 1110, + [SMALL_STATE(15)] = 1154, + [SMALL_STATE(16)] = 1193, + [SMALL_STATE(17)] = 1236, + [SMALL_STATE(18)] = 1279, + [SMALL_STATE(19)] = 1335, + [SMALL_STATE(20)] = 1383, + [SMALL_STATE(21)] = 1443, + [SMALL_STATE(22)] = 1501, + [SMALL_STATE(23)] = 1549, + [SMALL_STATE(24)] = 1601, + [SMALL_STATE(25)] = 1663, + [SMALL_STATE(26)] = 1700, + [SMALL_STATE(27)] = 1737, + [SMALL_STATE(28)] = 1774, + [SMALL_STATE(29)] = 1811, + [SMALL_STATE(30)] = 1848, + [SMALL_STATE(31)] = 1885, + [SMALL_STATE(32)] = 1921, + [SMALL_STATE(33)] = 1957, [SMALL_STATE(34)] = 1993, - [SMALL_STATE(35)] = 2031, - [SMALL_STATE(36)] = 2068, - [SMALL_STATE(37)] = 2105, - [SMALL_STATE(38)] = 2142, - [SMALL_STATE(39)] = 2179, - [SMALL_STATE(40)] = 2216, - [SMALL_STATE(41)] = 2253, - [SMALL_STATE(42)] = 2290, - [SMALL_STATE(43)] = 2329, - [SMALL_STATE(44)] = 2382, - [SMALL_STATE(45)] = 2444, - [SMALL_STATE(46)] = 2506, - [SMALL_STATE(47)] = 2564, - [SMALL_STATE(48)] = 2622, - [SMALL_STATE(49)] = 2659, - [SMALL_STATE(50)] = 2694, - [SMALL_STATE(51)] = 2748, - [SMALL_STATE(52)] = 2802, - [SMALL_STATE(53)] = 2844, - [SMALL_STATE(54)] = 2900, - [SMALL_STATE(55)] = 2942, - [SMALL_STATE(56)] = 2996, - [SMALL_STATE(57)] = 3050, - [SMALL_STATE(58)] = 3106, - [SMALL_STATE(59)] = 3159, - [SMALL_STATE(60)] = 3198, - [SMALL_STATE(61)] = 3251, - [SMALL_STATE(62)] = 3304, - [SMALL_STATE(63)] = 3343, - [SMALL_STATE(64)] = 3396, - [SMALL_STATE(65)] = 3432, - [SMALL_STATE(66)] = 3468, - [SMALL_STATE(67)] = 3504, - [SMALL_STATE(68)] = 3540, - [SMALL_STATE(69)] = 3576, - [SMALL_STATE(70)] = 3612, - [SMALL_STATE(71)] = 3648, - [SMALL_STATE(72)] = 3684, - [SMALL_STATE(73)] = 3720, - [SMALL_STATE(74)] = 3756, - [SMALL_STATE(75)] = 3792, - [SMALL_STATE(76)] = 3828, - [SMALL_STATE(77)] = 3860, - [SMALL_STATE(78)] = 3896, - [SMALL_STATE(79)] = 3932, - [SMALL_STATE(80)] = 3968, - [SMALL_STATE(81)] = 4004, - [SMALL_STATE(82)] = 4040, - [SMALL_STATE(83)] = 4072, - [SMALL_STATE(84)] = 4102, - [SMALL_STATE(85)] = 4132, - [SMALL_STATE(86)] = 4157, - [SMALL_STATE(87)] = 4199, - [SMALL_STATE(88)] = 4223, - [SMALL_STATE(89)] = 4265, - [SMALL_STATE(90)] = 4301, - [SMALL_STATE(91)] = 4337, - [SMALL_STATE(92)] = 4364, - [SMALL_STATE(93)] = 4391, - [SMALL_STATE(94)] = 4417, - [SMALL_STATE(95)] = 4443, - [SMALL_STATE(96)] = 4469, - [SMALL_STATE(97)] = 4495, - [SMALL_STATE(98)] = 4521, - [SMALL_STATE(99)] = 4540, - [SMALL_STATE(100)] = 4563, - [SMALL_STATE(101)] = 4582, - [SMALL_STATE(102)] = 4601, - [SMALL_STATE(103)] = 4620, - [SMALL_STATE(104)] = 4639, - [SMALL_STATE(105)] = 4661, - [SMALL_STATE(106)] = 4681, - [SMALL_STATE(107)] = 4703, - [SMALL_STATE(108)] = 4725, - [SMALL_STATE(109)] = 4747, - [SMALL_STATE(110)] = 4769, - [SMALL_STATE(111)] = 4791, - [SMALL_STATE(112)] = 4804, - [SMALL_STATE(113)] = 4823, - [SMALL_STATE(114)] = 4836, - [SMALL_STATE(115)] = 4855, - [SMALL_STATE(116)] = 4874, - [SMALL_STATE(117)] = 4887, - [SMALL_STATE(118)] = 4906, - [SMALL_STATE(119)] = 4925, - [SMALL_STATE(120)] = 4944, - [SMALL_STATE(121)] = 4963, - [SMALL_STATE(122)] = 4976, - [SMALL_STATE(123)] = 4995, - [SMALL_STATE(124)] = 5015, - [SMALL_STATE(125)] = 5031, - [SMALL_STATE(126)] = 5047, - [SMALL_STATE(127)] = 5063, - [SMALL_STATE(128)] = 5079, - [SMALL_STATE(129)] = 5095, - [SMALL_STATE(130)] = 5115, - [SMALL_STATE(131)] = 5131, - [SMALL_STATE(132)] = 5147, - [SMALL_STATE(133)] = 5163, - [SMALL_STATE(134)] = 5180, - [SMALL_STATE(135)] = 5191, - [SMALL_STATE(136)] = 5208, - [SMALL_STATE(137)] = 5225, - [SMALL_STATE(138)] = 5236, - [SMALL_STATE(139)] = 5253, - [SMALL_STATE(140)] = 5264, - [SMALL_STATE(141)] = 5275, - [SMALL_STATE(142)] = 5292, - [SMALL_STATE(143)] = 5309, - [SMALL_STATE(144)] = 5326, - [SMALL_STATE(145)] = 5343, - [SMALL_STATE(146)] = 5354, - [SMALL_STATE(147)] = 5371, - [SMALL_STATE(148)] = 5388, - [SMALL_STATE(149)] = 5403, - [SMALL_STATE(150)] = 5420, - [SMALL_STATE(151)] = 5435, - [SMALL_STATE(152)] = 5446, - [SMALL_STATE(153)] = 5463, - [SMALL_STATE(154)] = 5480, - [SMALL_STATE(155)] = 5491, - [SMALL_STATE(156)] = 5508, - [SMALL_STATE(157)] = 5519, - [SMALL_STATE(158)] = 5530, - [SMALL_STATE(159)] = 5541, - [SMALL_STATE(160)] = 5552, - [SMALL_STATE(161)] = 5563, - [SMALL_STATE(162)] = 5580, - [SMALL_STATE(163)] = 5591, - [SMALL_STATE(164)] = 5602, - [SMALL_STATE(165)] = 5619, - [SMALL_STATE(166)] = 5630, - [SMALL_STATE(167)] = 5641, - [SMALL_STATE(168)] = 5652, - [SMALL_STATE(169)] = 5663, - [SMALL_STATE(170)] = 5674, - [SMALL_STATE(171)] = 5685, - [SMALL_STATE(172)] = 5696, - [SMALL_STATE(173)] = 5713, - [SMALL_STATE(174)] = 5724, - [SMALL_STATE(175)] = 5741, - [SMALL_STATE(176)] = 5756, - [SMALL_STATE(177)] = 5771, - [SMALL_STATE(178)] = 5788, - [SMALL_STATE(179)] = 5805, - [SMALL_STATE(180)] = 5820, - [SMALL_STATE(181)] = 5837, - [SMALL_STATE(182)] = 5848, - [SMALL_STATE(183)] = 5865, - [SMALL_STATE(184)] = 5876, - [SMALL_STATE(185)] = 5893, - [SMALL_STATE(186)] = 5910, - [SMALL_STATE(187)] = 5927, - [SMALL_STATE(188)] = 5944, - [SMALL_STATE(189)] = 5955, - [SMALL_STATE(190)] = 5966, - [SMALL_STATE(191)] = 5983, - [SMALL_STATE(192)] = 6000, - [SMALL_STATE(193)] = 6011, - [SMALL_STATE(194)] = 6022, - [SMALL_STATE(195)] = 6039, - [SMALL_STATE(196)] = 6056, - [SMALL_STATE(197)] = 6073, - [SMALL_STATE(198)] = 6090, - [SMALL_STATE(199)] = 6107, - [SMALL_STATE(200)] = 6124, - [SMALL_STATE(201)] = 6135, - [SMALL_STATE(202)] = 6152, - [SMALL_STATE(203)] = 6169, - [SMALL_STATE(204)] = 6184, - [SMALL_STATE(205)] = 6201, - [SMALL_STATE(206)] = 6211, - [SMALL_STATE(207)] = 6225, - [SMALL_STATE(208)] = 6237, - [SMALL_STATE(209)] = 6251, - [SMALL_STATE(210)] = 6265, - [SMALL_STATE(211)] = 6275, - [SMALL_STATE(212)] = 6289, - [SMALL_STATE(213)] = 6303, - [SMALL_STATE(214)] = 6317, - [SMALL_STATE(215)] = 6331, - [SMALL_STATE(216)] = 6343, - [SMALL_STATE(217)] = 6352, - [SMALL_STATE(218)] = 6361, - [SMALL_STATE(219)] = 6370, - [SMALL_STATE(220)] = 6379, - [SMALL_STATE(221)] = 6388, - [SMALL_STATE(222)] = 6397, - [SMALL_STATE(223)] = 6406, - [SMALL_STATE(224)] = 6415, - [SMALL_STATE(225)] = 6424, - [SMALL_STATE(226)] = 6433, - [SMALL_STATE(227)] = 6444, - [SMALL_STATE(228)] = 6453, - [SMALL_STATE(229)] = 6462, - [SMALL_STATE(230)] = 6471, - [SMALL_STATE(231)] = 6480, - [SMALL_STATE(232)] = 6489, - [SMALL_STATE(233)] = 6500, - [SMALL_STATE(234)] = 6509, - [SMALL_STATE(235)] = 6518, - [SMALL_STATE(236)] = 6527, - [SMALL_STATE(237)] = 6538, - [SMALL_STATE(238)] = 6547, - [SMALL_STATE(239)] = 6556, - [SMALL_STATE(240)] = 6564, - [SMALL_STATE(241)] = 6572, - [SMALL_STATE(242)] = 6580, - [SMALL_STATE(243)] = 6588, - [SMALL_STATE(244)] = 6596, - [SMALL_STATE(245)] = 6604, - [SMALL_STATE(246)] = 6612, - [SMALL_STATE(247)] = 6620, - [SMALL_STATE(248)] = 6628, - [SMALL_STATE(249)] = 6636, - [SMALL_STATE(250)] = 6644, + [SMALL_STATE(35)] = 2029, + [SMALL_STATE(36)] = 2065, + [SMALL_STATE(37)] = 2121, + [SMALL_STATE(38)] = 2157, + [SMALL_STATE(39)] = 2193, + [SMALL_STATE(40)] = 2232, + [SMALL_STATE(41)] = 2294, + [SMALL_STATE(42)] = 2356, + [SMALL_STATE(43)] = 2414, + [SMALL_STATE(44)] = 2472, + [SMALL_STATE(45)] = 2507, + [SMALL_STATE(46)] = 2549, + [SMALL_STATE(47)] = 2605, + [SMALL_STATE(48)] = 2659, + [SMALL_STATE(49)] = 2713, + [SMALL_STATE(50)] = 2767, + [SMALL_STATE(51)] = 2823, + [SMALL_STATE(52)] = 2865, + [SMALL_STATE(53)] = 2918, + [SMALL_STATE(54)] = 2957, + [SMALL_STATE(55)] = 2996, + [SMALL_STATE(56)] = 3035, + [SMALL_STATE(57)] = 3074, + [SMALL_STATE(58)] = 3113, + [SMALL_STATE(59)] = 3152, + [SMALL_STATE(60)] = 3191, + [SMALL_STATE(61)] = 3230, + [SMALL_STATE(62)] = 3269, + [SMALL_STATE(63)] = 3308, + [SMALL_STATE(64)] = 3347, + [SMALL_STATE(65)] = 3386, + [SMALL_STATE(66)] = 3425, + [SMALL_STATE(67)] = 3478, + [SMALL_STATE(68)] = 3531, + [SMALL_STATE(69)] = 3570, + [SMALL_STATE(70)] = 3609, + [SMALL_STATE(71)] = 3641, + [SMALL_STATE(72)] = 3673, + [SMALL_STATE(73)] = 3703, + [SMALL_STATE(74)] = 3733, + [SMALL_STATE(75)] = 3778, + [SMALL_STATE(76)] = 3823, + [SMALL_STATE(77)] = 3848, + [SMALL_STATE(78)] = 3872, + [SMALL_STATE(79)] = 3911, + [SMALL_STATE(80)] = 3950, + [SMALL_STATE(81)] = 3980, + [SMALL_STATE(82)] = 4010, + [SMALL_STATE(83)] = 4036, + [SMALL_STATE(84)] = 4062, + [SMALL_STATE(85)] = 4088, + [SMALL_STATE(86)] = 4114, + [SMALL_STATE(87)] = 4140, + [SMALL_STATE(88)] = 4159, + [SMALL_STATE(89)] = 4182, + [SMALL_STATE(90)] = 4201, + [SMALL_STATE(91)] = 4220, + [SMALL_STATE(92)] = 4243, + [SMALL_STATE(93)] = 4262, + [SMALL_STATE(94)] = 4281, + [SMALL_STATE(95)] = 4300, + [SMALL_STATE(96)] = 4319, + [SMALL_STATE(97)] = 4338, + [SMALL_STATE(98)] = 4357, + [SMALL_STATE(99)] = 4370, + [SMALL_STATE(100)] = 4389, + [SMALL_STATE(101)] = 4408, + [SMALL_STATE(102)] = 4421, + [SMALL_STATE(103)] = 4434, + [SMALL_STATE(104)] = 4453, + [SMALL_STATE(105)] = 4472, + [SMALL_STATE(106)] = 4485, + [SMALL_STATE(107)] = 4504, + [SMALL_STATE(108)] = 4524, + [SMALL_STATE(109)] = 4544, + [SMALL_STATE(110)] = 4555, + [SMALL_STATE(111)] = 4566, + [SMALL_STATE(112)] = 4583, + [SMALL_STATE(113)] = 4594, + [SMALL_STATE(114)] = 4611, + [SMALL_STATE(115)] = 4628, + [SMALL_STATE(116)] = 4639, + [SMALL_STATE(117)] = 4656, + [SMALL_STATE(118)] = 4667, + [SMALL_STATE(119)] = 4678, + [SMALL_STATE(120)] = 4695, + [SMALL_STATE(121)] = 4712, + [SMALL_STATE(122)] = 4727, + [SMALL_STATE(123)] = 4738, + [SMALL_STATE(124)] = 4749, + [SMALL_STATE(125)] = 4760, + [SMALL_STATE(126)] = 4777, + [SMALL_STATE(127)] = 4788, + [SMALL_STATE(128)] = 4799, + [SMALL_STATE(129)] = 4816, + [SMALL_STATE(130)] = 4827, + [SMALL_STATE(131)] = 4844, + [SMALL_STATE(132)] = 4859, + [SMALL_STATE(133)] = 4876, + [SMALL_STATE(134)] = 4893, + [SMALL_STATE(135)] = 4910, + [SMALL_STATE(136)] = 4927, + [SMALL_STATE(137)] = 4944, + [SMALL_STATE(138)] = 4961, + [SMALL_STATE(139)] = 4972, + [SMALL_STATE(140)] = 4983, + [SMALL_STATE(141)] = 5000, + [SMALL_STATE(142)] = 5017, + [SMALL_STATE(143)] = 5032, + [SMALL_STATE(144)] = 5049, + [SMALL_STATE(145)] = 5066, + [SMALL_STATE(146)] = 5081, + [SMALL_STATE(147)] = 5096, + [SMALL_STATE(148)] = 5113, + [SMALL_STATE(149)] = 5124, + [SMALL_STATE(150)] = 5141, + [SMALL_STATE(151)] = 5152, + [SMALL_STATE(152)] = 5163, + [SMALL_STATE(153)] = 5174, + [SMALL_STATE(154)] = 5185, + [SMALL_STATE(155)] = 5202, + [SMALL_STATE(156)] = 5214, + [SMALL_STATE(157)] = 5228, + [SMALL_STATE(158)] = 5240, + [SMALL_STATE(159)] = 5254, + [SMALL_STATE(160)] = 5268, + [SMALL_STATE(161)] = 5282, + [SMALL_STATE(162)] = 5296, + [SMALL_STATE(163)] = 5306, + [SMALL_STATE(164)] = 5320, + [SMALL_STATE(165)] = 5332, + [SMALL_STATE(166)] = 5341, + [SMALL_STATE(167)] = 5350, + [SMALL_STATE(168)] = 5359, + [SMALL_STATE(169)] = 5368, + [SMALL_STATE(170)] = 5377, + [SMALL_STATE(171)] = 5388, + [SMALL_STATE(172)] = 5397, + [SMALL_STATE(173)] = 5406, + [SMALL_STATE(174)] = 5415, + [SMALL_STATE(175)] = 5424, + [SMALL_STATE(176)] = 5433, + [SMALL_STATE(177)] = 5442, + [SMALL_STATE(178)] = 5451, + [SMALL_STATE(179)] = 5462, + [SMALL_STATE(180)] = 5471, + [SMALL_STATE(181)] = 5482, + [SMALL_STATE(182)] = 5491, + [SMALL_STATE(183)] = 5502, + [SMALL_STATE(184)] = 5511, + [SMALL_STATE(185)] = 5520, + [SMALL_STATE(186)] = 5529, + [SMALL_STATE(187)] = 5540, + [SMALL_STATE(188)] = 5549, + [SMALL_STATE(189)] = 5558, + [SMALL_STATE(190)] = 5566, + [SMALL_STATE(191)] = 5574, + [SMALL_STATE(192)] = 5582, + [SMALL_STATE(193)] = 5590, + [SMALL_STATE(194)] = 5598, + [SMALL_STATE(195)] = 5606, + [SMALL_STATE(196)] = 5614, + [SMALL_STATE(197)] = 5622, + [SMALL_STATE(198)] = 5630, + [SMALL_STATE(199)] = 5638, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -9461,320 +8502,274 @@ static const TSParseActionEntry ts_parse_actions[] = { [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 = true}}, SHIFT(210), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248), - [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(92), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(242), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(244), - [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(105), - [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(130), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), - [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), - [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), - [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), - [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), - [65] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(206), - [68] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1, .production_id = 1), - [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1, .production_id = 1), - [72] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), - [74] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 25), - [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 25), - [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 15), - [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 15), - [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 2), - [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 2), - [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 6), - [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 6), - [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), - [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 3), - [94] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 3), - [96] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 3), - [98] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 30), - [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 30), - [102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 4, .production_id = 3), - [104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 4, .production_id = 3), - [106] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 14), - [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 14), - [110] = {.entry = {.count = 1, .reusable = false}}, SHIFT(249), - [112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 37), - [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 37), - [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 5, .production_id = 48), - [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 5, .production_id = 48), - [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 28), - [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 28), - [128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [130] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), - [132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [136] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), - [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 49), - [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 49), - [142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 6, .production_id = 50), - [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 6, .production_id = 50), - [150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_params, 7, .production_id = 51), - [152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_params, 7, .production_id = 51), - [154] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 24), - [156] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 24), - [158] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), - [162] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [166] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 29), - [168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 29), - [170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 19), - [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 19), - [174] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 24), - [180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 24), - [182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 18), - [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 18), - [186] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), - [188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), - [190] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(42), - [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [195] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), - [197] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 24), - [199] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 24), - [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), - [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 16), - [211] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 16), - [213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 9), - [215] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 9), - [217] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), - [219] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), - [221] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [223] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [225] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 1, .production_id = 36), - [230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), - [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), - [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_value_param, 3, .production_id = 46), - [242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 26), - [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), - [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [282] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), - [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), - [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [298] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), - [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), - [302] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [304] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(85), - [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [309] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), - [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), - [313] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [321] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), - [329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), - [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), - [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), - [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 17), - [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 33), - [345] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(101), - [348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 23), - [350] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 22), - [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), - [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), - [358] = {.entry = {.count = 1, .reusable = false}}, SHIFT(126), - [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), - [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169), - [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), - [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 43), - [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 35), - [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), - [376] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(76), - [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), - [381] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 27), - [383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), - [385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), - [387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), - [389] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(76), - [392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), - [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), - [396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 34), - [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), - [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), - [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [406] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_global_repeat1, 2, .production_id = 5), SHIFT_REPEAT(211), - [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), - [411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), - [413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [415] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), - [417] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 5), SHIFT_REPEAT(76), - [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), - [422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), - [426] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), - [428] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), - [431] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), - [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), - [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), - [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), - [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), - [441] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 30), - [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), - [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), - [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), - [455] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 32), - [457] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(239), - [461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(198), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(197), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(91), + [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), + [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), + [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), + [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), + [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_namespace_list, 2, .production_id = 2), + [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_namespace_list, 2, .production_id = 2), + [65] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), + [67] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_namespace_list_repeat1, 2, .production_id = 5), + [69] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_namespace_list_repeat1, 2, .production_id = 5), + [71] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_namespace_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(189), + [74] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_namespace_list, 1, .production_id = 1), + [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_namespace_list, 1, .production_id = 1), + [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_namespace_list_repeat1, 2, .production_id = 3), + [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_namespace_list_repeat1, 2, .production_id = 3), + [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1), + [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1), + [86] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [88] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 15), + [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 15), + [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 29), + [94] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 29), + [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [98] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), + [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [102] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), + [104] = {.entry = {.count = 1, .reusable = false}}, SHIFT(190), + [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 14), + [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 14), + [114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 25), + [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 25), + [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 4, .production_id = 6), + [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 4, .production_id = 6), + [128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 26), + [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 26), + [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 3, .production_id = 3), + [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 3, .production_id = 3), + [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 2), + [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 2), + [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 20), + [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 20), + [144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 19), + [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 19), + [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [152] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), + [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 30), + [158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 30), + [160] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 25), + [162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 25), + [164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [166] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 18), + [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 18), + [174] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), + [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), + [178] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(39), + [181] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61), + [183] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 25), + [185] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 25), + [187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), + [191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [195] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 16), + [197] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 16), + [199] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 9), + [201] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 9), + [203] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), + [205] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [209] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), + [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [218] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_arg, 3, .production_id = 44), + [220] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 27), + [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), + [224] = {.entry = {.count = 1, .reusable = false}}, SHIFT(96), + [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [264] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), + [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), + [268] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), + [270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), + [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [274] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [276] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(76), + [279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [281] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), + [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), + [285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [289] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [291] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [293] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [295] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), + [305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), + [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), + [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), + [311] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(87), + [314] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 34), + [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 17), + [320] = {.entry = {.count = 1, .reusable = false}}, SHIFT(95), + [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 23), + [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 24), + [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), + [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), + [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 28), + [332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), + [334] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(71), + [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 35), + [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 43), + [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), + [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), + [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 36), + [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), + [349] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(71), + [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), + [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), + [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), + [364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), + [366] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), SHIFT_REPEAT(71), + [369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), + [371] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), + [373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), + [375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 37), + [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), + [381] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), + [383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), + [387] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), + [390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_arg, 4, .production_id = 47), + [392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 31), + [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), + [400] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(71), + [403] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 18), + [405] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 42), + [407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), + [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [411] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_args_repeat1, 2, .production_id = 5), + [413] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_args_repeat1, 2, .production_id = 5), SHIFT_REPEAT(71), + [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), + [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), + [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [428] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 31), + [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), + [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), + [434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [442] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), + [444] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(88), + [447] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), + [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [451] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 33), + [453] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 13), + [455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), + [459] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 37), + [461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), [463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), - [465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), - [467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [469] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 30), - [471] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 37), - [473] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), - [475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [477] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), - [479] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), SHIFT_REPEAT(76), - [482] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246), - [484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 42), - [486] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 13), - [488] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), - [492] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(99), - [495] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 1, .production_id = 36), - [497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [503] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), - [505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [507] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 18), - [509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), - [515] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), - [517] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(76), - [520] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 37), - [522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [526] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), - [528] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), - [530] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), - [532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [534] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), - [536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [538] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), - [540] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 5), SHIFT_REPEAT(76), - [543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), - [545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [549] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), - [551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [553] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), - [555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [557] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_type_param, 3, .production_id = 46), - [559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [563] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), - [565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), - [569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), - [571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(250), - [573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), - [575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), - [579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [583] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 20), - [585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), - [587] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), - [589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 31), - [591] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 47), - [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat1, 2, .production_id = 3), - [595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 3), - [597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_domain_statement, 2, .production_id = 13), - [599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 45), - [601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 41), - [603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 44), - [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 40), - [607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 39), - [609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 21), - [611] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 38), - [613] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_params_repeat2, 2, .production_id = 3), - [615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 4, .production_id = 7), - [617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 4, .production_id = 11), - [619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 3, .production_id = 4), - [621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 5, .production_id = 12), - [623] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1, .production_id = 8), - [625] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 3), - [627] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), - [631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), - [633] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), - [635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), - [637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [639] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 6), - [641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), - [645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), + [465] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), + [467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [469] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 21), + [471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), + [473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [477] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_arg, 1, .production_id = 8), + [479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), + [483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), + [489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), + [491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), + [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [495] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), + [497] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 32), + [499] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 3), + [501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1, .production_id = 8), + [503] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 48), + [505] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 5, .production_id = 12), + [507] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 4, .production_id = 11), + [509] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 38), + [511] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 39), + [513] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 4, .production_id = 7), + [515] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 40), + [517] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 22), + [519] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 41), + [521] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 46), + [523] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 45), + [525] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 3, .production_id = 4), + [527] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_domain_statement, 2, .production_id = 13), + [529] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_args_repeat1, 2, .production_id = 3), + [531] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), + [533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [539] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), + [543] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 6), + [545] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 3), + [547] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), + [549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), + [551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), + [553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), }; #ifdef __cplusplus diff --git a/tree.sh b/tree.sh index a7834e4..da6859b 100755 --- a/tree.sh +++ b/tree.sh @@ -1,4 +1,3 @@ tree-sitter generate && -tree-sitter parse ../tinyTestFile.sus && +tree-sitter parse ../tinyTestFile.sus head -n 16 src/parser.c - From baddf8948e5043979647de2742942c8d173cb53c Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Sat, 24 Aug 2024 18:28:53 +0200 Subject: [PATCH 46/49] Update template declaration too. The ; are dead again :tada: --- grammar.js | 30 +- src/grammar.json | 194 +- src/node-types.json | 24 +- src/parser.c | 4859 ++++++++++++++++++++++++------------------- 4 files changed, 2949 insertions(+), 2158 deletions(-) diff --git a/grammar.js b/grammar.js index 72fa7bb..4ee518f 100644 --- a/grammar.js +++ b/grammar.js @@ -25,6 +25,21 @@ function newlineSepSeq($, rule) { ) } +// Makes a list of "item" fields +function commaSepSeq($, rule) { + return seq( + optional($._linebreak), + optional(seq( + field('item', rule), + repeat(seq( + $._comma, + field('item', rule) + )), + optional($._linebreak) + )) + ) +} + const PREC = { compare : 2, and: 3, @@ -60,9 +75,12 @@ module.exports = grammar({ // Template Declaration template_declaration_arguments: $ => seq( - '<', - sepSeq($.template_declaration_type, $._comma), - '>' + '#(', + commaSepSeq($, choice( + $.template_declaration_type, + $.declaration + )), + ')' ), template_declaration_type: $ => seq( @@ -268,10 +286,10 @@ module.exports = grammar({ namespace_list: $ => sepSeq1($.identifier, '::'), - // myFunc:: + // myFunc #(T: type int, VAL: 2) template_global: $ => seq( optional(field('is_global_path', '::')), - $.namespace_list, + field('namespace_list', $.namespace_list), // Template optional(field('template_args', $.template_args)) @@ -279,7 +297,7 @@ module.exports = grammar({ template_args: $ => seq( '#(', - sepSeq($.template_arg, $._comma), + commaSepSeq($, $.template_arg), ')' ), diff --git a/src/grammar.json b/src/grammar.json index 7f3cdc8..d3d6492 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -160,52 +160,99 @@ "members": [ { "type": "STRING", - "value": "<" + "value": "#(" }, { - "type": "CHOICE", + "type": "SEQ", "members": [ { - "type": "SEQ", + "type": "CHOICE", "members": [ { - "type": "FIELD", - "name": "item", - "content": { - "type": "SYMBOL", - "name": "template_declaration_type" - } + "type": "SYMBOL", + "name": "_linebreak" }, { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_comma" - }, - { - "type": "FIELD", - "name": "item", - "content": { - "type": "SYMBOL", - "name": "template_declaration_type" - } - } - ] - } + "type": "BLANK" } ] }, { - "type": "BLANK" + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "item", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "template_declaration_type" + }, + { + "type": "SYMBOL", + "name": "declaration" + } + ] + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_comma" + }, + { + "type": "FIELD", + "name": "item", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "template_declaration_type" + }, + { + "type": "SYMBOL", + "name": "declaration" + } + ] + } + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_linebreak" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] } ] }, { "type": "STRING", - "value": ">" + "value": ")" } ] }, @@ -1465,8 +1512,12 @@ ] }, { - "type": "SYMBOL", - "name": "namespace_list" + "type": "FIELD", + "name": "namespace_list", + "content": { + "type": "SYMBOL", + "name": "namespace_list" + } }, { "type": "CHOICE", @@ -1494,43 +1545,72 @@ "value": "#(" }, { - "type": "CHOICE", + "type": "SEQ", "members": [ { - "type": "SEQ", + "type": "CHOICE", "members": [ { - "type": "FIELD", - "name": "item", - "content": { - "type": "SYMBOL", - "name": "template_arg" - } + "type": "SYMBOL", + "name": "_linebreak" }, { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "item", + "content": { "type": "SYMBOL", - "name": "_comma" - }, - { - "type": "FIELD", - "name": "item", - "content": { + "name": "template_arg" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_comma" + }, + { + "type": "FIELD", + "name": "item", + "content": { + "type": "SYMBOL", + "name": "template_arg" + } + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { "type": "SYMBOL", - "name": "template_arg" + "name": "_linebreak" + }, + { + "type": "BLANK" } - } - ] - } + ] + } + ] + }, + { + "type": "BLANK" } ] - }, - { - "type": "BLANK" } ] }, diff --git a/src/node-types.json b/src/node-types.json index ce8ab1e..d5a5232 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -1193,6 +1193,10 @@ "multiple": true, "required": false, "types": [ + { + "type": "declaration", + "named": true + }, { "type": "template_declaration_type", "named": true @@ -1231,6 +1235,16 @@ } ] }, + "namespace_list": { + "multiple": false, + "required": true, + "types": [ + { + "type": "namespace_list", + "named": true + } + ] + }, "template_args": { "multiple": false, "required": false, @@ -1241,16 +1255,6 @@ } ] } - }, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "namespace_list", - "named": true - } - ] } }, { diff --git a/src/parser.c b/src/parser.c index 0ac1095..ae233ba 100644 --- a/src/parser.c +++ b/src/parser.c @@ -5,15 +5,15 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 200 +#define STATE_COUNT 228 #define LARGE_STATE_COUNT 2 #define SYMBOL_COUNT 98 #define ALIAS_COUNT 0 #define TOKEN_COUNT 54 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 34 +#define FIELD_COUNT 35 #define MAX_ALIAS_SEQUENCE_LENGTH 7 -#define PRODUCTION_ID_COUNT 49 +#define PRODUCTION_ID_COUNT 50 enum ts_symbol_identifiers { sym_identifier = 1, @@ -22,8 +22,8 @@ enum ts_symbol_identifiers { anon_sym_module = 4, anon_sym_function = 5, anon_sym_struct = 6, - anon_sym_LT = 7, - anon_sym_GT = 8, + anon_sym_POUND_LPAREN = 7, + anon_sym_RPAREN = 8, anon_sym_LBRACE = 9, anon_sym_RBRACE = 10, anon_sym_EQ = 11, @@ -52,17 +52,17 @@ enum ts_symbol_identifiers { anon_sym_CARET = 34, anon_sym_EQ_EQ = 35, anon_sym_BANG_EQ = 36, - anon_sym_LT_EQ = 37, - anon_sym_GT_EQ = 38, - anon_sym_SLASH = 39, - anon_sym_PERCENT = 40, - anon_sym_DOT = 41, - anon_sym_LPAREN = 42, - anon_sym_RPAREN = 43, - anon_sym_LBRACK = 44, - anon_sym_RBRACK = 45, - anon_sym_COLON_COLON = 46, - anon_sym_POUND_LPAREN = 47, + anon_sym_LT = 37, + anon_sym_LT_EQ = 38, + anon_sym_GT = 39, + anon_sym_GT_EQ = 40, + anon_sym_SLASH = 41, + anon_sym_PERCENT = 42, + anon_sym_DOT = 43, + anon_sym_LPAREN = 44, + anon_sym_LBRACK = 45, + anon_sym_RBRACK = 46, + anon_sym_COLON_COLON = 47, anon_sym_type = 48, sym_number = 49, anon_sym_COMMA = 50, @@ -123,8 +123,8 @@ static const char * const ts_symbol_names[] = { [anon_sym_module] = "module", [anon_sym_function] = "function", [anon_sym_struct] = "struct", - [anon_sym_LT] = "<", - [anon_sym_GT] = ">", + [anon_sym_POUND_LPAREN] = "#(", + [anon_sym_RPAREN] = ")", [anon_sym_LBRACE] = "{", [anon_sym_RBRACE] = "}", [anon_sym_EQ] = "=", @@ -153,17 +153,17 @@ static const char * const ts_symbol_names[] = { [anon_sym_CARET] = "^", [anon_sym_EQ_EQ] = "==", [anon_sym_BANG_EQ] = "!=", + [anon_sym_LT] = "<", [anon_sym_LT_EQ] = "<=", + [anon_sym_GT] = ">", [anon_sym_GT_EQ] = ">=", [anon_sym_SLASH] = "/", [anon_sym_PERCENT] = "%", [anon_sym_DOT] = ".", [anon_sym_LPAREN] = "(", - [anon_sym_RPAREN] = ")", [anon_sym_LBRACK] = "[", [anon_sym_RBRACK] = "]", [anon_sym_COLON_COLON] = "::", - [anon_sym_POUND_LPAREN] = "#(", [anon_sym_type] = "type", [sym_number] = "number", [anon_sym_COMMA] = ",", @@ -224,8 +224,8 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_module] = anon_sym_module, [anon_sym_function] = anon_sym_function, [anon_sym_struct] = anon_sym_struct, - [anon_sym_LT] = anon_sym_LT, - [anon_sym_GT] = anon_sym_GT, + [anon_sym_POUND_LPAREN] = anon_sym_POUND_LPAREN, + [anon_sym_RPAREN] = anon_sym_RPAREN, [anon_sym_LBRACE] = anon_sym_LBRACE, [anon_sym_RBRACE] = anon_sym_RBRACE, [anon_sym_EQ] = anon_sym_EQ, @@ -254,17 +254,17 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_CARET] = anon_sym_CARET, [anon_sym_EQ_EQ] = anon_sym_EQ_EQ, [anon_sym_BANG_EQ] = anon_sym_BANG_EQ, + [anon_sym_LT] = anon_sym_LT, [anon_sym_LT_EQ] = anon_sym_LT_EQ, + [anon_sym_GT] = anon_sym_GT, [anon_sym_GT_EQ] = anon_sym_GT_EQ, [anon_sym_SLASH] = anon_sym_SLASH, [anon_sym_PERCENT] = anon_sym_PERCENT, [anon_sym_DOT] = anon_sym_DOT, [anon_sym_LPAREN] = anon_sym_LPAREN, - [anon_sym_RPAREN] = anon_sym_RPAREN, [anon_sym_LBRACK] = anon_sym_LBRACK, [anon_sym_RBRACK] = anon_sym_RBRACK, [anon_sym_COLON_COLON] = anon_sym_COLON_COLON, - [anon_sym_POUND_LPAREN] = anon_sym_POUND_LPAREN, [anon_sym_type] = anon_sym_type, [sym_number] = sym_number, [anon_sym_COMMA] = anon_sym_COMMA, @@ -346,11 +346,11 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_LT] = { + [anon_sym_POUND_LPAREN] = { .visible = true, .named = false, }, - [anon_sym_GT] = { + [anon_sym_RPAREN] = { .visible = true, .named = false, }, @@ -466,10 +466,18 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_LT] = { + .visible = true, + .named = false, + }, [anon_sym_LT_EQ] = { .visible = true, .named = false, }, + [anon_sym_GT] = { + .visible = true, + .named = false, + }, [anon_sym_GT_EQ] = { .visible = true, .named = false, @@ -490,10 +498,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_RPAREN] = { - .visible = true, - .named = false, - }, [anon_sym_LBRACK] = { .visible = true, .named = false, @@ -506,10 +510,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_POUND_LPAREN] = { - .visible = true, - .named = false, - }, [anon_sym_type] = { .visible = true, .named = false, @@ -735,18 +735,19 @@ enum ts_field_identifiers { field_latency_specifier = 20, field_left = 21, field_name = 22, - field_object_type = 23, - field_operator = 24, - field_outputs = 25, - field_right = 26, - field_template_args = 27, - field_template_declaration_arguments = 28, - field_then_block = 29, - field_to = 30, - field_type = 31, - field_type_arg = 32, - field_val_arg = 33, - field_write_modifiers = 34, + field_namespace_list = 23, + field_object_type = 24, + field_operator = 25, + field_outputs = 26, + field_right = 27, + field_template_args = 28, + field_template_declaration_arguments = 29, + field_then_block = 30, + field_to = 31, + field_type = 32, + field_type_arg = 33, + field_val_arg = 34, + field_write_modifiers = 35, }; static const char * const ts_field_names[] = { @@ -773,6 +774,7 @@ static const char * const ts_field_names[] = { [field_latency_specifier] = "latency_specifier", [field_left] = "left", [field_name] = "name", + [field_namespace_list] = "namespace_list", [field_object_type] = "object_type", [field_operator] = "operator", [field_outputs] = "outputs", @@ -798,44 +800,45 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [8] = {.index = 15, .length = 1}, [9] = {.index = 16, .length = 1}, [10] = {.index = 17, .length = 1}, - [11] = {.index = 18, .length = 4}, - [12] = {.index = 22, .length = 5}, - [13] = {.index = 27, .length = 1}, + [11] = {.index = 18, .length = 1}, + [12] = {.index = 19, .length = 4}, + [13] = {.index = 23, .length = 5}, [14] = {.index = 28, .length = 2}, - [15] = {.index = 30, .length = 1}, - [16] = {.index = 31, .length = 2}, - [17] = {.index = 33, .length = 2}, - [18] = {.index = 35, .length = 2}, + [15] = {.index = 30, .length = 2}, + [16] = {.index = 32, .length = 2}, + [17] = {.index = 34, .length = 2}, + [18] = {.index = 36, .length = 1}, [19] = {.index = 37, .length = 2}, - [20] = {.index = 39, .length = 1}, - [21] = {.index = 40, .length = 2}, - [22] = {.index = 42, .length = 2}, - [23] = {.index = 44, .length = 3}, - [24] = {.index = 47, .length = 3}, - [25] = {.index = 50, .length = 1}, - [26] = {.index = 51, .length = 2}, - [27] = {.index = 53, .length = 2}, - [28] = {.index = 55, .length = 3}, - [29] = {.index = 58, .length = 3}, + [20] = {.index = 39, .length = 2}, + [21] = {.index = 41, .length = 2}, + [22] = {.index = 43, .length = 3}, + [23] = {.index = 46, .length = 3}, + [24] = {.index = 49, .length = 3}, + [25] = {.index = 52, .length = 3}, + [26] = {.index = 55, .length = 1}, + [27] = {.index = 56, .length = 2}, + [28] = {.index = 58, .length = 2}, + [29] = {.index = 60, .length = 1}, [30] = {.index = 61, .length = 2}, - [31] = {.index = 63, .length = 1}, - [32] = {.index = 64, .length = 1}, - [33] = {.index = 65, .length = 1}, - [34] = {.index = 66, .length = 4}, - [35] = {.index = 70, .length = 4}, - [36] = {.index = 74, .length = 4}, - [37] = {.index = 78, .length = 2}, - [38] = {.index = 80, .length = 3}, - [39] = {.index = 83, .length = 1}, - [40] = {.index = 84, .length = 2}, - [41] = {.index = 86, .length = 1}, - [42] = {.index = 87, .length = 1}, - [43] = {.index = 88, .length = 5}, - [44] = {.index = 93, .length = 2}, - [45] = {.index = 95, .length = 1}, - [46] = {.index = 96, .length = 2}, - [47] = {.index = 98, .length = 2}, - [48] = {.index = 100, .length = 4}, + [31] = {.index = 63, .length = 3}, + [32] = {.index = 66, .length = 2}, + [33] = {.index = 68, .length = 4}, + [34] = {.index = 72, .length = 4}, + [35] = {.index = 76, .length = 4}, + [36] = {.index = 80, .length = 2}, + [37] = {.index = 82, .length = 1}, + [38] = {.index = 83, .length = 1}, + [39] = {.index = 84, .length = 5}, + [40] = {.index = 89, .length = 2}, + [41] = {.index = 91, .length = 3}, + [42] = {.index = 94, .length = 1}, + [43] = {.index = 95, .length = 2}, + [44] = {.index = 97, .length = 1}, + [45] = {.index = 98, .length = 1}, + [46] = {.index = 99, .length = 2}, + [47] = {.index = 101, .length = 1}, + [48] = {.index = 102, .length = 2}, + [49] = {.index = 104, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -864,129 +867,134 @@ static const TSFieldMapEntry ts_field_map_entries[] = { [15] = {field_name, 0}, [16] = - {field_expr_or_decl, 0}, + {field_namespace_list, 0}, [17] = - {field_item, 0, .inherited = true}, + {field_expr_or_decl, 0}, [18] = + {field_item, 0, .inherited = true}, + [19] = {field_block, 3}, {field_name, 1}, {field_object_type, 0}, {field_template_declaration_arguments, 2}, - [22] = + [23] = {field_block, 4}, {field_extern_marker, 0}, {field_name, 2}, {field_object_type, 1}, {field_template_declaration_arguments, 3}, - [27] = - {field_name, 1}, [28] = - {field_operator, 0}, - {field_right, 1}, - [30] = {field_is_global_path, 0}, - [31] = - {field_expr_or_decl, 1}, - {field_write_modifiers, 0}, - [33] = + {field_namespace_list, 1}, + [30] = {field_name, 1}, {field_type, 0}, - [35] = + [32] = {field_arr, 0}, {field_arr_idx, 1}, + [34] = + {field_namespace_list, 0}, + {field_template_args, 1}, + [36] = + {field_name, 1}, [37] = + {field_operator, 0}, + {field_right, 1}, + [39] = + {field_expr_or_decl, 1}, + {field_write_modifiers, 0}, + [41] = {field_arguments, 1}, {field_name, 0}, - [39] = - {field_template_args, 1}, - [40] = - {field_condition, 1}, - {field_then_block, 2}, - [42] = - {field_interface_ports, 2}, - {field_name, 1}, - [44] = + [43] = {field_io_port_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [47] = + [46] = {field_declaration_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [50] = - {field_content, 1}, - [51] = + [49] = {field_is_global_path, 0}, + {field_namespace_list, 1}, {field_template_args, 2}, - [53] = - {field_assign_left, 0}, - {field_assign_value, 2}, - [55] = + [52] = {field_latency_specifier, 2}, {field_name, 1}, {field_type, 0}, + [55] = + {field_item, 2}, + [56] = + {field_condition, 1}, + {field_then_block, 2}, [58] = + {field_interface_ports, 2}, + {field_name, 1}, + [60] = + {field_content, 1}, + [61] = + {field_assign_left, 0}, + {field_assign_value, 2}, + [63] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [61] = + [66] = {field_left, 0}, {field_name, 2}, - [63] = - {field_item, 2}, - [64] = - {field_outputs, 1, .inherited = true}, - [65] = - {field_inputs, 1}, - [66] = + [68] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_name, 3}, {field_type, 2}, - [70] = + [72] = {field_io_port_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [74] = + [76] = {field_declaration_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [78] = + [80] = {field_item, 2}, {field_item, 3, .inherited = true}, - [80] = - {field_condition, 1}, - {field_else_block, 4}, - {field_then_block, 2}, + [82] = + {field_outputs, 1, .inherited = true}, [83] = - {field_outputs, 1}, - [84] = {field_inputs, 1}, - {field_outputs, 2, .inherited = true}, - [86] = - {field_outputs, 2, .inherited = true}, - [87] = - {field_inputs, 2}, - [88] = + [84] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_latency_specifier, 4}, {field_name, 3}, {field_type, 2}, - [93] = + [89] = {field_name, 0}, {field_val_arg, 2}, + [91] = + {field_condition, 1}, + {field_else_block, 4}, + {field_then_block, 2}, + [94] = + {field_outputs, 1}, [95] = - {field_outputs, 2}, - [96] = - {field_inputs, 2}, - {field_outputs, 3, .inherited = true}, + {field_inputs, 1}, + {field_outputs, 2, .inherited = true}, + [97] = + {field_outputs, 2, .inherited = true}, [98] = + {field_inputs, 2}, + [99] = {field_name, 0}, {field_type_arg, 3}, - [100] = + [101] = + {field_outputs, 2}, + [102] = + {field_inputs, 2}, + {field_outputs, 3, .inherited = true}, + [104] = {field_block, 6}, {field_for_decl, 1}, {field_from, 3}, @@ -1089,7 +1097,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [84] = 84, [85] = 85, [86] = 86, - [87] = 39, + [87] = 87, [88] = 88, [89] = 89, [90] = 90, @@ -1102,7 +1110,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [97] = 97, [98] = 98, [99] = 99, - [100] = 100, + [100] = 40, [101] = 101, [102] = 102, [103] = 103, @@ -1202,6 +1210,34 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [197] = 197, [198] = 198, [199] = 199, + [200] = 200, + [201] = 201, + [202] = 202, + [203] = 203, + [204] = 204, + [205] = 205, + [206] = 206, + [207] = 207, + [208] = 208, + [209] = 209, + [210] = 210, + [211] = 211, + [212] = 212, + [213] = 213, + [214] = 214, + [215] = 215, + [216] = 216, + [217] = 217, + [218] = 218, + [219] = 219, + [220] = 220, + [221] = 221, + [222] = 222, + [223] = 223, + [224] = 224, + [225] = 225, + [226] = 226, + [227] = 227, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -3123,23 +3159,23 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '\n') ADVANCE(43); if (lookahead == '!') ADVANCE(23); if (lookahead == '#') ADVANCE(3); - if (lookahead == '%') ADVANCE(32); + if (lookahead == '%') ADVANCE(34); if (lookahead == '&') ADVANCE(25); if (lookahead == '\'') ADVANCE(18); - if (lookahead == '(') ADVANCE(34); - if (lookahead == ')') ADVANCE(35); + if (lookahead == '(') ADVANCE(36); + if (lookahead == ')') ADVANCE(11); if (lookahead == '*') ADVANCE(21); if (lookahead == '+') ADVANCE(19); if (lookahead == ',') ADVANCE(42); if (lookahead == '-') ADVANCE(20); - if (lookahead == '.') ADVANCE(33); - if (lookahead == '/') ADVANCE(31); + if (lookahead == '.') ADVANCE(35); + if (lookahead == '/') ADVANCE(33); if (lookahead == ':') ADVANCE(16); - if (lookahead == '<') ADVANCE(10); + if (lookahead == '<') ADVANCE(29); if (lookahead == '=') ADVANCE(14); - if (lookahead == '>') ADVANCE(11); - if (lookahead == '[') ADVANCE(36); - if (lookahead == ']') ADVANCE(37); + if (lookahead == '>') ADVANCE(31); + if (lookahead == '[') ADVANCE(37); + if (lookahead == ']') ADVANCE(38); if (lookahead == '^') ADVANCE(26); if (lookahead == '{') ADVANCE(12); if (lookahead == '|') ADVANCE(24); @@ -3153,14 +3189,17 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { case 1: if (lookahead == '\n') ADVANCE(43); if (lookahead == '!') ADVANCE(22); + if (lookahead == '#') ADVANCE(3); if (lookahead == '&') ADVANCE(25); - if (lookahead == '(') ADVANCE(34); - if (lookahead == ')') ADVANCE(35); + if (lookahead == '(') ADVANCE(36); + if (lookahead == ')') ADVANCE(11); if (lookahead == '*') ADVANCE(21); if (lookahead == '+') ADVANCE(19); + if (lookahead == ',') ADVANCE(42); if (lookahead == '-') ADVANCE(20); if (lookahead == '/') ADVANCE(4); if (lookahead == ':') ADVANCE(7); + if (lookahead == '[') ADVANCE(37); if (lookahead == '^') ADVANCE(26); if (lookahead == '{') ADVANCE(12); if (lookahead == '|') ADVANCE(24); @@ -3175,22 +3214,22 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '\n') ADVANCE(43); if (lookahead == '!') ADVANCE(8); if (lookahead == '#') ADVANCE(3); - if (lookahead == '%') ADVANCE(32); + if (lookahead == '%') ADVANCE(34); if (lookahead == '&') ADVANCE(25); - if (lookahead == '(') ADVANCE(34); - if (lookahead == ')') ADVANCE(35); + if (lookahead == '(') ADVANCE(36); + if (lookahead == ')') ADVANCE(11); if (lookahead == '*') ADVANCE(21); if (lookahead == '+') ADVANCE(19); if (lookahead == ',') ADVANCE(42); if (lookahead == '-') ADVANCE(20); - if (lookahead == '.') ADVANCE(33); - if (lookahead == '/') ADVANCE(31); + if (lookahead == '.') ADVANCE(35); + if (lookahead == '/') ADVANCE(33); if (lookahead == ':') ADVANCE(7); - if (lookahead == '<') ADVANCE(10); + if (lookahead == '<') ADVANCE(29); if (lookahead == '=') ADVANCE(14); - if (lookahead == '>') ADVANCE(11); - if (lookahead == '[') ADVANCE(36); - if (lookahead == ']') ADVANCE(37); + if (lookahead == '>') ADVANCE(31); + if (lookahead == '[') ADVANCE(37); + if (lookahead == ']') ADVANCE(38); if (lookahead == '^') ADVANCE(26); if (lookahead == '{') ADVANCE(12); if (lookahead == '|') ADVANCE(24); @@ -3201,7 +3240,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (sym_identifier_character_set_1(lookahead)) ADVANCE(40); END_STATE(); case 3: - if (lookahead == '(') ADVANCE(39); + if (lookahead == '(') ADVANCE(10); END_STATE(); case 4: if (lookahead == '*') ADVANCE(6); @@ -3217,7 +3256,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead != 0) ADVANCE(6); END_STATE(); case 7: - if (lookahead == ':') ADVANCE(38); + if (lookahead == ':') ADVANCE(39); END_STATE(); case 8: if (lookahead == '=') ADVANCE(28); @@ -3226,12 +3265,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); case 10: - ACCEPT_TOKEN(anon_sym_LT); - if (lookahead == '=') ADVANCE(29); + ACCEPT_TOKEN(anon_sym_POUND_LPAREN); END_STATE(); case 11: - ACCEPT_TOKEN(anon_sym_GT); - if (lookahead == '=') ADVANCE(30); + ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); case 12: ACCEPT_TOKEN(anon_sym_LBRACE); @@ -3288,40 +3325,42 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { ACCEPT_TOKEN(anon_sym_BANG_EQ); END_STATE(); case 29: - ACCEPT_TOKEN(anon_sym_LT_EQ); + ACCEPT_TOKEN(anon_sym_LT); + if (lookahead == '=') ADVANCE(30); END_STATE(); case 30: - ACCEPT_TOKEN(anon_sym_GT_EQ); + ACCEPT_TOKEN(anon_sym_LT_EQ); END_STATE(); case 31: - ACCEPT_TOKEN(anon_sym_SLASH); - if (lookahead == '*') ADVANCE(6); - if (lookahead == '/') ADVANCE(44); + ACCEPT_TOKEN(anon_sym_GT); + if (lookahead == '=') ADVANCE(32); END_STATE(); case 32: - ACCEPT_TOKEN(anon_sym_PERCENT); + ACCEPT_TOKEN(anon_sym_GT_EQ); END_STATE(); case 33: - ACCEPT_TOKEN(anon_sym_DOT); - if (lookahead == '.') ADVANCE(15); + ACCEPT_TOKEN(anon_sym_SLASH); + if (lookahead == '*') ADVANCE(6); + if (lookahead == '/') ADVANCE(44); END_STATE(); case 34: - ACCEPT_TOKEN(anon_sym_LPAREN); + ACCEPT_TOKEN(anon_sym_PERCENT); END_STATE(); case 35: - ACCEPT_TOKEN(anon_sym_RPAREN); + ACCEPT_TOKEN(anon_sym_DOT); + if (lookahead == '.') ADVANCE(15); END_STATE(); case 36: - ACCEPT_TOKEN(anon_sym_LBRACK); + ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); case 37: - ACCEPT_TOKEN(anon_sym_RBRACK); + ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); case 38: - ACCEPT_TOKEN(anon_sym_COLON_COLON); + ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); case 39: - ACCEPT_TOKEN(anon_sym_POUND_LPAREN); + ACCEPT_TOKEN(anon_sym_COLON_COLON); END_STATE(); case 40: ACCEPT_TOKEN(sym_identifier); @@ -3675,44 +3714,44 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [33] = {.lex_state = 2}, [34] = {.lex_state = 2}, [35] = {.lex_state = 2}, - [36] = {.lex_state = 1}, + [36] = {.lex_state = 2}, [37] = {.lex_state = 2}, [38] = {.lex_state = 2}, - [39] = {.lex_state = 1}, - [40] = {.lex_state = 2}, + [39] = {.lex_state = 2}, + [40] = {.lex_state = 1}, [41] = {.lex_state = 2}, - [42] = {.lex_state = 2}, + [42] = {.lex_state = 1}, [43] = {.lex_state = 2}, [44] = {.lex_state = 2}, - [45] = {.lex_state = 1}, + [45] = {.lex_state = 2}, [46] = {.lex_state = 2}, [47] = {.lex_state = 2}, [48] = {.lex_state = 2}, [49] = {.lex_state = 2}, [50] = {.lex_state = 2}, - [51] = {.lex_state = 1}, + [51] = {.lex_state = 2}, [52] = {.lex_state = 2}, - [53] = {.lex_state = 1}, - [54] = {.lex_state = 1}, + [53] = {.lex_state = 2}, + [54] = {.lex_state = 2}, [55] = {.lex_state = 1}, - [56] = {.lex_state = 1}, - [57] = {.lex_state = 1}, + [56] = {.lex_state = 2}, + [57] = {.lex_state = 2}, [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}, + [64] = {.lex_state = 2}, [65] = {.lex_state = 1}, - [66] = {.lex_state = 2}, - [67] = {.lex_state = 2}, + [66] = {.lex_state = 1}, + [67] = {.lex_state = 1}, [68] = {.lex_state = 1}, [69] = {.lex_state = 1}, - [70] = {.lex_state = 1}, + [70] = {.lex_state = 2}, [71] = {.lex_state = 1}, [72] = {.lex_state = 1}, - [73] = {.lex_state = 1}, + [73] = {.lex_state = 2}, [74] = {.lex_state = 1}, [75] = {.lex_state = 1}, [76] = {.lex_state = 1}, @@ -3721,43 +3760,43 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [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}, + [82] = {.lex_state = 1}, + [83] = {.lex_state = 1}, + [84] = {.lex_state = 1}, + [85] = {.lex_state = 1}, + [86] = {.lex_state = 1}, + [87] = {.lex_state = 1}, + [88] = {.lex_state = 1}, + [89] = {.lex_state = 1}, + [90] = {.lex_state = 1}, [91] = {.lex_state = 1}, [92] = {.lex_state = 0}, [93] = {.lex_state = 0}, [94] = {.lex_state = 0}, - [95] = {.lex_state = 1}, - [96] = {.lex_state = 1}, + [95] = {.lex_state = 0}, + [96] = {.lex_state = 0}, [97] = {.lex_state = 0}, [98] = {.lex_state = 0}, [99] = {.lex_state = 0}, - [100] = {.lex_state = 1}, + [100] = {.lex_state = 0}, [101] = {.lex_state = 0}, [102] = {.lex_state = 0}, - [103] = {.lex_state = 0}, - [104] = {.lex_state = 0}, + [103] = {.lex_state = 1}, + [104] = {.lex_state = 1}, [105] = {.lex_state = 0}, [106] = {.lex_state = 0}, [107] = {.lex_state = 0}, [108] = {.lex_state = 0}, [109] = {.lex_state = 0}, - [110] = {.lex_state = 0}, - [111] = {.lex_state = 0}, + [110] = {.lex_state = 1}, + [111] = {.lex_state = 1}, [112] = {.lex_state = 0}, [113] = {.lex_state = 0}, [114] = {.lex_state = 0}, [115] = {.lex_state = 0}, [116] = {.lex_state = 0}, [117] = {.lex_state = 0}, - [118] = {.lex_state = 0}, + [118] = {.lex_state = 1}, [119] = {.lex_state = 0}, [120] = {.lex_state = 0}, [121] = {.lex_state = 0}, @@ -3839,6 +3878,34 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [197] = {.lex_state = 0}, [198] = {.lex_state = 0}, [199] = {.lex_state = 0}, + [200] = {.lex_state = 0}, + [201] = {.lex_state = 0}, + [202] = {.lex_state = 0}, + [203] = {.lex_state = 0}, + [204] = {.lex_state = 0}, + [205] = {.lex_state = 0}, + [206] = {.lex_state = 0}, + [207] = {.lex_state = 0}, + [208] = {.lex_state = 0}, + [209] = {.lex_state = 0}, + [210] = {.lex_state = 0}, + [211] = {.lex_state = 0}, + [212] = {.lex_state = 0}, + [213] = {.lex_state = 0}, + [214] = {.lex_state = 0}, + [215] = {.lex_state = 0}, + [216] = {.lex_state = 0}, + [217] = {.lex_state = 0}, + [218] = {.lex_state = 0}, + [219] = {.lex_state = 0}, + [220] = {.lex_state = 0}, + [221] = {.lex_state = 0}, + [222] = {.lex_state = 0}, + [223] = {.lex_state = 0}, + [224] = {.lex_state = 0}, + [225] = {.lex_state = 0}, + [226] = {.lex_state = 0}, + [227] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -3850,8 +3917,8 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_module] = ACTIONS(1), [anon_sym_function] = ACTIONS(1), [anon_sym_struct] = ACTIONS(1), - [anon_sym_LT] = ACTIONS(1), - [anon_sym_GT] = ACTIONS(1), + [anon_sym_POUND_LPAREN] = ACTIONS(1), + [anon_sym_RPAREN] = ACTIONS(1), [anon_sym_LBRACE] = ACTIONS(1), [anon_sym_RBRACE] = ACTIONS(1), [anon_sym_EQ] = ACTIONS(1), @@ -3880,16 +3947,16 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_CARET] = ACTIONS(1), [anon_sym_EQ_EQ] = ACTIONS(1), [anon_sym_BANG_EQ] = ACTIONS(1), + [anon_sym_LT] = ACTIONS(1), [anon_sym_LT_EQ] = ACTIONS(1), + [anon_sym_GT] = ACTIONS(1), [anon_sym_GT_EQ] = ACTIONS(1), [anon_sym_SLASH] = ACTIONS(1), [anon_sym_PERCENT] = ACTIONS(1), [anon_sym_DOT] = ACTIONS(1), [anon_sym_LPAREN] = ACTIONS(1), - [anon_sym_RPAREN] = ACTIONS(1), [anon_sym_LBRACK] = ACTIONS(1), [anon_sym_RBRACK] = ACTIONS(1), - [anon_sym_POUND_LPAREN] = ACTIONS(1), [anon_sym_type] = ACTIONS(1), [sym_number] = ACTIONS(1), [anon_sym_COMMA] = ACTIONS(1), @@ -3898,9 +3965,9 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(192), - [sym_global_object] = STATE(144), - [aux_sym__linebreak] = STATE(82), + [sym_source_file] = STATE(225), + [sym_global_object] = STATE(169), + [aux_sym__linebreak] = STATE(94), [ts_builtin_sym_end] = ACTIONS(5), [anon_sym___builtin__] = ACTIONS(7), [anon_sym_extern] = ACTIONS(7), @@ -3941,22 +4008,22 @@ static const uint16_t ts_small_parse_table[] = { sym_number, ACTIONS(43), 1, anon_sym_LF, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, - STATE(36), 1, - sym_write_modifiers, - STATE(39), 1, + STATE(40), 1, aux_sym__linebreak, - STATE(44), 1, + STATE(42), 1, + sym_write_modifiers, + STATE(51), 1, sym_template_global, - STATE(73), 1, + STATE(79), 1, aux_sym_write_modifiers_repeat1, - STATE(103), 1, + STATE(124), 1, sym_assign_to, - STATE(112), 1, - sym_declaration, - STATE(164), 1, + STATE(127), 1, sym_assign_left_side, + STATE(141), 1, + sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -3966,10 +4033,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(160), 2, + STATE(178), 2, sym__type, sym_array_type, - STATE(173), 6, + STATE(156), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -3984,7 +4051,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(43), 7, + STATE(49), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4019,21 +4086,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(45), 1, anon_sym_RBRACE, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, - STATE(36), 1, - sym_write_modifiers, - STATE(39), 1, + STATE(40), 1, aux_sym__linebreak, - STATE(44), 1, + STATE(42), 1, + sym_write_modifiers, + STATE(51), 1, sym_template_global, - STATE(73), 1, + STATE(79), 1, aux_sym_write_modifiers_repeat1, - STATE(103), 1, + STATE(124), 1, sym_assign_to, - STATE(112), 1, + STATE(141), 1, sym_declaration, - STATE(164), 1, + STATE(179), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4044,10 +4111,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(160), 2, + STATE(178), 2, sym__type, sym_array_type, - STATE(173), 6, + STATE(200), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4062,7 +4129,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(43), 7, + STATE(49), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4097,21 +4164,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(47), 1, anon_sym_RBRACE, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, - STATE(36), 1, - sym_write_modifiers, - STATE(39), 1, + STATE(40), 1, aux_sym__linebreak, - STATE(44), 1, + STATE(42), 1, + sym_write_modifiers, + STATE(51), 1, sym_template_global, - STATE(73), 1, + STATE(79), 1, aux_sym_write_modifiers_repeat1, - STATE(103), 1, + STATE(124), 1, sym_assign_to, - STATE(112), 1, + STATE(141), 1, sym_declaration, - STATE(164), 1, + STATE(179), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4122,10 +4189,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(160), 2, + STATE(178), 2, sym__type, sym_array_type, - STATE(173), 6, + STATE(200), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4140,7 +4207,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(43), 7, + STATE(49), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4171,26 +4238,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(41), 1, sym_number, + ACTIONS(43), 1, + anon_sym_LF, ACTIONS(49), 1, anon_sym_RBRACE, - ACTIONS(51), 1, - anon_sym_LF, - STATE(7), 1, - aux_sym__linebreak, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, - STATE(36), 1, + STATE(40), 1, + aux_sym__linebreak, + STATE(42), 1, sym_write_modifiers, - STATE(44), 1, + STATE(51), 1, sym_template_global, - STATE(73), 1, + STATE(79), 1, aux_sym_write_modifiers_repeat1, - STATE(103), 1, + STATE(124), 1, sym_assign_to, - STATE(107), 1, - sym_assign_left_side, - STATE(112), 1, + STATE(141), 1, sym_declaration, + STATE(179), 1, + sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -4200,10 +4267,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(160), 2, + STATE(178), 2, sym__type, sym_array_type, - STATE(114), 6, + STATE(200), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4218,7 +4285,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(43), 7, + STATE(49), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4251,23 +4318,23 @@ static const uint16_t ts_small_parse_table[] = { sym_number, ACTIONS(43), 1, anon_sym_LF, - ACTIONS(53), 1, + ACTIONS(51), 1, anon_sym_RBRACE, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, - STATE(36), 1, - sym_write_modifiers, - STATE(39), 1, + STATE(40), 1, aux_sym__linebreak, - STATE(44), 1, + STATE(42), 1, + sym_write_modifiers, + STATE(51), 1, sym_template_global, - STATE(73), 1, + STATE(79), 1, aux_sym_write_modifiers_repeat1, - STATE(103), 1, + STATE(124), 1, sym_assign_to, - STATE(112), 1, + STATE(141), 1, sym_declaration, - STATE(164), 1, + STATE(179), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4278,10 +4345,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(160), 2, + STATE(178), 2, sym__type, sym_array_type, - STATE(173), 6, + STATE(200), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4296,7 +4363,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(43), 7, + STATE(49), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4327,25 +4394,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(41), 1, sym_number, - ACTIONS(43), 1, - anon_sym_LF, - ACTIONS(55), 1, + ACTIONS(53), 1, anon_sym_RBRACE, - STATE(16), 1, + ACTIONS(55), 1, + anon_sym_LF, + STATE(2), 1, + aux_sym__linebreak, + STATE(17), 1, sym_namespace_list, - STATE(36), 1, + STATE(42), 1, sym_write_modifiers, - STATE(39), 1, - aux_sym__linebreak, - STATE(44), 1, + STATE(51), 1, sym_template_global, - STATE(73), 1, + STATE(79), 1, aux_sym_write_modifiers_repeat1, - STATE(103), 1, + STATE(124), 1, sym_assign_to, - STATE(108), 1, + STATE(132), 1, sym_assign_left_side, - STATE(112), 1, + STATE(141), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -4356,10 +4423,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(160), 2, + STATE(178), 2, sym__type, sym_array_type, - STATE(130), 6, + STATE(144), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4374,7 +4441,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(43), 7, + STATE(49), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4409,21 +4476,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(57), 1, anon_sym_RBRACE, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, - STATE(36), 1, - sym_write_modifiers, - STATE(39), 1, + STATE(40), 1, aux_sym__linebreak, - STATE(44), 1, + STATE(42), 1, + sym_write_modifiers, + STATE(51), 1, sym_template_global, - STATE(73), 1, + STATE(79), 1, aux_sym_write_modifiers_repeat1, - STATE(103), 1, + STATE(124), 1, sym_assign_to, - STATE(112), 1, + STATE(141), 1, sym_declaration, - STATE(164), 1, + STATE(179), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4434,10 +4501,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(160), 2, + STATE(178), 2, sym__type, sym_array_type, - STATE(173), 6, + STATE(200), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4452,7 +4519,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(43), 7, + STATE(49), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4487,21 +4554,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(59), 1, anon_sym_RBRACE, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, - STATE(36), 1, - sym_write_modifiers, - STATE(39), 1, + STATE(40), 1, aux_sym__linebreak, - STATE(44), 1, + STATE(42), 1, + sym_write_modifiers, + STATE(51), 1, sym_template_global, - STATE(73), 1, + STATE(79), 1, aux_sym_write_modifiers_repeat1, - STATE(103), 1, + STATE(124), 1, sym_assign_to, - STATE(112), 1, + STATE(141), 1, sym_declaration, - STATE(164), 1, + STATE(179), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4512,10 +4579,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(160), 2, + STATE(178), 2, sym__type, sym_array_type, - STATE(173), 6, + STATE(200), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4530,7 +4597,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(43), 7, + STATE(49), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4563,21 +4630,21 @@ static const uint16_t ts_small_parse_table[] = { sym_number, ACTIONS(43), 1, anon_sym_LF, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, - STATE(36), 1, - sym_write_modifiers, - STATE(39), 1, + STATE(40), 1, aux_sym__linebreak, - STATE(44), 1, + STATE(42), 1, + sym_write_modifiers, + STATE(51), 1, sym_template_global, - STATE(73), 1, + STATE(79), 1, aux_sym_write_modifiers_repeat1, - STATE(103), 1, + STATE(124), 1, sym_assign_to, - STATE(112), 1, + STATE(141), 1, sym_declaration, - STATE(164), 1, + STATE(179), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, @@ -4588,10 +4655,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(160), 2, + STATE(178), 2, sym__type, sym_array_type, - STATE(173), 6, + STATE(200), 6, sym_block, sym_decl_assign_statement, sym_if_statement, @@ -4606,7 +4673,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(43), 7, + STATE(49), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4627,17 +4694,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, ACTIONS(41), 1, sym_number, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, - STATE(36), 1, + STATE(42), 1, sym_write_modifiers, - STATE(44), 1, + STATE(51), 1, sym_template_global, - STATE(73), 1, + STATE(79), 1, aux_sym_write_modifiers_repeat1, - STATE(110), 1, + STATE(137), 1, sym_assign_to, - STATE(112), 1, + STATE(141), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -4648,7 +4715,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(160), 2, + STATE(178), 2, sym__type, sym_array_type, ACTIONS(35), 7, @@ -4659,7 +4726,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(43), 7, + STATE(49), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4676,15 +4743,17 @@ static const uint16_t ts_small_parse_table[] = { sym_single_line_comment, sym_multi_line_comment, ACTIONS(61), 8, - anon_sym_LT, - anon_sym_GT, anon_sym_EQ, anon_sym_in, anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, sym_identifier, ACTIONS(63), 21, + anon_sym_POUND_LPAREN, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4700,30 +4769,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_POUND_LPAREN, anon_sym_COMMA, anon_sym_LF, [1066] = 5, - ACTIONS(71), 1, + ACTIONS(65), 1, anon_sym_COLON_COLON, - STATE(13), 1, + STATE(14), 1, aux_sym_namespace_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(67), 8, - anon_sym_LT, - anon_sym_GT, anon_sym_EQ, anon_sym_in, anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, sym_identifier, ACTIONS(69), 21, + anon_sym_POUND_LPAREN, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4739,30 +4808,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_POUND_LPAREN, anon_sym_COMMA, anon_sym_LF, [1110] = 5, - ACTIONS(65), 1, + ACTIONS(75), 1, anon_sym_COLON_COLON, - STATE(12), 1, + STATE(14), 1, aux_sym_namespace_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(74), 8, - anon_sym_LT, - anon_sym_GT, + ACTIONS(71), 8, anon_sym_EQ, anon_sym_in, anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(76), 21, + ACTIONS(73), 21, + anon_sym_POUND_LPAREN, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4778,10 +4847,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_POUND_LPAREN, anon_sym_COMMA, anon_sym_LF, [1154] = 3, @@ -4789,15 +4856,17 @@ static const uint16_t ts_small_parse_table[] = { sym_single_line_comment, sym_multi_line_comment, ACTIONS(78), 8, - anon_sym_LT, - anon_sym_GT, anon_sym_EQ, anon_sym_in, anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, sym_identifier, ACTIONS(80), 22, + anon_sym_POUND_LPAREN, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4813,31 +4882,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COLON_COLON, - anon_sym_POUND_LPAREN, anon_sym_COMMA, anon_sym_LF, [1193] = 5, - ACTIONS(86), 1, + ACTIONS(84), 1, anon_sym_POUND_LPAREN, - STATE(30), 1, + STATE(27), 1, sym_template_args, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(82), 8, - anon_sym_LT, - anon_sym_GT, anon_sym_EQ, anon_sym_in, anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(84), 20, + ACTIONS(86), 20, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4853,29 +4921,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, [1236] = 5, - ACTIONS(86), 1, + ACTIONS(84), 1, anon_sym_POUND_LPAREN, - STATE(27), 1, + STATE(37), 1, sym_template_args, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(88), 8, - anon_sym_LT, - anon_sym_GT, anon_sym_EQ, anon_sym_in, anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, sym_identifier, ACTIONS(90), 20, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -4891,44 +4959,39 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1279] = 12, + [1279] = 8, ACTIONS(96), 1, - anon_sym_PLUS, - ACTIONS(98), 1, - anon_sym_DASH, - ACTIONS(102), 1, - anon_sym_SLASH, - ACTIONS(104), 1, anon_sym_DOT, - ACTIONS(106), 1, + ACTIONS(98), 1, anon_sym_LPAREN, - ACTIONS(108), 1, + ACTIONS(100), 1, anon_sym_LBRACK, - STATE(31), 1, + STATE(43), 1, sym_parenthesis_expression_list, - STATE(38), 1, + STATE(46), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(100), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(92), 3, + ACTIONS(94), 5, + anon_sym_EQ, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, - anon_sym_EQ, - ACTIONS(94), 16, + anon_sym_SLASH, + ACTIONS(92), 19, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -4936,38 +4999,42 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_RPAREN, + anon_sym_PERCENT, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1335] = 8, - ACTIONS(104), 1, + [1327] = 10, + ACTIONS(96), 1, anon_sym_DOT, - ACTIONS(106), 1, + ACTIONS(98), 1, anon_sym_LPAREN, - ACTIONS(108), 1, + ACTIONS(100), 1, anon_sym_LBRACK, - STATE(31), 1, + ACTIONS(108), 1, + anon_sym_SLASH, + STATE(43), 1, sym_parenthesis_expression_list, - STATE(38), 1, + STATE(46), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(110), 5, - anon_sym_LT, - anon_sym_GT, + ACTIONS(106), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(104), 4, anon_sym_EQ, anon_sym_DASH, - anon_sym_SLASH, - ACTIONS(112), 19, + anon_sym_LT, + anon_sym_GT, + ACTIONS(102), 17, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, anon_sym_PLUS, - anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -4975,87 +5042,85 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1383] = 14, + [1379] = 15, ACTIONS(96), 1, - anon_sym_PLUS, - ACTIONS(98), 1, - anon_sym_DASH, - ACTIONS(102), 1, - anon_sym_SLASH, - ACTIONS(104), 1, anon_sym_DOT, - ACTIONS(106), 1, + ACTIONS(98), 1, anon_sym_LPAREN, - ACTIONS(108), 1, + ACTIONS(100), 1, anon_sym_LBRACK, + ACTIONS(108), 1, + anon_sym_SLASH, + ACTIONS(110), 1, + anon_sym_PLUS, + ACTIONS(112), 1, + anon_sym_DASH, ACTIONS(114), 1, anon_sym_PIPE, ACTIONS(116), 1, + anon_sym_AMP, + ACTIONS(118), 1, anon_sym_CARET, - STATE(31), 1, + STATE(43), 1, sym_parenthesis_expression_list, - STATE(38), 1, + STATE(46), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(100), 2, + ACTIONS(106), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(92), 3, + ACTIONS(104), 3, + anon_sym_EQ, anon_sym_LT, anon_sym_GT, - anon_sym_EQ, - ACTIONS(94), 14, + ACTIONS(102), 13, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, - anon_sym_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1443] = 13, + [1441] = 12, ACTIONS(96), 1, - anon_sym_PLUS, - ACTIONS(98), 1, - anon_sym_DASH, - ACTIONS(102), 1, - anon_sym_SLASH, - ACTIONS(104), 1, anon_sym_DOT, - ACTIONS(106), 1, + ACTIONS(98), 1, anon_sym_LPAREN, - ACTIONS(108), 1, + ACTIONS(100), 1, anon_sym_LBRACK, - ACTIONS(116), 1, - anon_sym_CARET, - STATE(31), 1, + ACTIONS(108), 1, + anon_sym_SLASH, + ACTIONS(110), 1, + anon_sym_PLUS, + ACTIONS(112), 1, + anon_sym_DASH, + STATE(43), 1, sym_parenthesis_expression_list, - STATE(38), 1, + STATE(46), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(100), 2, + ACTIONS(106), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(92), 3, + ACTIONS(104), 3, + anon_sym_EQ, anon_sym_LT, anon_sym_GT, - anon_sym_EQ, - ACTIONS(94), 15, + ACTIONS(102), 16, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, @@ -5063,140 +5128,142 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_GT, anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1501] = 8, - ACTIONS(104), 1, + [1497] = 14, + ACTIONS(96), 1, anon_sym_DOT, - ACTIONS(106), 1, + ACTIONS(98), 1, anon_sym_LPAREN, - ACTIONS(108), 1, + ACTIONS(100), 1, anon_sym_LBRACK, - STATE(31), 1, + ACTIONS(108), 1, + anon_sym_SLASH, + ACTIONS(110), 1, + anon_sym_PLUS, + ACTIONS(112), 1, + anon_sym_DASH, + ACTIONS(114), 1, + anon_sym_PIPE, + ACTIONS(118), 1, + anon_sym_CARET, + STATE(43), 1, sym_parenthesis_expression_list, - STATE(38), 1, + STATE(46), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(92), 5, + ACTIONS(106), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(104), 3, + anon_sym_EQ, anon_sym_LT, anon_sym_GT, - anon_sym_EQ, - anon_sym_DASH, - anon_sym_SLASH, - ACTIONS(94), 19, + ACTIONS(102), 14, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, - anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1549] = 10, - ACTIONS(102), 1, - anon_sym_SLASH, - ACTIONS(104), 1, + [1557] = 13, + ACTIONS(96), 1, anon_sym_DOT, - ACTIONS(106), 1, + ACTIONS(98), 1, anon_sym_LPAREN, - ACTIONS(108), 1, + ACTIONS(100), 1, anon_sym_LBRACK, - STATE(31), 1, + ACTIONS(108), 1, + anon_sym_SLASH, + ACTIONS(110), 1, + anon_sym_PLUS, + ACTIONS(112), 1, + anon_sym_DASH, + ACTIONS(118), 1, + anon_sym_CARET, + STATE(43), 1, sym_parenthesis_expression_list, - STATE(38), 1, + STATE(46), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(100), 2, + ACTIONS(106), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(92), 4, + ACTIONS(104), 3, + anon_sym_EQ, anon_sym_LT, anon_sym_GT, - anon_sym_EQ, - anon_sym_DASH, - ACTIONS(94), 17, + ACTIONS(102), 15, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, - anon_sym_PLUS, anon_sym_PIPE, anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1601] = 15, + [1615] = 8, ACTIONS(96), 1, - anon_sym_PLUS, - ACTIONS(98), 1, - anon_sym_DASH, - ACTIONS(102), 1, - anon_sym_SLASH, - ACTIONS(104), 1, anon_sym_DOT, - ACTIONS(106), 1, + ACTIONS(98), 1, anon_sym_LPAREN, - ACTIONS(108), 1, + ACTIONS(100), 1, anon_sym_LBRACK, - ACTIONS(114), 1, - anon_sym_PIPE, - ACTIONS(116), 1, - anon_sym_CARET, - ACTIONS(118), 1, - anon_sym_AMP, - STATE(31), 1, + STATE(43), 1, sym_parenthesis_expression_list, - STATE(38), 1, + STATE(46), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(100), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(92), 3, + ACTIONS(104), 5, + anon_sym_EQ, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, - anon_sym_EQ, - ACTIONS(94), 13, + anon_sym_SLASH, + ACTIONS(102), 19, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_RPAREN, + anon_sym_PERCENT, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, @@ -5205,15 +5272,16 @@ static const uint16_t ts_small_parse_table[] = { sym_single_line_comment, sym_multi_line_comment, ACTIONS(120), 8, - anon_sym_LT, - anon_sym_GT, anon_sym_EQ, anon_sym_in, anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, sym_identifier, ACTIONS(122), 20, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5229,7 +5297,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COMMA, @@ -5239,15 +5306,16 @@ static const uint16_t ts_small_parse_table[] = { sym_single_line_comment, sym_multi_line_comment, ACTIONS(124), 8, - anon_sym_LT, - anon_sym_GT, anon_sym_EQ, anon_sym_in, anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, sym_identifier, ACTIONS(126), 20, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5263,7 +5331,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COMMA, @@ -5273,15 +5340,16 @@ static const uint16_t ts_small_parse_table[] = { sym_single_line_comment, sym_multi_line_comment, ACTIONS(128), 8, - anon_sym_LT, - anon_sym_GT, anon_sym_EQ, anon_sym_in, anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, sym_identifier, ACTIONS(130), 20, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5297,7 +5365,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COMMA, @@ -5307,15 +5374,16 @@ static const uint16_t ts_small_parse_table[] = { sym_single_line_comment, sym_multi_line_comment, ACTIONS(132), 8, - anon_sym_LT, - anon_sym_GT, anon_sym_EQ, anon_sym_in, anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, sym_identifier, ACTIONS(134), 20, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5331,7 +5399,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COMMA, @@ -5341,15 +5408,16 @@ static const uint16_t ts_small_parse_table[] = { sym_single_line_comment, sym_multi_line_comment, ACTIONS(136), 8, - anon_sym_LT, - anon_sym_GT, anon_sym_EQ, anon_sym_in, anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, sym_identifier, ACTIONS(138), 20, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5365,7 +5433,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COMMA, @@ -5375,15 +5442,16 @@ static const uint16_t ts_small_parse_table[] = { sym_single_line_comment, sym_multi_line_comment, ACTIONS(140), 8, - anon_sym_LT, - anon_sym_GT, anon_sym_EQ, anon_sym_in, anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, sym_identifier, ACTIONS(142), 20, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT_DOT, @@ -5399,7 +5467,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COMMA, @@ -5408,17 +5475,19 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(144), 6, - anon_sym_LT, - anon_sym_GT, + ACTIONS(144), 8, anon_sym_EQ, + anon_sym_in, anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(146), 21, + sym_identifier, + ACTIONS(146), 20, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, anon_sym_PLUS, @@ -5432,26 +5501,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1921] = 3, + [1922] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(148), 6, - anon_sym_LT, - anon_sym_GT, + ACTIONS(148), 8, anon_sym_EQ, + anon_sym_in, anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(150), 21, + sym_identifier, + ACTIONS(150), 20, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, anon_sym_PLUS, @@ -5465,26 +5535,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1957] = 3, + [1959] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(152), 6, - anon_sym_LT, - anon_sym_GT, + ACTIONS(152), 8, anon_sym_EQ, + anon_sym_in, anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(154), 21, + sym_identifier, + ACTIONS(154), 20, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, anon_sym_PLUS, @@ -5498,26 +5569,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1993] = 3, + [1996] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(156), 6, - anon_sym_LT, - anon_sym_GT, + ACTIONS(156), 8, anon_sym_EQ, + anon_sym_in, anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(158), 21, + sym_identifier, + ACTIONS(158), 20, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, anon_sym_PLUS, @@ -5531,23 +5603,158 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [2029] = 3, + [2033] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(160), 6, - anon_sym_LT, - anon_sym_GT, + ACTIONS(160), 8, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(162), 20, + anon_sym_RPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, + anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_LF, + [2070] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(164), 8, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(166), 20, + anon_sym_RPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, + anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_LF, + [2107] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(168), 8, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + anon_sym_DOT, + sym_identifier, + ACTIONS(170), 20, + anon_sym_RPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT_DOT, + anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_LF, + [2144] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(174), 6, + anon_sym_EQ, + anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(172), 21, + anon_sym_RPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DOT_DOT, + anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_LF, + [2180] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(178), 6, anon_sym_EQ, anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(162), 21, + ACTIONS(176), 21, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, @@ -5564,25 +5771,92 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_LF, + [2216] = 5, + ACTIONS(184), 1, + anon_sym_LF, + STATE(40), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(180), 12, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + anon_sym_domain, + anon_sym_interface, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + anon_sym_DASH, + sym_identifier, + ACTIONS(182), 13, + anon_sym_RPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, + [2256] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(189), 6, + anon_sym_EQ, + anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(187), 21, anon_sym_RPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DOT_DOT, + anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [2065] = 13, + [2292] = 13, ACTIONS(13), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(164), 1, + ACTIONS(191), 1, sym_number, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, - STATE(44), 1, + STATE(51), 1, sym_template_global, - STATE(109), 1, + STATE(138), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -5593,7 +5867,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(160), 2, + STATE(178), 2, sym__type, sym_array_type, ACTIONS(35), 7, @@ -5604,7 +5878,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(42), 7, + STATE(50), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -5612,18 +5886,19 @@ static const uint16_t ts_small_parse_table[] = { sym_func_call, sym_field_access, sym_parenthesis_expression, - [2121] = 3, + [2348] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(166), 6, - anon_sym_LT, - anon_sym_GT, + ACTIONS(195), 6, anon_sym_EQ, anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(168), 21, + ACTIONS(193), 21, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, @@ -5640,23 +5915,56 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [2157] = 3, + [2384] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(170), 6, + ACTIONS(199), 6, + anon_sym_EQ, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(197), 21, + anon_sym_RPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_in, + anon_sym_DOT_DOT, + anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_LF, + [2420] = 3, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(203), 6, anon_sym_EQ, anon_sym_DASH, + anon_sym_LT, + anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(172), 21, + ACTIONS(201), 21, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, @@ -5673,232 +5981,231 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [2193] = 5, - ACTIONS(178), 1, - anon_sym_LF, - STATE(39), 1, - aux_sym__linebreak, + [2456] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(174), 12, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - anon_sym_domain, - anon_sym_interface, - anon_sym_input, - anon_sym_output, - anon_sym_state, - anon_sym_gen, + ACTIONS(207), 6, + anon_sym_EQ, anon_sym_DASH, - sym_identifier, - ACTIONS(176), 12, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(205), 21, + anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_in, + anon_sym_DOT_DOT, anon_sym_DASH_GT, anon_sym_PLUS, anon_sym_STAR, - anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_LPAREN, - anon_sym_COLON_COLON, - sym_number, - [2232] = 17, - ACTIONS(96), 1, - anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_LF, + [2492] = 17, ACTIONS(98), 1, - anon_sym_DASH, - ACTIONS(102), 1, - anon_sym_SLASH, - ACTIONS(106), 1, anon_sym_LPAREN, - ACTIONS(108), 1, + ACTIONS(100), 1, anon_sym_LBRACK, + ACTIONS(108), 1, + anon_sym_SLASH, + ACTIONS(110), 1, + anon_sym_PLUS, + ACTIONS(112), 1, + anon_sym_DASH, ACTIONS(114), 1, anon_sym_PIPE, ACTIONS(116), 1, - anon_sym_CARET, - ACTIONS(118), 1, anon_sym_AMP, - ACTIONS(185), 1, + ACTIONS(118), 1, + anon_sym_CARET, + ACTIONS(211), 1, anon_sym_EQ, - ACTIONS(189), 1, + ACTIONS(217), 1, anon_sym_DOT, - STATE(31), 1, + STATE(43), 1, sym_parenthesis_expression_list, - STATE(38), 1, + STATE(46), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(100), 2, + ACTIONS(106), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(181), 2, + ACTIONS(215), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(187), 4, + ACTIONS(213), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(183), 5, + ACTIONS(209), 6, + anon_sym_RPAREN, anon_sym_RBRACE, anon_sym_in, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [2294] = 18, - ACTIONS(102), 1, - anon_sym_SLASH, - ACTIONS(106), 1, + [2555] = 18, + ACTIONS(98), 1, anon_sym_LPAREN, - ACTIONS(108), 1, + ACTIONS(100), 1, anon_sym_LBRACK, + ACTIONS(108), 1, + anon_sym_SLASH, ACTIONS(114), 1, anon_sym_PIPE, ACTIONS(116), 1, - anon_sym_CARET, - ACTIONS(118), 1, anon_sym_AMP, - ACTIONS(189), 1, + ACTIONS(118), 1, + anon_sym_CARET, + ACTIONS(217), 1, anon_sym_DOT, - ACTIONS(191), 1, + ACTIONS(219), 1, anon_sym_RPAREN, - ACTIONS(193), 1, + ACTIONS(221), 1, anon_sym_COMMA, - STATE(31), 1, + STATE(43), 1, sym_parenthesis_expression_list, - STATE(38), 1, + STATE(46), 1, sym_array_bracket_expression, - STATE(56), 1, + STATE(61), 1, sym__comma, - STATE(154), 1, + STATE(170), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(96), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(100), 2, + ACTIONS(106), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(181), 2, + ACTIONS(110), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(215), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(187), 4, + ACTIONS(213), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2356] = 16, - ACTIONS(102), 1, - anon_sym_SLASH, - ACTIONS(106), 1, + [2617] = 16, + ACTIONS(98), 1, anon_sym_LPAREN, - ACTIONS(108), 1, + ACTIONS(100), 1, anon_sym_LBRACK, + ACTIONS(108), 1, + anon_sym_SLASH, ACTIONS(114), 1, anon_sym_PIPE, ACTIONS(116), 1, - anon_sym_CARET, - ACTIONS(118), 1, anon_sym_AMP, - ACTIONS(189), 1, + ACTIONS(118), 1, + anon_sym_CARET, + ACTIONS(217), 1, anon_sym_DOT, - ACTIONS(197), 1, + ACTIONS(225), 1, anon_sym_EQ, - STATE(31), 1, + STATE(43), 1, sym_parenthesis_expression_list, - STATE(38), 1, + STATE(46), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(96), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(100), 2, + ACTIONS(106), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(181), 2, + ACTIONS(110), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(215), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(195), 3, + ACTIONS(223), 3, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, - ACTIONS(187), 4, + ACTIONS(213), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2414] = 16, - ACTIONS(102), 1, - anon_sym_SLASH, - ACTIONS(106), 1, + [2675] = 16, + ACTIONS(98), 1, anon_sym_LPAREN, - ACTIONS(108), 1, + ACTIONS(100), 1, anon_sym_LBRACK, + ACTIONS(108), 1, + anon_sym_SLASH, ACTIONS(114), 1, anon_sym_PIPE, ACTIONS(116), 1, - anon_sym_CARET, - ACTIONS(118), 1, anon_sym_AMP, - ACTIONS(189), 1, + ACTIONS(118), 1, + anon_sym_CARET, + ACTIONS(217), 1, anon_sym_DOT, - ACTIONS(201), 1, + ACTIONS(229), 1, anon_sym_EQ, - STATE(31), 1, + STATE(43), 1, sym_parenthesis_expression_list, - STATE(38), 1, + STATE(46), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(96), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(100), 2, + ACTIONS(106), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(181), 2, + ACTIONS(110), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(215), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(199), 3, + ACTIONS(227), 3, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, - ACTIONS(187), 4, + ACTIONS(213), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2472] = 5, - ACTIONS(203), 1, + [2733] = 5, + ACTIONS(231), 1, sym_identifier, - ACTIONS(209), 1, + ACTIONS(237), 1, anon_sym_LBRACK, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(205), 4, + ACTIONS(235), 4, + anon_sym_EQ, anon_sym_LT, anon_sym_GT, - anon_sym_EQ, anon_sym_SLASH, - ACTIONS(207), 16, + ACTIONS(233), 16, anon_sym_RBRACE, anon_sym_PLUS, anon_sym_DASH, @@ -5915,248 +6222,138 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COMMA, anon_sym_LF, - [2507] = 9, - ACTIONS(37), 1, - anon_sym_LPAREN, - ACTIONS(39), 1, - anon_sym_COLON_COLON, - ACTIONS(212), 1, - sym_identifier, - ACTIONS(214), 1, - anon_sym_RPAREN, - ACTIONS(216), 1, - sym_number, - STATE(16), 1, - sym_namespace_list, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(35), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(41), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_template_global, - [2549] = 16, - ACTIONS(15), 1, - anon_sym_LBRACE, - ACTIONS(102), 1, - anon_sym_SLASH, - ACTIONS(106), 1, + [2768] = 15, + ACTIONS(98), 1, anon_sym_LPAREN, - ACTIONS(108), 1, + ACTIONS(100), 1, anon_sym_LBRACK, + ACTIONS(108), 1, + anon_sym_SLASH, ACTIONS(114), 1, anon_sym_PIPE, ACTIONS(116), 1, - anon_sym_CARET, - ACTIONS(118), 1, anon_sym_AMP, - ACTIONS(189), 1, + ACTIONS(118), 1, + anon_sym_CARET, + ACTIONS(217), 1, anon_sym_DOT, - STATE(31), 1, + STATE(43), 1, sym_parenthesis_expression_list, - STATE(38), 1, + STATE(46), 1, sym_array_bracket_expression, - STATE(168), 1, - sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(96), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(100), 2, + ACTIONS(106), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(181), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(187), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [2605] = 15, - ACTIONS(102), 1, - anon_sym_SLASH, - ACTIONS(106), 1, - anon_sym_LPAREN, - ACTIONS(108), 1, - anon_sym_LBRACK, - ACTIONS(114), 1, - anon_sym_PIPE, - ACTIONS(116), 1, - anon_sym_CARET, - ACTIONS(118), 1, - anon_sym_AMP, - ACTIONS(189), 1, - anon_sym_DOT, - STATE(31), 1, - sym_parenthesis_expression_list, - STATE(38), 1, - sym_array_bracket_expression, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(96), 2, + ACTIONS(110), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(100), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(181), 2, + ACTIONS(215), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(218), 2, + ACTIONS(240), 3, anon_sym_RPAREN, anon_sym_COMMA, - ACTIONS(187), 4, + anon_sym_LF, + ACTIONS(213), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2659] = 15, - ACTIONS(102), 1, - anon_sym_SLASH, - ACTIONS(106), 1, + [2823] = 16, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(98), 1, anon_sym_LPAREN, - ACTIONS(108), 1, + ACTIONS(100), 1, anon_sym_LBRACK, + ACTIONS(108), 1, + anon_sym_SLASH, ACTIONS(114), 1, anon_sym_PIPE, ACTIONS(116), 1, - anon_sym_CARET, - ACTIONS(118), 1, anon_sym_AMP, - ACTIONS(189), 1, + ACTIONS(118), 1, + anon_sym_CARET, + ACTIONS(217), 1, anon_sym_DOT, - STATE(31), 1, + STATE(43), 1, sym_parenthesis_expression_list, - STATE(38), 1, + STATE(46), 1, sym_array_bracket_expression, + STATE(193), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(96), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(100), 2, + ACTIONS(106), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(181), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(220), 2, - anon_sym_RBRACE, - anon_sym_LF, - ACTIONS(187), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [2713] = 15, - ACTIONS(102), 1, - anon_sym_SLASH, - ACTIONS(106), 1, - anon_sym_LPAREN, - ACTIONS(108), 1, - anon_sym_LBRACK, - ACTIONS(114), 1, - anon_sym_PIPE, - ACTIONS(116), 1, - anon_sym_CARET, - ACTIONS(118), 1, - anon_sym_AMP, - ACTIONS(189), 1, - anon_sym_DOT, - STATE(31), 1, - sym_parenthesis_expression_list, - STATE(38), 1, - sym_array_bracket_expression, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(96), 2, + ACTIONS(110), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(100), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(181), 2, + ACTIONS(215), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(222), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - ACTIONS(187), 4, + ACTIONS(213), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2767] = 16, + [2879] = 16, ACTIONS(15), 1, anon_sym_LBRACE, - ACTIONS(102), 1, - anon_sym_SLASH, - ACTIONS(106), 1, + ACTIONS(98), 1, anon_sym_LPAREN, - ACTIONS(108), 1, + ACTIONS(100), 1, anon_sym_LBRACK, + ACTIONS(108), 1, + anon_sym_SLASH, ACTIONS(114), 1, anon_sym_PIPE, ACTIONS(116), 1, - anon_sym_CARET, - ACTIONS(118), 1, anon_sym_AMP, - ACTIONS(189), 1, + ACTIONS(118), 1, + anon_sym_CARET, + ACTIONS(217), 1, anon_sym_DOT, - STATE(31), 1, + STATE(43), 1, sym_parenthesis_expression_list, - STATE(38), 1, + STATE(46), 1, sym_array_bracket_expression, - STATE(155), 1, + STATE(186), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(96), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(100), 2, + ACTIONS(106), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(181), 2, + ACTIONS(110), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(215), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(187), 4, + ACTIONS(213), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2823] = 9, + [2935] = 9, ACTIONS(13), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(224), 1, + ACTIONS(242), 1, anon_sym_type, - ACTIONS(226), 1, + ACTIONS(244), 1, sym_number, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, @@ -6169,7 +6366,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 8, + STATE(52), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6178,54 +6375,96 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2865] = 15, - ACTIONS(102), 1, - anon_sym_SLASH, - ACTIONS(104), 1, - anon_sym_DOT, - ACTIONS(106), 1, + [2977] = 15, + ACTIONS(98), 1, anon_sym_LPAREN, - ACTIONS(108), 1, + ACTIONS(100), 1, anon_sym_LBRACK, + ACTIONS(108), 1, + anon_sym_SLASH, ACTIONS(114), 1, anon_sym_PIPE, ACTIONS(116), 1, - anon_sym_CARET, - ACTIONS(118), 1, anon_sym_AMP, - ACTIONS(228), 1, - anon_sym_DOT_DOT, - STATE(31), 1, + ACTIONS(118), 1, + anon_sym_CARET, + ACTIONS(217), 1, + anon_sym_DOT, + STATE(43), 1, sym_parenthesis_expression_list, - STATE(38), 1, + STATE(46), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(96), 2, + ACTIONS(106), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(110), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(100), 2, + ACTIONS(215), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(246), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + ACTIONS(213), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [3031] = 15, + ACTIONS(98), 1, + anon_sym_LPAREN, + ACTIONS(100), 1, + anon_sym_LBRACK, + ACTIONS(108), 1, + anon_sym_SLASH, + ACTIONS(114), 1, + anon_sym_PIPE, + ACTIONS(116), 1, + anon_sym_AMP, + ACTIONS(118), 1, + anon_sym_CARET, + ACTIONS(217), 1, + anon_sym_DOT, + STATE(43), 1, + sym_parenthesis_expression_list, + STATE(46), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(106), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(181), 2, + ACTIONS(110), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(215), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(187), 4, + ACTIONS(248), 2, + anon_sym_RBRACE, + anon_sym_LF, + ACTIONS(213), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2918] = 8, + [3085] = 9, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(212), 1, + ACTIONS(250), 1, sym_identifier, - ACTIONS(230), 1, + ACTIONS(252), 1, + anon_sym_RPAREN, + ACTIONS(254), 1, sym_number, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, @@ -6247,16 +6486,16 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2957] = 8, + [3127] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(212), 1, + ACTIONS(250), 1, sym_identifier, - ACTIONS(232), 1, + ACTIONS(256), 1, sym_number, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, @@ -6269,7 +6508,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(50), 8, + STATE(20), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6278,16 +6517,16 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2996] = 8, + [3166] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(212), 1, + ACTIONS(250), 1, sym_identifier, - ACTIONS(234), 1, + ACTIONS(258), 1, sym_number, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, @@ -6300,7 +6539,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(18), 8, + STATE(19), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6309,16 +6548,16 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3035] = 8, + [3205] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(212), 1, + ACTIONS(250), 1, sym_identifier, - ACTIONS(236), 1, + ACTIONS(260), 1, sym_number, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, @@ -6331,7 +6570,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(49), 8, + STATE(56), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6340,16 +6579,16 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3074] = 8, + [3244] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(212), 1, + ACTIONS(250), 1, sym_identifier, - ACTIONS(238), 1, + ACTIONS(262), 1, sym_number, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, @@ -6362,7 +6601,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(67), 8, + STATE(23), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6371,16 +6610,16 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3113] = 8, + [3283] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(212), 1, + ACTIONS(250), 1, sym_identifier, - ACTIONS(240), 1, + ACTIONS(264), 1, sym_number, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, @@ -6393,7 +6632,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(52), 8, + STATE(53), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6402,16 +6641,54 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3152] = 8, + [3322] = 15, + ACTIONS(96), 1, + anon_sym_DOT, + ACTIONS(98), 1, + anon_sym_LPAREN, + ACTIONS(100), 1, + anon_sym_LBRACK, + ACTIONS(108), 1, + anon_sym_SLASH, + ACTIONS(114), 1, + anon_sym_PIPE, + ACTIONS(116), 1, + anon_sym_AMP, + ACTIONS(118), 1, + anon_sym_CARET, + ACTIONS(266), 1, + anon_sym_DOT_DOT, + STATE(43), 1, + sym_parenthesis_expression_list, + STATE(46), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(106), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(110), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(215), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(213), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [3375] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(212), 1, + ACTIONS(250), 1, sym_identifier, - ACTIONS(242), 1, + ACTIONS(268), 1, sym_number, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, @@ -6424,7 +6701,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(46), 8, + STATE(24), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6433,16 +6710,16 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3191] = 8, + [3414] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(212), 1, + ACTIONS(250), 1, sym_identifier, - ACTIONS(244), 1, + ACTIONS(270), 1, sym_number, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, @@ -6455,7 +6732,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(66), 8, + STATE(47), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6464,16 +6741,16 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3230] = 8, + [3453] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(212), 1, + ACTIONS(250), 1, sym_identifier, - ACTIONS(246), 1, + ACTIONS(272), 1, sym_number, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, @@ -6486,7 +6763,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(24), 8, + STATE(70), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6495,16 +6772,16 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3269] = 8, + [3492] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(212), 1, + ACTIONS(250), 1, sym_identifier, - ACTIONS(248), 1, + ACTIONS(274), 1, sym_number, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, @@ -6517,7 +6794,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(23), 8, + STATE(73), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6526,16 +6803,16 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3308] = 8, + [3531] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(212), 1, - sym_identifier, ACTIONS(250), 1, + sym_identifier, + ACTIONS(276), 1, sym_number, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, @@ -6548,7 +6825,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(22), 8, + STATE(54), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6557,16 +6834,54 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3347] = 8, + [3570] = 15, + ACTIONS(98), 1, + anon_sym_LPAREN, + ACTIONS(100), 1, + anon_sym_LBRACK, + ACTIONS(108), 1, + anon_sym_SLASH, + ACTIONS(114), 1, + anon_sym_PIPE, + ACTIONS(116), 1, + anon_sym_AMP, + ACTIONS(118), 1, + anon_sym_CARET, + ACTIONS(217), 1, + anon_sym_DOT, + ACTIONS(278), 1, + anon_sym_RPAREN, + STATE(43), 1, + sym_parenthesis_expression_list, + STATE(46), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(106), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(110), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(215), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(213), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [3623] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(212), 1, + ACTIONS(250), 1, sym_identifier, - ACTIONS(252), 1, + ACTIONS(280), 1, sym_number, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, @@ -6588,16 +6903,16 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3386] = 8, + [3662] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(212), 1, + ACTIONS(250), 1, sym_identifier, - ACTIONS(254), 1, + ACTIONS(282), 1, sym_number, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, @@ -6610,7 +6925,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(19), 8, + STATE(57), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6619,92 +6934,85 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3425] = 15, - ACTIONS(102), 1, - anon_sym_SLASH, - ACTIONS(106), 1, + [3701] = 15, + ACTIONS(98), 1, anon_sym_LPAREN, - ACTIONS(108), 1, + ACTIONS(100), 1, anon_sym_LBRACK, + ACTIONS(108), 1, + anon_sym_SLASH, ACTIONS(114), 1, anon_sym_PIPE, ACTIONS(116), 1, - anon_sym_CARET, - ACTIONS(118), 1, anon_sym_AMP, - ACTIONS(189), 1, + ACTIONS(118), 1, + anon_sym_CARET, + ACTIONS(217), 1, anon_sym_DOT, - ACTIONS(256), 1, - anon_sym_RPAREN, - STATE(31), 1, + ACTIONS(284), 1, + anon_sym_RBRACK, + STATE(43), 1, sym_parenthesis_expression_list, - STATE(38), 1, + STATE(46), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(96), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(100), 2, + ACTIONS(106), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(181), 2, + ACTIONS(110), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(215), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(187), 4, + ACTIONS(213), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3478] = 15, - ACTIONS(102), 1, - anon_sym_SLASH, - ACTIONS(106), 1, + [3754] = 8, + ACTIONS(37), 1, anon_sym_LPAREN, - ACTIONS(108), 1, - anon_sym_LBRACK, - ACTIONS(114), 1, - anon_sym_PIPE, - ACTIONS(116), 1, - anon_sym_CARET, - ACTIONS(118), 1, - anon_sym_AMP, - ACTIONS(189), 1, - anon_sym_DOT, - ACTIONS(258), 1, - anon_sym_RBRACK, - STATE(31), 1, - sym_parenthesis_expression_list, - STATE(38), 1, - sym_array_bracket_expression, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + ACTIONS(250), 1, + sym_identifier, + ACTIONS(286), 1, + sym_number, + STATE(17), 1, + sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(96), 2, + ACTIONS(35), 7, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(100), 2, anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(181), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(187), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [3531] = 8, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(18), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_template_global, + [3793] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(212), 1, + ACTIONS(250), 1, sym_identifier, - ACTIONS(260), 1, + ACTIONS(288), 1, sym_number, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, @@ -6717,7 +7025,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(20), 8, + STATE(22), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6726,16 +7034,16 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3570] = 8, + [3832] = 8, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(212), 1, + ACTIONS(250), 1, sym_identifier, - ACTIONS(262), 1, + ACTIONS(290), 1, sym_number, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, @@ -6748,7 +7056,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(40), 8, + STATE(64), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6757,15 +7065,15 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3609] = 5, - ACTIONS(43), 1, + [3871] = 5, + ACTIONS(296), 1, anon_sym_LF, - STATE(39), 1, + STATE(78), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(264), 7, + ACTIONS(292), 7, anon_sym_reg, anon_sym_initial, anon_sym_input, @@ -6773,7 +7081,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(266), 10, + ACTIONS(294), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6784,15 +7092,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [3641] = 5, - ACTIONS(272), 1, + [3903] = 5, + ACTIONS(43), 1, anon_sym_LF, - STATE(70), 1, + STATE(40), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(268), 7, + ACTIONS(298), 7, anon_sym_reg, anon_sym_initial, anon_sym_input, @@ -6800,7 +7108,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(270), 10, + ACTIONS(300), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6811,21 +7119,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [3673] = 5, - ACTIONS(276), 1, + [3935] = 5, + ACTIONS(19), 1, anon_sym_reg, - STATE(72), 1, + STATE(80), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(274), 5, + ACTIONS(302), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(279), 10, + ACTIONS(304), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6836,21 +7144,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [3703] = 5, - ACTIONS(19), 1, + [3965] = 5, + ACTIONS(308), 1, anon_sym_reg, - STATE(72), 1, + STATE(80), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(281), 5, + ACTIONS(306), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(283), 10, + ACTIONS(311), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6861,24 +7169,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [3733] = 13, + [3995] = 13, ACTIONS(13), 1, sym_identifier, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(285), 1, + ACTIONS(313), 1, anon_sym_DASH_GT, - ACTIONS(287), 1, + ACTIONS(315), 1, anon_sym_LF, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, - STATE(75), 1, + STATE(82), 1, aux_sym__linebreak, - STATE(94), 1, + STATE(112), 1, sym_declaration, - STATE(145), 1, + STATE(162), 1, sym_declaration_list, - STATE(165), 1, + STATE(206), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, @@ -6889,28 +7197,28 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(160), 3, + STATE(178), 3, sym__type, sym_array_type, sym_template_global, - [3778] = 13, + [4040] = 13, ACTIONS(13), 1, sym_identifier, ACTIONS(39), 1, anon_sym_COLON_COLON, ACTIONS(43), 1, anon_sym_LF, - ACTIONS(285), 1, + ACTIONS(313), 1, anon_sym_DASH_GT, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, - STATE(39), 1, + STATE(40), 1, aux_sym__linebreak, - STATE(94), 1, + STATE(112), 1, sym_declaration, - STATE(131), 1, + STATE(140), 1, sym_declaration_list, - STATE(179), 1, + STATE(208), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, @@ -6921,22 +7229,22 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(160), 3, + STATE(178), 3, sym__type, sym_array_type, sym_template_global, - [3823] = 3, + [4085] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(289), 6, + ACTIONS(317), 6, anon_sym_reg, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(291), 10, + ACTIONS(319), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6947,17 +7255,46 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [3848] = 3, + [4110] = 11, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + ACTIONS(321), 1, + sym_identifier, + ACTIONS(323), 1, + anon_sym_RPAREN, + ACTIONS(325), 1, + anon_sym_LF, + STATE(17), 1, + sym_namespace_list, + STATE(86), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(31), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(33), 2, + anon_sym_state, + anon_sym_gen, + STATE(119), 2, + sym_template_declaration_type, + sym_declaration, + STATE(178), 3, + sym__type, + sym_array_type, + sym_template_global, + [4150] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(293), 5, + ACTIONS(327), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(295), 10, + ACTIONS(329), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6968,20 +7305,77 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_COLON_COLON, sym_number, - [3872] = 11, + [4174] = 11, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + ACTIONS(43), 1, + anon_sym_LF, + ACTIONS(321), 1, + sym_identifier, + ACTIONS(331), 1, + anon_sym_RPAREN, + STATE(17), 1, + sym_namespace_list, + STATE(40), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(31), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(33), 2, + anon_sym_state, + anon_sym_gen, + STATE(122), 2, + sym_template_declaration_type, + sym_declaration, + STATE(178), 3, + sym__type, + sym_array_type, + sym_template_global, + [4214] = 11, ACTIONS(13), 1, sym_identifier, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(297), 1, + ACTIONS(333), 1, anon_sym_LF, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, - STATE(79), 1, + STATE(88), 1, + aux_sym__linebreak, + STATE(112), 1, + sym_declaration, + STATE(203), 1, + sym_declaration_list, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(31), 2, + anon_sym_input, + anon_sym_output, + ACTIONS(33), 2, + anon_sym_state, + anon_sym_gen, + STATE(178), 3, + sym__type, + sym_array_type, + sym_template_global, + [4253] = 11, + ACTIONS(13), 1, + sym_identifier, + ACTIONS(39), 1, + anon_sym_COLON_COLON, + ACTIONS(43), 1, + anon_sym_LF, + STATE(17), 1, + sym_namespace_list, + STATE(40), 1, aux_sym__linebreak, - STATE(94), 1, + STATE(112), 1, sym_declaration, - STATE(174), 1, + STATE(197), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, @@ -6992,25 +7386,17 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(160), 3, + STATE(178), 3, sym__type, sym_array_type, sym_template_global, - [3911] = 11, - ACTIONS(13), 1, - sym_identifier, + [4292] = 8, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(43), 1, - anon_sym_LF, - STATE(16), 1, + ACTIONS(321), 1, + sym_identifier, + STATE(17), 1, sym_namespace_list, - STATE(39), 1, - aux_sym__linebreak, - STATE(94), 1, - sym_declaration, - STATE(183), 1, - sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -7020,18 +7406,21 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(160), 3, + STATE(184), 2, + sym_template_declaration_type, + sym_declaration, + STATE(178), 3, sym__type, sym_array_type, sym_template_global, - [3950] = 8, + [4323] = 8, ACTIONS(13), 1, sym_identifier, ACTIONS(39), 1, anon_sym_COLON_COLON, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, - STATE(152), 1, + STATE(221), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -7042,18 +7431,18 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(160), 3, + STATE(178), 3, sym__type, sym_array_type, sym_template_global, - [3980] = 8, + [4353] = 8, ACTIONS(13), 1, sym_identifier, ACTIONS(39), 1, anon_sym_COLON_COLON, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, - STATE(191), 1, + STATE(168), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, @@ -7064,18 +7453,18 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(33), 2, anon_sym_state, anon_sym_gen, - STATE(160), 3, + STATE(178), 3, sym__type, sym_array_type, sym_template_global, - [4010] = 7, - ACTIONS(299), 1, + [4383] = 7, + ACTIONS(335), 1, ts_builtin_sym_end, - ACTIONS(301), 1, + ACTIONS(337), 1, anon_sym_LF, - STATE(87), 1, + STATE(100), 1, aux_sym__linebreak, - STATE(119), 1, + STATE(191), 1, sym_global_object, ACTIONS(3), 2, sym_single_line_comment, @@ -7087,14 +7476,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_module, anon_sym_function, anon_sym_struct, - [4036] = 7, - ACTIONS(301), 1, + [4409] = 4, + ACTIONS(341), 1, + anon_sym_SQUOTE, + STATE(105), 1, + sym_latency_specifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(339), 7, + anon_sym_RPAREN, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_LF, - ACTIONS(303), 1, + [4429] = 7, + ACTIONS(337), 1, + anon_sym_LF, + ACTIONS(343), 1, ts_builtin_sym_end, - STATE(87), 1, + STATE(100), 1, aux_sym__linebreak, - STATE(188), 1, + STATE(161), 1, sym_global_object, ACTIONS(3), 2, sym_single_line_comment, @@ -7106,14 +7511,62 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_module, anon_sym_function, anon_sym_struct, - [4062] = 7, - ACTIONS(301), 1, + [4455] = 4, + ACTIONS(341), 1, + anon_sym_SQUOTE, + STATE(108), 1, + sym_latency_specifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(345), 7, + anon_sym_RPAREN, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LF, + [4475] = 4, + ACTIONS(341), 1, + anon_sym_SQUOTE, + STATE(106), 1, + sym_latency_specifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(347), 7, + anon_sym_RPAREN, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LF, + [4495] = 4, + ACTIONS(341), 1, + anon_sym_SQUOTE, + STATE(107), 1, + sym_latency_specifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(349), 7, + anon_sym_RPAREN, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_LF, - ACTIONS(305), 1, + [4515] = 7, + ACTIONS(337), 1, + anon_sym_LF, + ACTIONS(351), 1, ts_builtin_sym_end, - STATE(87), 1, + STATE(100), 1, aux_sym__linebreak, - STATE(188), 1, + STATE(191), 1, sym_global_object, ACTIONS(3), 2, sym_single_line_comment, @@ -7125,14 +7578,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_module, anon_sym_function, anon_sym_struct, - [4088] = 7, - ACTIONS(301), 1, + [4541] = 7, + ACTIONS(337), 1, anon_sym_LF, - ACTIONS(307), 1, + ACTIONS(353), 1, ts_builtin_sym_end, - STATE(87), 1, + STATE(100), 1, aux_sym__linebreak, - STATE(188), 1, + STATE(191), 1, sym_global_object, ACTIONS(3), 2, sym_single_line_comment, @@ -7144,46 +7597,47 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_module, anon_sym_function, anon_sym_struct, - [4114] = 7, - ACTIONS(301), 1, + [4567] = 4, + ACTIONS(355), 1, anon_sym_LF, - ACTIONS(309), 1, - ts_builtin_sym_end, - STATE(87), 1, + STATE(100), 1, aux_sym__linebreak, - STATE(188), 1, - sym_global_object, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(7), 2, + ACTIONS(182), 7, + ts_builtin_sym_end, anon_sym___builtin__, anon_sym_extern, - ACTIONS(9), 3, anon_sym_module, anon_sym_function, anon_sym_struct, - [4140] = 4, - ACTIONS(311), 1, + anon_sym_RPAREN, + [4587] = 7, + ACTIONS(337), 1, anon_sym_LF, - STATE(87), 1, + ACTIONS(358), 1, + ts_builtin_sym_end, + STATE(100), 1, aux_sym__linebreak, + STATE(191), 1, + sym_global_object, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(176), 6, - ts_builtin_sym_end, + ACTIONS(7), 2, anon_sym___builtin__, anon_sym_extern, + ACTIONS(9), 3, anon_sym_module, anon_sym_function, anon_sym_struct, - [4159] = 6, - ACTIONS(301), 1, + [4613] = 6, + ACTIONS(337), 1, anon_sym_LF, - STATE(87), 1, + STATE(100), 1, aux_sym__linebreak, - STATE(188), 1, + STATE(191), 1, sym_global_object, ACTIONS(3), 2, sym_single_line_comment, @@ -7195,1101 +7649,1263 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_module, anon_sym_function, anon_sym_struct, - [4182] = 4, - ACTIONS(316), 1, - anon_sym_SQUOTE, - STATE(102), 1, - sym_latency_specifier, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(314), 6, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LF, - [4201] = 4, - ACTIONS(316), 1, - anon_sym_SQUOTE, - STATE(98), 1, - sym_latency_specifier, + [4636] = 5, + ACTIONS(65), 1, + anon_sym_COLON_COLON, + STATE(13), 1, + aux_sym_namespace_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(318), 6, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_DASH_GT, + ACTIONS(63), 3, + anon_sym_POUND_LPAREN, + anon_sym_LBRACK, + sym_identifier, + ACTIONS(360), 3, + anon_sym_RPAREN, anon_sym_COMMA, anon_sym_LF, - [4220] = 6, + [4657] = 6, ACTIONS(13), 1, sym_identifier, ACTIONS(39), 1, anon_sym_COLON_COLON, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(320), 2, + ACTIONS(362), 2, anon_sym_state, anon_sym_gen, - STATE(156), 3, + STATE(173), 3, sym__type, sym_array_type, sym_template_global, - [4243] = 4, - ACTIONS(316), 1, - anon_sym_SQUOTE, - STATE(101), 1, - sym_latency_specifier, + [4680] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(364), 7, + anon_sym_RPAREN, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LF, + [4694] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(322), 6, + ACTIONS(366), 7, + anon_sym_RPAREN, anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4262] = 4, - ACTIONS(316), 1, - anon_sym_SQUOTE, - STATE(105), 1, - sym_latency_specifier, + [4708] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(368), 7, + anon_sym_RPAREN, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH_GT, + anon_sym_COMMA, + anon_sym_LF, + [4722] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(324), 6, + ACTIONS(370), 7, + anon_sym_RPAREN, anon_sym_RBRACE, anon_sym_EQ, anon_sym_in, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4281] = 5, - ACTIONS(193), 1, + [4736] = 5, + ACTIONS(221), 1, anon_sym_COMMA, - STATE(80), 1, + STATE(11), 1, sym__comma, - STATE(104), 1, - aux_sym_declaration_list_repeat1, + STATE(120), 1, + aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(326), 3, + ACTIONS(372), 3, anon_sym_RBRACE, - anon_sym_DASH_GT, + anon_sym_EQ, anon_sym_LF, - [4300] = 5, + [4755] = 5, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(212), 1, + ACTIONS(250), 1, sym_identifier, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(163), 3, + STATE(189), 3, sym__type, sym_array_type, sym_template_global, - [4319] = 5, + [4774] = 5, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(212), 1, + ACTIONS(250), 1, sym_identifier, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(121), 3, + STATE(126), 3, sym__type, sym_array_type, sym_template_global, - [4338] = 5, - ACTIONS(193), 1, + [4793] = 5, + ACTIONS(221), 1, anon_sym_COMMA, - STATE(11), 1, + STATE(91), 1, sym__comma, - STATE(99), 1, - aux_sym_assign_left_side_repeat1, + STATE(125), 1, + aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(328), 3, + ACTIONS(374), 3, anon_sym_RBRACE, - anon_sym_EQ, + anon_sym_DASH_GT, + anon_sym_LF, + [4812] = 7, + ACTIONS(221), 1, + anon_sym_COMMA, + ACTIONS(376), 1, + anon_sym_RPAREN, + ACTIONS(378), 1, anon_sym_LF, - [4357] = 2, + STATE(116), 1, + aux_sym_template_args_repeat1, + STATE(182), 1, + aux_sym__linebreak, + STATE(198), 1, + sym__comma, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(330), 6, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_DASH_GT, + [4835] = 7, + ACTIONS(221), 1, + anon_sym_COMMA, + ACTIONS(380), 1, + anon_sym_RPAREN, + ACTIONS(382), 1, + anon_sym_LF, + STATE(128), 1, + aux_sym_template_args_repeat1, + STATE(174), 1, + aux_sym__linebreak, + STATE(198), 1, + sym__comma, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [4858] = 7, + ACTIONS(221), 1, anon_sym_COMMA, + ACTIONS(384), 1, + anon_sym_RPAREN, + ACTIONS(386), 1, anon_sym_LF, - [4370] = 5, - ACTIONS(334), 1, + STATE(89), 1, + sym__comma, + STATE(129), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(188), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [4881] = 7, + ACTIONS(221), 1, anon_sym_COMMA, - STATE(11), 1, + ACTIONS(388), 1, + anon_sym_RPAREN, + ACTIONS(390), 1, + anon_sym_LF, + STATE(128), 1, + aux_sym_template_args_repeat1, + STATE(176), 1, + aux_sym__linebreak, + STATE(198), 1, sym__comma, - STATE(99), 1, - aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(332), 3, + [4904] = 5, + ACTIONS(394), 1, + anon_sym_COMMA, + STATE(91), 1, + sym__comma, + STATE(117), 1, + aux_sym_declaration_list_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(392), 3, anon_sym_RBRACE, - anon_sym_EQ, + anon_sym_DASH_GT, anon_sym_LF, - [4389] = 5, + [4923] = 5, ACTIONS(39), 1, anon_sym_COLON_COLON, - ACTIONS(212), 1, + ACTIONS(250), 1, sym_identifier, - STATE(16), 1, + STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(158), 3, + STATE(180), 3, sym__type, sym_array_type, sym_template_global, - [4408] = 2, + [4942] = 7, + ACTIONS(221), 1, + anon_sym_COMMA, + ACTIONS(397), 1, + anon_sym_RPAREN, + ACTIONS(399), 1, + anon_sym_LF, + STATE(89), 1, + sym__comma, + STATE(115), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(181), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [4965] = 5, + ACTIONS(403), 1, + anon_sym_COMMA, + STATE(11), 1, + sym__comma, + STATE(120), 1, + aux_sym_assign_left_side_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(401), 3, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_LF, + [4984] = 7, + ACTIONS(221), 1, + anon_sym_COMMA, + ACTIONS(406), 1, + anon_sym_RPAREN, + ACTIONS(408), 1, + anon_sym_LF, + STATE(114), 1, + aux_sym_template_args_repeat1, + STATE(177), 1, + aux_sym__linebreak, + STATE(198), 1, + sym__comma, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5007] = 7, + ACTIONS(221), 1, + anon_sym_COMMA, + ACTIONS(410), 1, + anon_sym_RPAREN, + ACTIONS(412), 1, + anon_sym_LF, + STATE(89), 1, + sym__comma, + STATE(123), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(175), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(337), 6, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_DASH_GT, + [5030] = 7, + ACTIONS(221), 1, anon_sym_COMMA, + ACTIONS(414), 1, + anon_sym_RPAREN, + ACTIONS(416), 1, anon_sym_LF, - [4421] = 2, + STATE(89), 1, + sym__comma, + STATE(129), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(183), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(339), 6, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LF, - [4434] = 5, - ACTIONS(193), 1, + [5053] = 5, + ACTIONS(221), 1, anon_sym_COMMA, STATE(11), 1, sym__comma, - STATE(97), 1, + STATE(109), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(341), 3, + ACTIONS(418), 3, anon_sym_RBRACE, anon_sym_EQ, anon_sym_LF, - [4453] = 5, - ACTIONS(193), 1, + [5072] = 5, + ACTIONS(221), 1, anon_sym_COMMA, - STATE(80), 1, + STATE(91), 1, sym__comma, - STATE(106), 1, + STATE(117), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(343), 3, + ACTIONS(420), 3, anon_sym_RBRACE, anon_sym_DASH_GT, anon_sym_LF, - [4472] = 2, + [5091] = 4, + ACTIONS(100), 1, + anon_sym_LBRACK, + STATE(133), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(345), 6, + ACTIONS(422), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LF, + [5107] = 6, + ACTIONS(424), 1, anon_sym_RBRACE, + ACTIONS(426), 1, anon_sym_EQ, - anon_sym_in, - anon_sym_DASH_GT, + ACTIONS(428), 1, + anon_sym_LF, + STATE(6), 1, + aux_sym__linebreak, + STATE(148), 1, + aux_sym_block_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5127] = 5, + ACTIONS(432), 1, anon_sym_COMMA, + STATE(128), 1, + aux_sym_template_args_repeat1, + STATE(198), 1, + sym__comma, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(430), 2, + anon_sym_RPAREN, anon_sym_LF, - [4485] = 5, - ACTIONS(349), 1, + [5145] = 5, + ACTIONS(437), 1, anon_sym_COMMA, - STATE(80), 1, + STATE(89), 1, sym__comma, - STATE(106), 1, - aux_sym_declaration_list_repeat1, + STATE(129), 1, + aux_sym_template_declaration_arguments_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(347), 3, - anon_sym_RBRACE, - anon_sym_DASH_GT, + ACTIONS(435), 2, + anon_sym_RPAREN, anon_sym_LF, - [4504] = 6, - ACTIONS(352), 1, - anon_sym_RBRACE, - ACTIONS(354), 1, - anon_sym_EQ, - ACTIONS(356), 1, + [5163] = 6, + ACTIONS(43), 1, anon_sym_LF, - STATE(2), 1, + ACTIONS(440), 1, + sym_identifier, + ACTIONS(442), 1, + anon_sym_RPAREN, + STATE(40), 1, + aux_sym__linebreak, + STATE(113), 1, + sym_template_arg, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5183] = 6, + ACTIONS(440), 1, + sym_identifier, + ACTIONS(444), 1, + anon_sym_RPAREN, + ACTIONS(446), 1, + anon_sym_LF, + STATE(121), 1, + sym_template_arg, + STATE(130), 1, aux_sym__linebreak, - STATE(132), 1, - aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4524] = 6, - ACTIONS(354), 1, + [5203] = 6, + ACTIONS(426), 1, anon_sym_EQ, - ACTIONS(358), 1, + ACTIONS(448), 1, anon_sym_RBRACE, - ACTIONS(360), 1, + ACTIONS(450), 1, anon_sym_LF, - STATE(4), 1, + STATE(5), 1, aux_sym__linebreak, - STATE(141), 1, + STATE(154), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4544] = 2, + [5223] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(195), 4, - anon_sym_RBRACE, - anon_sym_EQ, + ACTIONS(452), 5, + anon_sym_RPAREN, + anon_sym_LBRACK, + sym_identifier, anon_sym_COMMA, anon_sym_LF, - [4555] = 2, + [5235] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(362), 4, + ACTIONS(454), 4, + ts_builtin_sym_end, anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COMMA, + anon_sym_else, anon_sym_LF, - [4566] = 5, - ACTIONS(364), 1, - anon_sym_GT, - ACTIONS(366), 1, - anon_sym_COMMA, - STATE(111), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(182), 1, - sym__comma, + [5246] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4583] = 2, + ACTIONS(456), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [5257] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(199), 4, + ACTIONS(458), 4, + ts_builtin_sym_end, anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COMMA, + anon_sym_else, anon_sym_LF, - [4594] = 5, - ACTIONS(15), 1, - anon_sym_LBRACE, - ACTIONS(369), 1, - anon_sym_LT, - STATE(175), 1, - sym_block, - STATE(178), 1, - sym_template_declaration_arguments, + [5268] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4611] = 5, - ACTIONS(352), 1, + ACTIONS(460), 4, anon_sym_RBRACE, - ACTIONS(356), 1, + anon_sym_EQ, + anon_sym_COMMA, anon_sym_LF, - STATE(2), 1, - aux_sym__linebreak, - STATE(135), 1, - aux_sym_block_repeat1, + [5279] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4628] = 2, + ACTIONS(227), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COMMA, + anon_sym_LF, + [5290] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(371), 4, + ACTIONS(458), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [4639] = 5, - ACTIONS(373), 1, - ts_builtin_sym_end, - ACTIONS(375), 1, - anon_sym_LF, - STATE(83), 1, - aux_sym__linebreak, - STATE(143), 1, - aux_sym_source_file_repeat1, + [5301] = 4, + ACTIONS(313), 1, + anon_sym_DASH_GT, + STATE(194), 1, + sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4656] = 2, + ACTIONS(462), 2, + anon_sym_RBRACE, + anon_sym_LF, + [5316] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(377), 4, - ts_builtin_sym_end, + ACTIONS(223), 4, anon_sym_RBRACE, - anon_sym_else, + anon_sym_EQ, + anon_sym_COMMA, anon_sym_LF, - [4667] = 2, + [5327] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(379), 4, + ACTIONS(464), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [4678] = 5, - ACTIONS(381), 1, - ts_builtin_sym_end, - ACTIONS(383), 1, - anon_sym_LF, - STATE(86), 1, - aux_sym__linebreak, - STATE(136), 1, - aux_sym_source_file_repeat1, + [5338] = 4, + ACTIONS(468), 1, + anon_sym_COLON, + STATE(192), 1, + sym_interface_ports, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4695] = 5, - ACTIONS(385), 1, + ACTIONS(466), 2, anon_sym_RBRACE, - ACTIONS(387), 1, anon_sym_LF, - STATE(10), 1, + [5353] = 5, + ACTIONS(448), 1, + anon_sym_RBRACE, + ACTIONS(450), 1, + anon_sym_LF, + STATE(5), 1, aux_sym__linebreak, - STATE(120), 1, + STATE(152), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4712] = 4, - ACTIONS(108), 1, - anon_sym_LBRACK, - STATE(129), 1, - sym_array_bracket_expression, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(390), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [4727] = 2, + [5370] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(379), 4, + ACTIONS(470), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [4738] = 2, + [5381] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(392), 4, + ACTIONS(472), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [4749] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(394), 4, - ts_builtin_sym_end, + [5392] = 5, + ACTIONS(474), 1, anon_sym_RBRACE, - anon_sym_else, + ACTIONS(476), 1, anon_sym_LF, - [4760] = 5, - ACTIONS(15), 1, - anon_sym_LBRACE, - ACTIONS(369), 1, - anon_sym_LT, - STATE(180), 1, - sym_template_declaration_arguments, - STATE(184), 1, - sym_block, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4777] = 2, + STATE(3), 1, + aux_sym__linebreak, + STATE(153), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(377), 4, - ts_builtin_sym_end, + [5409] = 5, + ACTIONS(478), 1, anon_sym_RBRACE, - anon_sym_else, + ACTIONS(480), 1, anon_sym_LF, - [4788] = 2, + STATE(4), 1, + aux_sym__linebreak, + STATE(153), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(396), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [4799] = 5, - ACTIONS(398), 1, + [5426] = 5, + ACTIONS(482), 1, anon_sym_RPAREN, - ACTIONS(400), 1, + ACTIONS(484), 1, anon_sym_COMMA, - STATE(56), 1, + STATE(61), 1, sym__comma, - STATE(128), 1, + STATE(149), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4816] = 2, + [5443] = 3, + ACTIONS(489), 1, + anon_sym_COLON, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(403), 4, + ACTIONS(487), 3, anon_sym_RPAREN, - anon_sym_LBRACK, - sym_identifier, anon_sym_COMMA, - [4827] = 5, - ACTIONS(358), 1, - anon_sym_RBRACE, - ACTIONS(360), 1, anon_sym_LF, - STATE(4), 1, - aux_sym__linebreak, - STATE(140), 1, - aux_sym_block_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4844] = 4, - ACTIONS(285), 1, - anon_sym_DASH_GT, - STATE(181), 1, - sym__interface_ports_output, + [5456] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(405), 2, + ACTIONS(456), 4, + ts_builtin_sym_end, anon_sym_RBRACE, + anon_sym_else, anon_sym_LF, - [4859] = 5, - ACTIONS(407), 1, + [5467] = 5, + ACTIONS(491), 1, anon_sym_RBRACE, - ACTIONS(409), 1, + ACTIONS(493), 1, anon_sym_LF, - STATE(3), 1, + STATE(9), 1, aux_sym__linebreak, - STATE(120), 1, + STATE(153), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4876] = 5, - ACTIONS(411), 1, - anon_sym_RPAREN, - ACTIONS(413), 1, - anon_sym_COMMA, - STATE(133), 1, - aux_sym_template_args_repeat1, - STATE(186), 1, - sym__comma, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4893] = 5, - ACTIONS(193), 1, - anon_sym_COMMA, - ACTIONS(416), 1, - anon_sym_RPAREN, - STATE(133), 1, - aux_sym_template_args_repeat1, - STATE(186), 1, - sym__comma, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4910] = 5, - ACTIONS(418), 1, + [5484] = 5, + ACTIONS(495), 1, anon_sym_RBRACE, - ACTIONS(420), 1, + ACTIONS(497), 1, anon_sym_LF, - STATE(6), 1, + STATE(10), 1, aux_sym__linebreak, - STATE(120), 1, + STATE(153), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4927] = 5, - ACTIONS(422), 1, - ts_builtin_sym_end, - ACTIONS(424), 1, + [5501] = 5, + ACTIONS(500), 1, + anon_sym_RBRACE, + ACTIONS(502), 1, anon_sym_LF, - STATE(84), 1, + STATE(8), 1, aux_sym__linebreak, - STATE(143), 1, - aux_sym_source_file_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4944] = 5, - ACTIONS(193), 1, - anon_sym_COMMA, - ACTIONS(426), 1, - anon_sym_RPAREN, - STATE(134), 1, - aux_sym_template_args_repeat1, - STATE(186), 1, - sym__comma, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [4961] = 2, + STATE(153), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(428), 4, + [5518] = 5, + ACTIONS(504), 1, ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, + ACTIONS(506), 1, anon_sym_LF, - [4972] = 2, + STATE(92), 1, + aux_sym__linebreak, + STATE(157), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(430), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [4983] = 5, - ACTIONS(432), 1, + [5535] = 5, + ACTIONS(424), 1, anon_sym_RBRACE, - ACTIONS(434), 1, + ACTIONS(428), 1, anon_sym_LF, - STATE(8), 1, + STATE(6), 1, aux_sym__linebreak, - STATE(120), 1, + STATE(147), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5000] = 5, - ACTIONS(436), 1, - anon_sym_RBRACE, - ACTIONS(438), 1, + [5552] = 5, + ACTIONS(508), 1, + ts_builtin_sym_end, + ACTIONS(510), 1, anon_sym_LF, - STATE(9), 1, + STATE(102), 1, aux_sym__linebreak, - STATE(120), 1, - aux_sym_block_repeat1, + STATE(157), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5017] = 4, + [5569] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(513), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [5580] = 4, ACTIONS(15), 1, anon_sym_LBRACE, - ACTIONS(440), 1, + ACTIONS(515), 1, anon_sym_if, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(172), 2, + STATE(201), 2, sym_block, sym_if_statement, - [5032] = 5, - ACTIONS(442), 1, - ts_builtin_sym_end, - ACTIONS(444), 1, - anon_sym_LF, - STATE(88), 1, - aux_sym__linebreak, - STATE(143), 1, - aux_sym_source_file_repeat1, + [5595] = 5, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(517), 1, + anon_sym_POUND_LPAREN, + STATE(202), 1, + sym_template_declaration_arguments, + STATE(204), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5049] = 5, - ACTIONS(447), 1, + [5612] = 5, + ACTIONS(519), 1, ts_builtin_sym_end, - ACTIONS(449), 1, + ACTIONS(521), 1, anon_sym_LF, - STATE(85), 1, + STATE(98), 1, aux_sym__linebreak, - STATE(116), 1, + STATE(155), 1, aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5066] = 4, - ACTIONS(285), 1, + [5629] = 4, + ACTIONS(313), 1, anon_sym_DASH_GT, - STATE(176), 1, + STATE(205), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(451), 2, + ACTIONS(523), 2, anon_sym_RBRACE, anon_sym_LF, - [5081] = 4, - ACTIONS(455), 1, - anon_sym_COLON, - STATE(177), 1, - sym_interface_ports, + [5644] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(453), 2, + ACTIONS(525), 4, + ts_builtin_sym_end, anon_sym_RBRACE, + anon_sym_else, anon_sym_LF, - [5096] = 5, - ACTIONS(193), 1, - anon_sym_COMMA, - ACTIONS(457), 1, - anon_sym_GT, - STATE(149), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(182), 1, - sym__comma, + [5655] = 5, + ACTIONS(527), 1, + ts_builtin_sym_end, + ACTIONS(529), 1, + anon_sym_LF, + STATE(99), 1, + aux_sym__linebreak, + STATE(157), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5113] = 2, + [5672] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(459), 4, + ACTIONS(531), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5124] = 5, - ACTIONS(193), 1, - anon_sym_COMMA, - ACTIONS(461), 1, - anon_sym_GT, - STATE(111), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(182), 1, - sym__comma, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5141] = 2, + [5683] = 5, + ACTIONS(15), 1, + anon_sym_LBRACE, + ACTIONS(517), 1, + anon_sym_POUND_LPAREN, + STATE(195), 1, + sym_template_declaration_arguments, + STATE(199), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(459), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5152] = 2, + [5700] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(463), 4, + ACTIONS(531), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5163] = 2, + [5711] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(465), 4, + ACTIONS(533), 4, anon_sym_RBRACE, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [5174] = 2, + [5722] = 5, + ACTIONS(535), 1, + ts_builtin_sym_end, + ACTIONS(537), 1, + anon_sym_LF, + STATE(101), 1, + aux_sym__linebreak, + STATE(164), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(463), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5185] = 5, - ACTIONS(193), 1, + [5739] = 5, + ACTIONS(221), 1, anon_sym_COMMA, - ACTIONS(467), 1, + ACTIONS(539), 1, anon_sym_RPAREN, - STATE(56), 1, + STATE(61), 1, sym__comma, - STATE(128), 1, + STATE(149), 1, aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5202] = 3, - ACTIONS(471), 1, + [5756] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(541), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, anon_sym_else, + anon_sym_LF, + [5767] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(469), 2, + ACTIONS(513), 4, + ts_builtin_sym_end, anon_sym_RBRACE, + anon_sym_else, anon_sym_LF, - [5214] = 4, - ACTIONS(108), 1, + [5778] = 4, + ACTIONS(100), 1, anon_sym_LBRACK, - ACTIONS(473), 1, + ACTIONS(543), 1, sym_identifier, - STATE(129), 1, + STATE(133), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5228] = 3, - ACTIONS(475), 1, - anon_sym_COLON, + [5792] = 4, + ACTIONS(337), 1, + anon_sym_LF, + ACTIONS(545), 1, + anon_sym_RPAREN, + STATE(100), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(477), 2, + [5806] = 4, + ACTIONS(337), 1, + anon_sym_LF, + ACTIONS(547), 1, anon_sym_RPAREN, - anon_sym_COMMA, - [5240] = 4, - ACTIONS(108), 1, - anon_sym_LBRACK, - ACTIONS(479), 1, - sym_identifier, - STATE(129), 1, - sym_array_bracket_expression, + STATE(100), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5254] = 4, - ACTIONS(481), 1, - sym_identifier, - ACTIONS(483), 1, + [5820] = 4, + ACTIONS(337), 1, + anon_sym_LF, + ACTIONS(549), 1, anon_sym_RPAREN, - STATE(137), 1, - sym_template_arg, + STATE(100), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5268] = 4, - ACTIONS(108), 1, - anon_sym_LBRACK, - ACTIONS(485), 1, - sym_identifier, - STATE(129), 1, - sym_array_bracket_expression, + [5834] = 4, + ACTIONS(337), 1, + anon_sym_LF, + ACTIONS(551), 1, + anon_sym_RPAREN, + STATE(100), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5282] = 4, - ACTIONS(487), 1, + [5848] = 4, + ACTIONS(100), 1, + anon_sym_LBRACK, + ACTIONS(553), 1, sym_identifier, - ACTIONS(489), 1, - anon_sym_GT, - STATE(147), 1, - sym_template_declaration_type, + STATE(133), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5296] = 2, + [5862] = 3, + ACTIONS(426), 1, + anon_sym_EQ, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(491), 3, - anon_sym_module, - anon_sym_function, - anon_sym_struct, - [5306] = 4, - ACTIONS(108), 1, + ACTIONS(555), 2, + anon_sym_RBRACE, + anon_sym_LF, + [5874] = 4, + ACTIONS(100), 1, anon_sym_LBRACK, - ACTIONS(493), 1, + ACTIONS(557), 1, sym_identifier, - STATE(129), 1, + STATE(133), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5320] = 3, - ACTIONS(354), 1, - anon_sym_EQ, + [5888] = 4, + ACTIONS(337), 1, + anon_sym_LF, + ACTIONS(559), 1, + anon_sym_RPAREN, + STATE(100), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(495), 2, - anon_sym_RBRACE, + [5902] = 4, + ACTIONS(337), 1, anon_sym_LF, - [5332] = 2, + ACTIONS(561), 1, + anon_sym_RPAREN, + STATE(100), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(497), 2, - anon_sym_RBRACE, + [5916] = 4, + ACTIONS(337), 1, anon_sym_LF, - [5341] = 2, + ACTIONS(563), 1, + anon_sym_RPAREN, + STATE(100), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(499), 2, - anon_sym_GT, + [5930] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(565), 3, + anon_sym_RPAREN, anon_sym_COMMA, - [5350] = 2, + anon_sym_LF, + [5940] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(501), 2, - anon_sym_GT, + ACTIONS(567), 3, + anon_sym_RPAREN, anon_sym_COMMA, - [5359] = 2, + anon_sym_LF, + [5950] = 3, + ACTIONS(571), 1, + anon_sym_else, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(503), 2, + ACTIONS(569), 2, anon_sym_RBRACE, anon_sym_LF, - [5368] = 2, + [5962] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(505), 2, - ts_builtin_sym_end, + ACTIONS(573), 3, + anon_sym_module, + anon_sym_function, + anon_sym_struct, + [5972] = 4, + ACTIONS(337), 1, anon_sym_LF, - [5377] = 3, - ACTIONS(212), 1, + ACTIONS(575), 1, + anon_sym_RPAREN, + STATE(100), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5986] = 4, + ACTIONS(100), 1, + anon_sym_LBRACK, + ACTIONS(577), 1, sym_identifier, - STATE(17), 1, + STATE(133), 1, + sym_array_bracket_expression, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6000] = 3, + ACTIONS(250), 1, + sym_identifier, + STATE(16), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5388] = 2, + [6011] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(507), 2, + ACTIONS(579), 2, ts_builtin_sym_end, anon_sym_LF, - [5397] = 2, + [6020] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(509), 2, + ACTIONS(581), 2, anon_sym_RBRACE, anon_sym_LF, - [5406] = 2, + [6029] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(495), 2, + ACTIONS(583), 2, anon_sym_RBRACE, anon_sym_LF, - [5415] = 2, + [6038] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(511), 2, + ACTIONS(585), 2, anon_sym_RBRACE, anon_sym_LF, - [5424] = 2, + [6047] = 3, + ACTIONS(15), 1, + anon_sym_LBRACE, + STATE(207), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(513), 2, - ts_builtin_sym_end, - anon_sym_LF, - [5433] = 2, + [6058] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(515), 2, + ACTIONS(587), 2, anon_sym_RBRACE, anon_sym_LF, - [5442] = 2, + [6067] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(517), 2, + ACTIONS(589), 2, anon_sym_RBRACE, anon_sym_LF, - [5451] = 3, - ACTIONS(15), 1, - anon_sym_LBRACE, - STATE(169), 1, - sym_block, + [6076] = 3, + ACTIONS(440), 1, + sym_identifier, + STATE(185), 1, + sym_template_arg, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6087] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(591), 2, + ts_builtin_sym_end, + anon_sym_LF, + [6096] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5462] = 2, + ACTIONS(555), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6105] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(519), 2, + ACTIONS(593), 2, anon_sym_RBRACE, anon_sym_LF, - [5471] = 3, + [6114] = 3, ACTIONS(15), 1, anon_sym_LBRACE, - STATE(171), 1, + STATE(209), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5482] = 2, + [6125] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(521), 2, + ACTIONS(595), 2, anon_sym_RBRACE, anon_sym_LF, - [5491] = 3, - ACTIONS(487), 1, - sym_identifier, - STATE(166), 1, - sym_template_declaration_type, + [6134] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5502] = 2, + ACTIONS(597), 2, + ts_builtin_sym_end, + anon_sym_LF, + [6143] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(523), 2, + ACTIONS(599), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6152] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(601), 2, anon_sym_RBRACE, anon_sym_LF, - [5511] = 2, + [6161] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(525), 2, + ACTIONS(603), 2, ts_builtin_sym_end, anon_sym_LF, - [5520] = 2, + [6170] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(527), 2, + ACTIONS(605), 2, anon_sym_RBRACE, anon_sym_LF, - [5529] = 3, - ACTIONS(481), 1, - sym_identifier, - STATE(187), 1, - sym_template_arg, + [6179] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5540] = 2, + ACTIONS(607), 2, + ts_builtin_sym_end, + anon_sym_LF, + [6188] = 2, + ACTIONS(609), 1, + anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(529), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [5549] = 2, + [6196] = 2, + ACTIONS(611), 1, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(531), 2, - ts_builtin_sym_end, - anon_sym_LF, - [5558] = 2, - ACTIONS(533), 1, + [6204] = 2, + ACTIONS(613), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5566] = 2, - ACTIONS(535), 1, + [6212] = 2, + ACTIONS(615), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6220] = 2, + ACTIONS(617), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5574] = 2, - ACTIONS(537), 1, - anon_sym_in, + [6228] = 2, + ACTIONS(619), 1, + anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5582] = 2, - ACTIONS(539), 1, - ts_builtin_sym_end, + [6236] = 2, + ACTIONS(621), 1, + anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5590] = 2, - ACTIONS(541), 1, - sym_identifier, + [6244] = 2, + ACTIONS(623), 1, + anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5598] = 2, - ACTIONS(543), 1, + [6252] = 2, + ACTIONS(625), 1, anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5606] = 2, - ACTIONS(545), 1, + [6260] = 2, + ACTIONS(627), 1, anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5614] = 2, - ACTIONS(547), 1, + [6268] = 2, + ACTIONS(629), 1, anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5622] = 2, - ACTIONS(549), 1, + [6276] = 2, + ACTIONS(631), 1, + anon_sym_in, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6284] = 2, + ACTIONS(633), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5630] = 2, - ACTIONS(551), 1, + [6292] = 2, + ACTIONS(635), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5638] = 2, - ACTIONS(553), 1, + [6300] = 2, + ACTIONS(637), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6308] = 2, + ACTIONS(639), 1, + ts_builtin_sym_end, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6316] = 2, + ACTIONS(641), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6324] = 2, + ACTIONS(643), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, @@ -8314,12 +8930,12 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(16)] = 1193, [SMALL_STATE(17)] = 1236, [SMALL_STATE(18)] = 1279, - [SMALL_STATE(19)] = 1335, - [SMALL_STATE(20)] = 1383, - [SMALL_STATE(21)] = 1443, - [SMALL_STATE(22)] = 1501, - [SMALL_STATE(23)] = 1549, - [SMALL_STATE(24)] = 1601, + [SMALL_STATE(19)] = 1327, + [SMALL_STATE(20)] = 1379, + [SMALL_STATE(21)] = 1441, + [SMALL_STATE(22)] = 1497, + [SMALL_STATE(23)] = 1557, + [SMALL_STATE(24)] = 1615, [SMALL_STATE(25)] = 1663, [SMALL_STATE(26)] = 1700, [SMALL_STATE(27)] = 1737, @@ -8327,174 +8943,202 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(29)] = 1811, [SMALL_STATE(30)] = 1848, [SMALL_STATE(31)] = 1885, - [SMALL_STATE(32)] = 1921, - [SMALL_STATE(33)] = 1957, - [SMALL_STATE(34)] = 1993, - [SMALL_STATE(35)] = 2029, - [SMALL_STATE(36)] = 2065, - [SMALL_STATE(37)] = 2121, - [SMALL_STATE(38)] = 2157, - [SMALL_STATE(39)] = 2193, - [SMALL_STATE(40)] = 2232, - [SMALL_STATE(41)] = 2294, - [SMALL_STATE(42)] = 2356, - [SMALL_STATE(43)] = 2414, - [SMALL_STATE(44)] = 2472, - [SMALL_STATE(45)] = 2507, - [SMALL_STATE(46)] = 2549, - [SMALL_STATE(47)] = 2605, - [SMALL_STATE(48)] = 2659, - [SMALL_STATE(49)] = 2713, - [SMALL_STATE(50)] = 2767, - [SMALL_STATE(51)] = 2823, - [SMALL_STATE(52)] = 2865, - [SMALL_STATE(53)] = 2918, - [SMALL_STATE(54)] = 2957, - [SMALL_STATE(55)] = 2996, - [SMALL_STATE(56)] = 3035, - [SMALL_STATE(57)] = 3074, - [SMALL_STATE(58)] = 3113, - [SMALL_STATE(59)] = 3152, - [SMALL_STATE(60)] = 3191, - [SMALL_STATE(61)] = 3230, - [SMALL_STATE(62)] = 3269, - [SMALL_STATE(63)] = 3308, - [SMALL_STATE(64)] = 3347, - [SMALL_STATE(65)] = 3386, - [SMALL_STATE(66)] = 3425, - [SMALL_STATE(67)] = 3478, - [SMALL_STATE(68)] = 3531, - [SMALL_STATE(69)] = 3570, - [SMALL_STATE(70)] = 3609, - [SMALL_STATE(71)] = 3641, - [SMALL_STATE(72)] = 3673, - [SMALL_STATE(73)] = 3703, - [SMALL_STATE(74)] = 3733, - [SMALL_STATE(75)] = 3778, - [SMALL_STATE(76)] = 3823, - [SMALL_STATE(77)] = 3848, - [SMALL_STATE(78)] = 3872, - [SMALL_STATE(79)] = 3911, - [SMALL_STATE(80)] = 3950, - [SMALL_STATE(81)] = 3980, - [SMALL_STATE(82)] = 4010, - [SMALL_STATE(83)] = 4036, - [SMALL_STATE(84)] = 4062, - [SMALL_STATE(85)] = 4088, - [SMALL_STATE(86)] = 4114, - [SMALL_STATE(87)] = 4140, - [SMALL_STATE(88)] = 4159, - [SMALL_STATE(89)] = 4182, - [SMALL_STATE(90)] = 4201, - [SMALL_STATE(91)] = 4220, - [SMALL_STATE(92)] = 4243, - [SMALL_STATE(93)] = 4262, - [SMALL_STATE(94)] = 4281, - [SMALL_STATE(95)] = 4300, - [SMALL_STATE(96)] = 4319, - [SMALL_STATE(97)] = 4338, - [SMALL_STATE(98)] = 4357, - [SMALL_STATE(99)] = 4370, - [SMALL_STATE(100)] = 4389, - [SMALL_STATE(101)] = 4408, - [SMALL_STATE(102)] = 4421, - [SMALL_STATE(103)] = 4434, - [SMALL_STATE(104)] = 4453, - [SMALL_STATE(105)] = 4472, - [SMALL_STATE(106)] = 4485, - [SMALL_STATE(107)] = 4504, - [SMALL_STATE(108)] = 4524, - [SMALL_STATE(109)] = 4544, - [SMALL_STATE(110)] = 4555, - [SMALL_STATE(111)] = 4566, - [SMALL_STATE(112)] = 4583, - [SMALL_STATE(113)] = 4594, - [SMALL_STATE(114)] = 4611, - [SMALL_STATE(115)] = 4628, - [SMALL_STATE(116)] = 4639, - [SMALL_STATE(117)] = 4656, - [SMALL_STATE(118)] = 4667, - [SMALL_STATE(119)] = 4678, - [SMALL_STATE(120)] = 4695, - [SMALL_STATE(121)] = 4712, - [SMALL_STATE(122)] = 4727, - [SMALL_STATE(123)] = 4738, - [SMALL_STATE(124)] = 4749, - [SMALL_STATE(125)] = 4760, - [SMALL_STATE(126)] = 4777, - [SMALL_STATE(127)] = 4788, - [SMALL_STATE(128)] = 4799, - [SMALL_STATE(129)] = 4816, - [SMALL_STATE(130)] = 4827, - [SMALL_STATE(131)] = 4844, - [SMALL_STATE(132)] = 4859, - [SMALL_STATE(133)] = 4876, - [SMALL_STATE(134)] = 4893, - [SMALL_STATE(135)] = 4910, - [SMALL_STATE(136)] = 4927, - [SMALL_STATE(137)] = 4944, - [SMALL_STATE(138)] = 4961, - [SMALL_STATE(139)] = 4972, - [SMALL_STATE(140)] = 4983, - [SMALL_STATE(141)] = 5000, - [SMALL_STATE(142)] = 5017, - [SMALL_STATE(143)] = 5032, - [SMALL_STATE(144)] = 5049, - [SMALL_STATE(145)] = 5066, - [SMALL_STATE(146)] = 5081, - [SMALL_STATE(147)] = 5096, - [SMALL_STATE(148)] = 5113, - [SMALL_STATE(149)] = 5124, - [SMALL_STATE(150)] = 5141, - [SMALL_STATE(151)] = 5152, - [SMALL_STATE(152)] = 5163, - [SMALL_STATE(153)] = 5174, - [SMALL_STATE(154)] = 5185, - [SMALL_STATE(155)] = 5202, - [SMALL_STATE(156)] = 5214, - [SMALL_STATE(157)] = 5228, - [SMALL_STATE(158)] = 5240, - [SMALL_STATE(159)] = 5254, - [SMALL_STATE(160)] = 5268, - [SMALL_STATE(161)] = 5282, - [SMALL_STATE(162)] = 5296, - [SMALL_STATE(163)] = 5306, - [SMALL_STATE(164)] = 5320, - [SMALL_STATE(165)] = 5332, - [SMALL_STATE(166)] = 5341, - [SMALL_STATE(167)] = 5350, - [SMALL_STATE(168)] = 5359, - [SMALL_STATE(169)] = 5368, - [SMALL_STATE(170)] = 5377, - [SMALL_STATE(171)] = 5388, - [SMALL_STATE(172)] = 5397, - [SMALL_STATE(173)] = 5406, - [SMALL_STATE(174)] = 5415, - [SMALL_STATE(175)] = 5424, - [SMALL_STATE(176)] = 5433, - [SMALL_STATE(177)] = 5442, - [SMALL_STATE(178)] = 5451, - [SMALL_STATE(179)] = 5462, - [SMALL_STATE(180)] = 5471, - [SMALL_STATE(181)] = 5482, - [SMALL_STATE(182)] = 5491, - [SMALL_STATE(183)] = 5502, - [SMALL_STATE(184)] = 5511, - [SMALL_STATE(185)] = 5520, - [SMALL_STATE(186)] = 5529, - [SMALL_STATE(187)] = 5540, - [SMALL_STATE(188)] = 5549, - [SMALL_STATE(189)] = 5558, - [SMALL_STATE(190)] = 5566, - [SMALL_STATE(191)] = 5574, - [SMALL_STATE(192)] = 5582, - [SMALL_STATE(193)] = 5590, - [SMALL_STATE(194)] = 5598, - [SMALL_STATE(195)] = 5606, - [SMALL_STATE(196)] = 5614, - [SMALL_STATE(197)] = 5622, - [SMALL_STATE(198)] = 5630, - [SMALL_STATE(199)] = 5638, + [SMALL_STATE(32)] = 1922, + [SMALL_STATE(33)] = 1959, + [SMALL_STATE(34)] = 1996, + [SMALL_STATE(35)] = 2033, + [SMALL_STATE(36)] = 2070, + [SMALL_STATE(37)] = 2107, + [SMALL_STATE(38)] = 2144, + [SMALL_STATE(39)] = 2180, + [SMALL_STATE(40)] = 2216, + [SMALL_STATE(41)] = 2256, + [SMALL_STATE(42)] = 2292, + [SMALL_STATE(43)] = 2348, + [SMALL_STATE(44)] = 2384, + [SMALL_STATE(45)] = 2420, + [SMALL_STATE(46)] = 2456, + [SMALL_STATE(47)] = 2492, + [SMALL_STATE(48)] = 2555, + [SMALL_STATE(49)] = 2617, + [SMALL_STATE(50)] = 2675, + [SMALL_STATE(51)] = 2733, + [SMALL_STATE(52)] = 2768, + [SMALL_STATE(53)] = 2823, + [SMALL_STATE(54)] = 2879, + [SMALL_STATE(55)] = 2935, + [SMALL_STATE(56)] = 2977, + [SMALL_STATE(57)] = 3031, + [SMALL_STATE(58)] = 3085, + [SMALL_STATE(59)] = 3127, + [SMALL_STATE(60)] = 3166, + [SMALL_STATE(61)] = 3205, + [SMALL_STATE(62)] = 3244, + [SMALL_STATE(63)] = 3283, + [SMALL_STATE(64)] = 3322, + [SMALL_STATE(65)] = 3375, + [SMALL_STATE(66)] = 3414, + [SMALL_STATE(67)] = 3453, + [SMALL_STATE(68)] = 3492, + [SMALL_STATE(69)] = 3531, + [SMALL_STATE(70)] = 3570, + [SMALL_STATE(71)] = 3623, + [SMALL_STATE(72)] = 3662, + [SMALL_STATE(73)] = 3701, + [SMALL_STATE(74)] = 3754, + [SMALL_STATE(75)] = 3793, + [SMALL_STATE(76)] = 3832, + [SMALL_STATE(77)] = 3871, + [SMALL_STATE(78)] = 3903, + [SMALL_STATE(79)] = 3935, + [SMALL_STATE(80)] = 3965, + [SMALL_STATE(81)] = 3995, + [SMALL_STATE(82)] = 4040, + [SMALL_STATE(83)] = 4085, + [SMALL_STATE(84)] = 4110, + [SMALL_STATE(85)] = 4150, + [SMALL_STATE(86)] = 4174, + [SMALL_STATE(87)] = 4214, + [SMALL_STATE(88)] = 4253, + [SMALL_STATE(89)] = 4292, + [SMALL_STATE(90)] = 4323, + [SMALL_STATE(91)] = 4353, + [SMALL_STATE(92)] = 4383, + [SMALL_STATE(93)] = 4409, + [SMALL_STATE(94)] = 4429, + [SMALL_STATE(95)] = 4455, + [SMALL_STATE(96)] = 4475, + [SMALL_STATE(97)] = 4495, + [SMALL_STATE(98)] = 4515, + [SMALL_STATE(99)] = 4541, + [SMALL_STATE(100)] = 4567, + [SMALL_STATE(101)] = 4587, + [SMALL_STATE(102)] = 4613, + [SMALL_STATE(103)] = 4636, + [SMALL_STATE(104)] = 4657, + [SMALL_STATE(105)] = 4680, + [SMALL_STATE(106)] = 4694, + [SMALL_STATE(107)] = 4708, + [SMALL_STATE(108)] = 4722, + [SMALL_STATE(109)] = 4736, + [SMALL_STATE(110)] = 4755, + [SMALL_STATE(111)] = 4774, + [SMALL_STATE(112)] = 4793, + [SMALL_STATE(113)] = 4812, + [SMALL_STATE(114)] = 4835, + [SMALL_STATE(115)] = 4858, + [SMALL_STATE(116)] = 4881, + [SMALL_STATE(117)] = 4904, + [SMALL_STATE(118)] = 4923, + [SMALL_STATE(119)] = 4942, + [SMALL_STATE(120)] = 4965, + [SMALL_STATE(121)] = 4984, + [SMALL_STATE(122)] = 5007, + [SMALL_STATE(123)] = 5030, + [SMALL_STATE(124)] = 5053, + [SMALL_STATE(125)] = 5072, + [SMALL_STATE(126)] = 5091, + [SMALL_STATE(127)] = 5107, + [SMALL_STATE(128)] = 5127, + [SMALL_STATE(129)] = 5145, + [SMALL_STATE(130)] = 5163, + [SMALL_STATE(131)] = 5183, + [SMALL_STATE(132)] = 5203, + [SMALL_STATE(133)] = 5223, + [SMALL_STATE(134)] = 5235, + [SMALL_STATE(135)] = 5246, + [SMALL_STATE(136)] = 5257, + [SMALL_STATE(137)] = 5268, + [SMALL_STATE(138)] = 5279, + [SMALL_STATE(139)] = 5290, + [SMALL_STATE(140)] = 5301, + [SMALL_STATE(141)] = 5316, + [SMALL_STATE(142)] = 5327, + [SMALL_STATE(143)] = 5338, + [SMALL_STATE(144)] = 5353, + [SMALL_STATE(145)] = 5370, + [SMALL_STATE(146)] = 5381, + [SMALL_STATE(147)] = 5392, + [SMALL_STATE(148)] = 5409, + [SMALL_STATE(149)] = 5426, + [SMALL_STATE(150)] = 5443, + [SMALL_STATE(151)] = 5456, + [SMALL_STATE(152)] = 5467, + [SMALL_STATE(153)] = 5484, + [SMALL_STATE(154)] = 5501, + [SMALL_STATE(155)] = 5518, + [SMALL_STATE(156)] = 5535, + [SMALL_STATE(157)] = 5552, + [SMALL_STATE(158)] = 5569, + [SMALL_STATE(159)] = 5580, + [SMALL_STATE(160)] = 5595, + [SMALL_STATE(161)] = 5612, + [SMALL_STATE(162)] = 5629, + [SMALL_STATE(163)] = 5644, + [SMALL_STATE(164)] = 5655, + [SMALL_STATE(165)] = 5672, + [SMALL_STATE(166)] = 5683, + [SMALL_STATE(167)] = 5700, + [SMALL_STATE(168)] = 5711, + [SMALL_STATE(169)] = 5722, + [SMALL_STATE(170)] = 5739, + [SMALL_STATE(171)] = 5756, + [SMALL_STATE(172)] = 5767, + [SMALL_STATE(173)] = 5778, + [SMALL_STATE(174)] = 5792, + [SMALL_STATE(175)] = 5806, + [SMALL_STATE(176)] = 5820, + [SMALL_STATE(177)] = 5834, + [SMALL_STATE(178)] = 5848, + [SMALL_STATE(179)] = 5862, + [SMALL_STATE(180)] = 5874, + [SMALL_STATE(181)] = 5888, + [SMALL_STATE(182)] = 5902, + [SMALL_STATE(183)] = 5916, + [SMALL_STATE(184)] = 5930, + [SMALL_STATE(185)] = 5940, + [SMALL_STATE(186)] = 5950, + [SMALL_STATE(187)] = 5962, + [SMALL_STATE(188)] = 5972, + [SMALL_STATE(189)] = 5986, + [SMALL_STATE(190)] = 6000, + [SMALL_STATE(191)] = 6011, + [SMALL_STATE(192)] = 6020, + [SMALL_STATE(193)] = 6029, + [SMALL_STATE(194)] = 6038, + [SMALL_STATE(195)] = 6047, + [SMALL_STATE(196)] = 6058, + [SMALL_STATE(197)] = 6067, + [SMALL_STATE(198)] = 6076, + [SMALL_STATE(199)] = 6087, + [SMALL_STATE(200)] = 6096, + [SMALL_STATE(201)] = 6105, + [SMALL_STATE(202)] = 6114, + [SMALL_STATE(203)] = 6125, + [SMALL_STATE(204)] = 6134, + [SMALL_STATE(205)] = 6143, + [SMALL_STATE(206)] = 6152, + [SMALL_STATE(207)] = 6161, + [SMALL_STATE(208)] = 6170, + [SMALL_STATE(209)] = 6179, + [SMALL_STATE(210)] = 6188, + [SMALL_STATE(211)] = 6196, + [SMALL_STATE(212)] = 6204, + [SMALL_STATE(213)] = 6212, + [SMALL_STATE(214)] = 6220, + [SMALL_STATE(215)] = 6228, + [SMALL_STATE(216)] = 6236, + [SMALL_STATE(217)] = 6244, + [SMALL_STATE(218)] = 6252, + [SMALL_STATE(219)] = 6260, + [SMALL_STATE(220)] = 6268, + [SMALL_STATE(221)] = 6276, + [SMALL_STATE(222)] = 6284, + [SMALL_STATE(223)] = 6292, + [SMALL_STATE(224)] = 6300, + [SMALL_STATE(225)] = 6308, + [SMALL_STATE(226)] = 6316, + [SMALL_STATE(227)] = 6324, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -8502,274 +9146,319 @@ static const TSParseActionEntry ts_parse_actions[] = { [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 = true}}, SHIFT(162), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), - [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(198), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(197), - [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(91), - [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), - [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), - [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), - [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), - [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_namespace_list, 2, .production_id = 2), - [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_namespace_list, 2, .production_id = 2), - [65] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), - [67] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_namespace_list_repeat1, 2, .production_id = 5), - [69] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_namespace_list_repeat1, 2, .production_id = 5), - [71] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_namespace_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(189), - [74] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_namespace_list, 1, .production_id = 1), - [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_namespace_list, 1, .production_id = 1), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(83), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(90), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(212), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(211), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(104), + [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(118), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), + [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), + [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), + [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_namespace_list, 1, .production_id = 1), + [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_namespace_list, 1, .production_id = 1), + [65] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214), + [67] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_namespace_list, 2, .production_id = 2), + [69] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_namespace_list, 2, .production_id = 2), + [71] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_namespace_list_repeat1, 2, .production_id = 5), + [73] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_namespace_list_repeat1, 2, .production_id = 5), + [75] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_namespace_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(214), [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_namespace_list_repeat1, 2, .production_id = 3), [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_namespace_list_repeat1, 2, .production_id = 3), - [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1), - [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1), - [86] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), - [88] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 15), - [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 15), - [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 29), - [94] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 29), - [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [98] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), - [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [102] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), - [104] = {.entry = {.count = 1, .reusable = false}}, SHIFT(190), - [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 14), - [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 14), - [114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 25), - [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 25), - [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 4, .production_id = 6), - [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 4, .production_id = 6), - [128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 26), - [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 26), - [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 3, .production_id = 3), - [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 3, .production_id = 3), - [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 2), - [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 2), - [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 20), - [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 20), - [144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 19), - [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 19), - [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [152] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), - [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 30), - [158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 30), - [160] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 25), - [162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 25), - [164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [166] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 18), - [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 18), - [174] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), - [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), - [178] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(39), - [181] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61), - [183] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 25), - [185] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 25), - [187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), - [191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [195] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 16), - [197] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 16), - [199] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 9), - [201] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 9), - [203] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), - [205] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [209] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [218] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_arg, 3, .production_id = 44), - [220] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 27), - [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), - [224] = {.entry = {.count = 1, .reusable = false}}, SHIFT(96), - [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [264] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), - [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), - [268] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), - [270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), + [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 14), + [84] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), + [86] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 14), + [88] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1, .production_id = 9), + [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1, .production_id = 9), + [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 19), + [94] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 19), + [96] = {.entry = {.count = 1, .reusable = false}}, SHIFT(222), + [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 31), + [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 31), + [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [108] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), + [110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [112] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60), + [114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 3), + [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 3), + [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 4, .production_id = 3), + [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 4, .production_id = 3), + [128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 24), + [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 24), + [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 5, .production_id = 36), + [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 5, .production_id = 36), + [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 6, .production_id = 36), + [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 6, .production_id = 36), + [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 4, .production_id = 26), + [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 4, .production_id = 26), + [144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 29), + [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 29), + [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 4, .production_id = 6), + [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 4, .production_id = 6), + [152] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 5, .production_id = 26), + [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 5, .production_id = 26), + [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 5, .production_id = 6), + [158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 5, .production_id = 6), + [160] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 2), + [162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 2), + [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 3, .production_id = 3), + [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 3, .production_id = 3), + [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 17), + [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 17), + [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 29), + [174] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 29), + [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), + [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), + [182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), + [184] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(40), + [187] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [189] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), + [191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 21), + [195] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 21), + [197] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [199] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), + [201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 32), + [203] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 32), + [205] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 16), + [207] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 16), + [209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 29), + [211] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 29), + [213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [215] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), + [217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), + [219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [223] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 10), + [225] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 10), + [227] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 20), + [229] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 20), + [231] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), + [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [235] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [237] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), + [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_arg, 3, .production_id = 40), + [242] = {.entry = {.count = 1, .reusable = false}}, SHIFT(111), + [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), + [248] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 30), + [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [274] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [276] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(76), - [279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [281] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), - [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 10), - [285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [289] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [291] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [293] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [295] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), - [305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), - [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), - [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), - [311] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(87), - [314] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 34), - [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 17), - [320] = {.entry = {.count = 1, .reusable = false}}, SHIFT(95), - [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 23), - [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 24), - [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), - [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), - [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 28), - [332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), - [334] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(71), - [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 35), - [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 43), - [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), - [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), - [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 36), - [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), - [349] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(71), - [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), - [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), - [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), - [364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), - [366] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), SHIFT_REPEAT(71), - [369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), - [371] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), - [373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), - [375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 37), - [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), - [381] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), - [383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), - [387] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), - [390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_arg, 4, .production_id = 47), - [392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 31), - [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), - [400] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(71), - [403] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 18), - [405] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 42), - [407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), - [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [411] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_args_repeat1, 2, .production_id = 5), - [413] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_args_repeat1, 2, .production_id = 5), SHIFT_REPEAT(71), - [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), - [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), - [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), - [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [428] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 31), - [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), - [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), - [434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), - [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [442] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), - [444] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(88), - [447] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), - [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [451] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 33), - [453] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 13), - [455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), - [459] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 37), - [461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), - [463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), - [465] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), - [467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [469] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 21), - [471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), - [473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [477] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_arg, 1, .production_id = 8), - [479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), - [483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), - [489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), - [491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), - [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [495] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), - [497] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 32), - [499] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 3), - [501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1, .production_id = 8), - [503] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 48), - [505] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 5, .production_id = 12), - [507] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 4, .production_id = 11), - [509] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 38), - [511] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 39), - [513] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 4, .production_id = 7), - [515] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 40), - [517] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 22), - [519] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 41), - [521] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 46), - [523] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 45), - [525] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 3, .production_id = 4), - [527] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_domain_statement, 2, .production_id = 13), - [529] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_args_repeat1, 2, .production_id = 3), - [531] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), - [533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [539] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), - [543] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 6), - [545] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 3), - [547] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), - [549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), - [551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), - [553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), + [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [292] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), + [294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), + [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [298] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), + [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), + [302] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 11), + [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 11), + [306] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [308] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(83), + [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), + [313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [317] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [321] = {.entry = {.count = 1, .reusable = false}}, SHIFT(103), + [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), + [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [327] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), + [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), + [337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 15), + [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 33), + [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 22), + [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 23), + [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), + [353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), + [355] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(100), + [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), + [360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1, .production_id = 8), + [362] = {.entry = {.count = 1, .reusable = false}}, SHIFT(110), + [364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 25), + [366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 34), + [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 35), + [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 39), + [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), + [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), + [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), + [380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), + [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226), + [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), + [388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), + [392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), + [394] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(77), + [397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), + [399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), + [401] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), + [403] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(77), + [406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), + [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), + [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), + [414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217), + [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), + [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), + [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), + [422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_arg, 4, .production_id = 46), + [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), + [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_args_repeat1, 2, .production_id = 5), + [432] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_args_repeat1, 2, .production_id = 5), SHIFT_REPEAT(77), + [435] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), + [437] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), SHIFT_REPEAT(77), + [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), + [442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), + [450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [452] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 16), + [454] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), + [456] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 36), + [458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), + [460] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), + [462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 45), + [464] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), + [466] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 18), + [468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 26), + [472] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), + [476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), + [480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), + [484] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(77), + [487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_arg, 1, .production_id = 8), + [489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), + [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [495] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), + [497] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), + [500] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), + [502] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [504] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), + [506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), + [510] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(102), + [513] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 36), + [515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [519] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), + [521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [523] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 38), + [525] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [527] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), + [529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [531] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), + [533] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), + [535] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), + [537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [541] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 26), + [543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), + [549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [555] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), + [557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(224), + [561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), + [565] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 3), + [567] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_args_repeat1, 2, .production_id = 3), + [569] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 27), + [571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), + [575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), + [577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [579] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), + [581] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 28), + [583] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 49), + [585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 48), + [587] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_domain_statement, 2, .production_id = 18), + [589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 47), + [591] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 3, .production_id = 4), + [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 41), + [595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 42), + [597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 4, .production_id = 7), + [599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 43), + [601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 37), + [603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 4, .production_id = 12), + [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 44), + [607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 5, .production_id = 13), + [609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 5, .production_id = 26), + [611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), + [613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), + [615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 5, .production_id = 6), + [617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), + [621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 3), + [623] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 5, .production_id = 36), + [625] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 26), + [627] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 6, .production_id = 36), + [629] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3), + [631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), + [637] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 3), + [639] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [641] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 6), + [643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), }; #ifdef __cplusplus From 63f2a4ef1c2e51abe8a6a18df74b120898bf4d24 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Thu, 24 Oct 2024 14:29:27 +0200 Subject: [PATCH 47/49] Fix | and & precedence --- grammar.js | 8 ++++---- src/grammar.json | 4 ++-- src/parser.c | 28 ++++++++++++++-------------- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/grammar.js b/grammar.js index 4ee518f..70aafd0 100644 --- a/grammar.js +++ b/grammar.js @@ -42,9 +42,9 @@ function commaSepSeq($, rule) { const PREC = { compare : 2, - and: 3, + xor: 3, or: 4, - xor: 5, + and: 5, additive: 6, multiplicative: 7, unary: 8, @@ -234,9 +234,9 @@ module.exports = grammar({ binary_op: $ => { const TABLE = [ [PREC.compare, choice('==', '!=', '<', '<=', '>', '>=')], - [PREC.and, '&'], - [PREC.or, '|'], [PREC.xor, '^'], + [PREC.or, '|'], + [PREC.and, '&'], [PREC.additive, choice('+', '-')], [PREC.multiplicative, choice('*', '/', '%')], ]; diff --git a/src/grammar.json b/src/grammar.json index d3d6492..3d4b843 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -1114,7 +1114,7 @@ "name": "operator", "content": { "type": "STRING", - "value": "&" + "value": "^" } }, { @@ -1180,7 +1180,7 @@ "name": "operator", "content": { "type": "STRING", - "value": "^" + "value": "&" } }, { diff --git a/src/parser.c b/src/parser.c index ae233ba..3e18ea4 100644 --- a/src/parser.c +++ b/src/parser.c @@ -5092,7 +5092,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1441] = 12, + [1441] = 14, ACTIONS(96), 1, anon_sym_DOT, ACTIONS(98), 1, @@ -5105,6 +5105,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, ACTIONS(112), 1, anon_sym_DASH, + ACTIONS(114), 1, + anon_sym_PIPE, + ACTIONS(116), 1, + anon_sym_AMP, STATE(43), 1, sym_parenthesis_expression_list, STATE(46), 1, @@ -5119,15 +5123,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(102), 16, + ACTIONS(102), 14, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, - anon_sym_PIPE, - anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, @@ -5136,7 +5138,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1497] = 14, + [1501] = 12, ACTIONS(96), 1, anon_sym_DOT, ACTIONS(98), 1, @@ -5149,10 +5151,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, ACTIONS(112), 1, anon_sym_DASH, - ACTIONS(114), 1, - anon_sym_PIPE, - ACTIONS(118), 1, - anon_sym_CARET, STATE(43), 1, sym_parenthesis_expression_list, STATE(46), 1, @@ -5167,14 +5165,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(102), 14, + ACTIONS(102), 16, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, + anon_sym_PIPE, anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -5195,8 +5195,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, ACTIONS(112), 1, anon_sym_DASH, - ACTIONS(118), 1, - anon_sym_CARET, + ACTIONS(116), 1, + anon_sym_AMP, STATE(43), 1, sym_parenthesis_expression_list, STATE(46), 1, @@ -5219,7 +5219,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DOT_DOT, anon_sym_DASH_GT, anon_sym_PIPE, - anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -8933,7 +8933,7 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(19)] = 1327, [SMALL_STATE(20)] = 1379, [SMALL_STATE(21)] = 1441, - [SMALL_STATE(22)] = 1497, + [SMALL_STATE(22)] = 1501, [SMALL_STATE(23)] = 1557, [SMALL_STATE(24)] = 1615, [SMALL_STATE(25)] = 1663, From 3fb461dbaf2f90d0dae8bbbfbffa876eba04070e Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Sat, 2 Nov 2024 03:33:48 +0100 Subject: [PATCH 48/49] Add const to grammar --- grammar.js | 9 +- src/grammar.json | 23 +- src/node-types.json | 32 +- src/parser.c | 5010 ++++++++++++++++++++++--------------------- 4 files changed, 2588 insertions(+), 2486 deletions(-) diff --git a/grammar.js b/grammar.js index 70aafd0..c4bd82c 100644 --- a/grammar.js +++ b/grammar.js @@ -64,13 +64,18 @@ module.exports = grammar({ // Because we want to reuse our "generative code", we parse them under the same umbrella. // Their differences are their semantic meaning, and therefore what constructs are allowed in each // For instance, modules have no restrictions - // Functions cannot contain state or modules + // Consts only contain generative code (with generative parameters they're similar to functions) // Struct defines types, and cannot contain non-generative operations. (Only non-generative declarations are allowed, these define the fields) - field('object_type', choice('module', 'function', 'struct')), + field('object_type', choice('module', 'struct', $.const_and_type)), field('name', $.identifier), optional(field('template_declaration_arguments', $.template_declaration_arguments)), field('block', $.block) ), + + const_and_type: $ => seq( + 'const', + field('const_type', $._type) + ), // Template Declaration diff --git a/src/grammar.json b/src/grammar.json index 3d4b843..4ed7c13 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -112,11 +112,11 @@ }, { "type": "STRING", - "value": "function" + "value": "struct" }, { - "type": "STRING", - "value": "struct" + "type": "SYMBOL", + "name": "const_and_type" } ] } @@ -155,6 +155,23 @@ } ] }, + "const_and_type": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "const" + }, + { + "type": "FIELD", + "name": "const_type", + "content": { + "type": "SYMBOL", + "name": "_type" + } + } + ] + }, "template_declaration_arguments": { "type": "SEQ", "members": [ diff --git a/src/node-types.json b/src/node-types.json index d5a5232..a0a1cf6 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -385,6 +385,26 @@ } } }, + { + "type": "const_and_type", + "named": true, + "fields": { + "const_type": { + "multiple": false, + "required": true, + "types": [ + { + "type": "array_type", + "named": true + }, + { + "type": "template_global", + "named": true + } + ] + } + } + }, { "type": "decl_assign_statement", "named": true, @@ -792,8 +812,8 @@ "required": true, "types": [ { - "type": "function", - "named": false + "type": "const_and_type", + "named": true }, { "type": "module", @@ -1471,6 +1491,10 @@ "type": "__builtin__", "named": false }, + { + "type": "const", + "named": false + }, { "type": "domain", "named": false @@ -1487,10 +1511,6 @@ "type": "for", "named": false }, - { - "type": "function", - "named": false - }, { "type": "gen", "named": false diff --git a/src/parser.c b/src/parser.c index 3e18ea4..0365824 100644 --- a/src/parser.c +++ b/src/parser.c @@ -5,23 +5,23 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 228 +#define STATE_COUNT 230 #define LARGE_STATE_COUNT 2 -#define SYMBOL_COUNT 98 +#define SYMBOL_COUNT 99 #define ALIAS_COUNT 0 #define TOKEN_COUNT 54 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 35 +#define FIELD_COUNT 36 #define MAX_ALIAS_SEQUENCE_LENGTH 7 -#define PRODUCTION_ID_COUNT 50 +#define PRODUCTION_ID_COUNT 51 enum ts_symbol_identifiers { sym_identifier = 1, anon_sym___builtin__ = 2, anon_sym_extern = 3, anon_sym_module = 4, - anon_sym_function = 5, - anon_sym_struct = 6, + anon_sym_struct = 5, + anon_sym_const = 6, anon_sym_POUND_LPAREN = 7, anon_sym_RPAREN = 8, anon_sym_LBRACE = 9, @@ -71,48 +71,49 @@ enum ts_symbol_identifiers { sym_multi_line_comment = 53, sym_source_file = 54, sym_global_object = 55, - sym_template_declaration_arguments = 56, - sym_template_declaration_type = 57, - sym_block = 58, - sym_decl_assign_statement = 59, - sym_assign_left_side = 60, - sym_assign_to = 61, - sym_write_modifiers = 62, - sym_if_statement = 63, - sym_for_statement = 64, - sym_domain_statement = 65, - sym_interface_statement = 66, - sym_interface_ports = 67, - sym__interface_ports_output = 68, - sym_declaration_list = 69, - sym_declaration = 70, - sym_latency_specifier = 71, - sym__type = 72, - sym_array_type = 73, - sym__expression = 74, - sym_unary_op = 75, - sym_binary_op = 76, - sym_array_op = 77, - sym_func_call = 78, - sym_field_access = 79, - sym_parenthesis_expression_list = 80, - sym_parenthesis_expression = 81, - sym_array_bracket_expression = 82, - sym_namespace_list = 83, - sym_template_global = 84, - sym_template_args = 85, - sym_template_arg = 86, - sym__comma = 87, - aux_sym__linebreak = 88, - aux_sym_source_file_repeat1 = 89, - aux_sym_template_declaration_arguments_repeat1 = 90, - aux_sym_block_repeat1 = 91, - aux_sym_assign_left_side_repeat1 = 92, - aux_sym_write_modifiers_repeat1 = 93, - aux_sym_declaration_list_repeat1 = 94, - aux_sym_parenthesis_expression_list_repeat1 = 95, - aux_sym_namespace_list_repeat1 = 96, - aux_sym_template_args_repeat1 = 97, + sym_const_and_type = 56, + sym_template_declaration_arguments = 57, + sym_template_declaration_type = 58, + sym_block = 59, + sym_decl_assign_statement = 60, + sym_assign_left_side = 61, + sym_assign_to = 62, + sym_write_modifiers = 63, + sym_if_statement = 64, + sym_for_statement = 65, + sym_domain_statement = 66, + sym_interface_statement = 67, + sym_interface_ports = 68, + sym__interface_ports_output = 69, + sym_declaration_list = 70, + sym_declaration = 71, + sym_latency_specifier = 72, + sym__type = 73, + sym_array_type = 74, + sym__expression = 75, + sym_unary_op = 76, + sym_binary_op = 77, + sym_array_op = 78, + sym_func_call = 79, + sym_field_access = 80, + sym_parenthesis_expression_list = 81, + sym_parenthesis_expression = 82, + sym_array_bracket_expression = 83, + sym_namespace_list = 84, + sym_template_global = 85, + sym_template_args = 86, + sym_template_arg = 87, + sym__comma = 88, + aux_sym__linebreak = 89, + aux_sym_source_file_repeat1 = 90, + aux_sym_template_declaration_arguments_repeat1 = 91, + aux_sym_block_repeat1 = 92, + aux_sym_assign_left_side_repeat1 = 93, + aux_sym_write_modifiers_repeat1 = 94, + aux_sym_declaration_list_repeat1 = 95, + aux_sym_parenthesis_expression_list_repeat1 = 96, + aux_sym_namespace_list_repeat1 = 97, + aux_sym_template_args_repeat1 = 98, }; static const char * const ts_symbol_names[] = { @@ -121,8 +122,8 @@ static const char * const ts_symbol_names[] = { [anon_sym___builtin__] = "__builtin__", [anon_sym_extern] = "extern", [anon_sym_module] = "module", - [anon_sym_function] = "function", [anon_sym_struct] = "struct", + [anon_sym_const] = "const", [anon_sym_POUND_LPAREN] = "#(", [anon_sym_RPAREN] = ")", [anon_sym_LBRACE] = "{", @@ -172,6 +173,7 @@ static const char * const ts_symbol_names[] = { [sym_multi_line_comment] = "multi_line_comment", [sym_source_file] = "source_file", [sym_global_object] = "global_object", + [sym_const_and_type] = "const_and_type", [sym_template_declaration_arguments] = "template_declaration_arguments", [sym_template_declaration_type] = "template_declaration_type", [sym_block] = "block", @@ -222,8 +224,8 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym___builtin__] = anon_sym___builtin__, [anon_sym_extern] = anon_sym_extern, [anon_sym_module] = anon_sym_module, - [anon_sym_function] = anon_sym_function, [anon_sym_struct] = anon_sym_struct, + [anon_sym_const] = anon_sym_const, [anon_sym_POUND_LPAREN] = anon_sym_POUND_LPAREN, [anon_sym_RPAREN] = anon_sym_RPAREN, [anon_sym_LBRACE] = anon_sym_LBRACE, @@ -273,6 +275,7 @@ static const TSSymbol ts_symbol_map[] = { [sym_multi_line_comment] = sym_multi_line_comment, [sym_source_file] = sym_source_file, [sym_global_object] = sym_global_object, + [sym_const_and_type] = sym_const_and_type, [sym_template_declaration_arguments] = sym_template_declaration_arguments, [sym_template_declaration_type] = sym_template_declaration_type, [sym_block] = sym_block, @@ -338,11 +341,11 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_function] = { + [anon_sym_struct] = { .visible = true, .named = false, }, - [anon_sym_struct] = { + [anon_sym_const] = { .visible = true, .named = false, }, @@ -542,6 +545,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_const_and_type] = { + .visible = true, + .named = true, + }, [sym_template_declaration_arguments] = { .visible = true, .named = true, @@ -720,34 +727,35 @@ enum ts_field_identifiers { field_assign_value = 5, field_block = 6, field_condition = 7, - field_content = 8, - field_declaration_modifiers = 9, - field_else_block = 10, - field_expr_or_decl = 11, - field_extern_marker = 12, - field_for_decl = 13, - field_from = 14, - field_inputs = 15, - field_interface_ports = 16, - field_io_port_modifiers = 17, - field_is_global_path = 18, - field_item = 19, - field_latency_specifier = 20, - field_left = 21, - field_name = 22, - field_namespace_list = 23, - field_object_type = 24, - field_operator = 25, - field_outputs = 26, - field_right = 27, - field_template_args = 28, - field_template_declaration_arguments = 29, - field_then_block = 30, - field_to = 31, - field_type = 32, - field_type_arg = 33, - field_val_arg = 34, - field_write_modifiers = 35, + field_const_type = 8, + field_content = 9, + field_declaration_modifiers = 10, + field_else_block = 11, + field_expr_or_decl = 12, + field_extern_marker = 13, + field_for_decl = 14, + field_from = 15, + field_inputs = 16, + field_interface_ports = 17, + field_io_port_modifiers = 18, + field_is_global_path = 19, + field_item = 20, + field_latency_specifier = 21, + field_left = 22, + field_name = 23, + field_namespace_list = 24, + field_object_type = 25, + field_operator = 26, + field_outputs = 27, + field_right = 28, + field_template_args = 29, + field_template_declaration_arguments = 30, + field_then_block = 31, + field_to = 32, + field_type = 33, + field_type_arg = 34, + field_val_arg = 35, + field_write_modifiers = 36, }; static const char * const ts_field_names[] = { @@ -759,6 +767,7 @@ static const char * const ts_field_names[] = { [field_assign_value] = "assign_value", [field_block] = "block", [field_condition] = "condition", + [field_const_type] = "const_type", [field_content] = "content", [field_declaration_modifiers] = "declaration_modifiers", [field_else_block] = "else_block", @@ -791,210 +800,213 @@ static const char * const ts_field_names[] = { static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [1] = {.index = 0, .length = 1}, - [2] = {.index = 1, .length = 2}, - [3] = {.index = 3, .length = 1}, - [4] = {.index = 4, .length = 3}, - [5] = {.index = 7, .length = 2}, - [6] = {.index = 9, .length = 2}, - [7] = {.index = 11, .length = 4}, - [8] = {.index = 15, .length = 1}, - [9] = {.index = 16, .length = 1}, - [10] = {.index = 17, .length = 1}, - [11] = {.index = 18, .length = 1}, + [2] = {.index = 1, .length = 1}, + [3] = {.index = 2, .length = 1}, + [4] = {.index = 3, .length = 2}, + [5] = {.index = 5, .length = 1}, + [6] = {.index = 6, .length = 3}, + [7] = {.index = 9, .length = 2}, + [8] = {.index = 11, .length = 2}, + [9] = {.index = 13, .length = 2}, + [10] = {.index = 15, .length = 2}, + [11] = {.index = 17, .length = 2}, [12] = {.index = 19, .length = 4}, - [13] = {.index = 23, .length = 5}, - [14] = {.index = 28, .length = 2}, - [15] = {.index = 30, .length = 2}, - [16] = {.index = 32, .length = 2}, - [17] = {.index = 34, .length = 2}, - [18] = {.index = 36, .length = 1}, - [19] = {.index = 37, .length = 2}, - [20] = {.index = 39, .length = 2}, + [13] = {.index = 23, .length = 1}, + [14] = {.index = 24, .length = 1}, + [15] = {.index = 25, .length = 1}, + [16] = {.index = 26, .length = 4}, + [17] = {.index = 30, .length = 3}, + [18] = {.index = 33, .length = 5}, + [19] = {.index = 38, .length = 2}, + [20] = {.index = 40, .length = 1}, [21] = {.index = 41, .length = 2}, - [22] = {.index = 43, .length = 3}, - [23] = {.index = 46, .length = 3}, - [24] = {.index = 49, .length = 3}, - [25] = {.index = 52, .length = 3}, - [26] = {.index = 55, .length = 1}, - [27] = {.index = 56, .length = 2}, - [28] = {.index = 58, .length = 2}, - [29] = {.index = 60, .length = 1}, - [30] = {.index = 61, .length = 2}, - [31] = {.index = 63, .length = 3}, - [32] = {.index = 66, .length = 2}, - [33] = {.index = 68, .length = 4}, - [34] = {.index = 72, .length = 4}, - [35] = {.index = 76, .length = 4}, - [36] = {.index = 80, .length = 2}, - [37] = {.index = 82, .length = 1}, - [38] = {.index = 83, .length = 1}, - [39] = {.index = 84, .length = 5}, - [40] = {.index = 89, .length = 2}, - [41] = {.index = 91, .length = 3}, - [42] = {.index = 94, .length = 1}, - [43] = {.index = 95, .length = 2}, + [22] = {.index = 43, .length = 2}, + [23] = {.index = 45, .length = 2}, + [24] = {.index = 47, .length = 1}, + [25] = {.index = 48, .length = 3}, + [26] = {.index = 51, .length = 3}, + [27] = {.index = 54, .length = 3}, + [28] = {.index = 57, .length = 1}, + [29] = {.index = 58, .length = 2}, + [30] = {.index = 60, .length = 2}, + [31] = {.index = 62, .length = 2}, + [32] = {.index = 64, .length = 3}, + [33] = {.index = 67, .length = 2}, + [34] = {.index = 69, .length = 2}, + [35] = {.index = 71, .length = 4}, + [36] = {.index = 75, .length = 4}, + [37] = {.index = 79, .length = 4}, + [38] = {.index = 83, .length = 2}, + [39] = {.index = 85, .length = 1}, + [40] = {.index = 86, .length = 1}, + [41] = {.index = 87, .length = 2}, + [42] = {.index = 89, .length = 5}, + [43] = {.index = 94, .length = 3}, [44] = {.index = 97, .length = 1}, - [45] = {.index = 98, .length = 1}, - [46] = {.index = 99, .length = 2}, + [45] = {.index = 98, .length = 2}, + [46] = {.index = 100, .length = 1}, [47] = {.index = 101, .length = 1}, - [48] = {.index = 102, .length = 2}, - [49] = {.index = 104, .length = 4}, + [48] = {.index = 102, .length = 1}, + [49] = {.index = 103, .length = 2}, + [50] = {.index = 105, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { [0] = {field_item, 0}, [1] = + {field_const_type, 1}, + [2] = + {field_namespace_list, 0}, + [3] = {field_item, 0}, {field_item, 1, .inherited = true}, - [3] = + [5] = {field_item, 1}, - [4] = + [6] = {field_block, 2}, {field_name, 1}, {field_object_type, 0}, - [7] = + [9] = + {field_is_global_path, 0}, + {field_namespace_list, 1}, + [11] = + {field_arr, 0}, + {field_arr_idx, 1}, + [13] = + {field_namespace_list, 0}, + {field_template_args, 1}, + [15] = {field_item, 0, .inherited = true}, {field_item, 1, .inherited = true}, - [9] = + [17] = {field_item, 1}, {field_item, 2, .inherited = true}, - [11] = + [19] = {field_block, 3}, {field_extern_marker, 0}, {field_name, 2}, {field_object_type, 1}, - [15] = + [23] = {field_name, 0}, - [16] = - {field_namespace_list, 0}, - [17] = + [24] = {field_expr_or_decl, 0}, - [18] = + [25] = {field_item, 0, .inherited = true}, - [19] = + [26] = {field_block, 3}, {field_name, 1}, {field_object_type, 0}, {field_template_declaration_arguments, 2}, - [23] = + [30] = + {field_is_global_path, 0}, + {field_namespace_list, 1}, + {field_template_args, 2}, + [33] = {field_block, 4}, {field_extern_marker, 0}, {field_name, 2}, {field_object_type, 1}, {field_template_declaration_arguments, 3}, - [28] = - {field_is_global_path, 0}, - {field_namespace_list, 1}, - [30] = + [38] = {field_name, 1}, {field_type, 0}, - [32] = - {field_arr, 0}, - {field_arr_idx, 1}, - [34] = - {field_namespace_list, 0}, - {field_template_args, 1}, - [36] = + [40] = {field_name, 1}, - [37] = + [41] = {field_operator, 0}, {field_right, 1}, - [39] = + [43] = {field_expr_or_decl, 1}, {field_write_modifiers, 0}, - [41] = + [45] = {field_arguments, 1}, {field_name, 0}, - [43] = + [47] = + {field_content, 1}, + [48] = {field_io_port_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [46] = + [51] = {field_declaration_modifiers, 0}, {field_name, 2}, {field_type, 1}, - [49] = - {field_is_global_path, 0}, - {field_namespace_list, 1}, - {field_template_args, 2}, - [52] = + [54] = {field_latency_specifier, 2}, {field_name, 1}, {field_type, 0}, - [55] = + [57] = {field_item, 2}, - [56] = + [58] = {field_condition, 1}, {field_then_block, 2}, - [58] = + [60] = {field_interface_ports, 2}, {field_name, 1}, - [60] = - {field_content, 1}, - [61] = + [62] = {field_assign_left, 0}, {field_assign_value, 2}, - [63] = + [64] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [66] = + [67] = {field_left, 0}, {field_name, 2}, - [68] = + [69] = + {field_name, 0}, + {field_val_arg, 2}, + [71] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_name, 3}, {field_type, 2}, - [72] = + [75] = {field_io_port_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [76] = + [79] = {field_declaration_modifiers, 0}, {field_latency_specifier, 3}, {field_name, 2}, {field_type, 1}, - [80] = + [83] = {field_item, 2}, {field_item, 3, .inherited = true}, - [82] = + [85] = {field_outputs, 1, .inherited = true}, - [83] = + [86] = {field_inputs, 1}, - [84] = + [87] = + {field_name, 0}, + {field_type_arg, 3}, + [89] = {field_declaration_modifiers, 1}, {field_io_port_modifiers, 0}, {field_latency_specifier, 4}, {field_name, 3}, {field_type, 2}, - [89] = - {field_name, 0}, - {field_val_arg, 2}, - [91] = + [94] = {field_condition, 1}, {field_else_block, 4}, {field_then_block, 2}, - [94] = + [97] = {field_outputs, 1}, - [95] = + [98] = {field_inputs, 1}, {field_outputs, 2, .inherited = true}, - [97] = + [100] = {field_outputs, 2, .inherited = true}, - [98] = - {field_inputs, 2}, - [99] = - {field_name, 0}, - {field_type_arg, 3}, [101] = - {field_outputs, 2}, + {field_inputs, 2}, [102] = + {field_outputs, 2}, + [103] = {field_inputs, 2}, {field_outputs, 3, .inherited = true}, - [104] = + [105] = {field_block, 6}, {field_for_decl, 1}, {field_from, 3}, @@ -1107,10 +1119,10 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [94] = 94, [95] = 95, [96] = 96, - [97] = 97, + [97] = 45, [98] = 98, [99] = 99, - [100] = 40, + [100] = 100, [101] = 101, [102] = 102, [103] = 103, @@ -1238,6 +1250,8 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [225] = 225, [226] = 226, [227] = 227, + [228] = 228, + [229] = 229, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -3396,239 +3410,239 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { switch (state) { case 0: if (lookahead == '_') ADVANCE(1); - if (lookahead == 'd') ADVANCE(2); - if (lookahead == 'e') ADVANCE(3); - if (lookahead == 'f') ADVANCE(4); - if (lookahead == 'g') ADVANCE(5); - if (lookahead == 'i') ADVANCE(6); - if (lookahead == 'm') ADVANCE(7); - if (lookahead == 'o') ADVANCE(8); - if (lookahead == 'r') ADVANCE(9); - if (lookahead == 's') ADVANCE(10); - if (lookahead == 't') ADVANCE(11); + if (lookahead == 'c') ADVANCE(2); + if (lookahead == 'd') ADVANCE(3); + if (lookahead == 'e') ADVANCE(4); + if (lookahead == 'f') ADVANCE(5); + if (lookahead == 'g') ADVANCE(6); + if (lookahead == 'i') ADVANCE(7); + if (lookahead == 'm') ADVANCE(8); + if (lookahead == 'o') ADVANCE(9); + if (lookahead == 'r') ADVANCE(10); + if (lookahead == 's') ADVANCE(11); + if (lookahead == 't') ADVANCE(12); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(0) END_STATE(); case 1: - if (lookahead == '_') ADVANCE(12); + if (lookahead == '_') ADVANCE(13); END_STATE(); case 2: - if (lookahead == 'o') ADVANCE(13); + if (lookahead == 'o') ADVANCE(14); END_STATE(); case 3: - if (lookahead == 'l') ADVANCE(14); - if (lookahead == 'x') ADVANCE(15); + if (lookahead == 'o') ADVANCE(15); END_STATE(); case 4: - if (lookahead == 'o') ADVANCE(16); - if (lookahead == 'u') ADVANCE(17); + if (lookahead == 'l') ADVANCE(16); + if (lookahead == 'x') ADVANCE(17); END_STATE(); case 5: - if (lookahead == 'e') ADVANCE(18); + if (lookahead == 'o') ADVANCE(18); END_STATE(); case 6: - if (lookahead == 'f') ADVANCE(19); - if (lookahead == 'n') ADVANCE(20); + if (lookahead == 'e') ADVANCE(19); END_STATE(); case 7: - if (lookahead == 'o') ADVANCE(21); + if (lookahead == 'f') ADVANCE(20); + if (lookahead == 'n') ADVANCE(21); END_STATE(); case 8: - if (lookahead == 'u') ADVANCE(22); + if (lookahead == 'o') ADVANCE(22); END_STATE(); case 9: - if (lookahead == 'e') ADVANCE(23); + if (lookahead == 'u') ADVANCE(23); END_STATE(); case 10: - if (lookahead == 't') ADVANCE(24); + if (lookahead == 'e') ADVANCE(24); END_STATE(); case 11: - if (lookahead == 'y') ADVANCE(25); + if (lookahead == 't') ADVANCE(25); END_STATE(); case 12: - if (lookahead == 'b') ADVANCE(26); + if (lookahead == 'y') ADVANCE(26); END_STATE(); case 13: - if (lookahead == 'm') ADVANCE(27); + if (lookahead == 'b') ADVANCE(27); END_STATE(); case 14: - if (lookahead == 's') ADVANCE(28); + if (lookahead == 'n') ADVANCE(28); END_STATE(); case 15: - if (lookahead == 't') ADVANCE(29); + if (lookahead == 'm') ADVANCE(29); END_STATE(); case 16: - if (lookahead == 'r') ADVANCE(30); + if (lookahead == 's') ADVANCE(30); END_STATE(); case 17: - if (lookahead == 'n') ADVANCE(31); + if (lookahead == 't') ADVANCE(31); END_STATE(); case 18: - if (lookahead == 'n') ADVANCE(32); + if (lookahead == 'r') ADVANCE(32); END_STATE(); case 19: - ACCEPT_TOKEN(anon_sym_if); + if (lookahead == 'n') ADVANCE(33); END_STATE(); case 20: - ACCEPT_TOKEN(anon_sym_in); - if (lookahead == 'i') ADVANCE(33); - if (lookahead == 'p') ADVANCE(34); - if (lookahead == 't') ADVANCE(35); + ACCEPT_TOKEN(anon_sym_if); END_STATE(); case 21: - if (lookahead == 'd') ADVANCE(36); + ACCEPT_TOKEN(anon_sym_in); + if (lookahead == 'i') ADVANCE(34); + if (lookahead == 'p') ADVANCE(35); + if (lookahead == 't') ADVANCE(36); END_STATE(); case 22: - if (lookahead == 't') ADVANCE(37); + if (lookahead == 'd') ADVANCE(37); END_STATE(); case 23: - if (lookahead == 'g') ADVANCE(38); + if (lookahead == 't') ADVANCE(38); END_STATE(); case 24: - if (lookahead == 'a') ADVANCE(39); - if (lookahead == 'r') ADVANCE(40); + if (lookahead == 'g') ADVANCE(39); END_STATE(); case 25: - if (lookahead == 'p') ADVANCE(41); + if (lookahead == 'a') ADVANCE(40); + if (lookahead == 'r') ADVANCE(41); END_STATE(); case 26: - if (lookahead == 'u') ADVANCE(42); + if (lookahead == 'p') ADVANCE(42); END_STATE(); case 27: - if (lookahead == 'a') ADVANCE(43); + if (lookahead == 'u') ADVANCE(43); END_STATE(); case 28: - if (lookahead == 'e') ADVANCE(44); + if (lookahead == 's') ADVANCE(44); END_STATE(); case 29: - if (lookahead == 'e') ADVANCE(45); + if (lookahead == 'a') ADVANCE(45); END_STATE(); case 30: - ACCEPT_TOKEN(anon_sym_for); + if (lookahead == 'e') ADVANCE(46); END_STATE(); case 31: - if (lookahead == 'c') ADVANCE(46); + if (lookahead == 'e') ADVANCE(47); END_STATE(); case 32: - ACCEPT_TOKEN(anon_sym_gen); + ACCEPT_TOKEN(anon_sym_for); END_STATE(); case 33: - if (lookahead == 't') ADVANCE(47); + ACCEPT_TOKEN(anon_sym_gen); END_STATE(); case 34: - if (lookahead == 'u') ADVANCE(48); + if (lookahead == 't') ADVANCE(48); END_STATE(); case 35: - if (lookahead == 'e') ADVANCE(49); + if (lookahead == 'u') ADVANCE(49); END_STATE(); case 36: - if (lookahead == 'u') ADVANCE(50); + if (lookahead == 'e') ADVANCE(50); END_STATE(); case 37: - if (lookahead == 'p') ADVANCE(51); + if (lookahead == 'u') ADVANCE(51); END_STATE(); case 38: - ACCEPT_TOKEN(anon_sym_reg); + if (lookahead == 'p') ADVANCE(52); END_STATE(); case 39: - if (lookahead == 't') ADVANCE(52); + ACCEPT_TOKEN(anon_sym_reg); END_STATE(); case 40: - if (lookahead == 'u') ADVANCE(53); + if (lookahead == 't') ADVANCE(53); END_STATE(); case 41: - if (lookahead == 'e') ADVANCE(54); + if (lookahead == 'u') ADVANCE(54); END_STATE(); case 42: - if (lookahead == 'i') ADVANCE(55); + if (lookahead == 'e') ADVANCE(55); END_STATE(); case 43: if (lookahead == 'i') ADVANCE(56); END_STATE(); case 44: - ACCEPT_TOKEN(anon_sym_else); + if (lookahead == 't') ADVANCE(57); END_STATE(); case 45: - if (lookahead == 'r') ADVANCE(57); + if (lookahead == 'i') ADVANCE(58); END_STATE(); case 46: - if (lookahead == 't') ADVANCE(58); + ACCEPT_TOKEN(anon_sym_else); END_STATE(); case 47: - if (lookahead == 'i') ADVANCE(59); + if (lookahead == 'r') ADVANCE(59); END_STATE(); case 48: - if (lookahead == 't') ADVANCE(60); + if (lookahead == 'i') ADVANCE(60); END_STATE(); case 49: - if (lookahead == 'r') ADVANCE(61); + if (lookahead == 't') ADVANCE(61); END_STATE(); case 50: - if (lookahead == 'l') ADVANCE(62); + if (lookahead == 'r') ADVANCE(62); END_STATE(); case 51: - if (lookahead == 'u') ADVANCE(63); + if (lookahead == 'l') ADVANCE(63); END_STATE(); case 52: - if (lookahead == 'e') ADVANCE(64); + if (lookahead == 'u') ADVANCE(64); END_STATE(); case 53: - if (lookahead == 'c') ADVANCE(65); + if (lookahead == 'e') ADVANCE(65); END_STATE(); case 54: - ACCEPT_TOKEN(anon_sym_type); + if (lookahead == 'c') ADVANCE(66); END_STATE(); case 55: - if (lookahead == 'l') ADVANCE(66); + ACCEPT_TOKEN(anon_sym_type); END_STATE(); case 56: - if (lookahead == 'n') ADVANCE(67); + if (lookahead == 'l') ADVANCE(67); END_STATE(); case 57: - if (lookahead == 'n') ADVANCE(68); + ACCEPT_TOKEN(anon_sym_const); END_STATE(); case 58: - if (lookahead == 'i') ADVANCE(69); + if (lookahead == 'n') ADVANCE(68); END_STATE(); case 59: - if (lookahead == 'a') ADVANCE(70); + if (lookahead == 'n') ADVANCE(69); END_STATE(); case 60: - ACCEPT_TOKEN(anon_sym_input); + if (lookahead == 'a') ADVANCE(70); END_STATE(); case 61: - if (lookahead == 'f') ADVANCE(71); + ACCEPT_TOKEN(anon_sym_input); END_STATE(); case 62: - if (lookahead == 'e') ADVANCE(72); + if (lookahead == 'f') ADVANCE(71); END_STATE(); case 63: - if (lookahead == 't') ADVANCE(73); + if (lookahead == 'e') ADVANCE(72); END_STATE(); case 64: - ACCEPT_TOKEN(anon_sym_state); + if (lookahead == 't') ADVANCE(73); END_STATE(); case 65: - if (lookahead == 't') ADVANCE(74); + ACCEPT_TOKEN(anon_sym_state); END_STATE(); case 66: - if (lookahead == 't') ADVANCE(75); + if (lookahead == 't') ADVANCE(74); END_STATE(); case 67: - ACCEPT_TOKEN(anon_sym_domain); + if (lookahead == 't') ADVANCE(75); END_STATE(); case 68: - ACCEPT_TOKEN(anon_sym_extern); + ACCEPT_TOKEN(anon_sym_domain); END_STATE(); case 69: - if (lookahead == 'o') ADVANCE(76); + ACCEPT_TOKEN(anon_sym_extern); END_STATE(); case 70: - if (lookahead == 'l') ADVANCE(77); + if (lookahead == 'l') ADVANCE(76); END_STATE(); case 71: - if (lookahead == 'a') ADVANCE(78); + if (lookahead == 'a') ADVANCE(77); END_STATE(); case 72: ACCEPT_TOKEN(anon_sym_module); @@ -3640,36 +3654,30 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { ACCEPT_TOKEN(anon_sym_struct); END_STATE(); case 75: - if (lookahead == 'i') ADVANCE(79); + if (lookahead == 'i') ADVANCE(78); END_STATE(); case 76: - if (lookahead == 'n') ADVANCE(80); + ACCEPT_TOKEN(anon_sym_initial); END_STATE(); case 77: - ACCEPT_TOKEN(anon_sym_initial); + if (lookahead == 'c') ADVANCE(79); END_STATE(); case 78: - if (lookahead == 'c') ADVANCE(81); + if (lookahead == 'n') ADVANCE(80); END_STATE(); case 79: - if (lookahead == 'n') ADVANCE(82); + if (lookahead == 'e') ADVANCE(81); END_STATE(); case 80: - ACCEPT_TOKEN(anon_sym_function); + if (lookahead == '_') ADVANCE(82); END_STATE(); case 81: - if (lookahead == 'e') ADVANCE(83); + ACCEPT_TOKEN(anon_sym_interface); END_STATE(); case 82: - if (lookahead == '_') ADVANCE(84); + if (lookahead == '_') ADVANCE(83); END_STATE(); case 83: - ACCEPT_TOKEN(anon_sym_interface); - END_STATE(); - case 84: - if (lookahead == '_') ADVANCE(85); - END_STATE(); - case 85: ACCEPT_TOKEN(anon_sym___builtin__); END_STATE(); default: @@ -3720,10 +3728,10 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [39] = {.lex_state = 2}, [40] = {.lex_state = 1}, [41] = {.lex_state = 2}, - [42] = {.lex_state = 1}, + [42] = {.lex_state = 2}, [43] = {.lex_state = 2}, [44] = {.lex_state = 2}, - [45] = {.lex_state = 2}, + [45] = {.lex_state = 1}, [46] = {.lex_state = 2}, [47] = {.lex_state = 2}, [48] = {.lex_state = 2}, @@ -3731,27 +3739,27 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [50] = {.lex_state = 2}, [51] = {.lex_state = 2}, [52] = {.lex_state = 2}, - [53] = {.lex_state = 2}, + [53] = {.lex_state = 1}, [54] = {.lex_state = 2}, [55] = {.lex_state = 1}, [56] = {.lex_state = 2}, [57] = {.lex_state = 2}, - [58] = {.lex_state = 1}, + [58] = {.lex_state = 2}, [59] = {.lex_state = 1}, [60] = {.lex_state = 1}, [61] = {.lex_state = 1}, [62] = {.lex_state = 1}, - [63] = {.lex_state = 1}, - [64] = {.lex_state = 2}, + [63] = {.lex_state = 2}, + [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 = 2}, - [71] = {.lex_state = 1}, - [72] = {.lex_state = 1}, - [73] = {.lex_state = 2}, + [70] = {.lex_state = 1}, + [71] = {.lex_state = 2}, + [72] = {.lex_state = 2}, + [73] = {.lex_state = 1}, [74] = {.lex_state = 1}, [75] = {.lex_state = 1}, [76] = {.lex_state = 1}, @@ -3788,20 +3796,20 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [107] = {.lex_state = 0}, [108] = {.lex_state = 0}, [109] = {.lex_state = 0}, - [110] = {.lex_state = 1}, + [110] = {.lex_state = 0}, [111] = {.lex_state = 1}, [112] = {.lex_state = 0}, [113] = {.lex_state = 0}, [114] = {.lex_state = 0}, [115] = {.lex_state = 0}, [116] = {.lex_state = 0}, - [117] = {.lex_state = 0}, - [118] = {.lex_state = 1}, + [117] = {.lex_state = 1}, + [118] = {.lex_state = 0}, [119] = {.lex_state = 0}, [120] = {.lex_state = 0}, [121] = {.lex_state = 0}, - [122] = {.lex_state = 0}, - [123] = {.lex_state = 0}, + [122] = {.lex_state = 1}, + [123] = {.lex_state = 1}, [124] = {.lex_state = 0}, [125] = {.lex_state = 0}, [126] = {.lex_state = 0}, @@ -3906,6 +3914,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [225] = {.lex_state = 0}, [226] = {.lex_state = 0}, [227] = {.lex_state = 0}, + [228] = {.lex_state = 0}, + [229] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -3915,8 +3925,8 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym___builtin__] = ACTIONS(1), [anon_sym_extern] = ACTIONS(1), [anon_sym_module] = ACTIONS(1), - [anon_sym_function] = ACTIONS(1), [anon_sym_struct] = ACTIONS(1), + [anon_sym_const] = ACTIONS(1), [anon_sym_POUND_LPAREN] = ACTIONS(1), [anon_sym_RPAREN] = ACTIONS(1), [anon_sym_LBRACE] = ACTIONS(1), @@ -3965,16 +3975,17 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_multi_line_comment] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(225), - [sym_global_object] = STATE(169), - [aux_sym__linebreak] = STATE(94), + [sym_source_file] = STATE(218), + [sym_global_object] = STATE(152), + [sym_const_and_type] = STATE(229), + [aux_sym__linebreak] = STATE(93), [ts_builtin_sym_end] = ACTIONS(5), [anon_sym___builtin__] = ACTIONS(7), [anon_sym_extern] = ACTIONS(7), [anon_sym_module] = ACTIONS(9), - [anon_sym_function] = ACTIONS(9), [anon_sym_struct] = ACTIONS(9), - [anon_sym_LF] = ACTIONS(11), + [anon_sym_const] = ACTIONS(11), + [anon_sym_LF] = ACTIONS(13), [sym_single_line_comment] = ACTIONS(3), [sym_multi_line_comment] = ACTIONS(3), }, @@ -3982,68 +3993,68 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { static const uint16_t ts_small_parse_table[] = { [0] = 28, - ACTIONS(13), 1, - sym_identifier, ACTIONS(15), 1, - anon_sym_LBRACE, + sym_identifier, ACTIONS(17), 1, - anon_sym_RBRACE, + anon_sym_LBRACE, ACTIONS(19), 1, - anon_sym_reg, + anon_sym_RBRACE, ACTIONS(21), 1, - anon_sym_initial, + anon_sym_reg, ACTIONS(23), 1, - anon_sym_if, + anon_sym_initial, ACTIONS(25), 1, - anon_sym_for, + anon_sym_if, ACTIONS(27), 1, - anon_sym_domain, + anon_sym_for, ACTIONS(29), 1, + anon_sym_domain, + ACTIONS(31), 1, anon_sym_interface, - ACTIONS(37), 1, - anon_sym_LPAREN, ACTIONS(39), 1, - anon_sym_COLON_COLON, + anon_sym_LPAREN, ACTIONS(41), 1, - sym_number, + anon_sym_COLON_COLON, ACTIONS(43), 1, + sym_number, + ACTIONS(45), 1, anon_sym_LF, STATE(17), 1, sym_namespace_list, STATE(40), 1, - aux_sym__linebreak, - STATE(42), 1, sym_write_modifiers, + STATE(45), 1, + aux_sym__linebreak, STATE(51), 1, sym_template_global, - STATE(79), 1, + STATE(80), 1, aux_sym_write_modifiers_repeat1, - STATE(124), 1, + STATE(109), 1, sym_assign_to, - STATE(127), 1, - sym_assign_left_side, - STATE(141), 1, + STATE(147), 1, sym_declaration, + STATE(179), 1, + sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_input, anon_sym_output, - ACTIONS(33), 2, + ACTIONS(35), 2, anon_sym_state, anon_sym_gen, - STATE(178), 2, + STATE(180), 2, sym__type, sym_array_type, - STATE(156), 6, + STATE(203), 6, sym_block, sym_decl_assign_statement, sym_if_statement, sym_for_statement, sym_domain_statement, sym_interface_statement, - ACTIONS(35), 7, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4051,7 +4062,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(49), 7, + STATE(48), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4060,68 +4071,68 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, [106] = 28, - ACTIONS(13), 1, - sym_identifier, ACTIONS(15), 1, + sym_identifier, + ACTIONS(17), 1, anon_sym_LBRACE, - ACTIONS(19), 1, - anon_sym_reg, ACTIONS(21), 1, - anon_sym_initial, + anon_sym_reg, ACTIONS(23), 1, - anon_sym_if, + anon_sym_initial, ACTIONS(25), 1, - anon_sym_for, + anon_sym_if, ACTIONS(27), 1, - anon_sym_domain, + anon_sym_for, ACTIONS(29), 1, + anon_sym_domain, + ACTIONS(31), 1, anon_sym_interface, - ACTIONS(37), 1, - anon_sym_LPAREN, ACTIONS(39), 1, - anon_sym_COLON_COLON, + anon_sym_LPAREN, ACTIONS(41), 1, - sym_number, + anon_sym_COLON_COLON, ACTIONS(43), 1, - anon_sym_LF, + sym_number, ACTIONS(45), 1, + anon_sym_LF, + ACTIONS(47), 1, anon_sym_RBRACE, STATE(17), 1, sym_namespace_list, STATE(40), 1, - aux_sym__linebreak, - STATE(42), 1, sym_write_modifiers, + STATE(45), 1, + aux_sym__linebreak, STATE(51), 1, sym_template_global, - STATE(79), 1, + STATE(80), 1, aux_sym_write_modifiers_repeat1, - STATE(124), 1, + STATE(109), 1, sym_assign_to, - STATE(141), 1, - sym_declaration, - STATE(179), 1, + STATE(134), 1, sym_assign_left_side, + STATE(147), 1, + sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_input, anon_sym_output, - ACTIONS(33), 2, + ACTIONS(35), 2, anon_sym_state, anon_sym_gen, - STATE(178), 2, + STATE(180), 2, sym__type, sym_array_type, - STATE(200), 6, + STATE(171), 6, sym_block, sym_decl_assign_statement, sym_if_statement, sym_for_statement, sym_domain_statement, sym_interface_statement, - ACTIONS(35), 7, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4129,7 +4140,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(49), 7, + STATE(48), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4138,68 +4149,68 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, [212] = 28, - ACTIONS(13), 1, - sym_identifier, ACTIONS(15), 1, + sym_identifier, + ACTIONS(17), 1, anon_sym_LBRACE, - ACTIONS(19), 1, - anon_sym_reg, ACTIONS(21), 1, - anon_sym_initial, + anon_sym_reg, ACTIONS(23), 1, - anon_sym_if, + anon_sym_initial, ACTIONS(25), 1, - anon_sym_for, + anon_sym_if, ACTIONS(27), 1, - anon_sym_domain, + anon_sym_for, ACTIONS(29), 1, + anon_sym_domain, + ACTIONS(31), 1, anon_sym_interface, - ACTIONS(37), 1, - anon_sym_LPAREN, ACTIONS(39), 1, - anon_sym_COLON_COLON, + anon_sym_LPAREN, ACTIONS(41), 1, - sym_number, + anon_sym_COLON_COLON, ACTIONS(43), 1, + sym_number, + ACTIONS(45), 1, anon_sym_LF, - ACTIONS(47), 1, + ACTIONS(49), 1, anon_sym_RBRACE, STATE(17), 1, sym_namespace_list, STATE(40), 1, - aux_sym__linebreak, - STATE(42), 1, sym_write_modifiers, + STATE(45), 1, + aux_sym__linebreak, STATE(51), 1, sym_template_global, - STATE(79), 1, + STATE(80), 1, aux_sym_write_modifiers_repeat1, - STATE(124), 1, + STATE(109), 1, sym_assign_to, - STATE(141), 1, + STATE(147), 1, sym_declaration, STATE(179), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_input, anon_sym_output, - ACTIONS(33), 2, + ACTIONS(35), 2, anon_sym_state, anon_sym_gen, - STATE(178), 2, + STATE(180), 2, sym__type, sym_array_type, - STATE(200), 6, + STATE(203), 6, sym_block, sym_decl_assign_statement, sym_if_statement, sym_for_statement, sym_domain_statement, sym_interface_statement, - ACTIONS(35), 7, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4207,7 +4218,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(49), 7, + STATE(48), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4216,68 +4227,68 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, [318] = 28, - ACTIONS(13), 1, - sym_identifier, ACTIONS(15), 1, + sym_identifier, + ACTIONS(17), 1, anon_sym_LBRACE, - ACTIONS(19), 1, - anon_sym_reg, ACTIONS(21), 1, - anon_sym_initial, + anon_sym_reg, ACTIONS(23), 1, - anon_sym_if, + anon_sym_initial, ACTIONS(25), 1, - anon_sym_for, + anon_sym_if, ACTIONS(27), 1, - anon_sym_domain, + anon_sym_for, ACTIONS(29), 1, + anon_sym_domain, + ACTIONS(31), 1, anon_sym_interface, - ACTIONS(37), 1, - anon_sym_LPAREN, ACTIONS(39), 1, - anon_sym_COLON_COLON, + anon_sym_LPAREN, ACTIONS(41), 1, - sym_number, + anon_sym_COLON_COLON, ACTIONS(43), 1, + sym_number, + ACTIONS(45), 1, anon_sym_LF, - ACTIONS(49), 1, + ACTIONS(51), 1, anon_sym_RBRACE, STATE(17), 1, sym_namespace_list, STATE(40), 1, - aux_sym__linebreak, - STATE(42), 1, sym_write_modifiers, + STATE(45), 1, + aux_sym__linebreak, STATE(51), 1, sym_template_global, - STATE(79), 1, + STATE(80), 1, aux_sym_write_modifiers_repeat1, - STATE(124), 1, + STATE(109), 1, sym_assign_to, - STATE(141), 1, + STATE(147), 1, sym_declaration, STATE(179), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_input, anon_sym_output, - ACTIONS(33), 2, + ACTIONS(35), 2, anon_sym_state, anon_sym_gen, - STATE(178), 2, + STATE(180), 2, sym__type, sym_array_type, - STATE(200), 6, + STATE(203), 6, sym_block, sym_decl_assign_statement, sym_if_statement, sym_for_statement, sym_domain_statement, sym_interface_statement, - ACTIONS(35), 7, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4285,7 +4296,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(49), 7, + STATE(48), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4294,68 +4305,68 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, [424] = 28, - ACTIONS(13), 1, - sym_identifier, ACTIONS(15), 1, + sym_identifier, + ACTIONS(17), 1, anon_sym_LBRACE, - ACTIONS(19), 1, - anon_sym_reg, ACTIONS(21), 1, - anon_sym_initial, + anon_sym_reg, ACTIONS(23), 1, - anon_sym_if, + anon_sym_initial, ACTIONS(25), 1, - anon_sym_for, + anon_sym_if, ACTIONS(27), 1, - anon_sym_domain, + anon_sym_for, ACTIONS(29), 1, + anon_sym_domain, + ACTIONS(31), 1, anon_sym_interface, - ACTIONS(37), 1, - anon_sym_LPAREN, ACTIONS(39), 1, - anon_sym_COLON_COLON, + anon_sym_LPAREN, ACTIONS(41), 1, - sym_number, + anon_sym_COLON_COLON, ACTIONS(43), 1, + sym_number, + ACTIONS(45), 1, anon_sym_LF, - ACTIONS(51), 1, + ACTIONS(53), 1, anon_sym_RBRACE, STATE(17), 1, sym_namespace_list, STATE(40), 1, - aux_sym__linebreak, - STATE(42), 1, sym_write_modifiers, + STATE(45), 1, + aux_sym__linebreak, STATE(51), 1, sym_template_global, - STATE(79), 1, + STATE(80), 1, aux_sym_write_modifiers_repeat1, - STATE(124), 1, + STATE(109), 1, sym_assign_to, - STATE(141), 1, + STATE(147), 1, sym_declaration, STATE(179), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_input, anon_sym_output, - ACTIONS(33), 2, + ACTIONS(35), 2, anon_sym_state, anon_sym_gen, - STATE(178), 2, + STATE(180), 2, sym__type, sym_array_type, - STATE(200), 6, + STATE(203), 6, sym_block, sym_decl_assign_statement, sym_if_statement, sym_for_statement, sym_domain_statement, sym_interface_statement, - ACTIONS(35), 7, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4363,7 +4374,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(49), 7, + STATE(48), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4372,68 +4383,68 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, [530] = 28, - ACTIONS(13), 1, - sym_identifier, ACTIONS(15), 1, + sym_identifier, + ACTIONS(17), 1, anon_sym_LBRACE, - ACTIONS(19), 1, - anon_sym_reg, ACTIONS(21), 1, - anon_sym_initial, + anon_sym_reg, ACTIONS(23), 1, - anon_sym_if, + anon_sym_initial, ACTIONS(25), 1, - anon_sym_for, + anon_sym_if, ACTIONS(27), 1, - anon_sym_domain, + anon_sym_for, ACTIONS(29), 1, + anon_sym_domain, + ACTIONS(31), 1, anon_sym_interface, - ACTIONS(37), 1, - anon_sym_LPAREN, ACTIONS(39), 1, - anon_sym_COLON_COLON, + anon_sym_LPAREN, ACTIONS(41), 1, + anon_sym_COLON_COLON, + ACTIONS(43), 1, sym_number, - ACTIONS(53), 1, - anon_sym_RBRACE, - ACTIONS(55), 1, + ACTIONS(45), 1, anon_sym_LF, - STATE(2), 1, - aux_sym__linebreak, + ACTIONS(55), 1, + anon_sym_RBRACE, STATE(17), 1, sym_namespace_list, - STATE(42), 1, + STATE(40), 1, sym_write_modifiers, + STATE(45), 1, + aux_sym__linebreak, STATE(51), 1, sym_template_global, - STATE(79), 1, + STATE(80), 1, aux_sym_write_modifiers_repeat1, - STATE(124), 1, + STATE(109), 1, sym_assign_to, - STATE(132), 1, - sym_assign_left_side, - STATE(141), 1, + STATE(147), 1, sym_declaration, + STATE(179), 1, + sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_input, anon_sym_output, - ACTIONS(33), 2, + ACTIONS(35), 2, anon_sym_state, anon_sym_gen, - STATE(178), 2, + STATE(180), 2, sym__type, sym_array_type, - STATE(144), 6, + STATE(203), 6, sym_block, sym_decl_assign_statement, sym_if_statement, sym_for_statement, sym_domain_statement, sym_interface_statement, - ACTIONS(35), 7, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4441,7 +4452,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(49), 7, + STATE(48), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4450,68 +4461,68 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, [636] = 28, - ACTIONS(13), 1, - sym_identifier, ACTIONS(15), 1, + sym_identifier, + ACTIONS(17), 1, anon_sym_LBRACE, - ACTIONS(19), 1, - anon_sym_reg, ACTIONS(21), 1, - anon_sym_initial, + anon_sym_reg, ACTIONS(23), 1, - anon_sym_if, + anon_sym_initial, ACTIONS(25), 1, - anon_sym_for, + anon_sym_if, ACTIONS(27), 1, - anon_sym_domain, + anon_sym_for, ACTIONS(29), 1, + anon_sym_domain, + ACTIONS(31), 1, anon_sym_interface, - ACTIONS(37), 1, - anon_sym_LPAREN, ACTIONS(39), 1, - anon_sym_COLON_COLON, + anon_sym_LPAREN, ACTIONS(41), 1, - sym_number, + anon_sym_COLON_COLON, ACTIONS(43), 1, + sym_number, + ACTIONS(45), 1, anon_sym_LF, ACTIONS(57), 1, anon_sym_RBRACE, STATE(17), 1, sym_namespace_list, STATE(40), 1, - aux_sym__linebreak, - STATE(42), 1, sym_write_modifiers, + STATE(45), 1, + aux_sym__linebreak, STATE(51), 1, sym_template_global, - STATE(79), 1, + STATE(80), 1, aux_sym_write_modifiers_repeat1, - STATE(124), 1, + STATE(109), 1, sym_assign_to, - STATE(141), 1, + STATE(147), 1, sym_declaration, STATE(179), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_input, anon_sym_output, - ACTIONS(33), 2, + ACTIONS(35), 2, anon_sym_state, anon_sym_gen, - STATE(178), 2, + STATE(180), 2, sym__type, sym_array_type, - STATE(200), 6, + STATE(203), 6, sym_block, sym_decl_assign_statement, sym_if_statement, sym_for_statement, sym_domain_statement, sym_interface_statement, - ACTIONS(35), 7, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4519,7 +4530,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(49), 7, + STATE(48), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4528,68 +4539,68 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, [742] = 28, - ACTIONS(13), 1, - sym_identifier, ACTIONS(15), 1, + sym_identifier, + ACTIONS(17), 1, anon_sym_LBRACE, - ACTIONS(19), 1, - anon_sym_reg, ACTIONS(21), 1, - anon_sym_initial, + anon_sym_reg, ACTIONS(23), 1, - anon_sym_if, + anon_sym_initial, ACTIONS(25), 1, - anon_sym_for, + anon_sym_if, ACTIONS(27), 1, - anon_sym_domain, + anon_sym_for, ACTIONS(29), 1, + anon_sym_domain, + ACTIONS(31), 1, anon_sym_interface, - ACTIONS(37), 1, - anon_sym_LPAREN, ACTIONS(39), 1, - anon_sym_COLON_COLON, + anon_sym_LPAREN, ACTIONS(41), 1, - sym_number, + anon_sym_COLON_COLON, ACTIONS(43), 1, - anon_sym_LF, + sym_number, ACTIONS(59), 1, anon_sym_RBRACE, + ACTIONS(61), 1, + anon_sym_LF, + STATE(3), 1, + aux_sym__linebreak, STATE(17), 1, sym_namespace_list, STATE(40), 1, - aux_sym__linebreak, - STATE(42), 1, sym_write_modifiers, STATE(51), 1, sym_template_global, - STATE(79), 1, + STATE(80), 1, aux_sym_write_modifiers_repeat1, - STATE(124), 1, + STATE(109), 1, sym_assign_to, - STATE(141), 1, - sym_declaration, - STATE(179), 1, + STATE(128), 1, sym_assign_left_side, + STATE(147), 1, + sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_input, anon_sym_output, - ACTIONS(33), 2, + ACTIONS(35), 2, anon_sym_state, anon_sym_gen, - STATE(178), 2, + STATE(180), 2, sym__type, sym_array_type, - STATE(200), 6, + STATE(143), 6, sym_block, sym_decl_assign_statement, sym_if_statement, sym_for_statement, sym_domain_statement, sym_interface_statement, - ACTIONS(35), 7, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4597,7 +4608,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(49), 7, + STATE(48), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4606,66 +4617,66 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, [848] = 27, - ACTIONS(13), 1, - sym_identifier, ACTIONS(15), 1, + sym_identifier, + ACTIONS(17), 1, anon_sym_LBRACE, - ACTIONS(19), 1, - anon_sym_reg, ACTIONS(21), 1, - anon_sym_initial, + anon_sym_reg, ACTIONS(23), 1, - anon_sym_if, + anon_sym_initial, ACTIONS(25), 1, - anon_sym_for, + anon_sym_if, ACTIONS(27), 1, - anon_sym_domain, + anon_sym_for, ACTIONS(29), 1, + anon_sym_domain, + ACTIONS(31), 1, anon_sym_interface, - ACTIONS(37), 1, - anon_sym_LPAREN, ACTIONS(39), 1, - anon_sym_COLON_COLON, + anon_sym_LPAREN, ACTIONS(41), 1, - sym_number, + anon_sym_COLON_COLON, ACTIONS(43), 1, + sym_number, + ACTIONS(45), 1, anon_sym_LF, STATE(17), 1, sym_namespace_list, STATE(40), 1, - aux_sym__linebreak, - STATE(42), 1, sym_write_modifiers, + STATE(45), 1, + aux_sym__linebreak, STATE(51), 1, sym_template_global, - STATE(79), 1, + STATE(80), 1, aux_sym_write_modifiers_repeat1, - STATE(124), 1, + STATE(109), 1, sym_assign_to, - STATE(141), 1, + STATE(147), 1, sym_declaration, STATE(179), 1, sym_assign_left_side, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_input, anon_sym_output, - ACTIONS(33), 2, + ACTIONS(35), 2, anon_sym_state, anon_sym_gen, - STATE(178), 2, + STATE(180), 2, sym__type, sym_array_type, - STATE(200), 6, + STATE(203), 6, sym_block, sym_decl_assign_statement, sym_if_statement, sym_for_statement, sym_domain_statement, sym_interface_statement, - ACTIONS(35), 7, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4673,7 +4684,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(49), 7, + STATE(48), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4682,43 +4693,43 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, [951] = 18, - ACTIONS(13), 1, + ACTIONS(15), 1, sym_identifier, - ACTIONS(19), 1, - anon_sym_reg, ACTIONS(21), 1, + anon_sym_reg, + ACTIONS(23), 1, anon_sym_initial, - ACTIONS(37), 1, - anon_sym_LPAREN, ACTIONS(39), 1, - anon_sym_COLON_COLON, + anon_sym_LPAREN, ACTIONS(41), 1, + anon_sym_COLON_COLON, + ACTIONS(43), 1, sym_number, STATE(17), 1, sym_namespace_list, - STATE(42), 1, + STATE(40), 1, sym_write_modifiers, STATE(51), 1, sym_template_global, - STATE(79), 1, + STATE(80), 1, aux_sym_write_modifiers_repeat1, - STATE(137), 1, - sym_assign_to, - STATE(141), 1, + STATE(147), 1, sym_declaration, + STATE(150), 1, + sym_assign_to, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_input, anon_sym_output, - ACTIONS(33), 2, + ACTIONS(35), 2, anon_sym_state, anon_sym_gen, - STATE(178), 2, + STATE(180), 2, sym__type, sym_array_type, - ACTIONS(35), 7, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -4726,7 +4737,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(49), 7, + STATE(48), 7, sym__expression, sym_unary_op, sym_binary_op, @@ -4735,14 +4746,14 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, [1022] = 5, - ACTIONS(65), 1, + ACTIONS(67), 1, anon_sym_COLON_COLON, - STATE(13), 1, + STATE(12), 1, aux_sym_namespace_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(61), 8, + ACTIONS(63), 8, anon_sym_EQ, anon_sym_in, anon_sym_DASH, @@ -4751,7 +4762,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(63), 21, + ACTIONS(65), 21, anon_sym_POUND_LPAREN, anon_sym_RPAREN, anon_sym_LBRACE, @@ -4774,14 +4785,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_LF, [1066] = 5, - ACTIONS(65), 1, + ACTIONS(74), 1, anon_sym_COLON_COLON, STATE(14), 1, aux_sym_namespace_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(67), 8, + ACTIONS(70), 8, anon_sym_EQ, anon_sym_in, anon_sym_DASH, @@ -4790,7 +4801,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(69), 21, + ACTIONS(72), 21, anon_sym_POUND_LPAREN, anon_sym_RPAREN, anon_sym_LBRACE, @@ -4813,14 +4824,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_LF, [1110] = 5, - ACTIONS(75), 1, + ACTIONS(74), 1, anon_sym_COLON_COLON, - STATE(14), 1, + STATE(12), 1, aux_sym_namespace_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(71), 8, + ACTIONS(76), 8, anon_sym_EQ, anon_sym_in, anon_sym_DASH, @@ -4829,7 +4840,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(73), 21, + ACTIONS(78), 21, anon_sym_POUND_LPAREN, anon_sym_RPAREN, anon_sym_LBRACE, @@ -4851,11 +4862,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1154] = 3, + [1154] = 5, + ACTIONS(82), 1, + anon_sym_POUND_LPAREN, + STATE(31), 1, + sym_template_args, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(78), 8, + ACTIONS(80), 8, anon_sym_EQ, anon_sym_in, anon_sym_DASH, @@ -4864,8 +4879,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(80), 22, - anon_sym_POUND_LPAREN, + ACTIONS(84), 20, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4884,18 +4898,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACK, anon_sym_RBRACK, - anon_sym_COLON_COLON, anon_sym_COMMA, anon_sym_LF, - [1193] = 5, - ACTIONS(84), 1, - anon_sym_POUND_LPAREN, - STATE(27), 1, - sym_template_args, + [1197] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(82), 8, + ACTIONS(86), 8, anon_sym_EQ, anon_sym_in, anon_sym_DASH, @@ -4904,7 +4913,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(86), 20, + ACTIONS(88), 22, + anon_sym_POUND_LPAREN, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4923,17 +4933,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_LBRACK, anon_sym_RBRACK, + anon_sym_COLON_COLON, anon_sym_COMMA, anon_sym_LF, [1236] = 5, - ACTIONS(84), 1, + ACTIONS(82), 1, anon_sym_POUND_LPAREN, - STATE(37), 1, + STATE(33), 1, sym_template_args, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(88), 8, + ACTIONS(90), 8, anon_sym_EQ, anon_sym_in, anon_sym_DASH, @@ -4942,7 +4953,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(90), 20, + ACTIONS(92), 20, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, @@ -4963,80 +4974,91 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1279] = 8, - ACTIONS(96), 1, - anon_sym_DOT, + [1279] = 15, ACTIONS(98), 1, - anon_sym_LPAREN, + anon_sym_PLUS, ACTIONS(100), 1, + anon_sym_DASH, + ACTIONS(104), 1, + anon_sym_PIPE, + ACTIONS(106), 1, + anon_sym_AMP, + ACTIONS(108), 1, + anon_sym_CARET, + ACTIONS(110), 1, + anon_sym_SLASH, + ACTIONS(112), 1, + anon_sym_DOT, + ACTIONS(114), 1, + anon_sym_LPAREN, + ACTIONS(116), 1, anon_sym_LBRACK, - STATE(43), 1, - sym_parenthesis_expression_list, - STATE(46), 1, + STATE(39), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(94), 5, + ACTIONS(102), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(96), 3, anon_sym_EQ, - anon_sym_DASH, anon_sym_LT, anon_sym_GT, - anon_sym_SLASH, - ACTIONS(92), 19, + ACTIONS(94), 13, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_PERCENT, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1327] = 10, - ACTIONS(96), 1, - anon_sym_DOT, + [1341] = 14, ACTIONS(98), 1, - anon_sym_LPAREN, + anon_sym_PLUS, ACTIONS(100), 1, - anon_sym_LBRACK, - ACTIONS(108), 1, + anon_sym_DASH, + ACTIONS(104), 1, + anon_sym_PIPE, + ACTIONS(106), 1, + anon_sym_AMP, + ACTIONS(110), 1, anon_sym_SLASH, - STATE(43), 1, - sym_parenthesis_expression_list, - STATE(46), 1, + ACTIONS(112), 1, + anon_sym_DOT, + ACTIONS(114), 1, + anon_sym_LPAREN, + ACTIONS(116), 1, + anon_sym_LBRACK, + STATE(39), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(106), 2, + ACTIONS(102), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(104), 4, + ACTIONS(96), 3, anon_sym_EQ, - anon_sym_DASH, anon_sym_LT, anon_sym_GT, - ACTIONS(102), 17, + ACTIONS(94), 14, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, - anon_sym_PLUS, - anon_sym_PIPE, - anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, @@ -5045,46 +5067,43 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1379] = 15, - ACTIONS(96), 1, - anon_sym_DOT, + [1401] = 12, ACTIONS(98), 1, - anon_sym_LPAREN, + anon_sym_PLUS, ACTIONS(100), 1, - anon_sym_LBRACK, - ACTIONS(108), 1, - anon_sym_SLASH, + anon_sym_DASH, ACTIONS(110), 1, - anon_sym_PLUS, + anon_sym_SLASH, ACTIONS(112), 1, - anon_sym_DASH, + anon_sym_DOT, ACTIONS(114), 1, - anon_sym_PIPE, + anon_sym_LPAREN, ACTIONS(116), 1, - anon_sym_AMP, - ACTIONS(118), 1, - anon_sym_CARET, - STATE(43), 1, - sym_parenthesis_expression_list, - STATE(46), 1, + anon_sym_LBRACK, + STATE(39), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(106), 2, + ACTIONS(102), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(104), 3, + ACTIONS(96), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(102), 13, + ACTIONS(94), 16, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, @@ -5092,44 +5111,43 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1441] = 14, - ACTIONS(96), 1, - anon_sym_DOT, + [1457] = 13, ACTIONS(98), 1, - anon_sym_LPAREN, + anon_sym_PLUS, ACTIONS(100), 1, - anon_sym_LBRACK, - ACTIONS(108), 1, - anon_sym_SLASH, + anon_sym_DASH, + ACTIONS(106), 1, + anon_sym_AMP, ACTIONS(110), 1, - anon_sym_PLUS, + anon_sym_SLASH, ACTIONS(112), 1, - anon_sym_DASH, + anon_sym_DOT, ACTIONS(114), 1, - anon_sym_PIPE, + anon_sym_LPAREN, ACTIONS(116), 1, - anon_sym_AMP, - STATE(43), 1, - sym_parenthesis_expression_list, - STATE(46), 1, + anon_sym_LBRACK, + STATE(39), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(106), 2, + ACTIONS(102), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(104), 3, + ACTIONS(96), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(102), 14, + ACTIONS(94), 15, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, + anon_sym_PIPE, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, @@ -5138,40 +5156,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1501] = 12, - ACTIONS(96), 1, + [1515] = 8, + ACTIONS(112), 1, anon_sym_DOT, - ACTIONS(98), 1, + ACTIONS(114), 1, anon_sym_LPAREN, - ACTIONS(100), 1, + ACTIONS(116), 1, anon_sym_LBRACK, - ACTIONS(108), 1, - anon_sym_SLASH, - ACTIONS(110), 1, - anon_sym_PLUS, - ACTIONS(112), 1, - anon_sym_DASH, - STATE(43), 1, - sym_parenthesis_expression_list, - STATE(46), 1, + STATE(39), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(106), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(104), 3, + ACTIONS(96), 5, anon_sym_EQ, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, - ACTIONS(102), 16, + anon_sym_SLASH, + ACTIONS(94), 19, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, @@ -5179,46 +5192,44 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, + anon_sym_PERCENT, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [1557] = 13, - ACTIONS(96), 1, - anon_sym_DOT, - ACTIONS(98), 1, - anon_sym_LPAREN, - ACTIONS(100), 1, - anon_sym_LBRACK, - ACTIONS(108), 1, - anon_sym_SLASH, + [1563] = 10, ACTIONS(110), 1, - anon_sym_PLUS, + anon_sym_SLASH, ACTIONS(112), 1, - anon_sym_DASH, + anon_sym_DOT, + ACTIONS(114), 1, + anon_sym_LPAREN, ACTIONS(116), 1, - anon_sym_AMP, - STATE(43), 1, - sym_parenthesis_expression_list, - STATE(46), 1, + anon_sym_LBRACK, + STATE(39), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(106), 2, + ACTIONS(102), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(104), 3, + ACTIONS(96), 4, anon_sym_EQ, + anon_sym_DASH, anon_sym_LT, anon_sym_GT, - ACTIONS(102), 15, + ACTIONS(94), 17, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_in, anon_sym_DOT_DOT, anon_sym_DASH_GT, + anon_sym_PLUS, anon_sym_PIPE, + anon_sym_AMP, anon_sym_CARET, anon_sym_EQ_EQ, anon_sym_BANG_EQ, @@ -5228,26 +5239,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_LF, [1615] = 8, - ACTIONS(96), 1, + ACTIONS(112), 1, anon_sym_DOT, - ACTIONS(98), 1, + ACTIONS(114), 1, anon_sym_LPAREN, - ACTIONS(100), 1, + ACTIONS(116), 1, anon_sym_LBRACK, - STATE(43), 1, - sym_parenthesis_expression_list, - STATE(46), 1, + STATE(39), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(104), 5, + ACTIONS(120), 5, anon_sym_EQ, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - ACTIONS(102), 19, + ACTIONS(118), 19, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5271,7 +5282,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(120), 8, + ACTIONS(122), 8, anon_sym_EQ, anon_sym_in, anon_sym_DASH, @@ -5280,7 +5291,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(122), 20, + ACTIONS(124), 20, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5305,7 +5316,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(124), 8, + ACTIONS(126), 8, anon_sym_EQ, anon_sym_in, anon_sym_DASH, @@ -5314,7 +5325,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(126), 20, + ACTIONS(128), 20, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5339,7 +5350,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(128), 8, + ACTIONS(130), 8, anon_sym_EQ, anon_sym_in, anon_sym_DASH, @@ -5348,7 +5359,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(130), 20, + ACTIONS(132), 20, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5373,7 +5384,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(132), 8, + ACTIONS(134), 8, anon_sym_EQ, anon_sym_in, anon_sym_DASH, @@ -5382,7 +5393,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(134), 20, + ACTIONS(136), 20, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5407,7 +5418,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(136), 8, + ACTIONS(138), 8, anon_sym_EQ, anon_sym_in, anon_sym_DASH, @@ -5416,7 +5427,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(138), 20, + ACTIONS(140), 20, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5441,7 +5452,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(140), 8, + ACTIONS(142), 8, anon_sym_EQ, anon_sym_in, anon_sym_DASH, @@ -5450,7 +5461,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(142), 20, + ACTIONS(144), 20, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5475,7 +5486,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(144), 8, + ACTIONS(146), 8, anon_sym_EQ, anon_sym_in, anon_sym_DASH, @@ -5484,7 +5495,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(146), 20, + ACTIONS(148), 20, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5509,7 +5520,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(148), 8, + ACTIONS(150), 8, anon_sym_EQ, anon_sym_in, anon_sym_DASH, @@ -5518,7 +5529,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(150), 20, + ACTIONS(152), 20, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5543,7 +5554,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(152), 8, + ACTIONS(154), 8, anon_sym_EQ, anon_sym_in, anon_sym_DASH, @@ -5552,7 +5563,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(154), 20, + ACTIONS(156), 20, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5577,7 +5588,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(156), 8, + ACTIONS(158), 8, anon_sym_EQ, anon_sym_in, anon_sym_DASH, @@ -5586,7 +5597,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(158), 20, + ACTIONS(160), 20, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5611,7 +5622,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(160), 8, + ACTIONS(162), 8, anon_sym_EQ, anon_sym_in, anon_sym_DASH, @@ -5620,7 +5631,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(162), 20, + ACTIONS(164), 20, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5645,7 +5656,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(164), 8, + ACTIONS(166), 8, anon_sym_EQ, anon_sym_in, anon_sym_DASH, @@ -5654,7 +5665,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(166), 20, + ACTIONS(168), 20, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5679,7 +5690,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(168), 8, + ACTIONS(170), 8, anon_sym_EQ, anon_sym_in, anon_sym_DASH, @@ -5688,7 +5699,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, anon_sym_DOT, sym_identifier, - ACTIONS(170), 20, + ACTIONS(172), 20, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5713,14 +5724,14 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(174), 6, + ACTIONS(176), 6, anon_sym_EQ, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(172), 21, + ACTIONS(174), 21, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5746,14 +5757,14 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(178), 6, + ACTIONS(180), 6, anon_sym_EQ, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(176), 21, + ACTIONS(178), 21, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5775,53 +5786,61 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [2216] = 5, - ACTIONS(184), 1, - anon_sym_LF, - STATE(40), 1, - aux_sym__linebreak, + [2216] = 13, + ACTIONS(15), 1, + sym_identifier, + ACTIONS(39), 1, + anon_sym_LPAREN, + ACTIONS(41), 1, + anon_sym_COLON_COLON, + ACTIONS(182), 1, + sym_number, + STATE(17), 1, + sym_namespace_list, + STATE(51), 1, + sym_template_global, + STATE(170), 1, + sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(180), 12, - anon_sym_reg, - anon_sym_initial, - anon_sym_if, - anon_sym_for, - anon_sym_domain, - anon_sym_interface, + ACTIONS(33), 2, anon_sym_input, anon_sym_output, + ACTIONS(35), 2, anon_sym_state, anon_sym_gen, - anon_sym_DASH, - sym_identifier, - ACTIONS(182), 13, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_DASH_GT, + STATE(180), 2, + sym__type, + sym_array_type, + ACTIONS(37), 7, anon_sym_PLUS, + anon_sym_DASH, anon_sym_STAR, anon_sym_BANG, anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - anon_sym_LPAREN, - anon_sym_COLON_COLON, - sym_number, - [2256] = 3, + STATE(49), 7, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + [2272] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(189), 6, + ACTIONS(186), 6, anon_sym_EQ, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(187), 21, + ACTIONS(184), 21, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5843,61 +5862,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [2292] = 13, - ACTIONS(13), 1, - sym_identifier, - ACTIONS(37), 1, - anon_sym_LPAREN, - ACTIONS(39), 1, - anon_sym_COLON_COLON, - ACTIONS(191), 1, - sym_number, - STATE(17), 1, - sym_namespace_list, - STATE(51), 1, - sym_template_global, - STATE(138), 1, - sym_declaration, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(31), 2, - anon_sym_input, - anon_sym_output, - ACTIONS(33), 2, - anon_sym_state, - anon_sym_gen, - STATE(178), 2, - sym__type, - sym_array_type, - ACTIONS(35), 7, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(50), 7, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - [2348] = 3, + [2308] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(195), 6, + ACTIONS(190), 6, anon_sym_EQ, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(193), 21, + ACTIONS(188), 21, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5919,18 +5895,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [2384] = 3, + [2344] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(199), 6, + ACTIONS(194), 6, anon_sym_EQ, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(197), 21, + ACTIONS(192), 21, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5952,18 +5928,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, - [2420] = 3, + [2380] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(203), 6, + ACTIONS(198), 6, anon_sym_EQ, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(201), 21, + ACTIONS(196), 21, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, @@ -5985,18 +5961,53 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_COMMA, anon_sym_LF, + [2416] = 5, + ACTIONS(204), 1, + anon_sym_LF, + STATE(45), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(200), 12, + anon_sym_reg, + anon_sym_initial, + anon_sym_if, + anon_sym_for, + anon_sym_domain, + anon_sym_interface, + anon_sym_input, + anon_sym_output, + anon_sym_state, + anon_sym_gen, + anon_sym_DASH, + sym_identifier, + ACTIONS(202), 13, + anon_sym_RPAREN, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DASH_GT, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LPAREN, + anon_sym_COLON_COLON, + sym_number, [2456] = 3, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(207), 6, + ACTIONS(209), 6, anon_sym_EQ, anon_sym_DASH, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, anon_sym_DOT, - ACTIONS(205), 21, + ACTIONS(207), 21, anon_sym_RPAREN, anon_sym_LBRACE, anon_sym_RBRACE, @@ -6020,192 +6031,192 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, [2492] = 17, ACTIONS(98), 1, - anon_sym_LPAREN, - ACTIONS(100), 1, - anon_sym_LBRACK, - ACTIONS(108), 1, - anon_sym_SLASH, - ACTIONS(110), 1, anon_sym_PLUS, - ACTIONS(112), 1, + ACTIONS(100), 1, anon_sym_DASH, - ACTIONS(114), 1, + ACTIONS(104), 1, anon_sym_PIPE, - ACTIONS(116), 1, + ACTIONS(106), 1, anon_sym_AMP, - ACTIONS(118), 1, + ACTIONS(108), 1, anon_sym_CARET, - ACTIONS(211), 1, + ACTIONS(110), 1, + anon_sym_SLASH, + ACTIONS(114), 1, + anon_sym_LPAREN, + ACTIONS(116), 1, + anon_sym_LBRACK, + ACTIONS(213), 1, anon_sym_EQ, - ACTIONS(217), 1, + ACTIONS(219), 1, anon_sym_DOT, - STATE(43), 1, - sym_parenthesis_expression_list, - STATE(46), 1, + STATE(39), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(106), 2, + ACTIONS(102), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(215), 2, + ACTIONS(217), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(213), 4, + ACTIONS(215), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(209), 6, + ACTIONS(211), 6, anon_sym_RPAREN, anon_sym_RBRACE, anon_sym_in, anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [2555] = 18, - ACTIONS(98), 1, - anon_sym_LPAREN, - ACTIONS(100), 1, - anon_sym_LBRACK, + [2555] = 16, + ACTIONS(104), 1, + anon_sym_PIPE, + ACTIONS(106), 1, + anon_sym_AMP, ACTIONS(108), 1, + anon_sym_CARET, + ACTIONS(110), 1, anon_sym_SLASH, ACTIONS(114), 1, - anon_sym_PIPE, + anon_sym_LPAREN, ACTIONS(116), 1, - anon_sym_AMP, - ACTIONS(118), 1, - anon_sym_CARET, - ACTIONS(217), 1, - anon_sym_DOT, + anon_sym_LBRACK, ACTIONS(219), 1, - anon_sym_RPAREN, - ACTIONS(221), 1, - anon_sym_COMMA, - STATE(43), 1, - sym_parenthesis_expression_list, - STATE(46), 1, + anon_sym_DOT, + ACTIONS(223), 1, + anon_sym_EQ, + STATE(39), 1, sym_array_bracket_expression, - STATE(61), 1, - sym__comma, - STATE(170), 1, - aux_sym_parenthesis_expression_list_repeat1, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(106), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(110), 2, + ACTIONS(98), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(215), 2, + ACTIONS(102), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(217), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(213), 4, + ACTIONS(221), 3, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LF, + ACTIONS(215), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2617] = 16, - ACTIONS(98), 1, - anon_sym_LPAREN, - ACTIONS(100), 1, - anon_sym_LBRACK, + [2613] = 16, + ACTIONS(104), 1, + anon_sym_PIPE, + ACTIONS(106), 1, + anon_sym_AMP, ACTIONS(108), 1, + anon_sym_CARET, + ACTIONS(110), 1, anon_sym_SLASH, ACTIONS(114), 1, - anon_sym_PIPE, + anon_sym_LPAREN, ACTIONS(116), 1, - anon_sym_AMP, - ACTIONS(118), 1, - anon_sym_CARET, - ACTIONS(217), 1, + anon_sym_LBRACK, + ACTIONS(219), 1, anon_sym_DOT, - ACTIONS(225), 1, + ACTIONS(227), 1, anon_sym_EQ, - STATE(43), 1, - sym_parenthesis_expression_list, - STATE(46), 1, + STATE(39), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(106), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(110), 2, + ACTIONS(98), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(215), 2, + ACTIONS(102), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(217), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(223), 3, + ACTIONS(225), 3, anon_sym_RBRACE, anon_sym_COMMA, anon_sym_LF, - ACTIONS(213), 4, + ACTIONS(215), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2675] = 16, - ACTIONS(98), 1, - anon_sym_LPAREN, - ACTIONS(100), 1, - anon_sym_LBRACK, + [2671] = 18, + ACTIONS(104), 1, + anon_sym_PIPE, + ACTIONS(106), 1, + anon_sym_AMP, ACTIONS(108), 1, + anon_sym_CARET, + ACTIONS(110), 1, anon_sym_SLASH, ACTIONS(114), 1, - anon_sym_PIPE, + anon_sym_LPAREN, ACTIONS(116), 1, - anon_sym_AMP, - ACTIONS(118), 1, - anon_sym_CARET, - ACTIONS(217), 1, + anon_sym_LBRACK, + ACTIONS(219), 1, anon_sym_DOT, ACTIONS(229), 1, - anon_sym_EQ, - STATE(43), 1, - sym_parenthesis_expression_list, - STATE(46), 1, + anon_sym_RPAREN, + ACTIONS(231), 1, + anon_sym_COMMA, + STATE(39), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, + STATE(61), 1, + sym__comma, + STATE(158), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(106), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(110), 2, + ACTIONS(98), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(215), 2, + ACTIONS(102), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(217), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(227), 3, - anon_sym_RBRACE, - anon_sym_COMMA, - anon_sym_LF, - ACTIONS(213), 4, + ACTIONS(215), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, [2733] = 5, - ACTIONS(231), 1, + ACTIONS(233), 1, sym_identifier, - ACTIONS(237), 1, + ACTIONS(239), 1, anon_sym_LBRACK, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(235), 4, + ACTIONS(237), 4, anon_sym_EQ, anon_sym_LT, anon_sym_GT, anon_sym_SLASH, - ACTIONS(233), 16, + ACTIONS(235), 16, anon_sym_RBRACE, anon_sym_PLUS, anon_sym_DASH, @@ -6223,142 +6234,134 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_LF, [2768] = 15, - ACTIONS(98), 1, - anon_sym_LPAREN, - ACTIONS(100), 1, - anon_sym_LBRACK, + ACTIONS(104), 1, + anon_sym_PIPE, + ACTIONS(106), 1, + anon_sym_AMP, ACTIONS(108), 1, + anon_sym_CARET, + ACTIONS(110), 1, anon_sym_SLASH, ACTIONS(114), 1, - anon_sym_PIPE, + anon_sym_LPAREN, ACTIONS(116), 1, - anon_sym_AMP, - ACTIONS(118), 1, - anon_sym_CARET, - ACTIONS(217), 1, + anon_sym_LBRACK, + ACTIONS(219), 1, anon_sym_DOT, - STATE(43), 1, - sym_parenthesis_expression_list, - STATE(46), 1, + STATE(39), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(106), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(110), 2, + ACTIONS(98), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(215), 2, + ACTIONS(102), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(217), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(240), 3, + ACTIONS(242), 3, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_LF, - ACTIONS(213), 4, + ACTIONS(215), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2823] = 16, + [2823] = 9, ACTIONS(15), 1, - anon_sym_LBRACE, - ACTIONS(98), 1, + sym_identifier, + ACTIONS(39), 1, anon_sym_LPAREN, - ACTIONS(100), 1, - anon_sym_LBRACK, - ACTIONS(108), 1, - anon_sym_SLASH, - ACTIONS(114), 1, - anon_sym_PIPE, - ACTIONS(116), 1, - anon_sym_AMP, - ACTIONS(118), 1, - anon_sym_CARET, - ACTIONS(217), 1, - anon_sym_DOT, - STATE(43), 1, - sym_parenthesis_expression_list, - STATE(46), 1, - sym_array_bracket_expression, - STATE(193), 1, - sym_block, + ACTIONS(41), 1, + anon_sym_COLON_COLON, + ACTIONS(244), 1, + anon_sym_type, + ACTIONS(246), 1, + sym_number, + STATE(17), 1, + sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(106), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(110), 2, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(215), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(213), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [2879] = 16, - ACTIONS(15), 1, - anon_sym_LBRACE, - ACTIONS(98), 1, - anon_sym_LPAREN, - ACTIONS(100), 1, - anon_sym_LBRACK, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_PIPE, + anon_sym_AMP, + anon_sym_CARET, + STATE(52), 8, + sym__expression, + sym_unary_op, + sym_binary_op, + sym_array_op, + sym_func_call, + sym_field_access, + sym_parenthesis_expression, + sym_template_global, + [2865] = 15, + ACTIONS(104), 1, + anon_sym_PIPE, + ACTIONS(106), 1, + anon_sym_AMP, ACTIONS(108), 1, + anon_sym_CARET, + ACTIONS(110), 1, anon_sym_SLASH, ACTIONS(114), 1, - anon_sym_PIPE, + anon_sym_LPAREN, ACTIONS(116), 1, - anon_sym_AMP, - ACTIONS(118), 1, - anon_sym_CARET, - ACTIONS(217), 1, + anon_sym_LBRACK, + ACTIONS(219), 1, anon_sym_DOT, - STATE(43), 1, - sym_parenthesis_expression_list, - STATE(46), 1, + STATE(39), 1, sym_array_bracket_expression, - STATE(186), 1, - sym_block, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(106), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(110), 2, + ACTIONS(98), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(215), 2, + ACTIONS(102), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(217), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(213), 4, + ACTIONS(248), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + ACTIONS(215), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [2935] = 9, - ACTIONS(13), 1, - sym_identifier, - ACTIONS(37), 1, - anon_sym_LPAREN, + [2919] = 9, ACTIONS(39), 1, + anon_sym_LPAREN, + ACTIONS(41), 1, anon_sym_COLON_COLON, - ACTIONS(242), 1, - anon_sym_type, - ACTIONS(244), 1, + ACTIONS(250), 1, + sym_identifier, + ACTIONS(252), 1, + anon_sym_RPAREN, + ACTIONS(254), 1, sym_number, STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(35), 7, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6366,7 +6369,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(52), 8, + STATE(50), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6375,101 +6378,140 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [2977] = 15, - ACTIONS(98), 1, - anon_sym_LPAREN, - ACTIONS(100), 1, - anon_sym_LBRACK, + [2961] = 16, + ACTIONS(17), 1, + anon_sym_LBRACE, + ACTIONS(104), 1, + anon_sym_PIPE, + ACTIONS(106), 1, + anon_sym_AMP, ACTIONS(108), 1, + anon_sym_CARET, + ACTIONS(110), 1, anon_sym_SLASH, ACTIONS(114), 1, - anon_sym_PIPE, + anon_sym_LPAREN, ACTIONS(116), 1, - anon_sym_AMP, - ACTIONS(118), 1, - anon_sym_CARET, - ACTIONS(217), 1, + anon_sym_LBRACK, + ACTIONS(219), 1, anon_sym_DOT, - STATE(43), 1, - sym_parenthesis_expression_list, - STATE(46), 1, + STATE(39), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, + STATE(178), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(106), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(110), 2, + ACTIONS(98), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(215), 2, + ACTIONS(102), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(217), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(246), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - ACTIONS(213), 4, + ACTIONS(215), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3031] = 15, - ACTIONS(98), 1, - anon_sym_LPAREN, - ACTIONS(100), 1, - anon_sym_LBRACK, + [3017] = 16, + ACTIONS(17), 1, + anon_sym_LBRACE, + ACTIONS(104), 1, + anon_sym_PIPE, + ACTIONS(106), 1, + anon_sym_AMP, ACTIONS(108), 1, + anon_sym_CARET, + ACTIONS(110), 1, anon_sym_SLASH, ACTIONS(114), 1, - anon_sym_PIPE, + anon_sym_LPAREN, ACTIONS(116), 1, - anon_sym_AMP, - ACTIONS(118), 1, - anon_sym_CARET, - ACTIONS(217), 1, + anon_sym_LBRACK, + ACTIONS(219), 1, anon_sym_DOT, - STATE(43), 1, - sym_parenthesis_expression_list, - STATE(46), 1, + STATE(39), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, + STATE(194), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(106), 2, + ACTIONS(98), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(102), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(110), 2, + ACTIONS(217), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(215), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [3073] = 15, + ACTIONS(104), 1, + anon_sym_PIPE, + ACTIONS(106), 1, + anon_sym_AMP, + ACTIONS(108), 1, + anon_sym_CARET, + ACTIONS(110), 1, + anon_sym_SLASH, + ACTIONS(114), 1, + anon_sym_LPAREN, + ACTIONS(116), 1, + anon_sym_LBRACK, + ACTIONS(219), 1, + anon_sym_DOT, + STATE(39), 1, + sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(98), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(215), 2, + ACTIONS(102), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(217), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(248), 2, + ACTIONS(256), 2, anon_sym_RBRACE, anon_sym_LF, - ACTIONS(213), 4, + ACTIONS(215), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3085] = 9, - ACTIONS(37), 1, - anon_sym_LPAREN, + [3127] = 8, ACTIONS(39), 1, + anon_sym_LPAREN, + ACTIONS(41), 1, anon_sym_COLON_COLON, ACTIONS(250), 1, sym_identifier, - ACTIONS(252), 1, - anon_sym_RPAREN, - ACTIONS(254), 1, + ACTIONS(258), 1, sym_number, STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(35), 7, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6477,7 +6519,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(48), 8, + STATE(21), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6486,21 +6528,21 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3127] = 8, - ACTIONS(37), 1, - anon_sym_LPAREN, + [3166] = 8, ACTIONS(39), 1, + anon_sym_LPAREN, + ACTIONS(41), 1, anon_sym_COLON_COLON, ACTIONS(250), 1, sym_identifier, - ACTIONS(256), 1, + ACTIONS(260), 1, sym_number, STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(35), 7, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6508,7 +6550,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(20), 8, + STATE(47), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6517,21 +6559,21 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3166] = 8, - ACTIONS(37), 1, - anon_sym_LPAREN, + [3205] = 8, ACTIONS(39), 1, + anon_sym_LPAREN, + ACTIONS(41), 1, anon_sym_COLON_COLON, ACTIONS(250), 1, sym_identifier, - ACTIONS(258), 1, + ACTIONS(262), 1, sym_number, STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(35), 7, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6539,7 +6581,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(19), 8, + STATE(54), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6548,21 +6590,21 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3205] = 8, - ACTIONS(37), 1, - anon_sym_LPAREN, + [3244] = 8, ACTIONS(39), 1, + anon_sym_LPAREN, + ACTIONS(41), 1, anon_sym_COLON_COLON, ACTIONS(250), 1, sym_identifier, - ACTIONS(260), 1, + ACTIONS(264), 1, sym_number, STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(35), 7, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6579,21 +6621,59 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3244] = 8, - ACTIONS(37), 1, + [3283] = 15, + ACTIONS(104), 1, + anon_sym_PIPE, + ACTIONS(106), 1, + anon_sym_AMP, + ACTIONS(108), 1, + anon_sym_CARET, + ACTIONS(110), 1, + anon_sym_SLASH, + ACTIONS(114), 1, anon_sym_LPAREN, - ACTIONS(39), 1, + ACTIONS(116), 1, + anon_sym_LBRACK, + ACTIONS(219), 1, + anon_sym_DOT, + ACTIONS(266), 1, + anon_sym_RPAREN, + STATE(39), 1, + sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(98), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(102), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(217), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(215), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [3336] = 8, + ACTIONS(39), 1, + anon_sym_LPAREN, + ACTIONS(41), 1, anon_sym_COLON_COLON, ACTIONS(250), 1, sym_identifier, - ACTIONS(262), 1, + ACTIONS(268), 1, sym_number, STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(35), 7, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6601,7 +6681,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(23), 8, + STATE(58), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6610,21 +6690,21 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3283] = 8, - ACTIONS(37), 1, - anon_sym_LPAREN, + [3375] = 8, ACTIONS(39), 1, + anon_sym_LPAREN, + ACTIONS(41), 1, anon_sym_COLON_COLON, ACTIONS(250), 1, sym_identifier, - ACTIONS(264), 1, + ACTIONS(270), 1, sym_number, STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(35), 7, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6632,7 +6712,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(53), 8, + STATE(20), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6641,59 +6721,21 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3322] = 15, - ACTIONS(96), 1, - anon_sym_DOT, - ACTIONS(98), 1, - anon_sym_LPAREN, - ACTIONS(100), 1, - anon_sym_LBRACK, - ACTIONS(108), 1, - anon_sym_SLASH, - ACTIONS(114), 1, - anon_sym_PIPE, - ACTIONS(116), 1, - anon_sym_AMP, - ACTIONS(118), 1, - anon_sym_CARET, - ACTIONS(266), 1, - anon_sym_DOT_DOT, - STATE(43), 1, - sym_parenthesis_expression_list, - STATE(46), 1, - sym_array_bracket_expression, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(106), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(110), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(215), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(213), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [3375] = 8, - ACTIONS(37), 1, - anon_sym_LPAREN, + [3414] = 8, ACTIONS(39), 1, + anon_sym_LPAREN, + ACTIONS(41), 1, anon_sym_COLON_COLON, ACTIONS(250), 1, sym_identifier, - ACTIONS(268), 1, + ACTIONS(272), 1, sym_number, STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(35), 7, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6710,21 +6752,21 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3414] = 8, - ACTIONS(37), 1, - anon_sym_LPAREN, + [3453] = 8, ACTIONS(39), 1, + anon_sym_LPAREN, + ACTIONS(41), 1, anon_sym_COLON_COLON, ACTIONS(250), 1, sym_identifier, - ACTIONS(270), 1, + ACTIONS(274), 1, sym_number, STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(35), 7, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6732,7 +6774,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(47), 8, + STATE(63), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6741,21 +6783,21 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3453] = 8, - ACTIONS(37), 1, - anon_sym_LPAREN, + [3492] = 8, ACTIONS(39), 1, + anon_sym_LPAREN, + ACTIONS(41), 1, anon_sym_COLON_COLON, ACTIONS(250), 1, sym_identifier, - ACTIONS(272), 1, + ACTIONS(276), 1, sym_number, STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(35), 7, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6763,7 +6805,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(70), 8, + STATE(22), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6772,21 +6814,21 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3492] = 8, - ACTIONS(37), 1, - anon_sym_LPAREN, + [3531] = 8, ACTIONS(39), 1, + anon_sym_LPAREN, + ACTIONS(41), 1, anon_sym_COLON_COLON, ACTIONS(250), 1, sym_identifier, - ACTIONS(274), 1, + ACTIONS(278), 1, sym_number, STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(35), 7, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6794,7 +6836,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(73), 8, + STATE(72), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6803,21 +6845,21 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3531] = 8, - ACTIONS(37), 1, - anon_sym_LPAREN, + [3570] = 8, ACTIONS(39), 1, + anon_sym_LPAREN, + ACTIONS(41), 1, anon_sym_COLON_COLON, ACTIONS(250), 1, sym_identifier, - ACTIONS(276), 1, + ACTIONS(280), 1, sym_number, STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(35), 7, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6825,7 +6867,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(54), 8, + STATE(23), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -6834,90 +6876,97 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3570] = 15, - ACTIONS(98), 1, - anon_sym_LPAREN, - ACTIONS(100), 1, - anon_sym_LBRACK, - ACTIONS(108), 1, - anon_sym_SLASH, - ACTIONS(114), 1, + [3609] = 15, + ACTIONS(104), 1, anon_sym_PIPE, - ACTIONS(116), 1, + ACTIONS(106), 1, anon_sym_AMP, - ACTIONS(118), 1, + ACTIONS(108), 1, anon_sym_CARET, - ACTIONS(217), 1, + ACTIONS(110), 1, + anon_sym_SLASH, + ACTIONS(112), 1, anon_sym_DOT, - ACTIONS(278), 1, - anon_sym_RPAREN, - STATE(43), 1, - sym_parenthesis_expression_list, - STATE(46), 1, + ACTIONS(114), 1, + anon_sym_LPAREN, + ACTIONS(116), 1, + anon_sym_LBRACK, + ACTIONS(282), 1, + anon_sym_DOT_DOT, + STATE(39), 1, sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(106), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(110), 2, + ACTIONS(98), 2, anon_sym_PLUS, anon_sym_DASH, - ACTIONS(215), 2, + ACTIONS(102), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(217), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(213), 4, + ACTIONS(215), 4, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [3623] = 8, - ACTIONS(37), 1, + [3662] = 15, + ACTIONS(104), 1, + anon_sym_PIPE, + ACTIONS(106), 1, + anon_sym_AMP, + ACTIONS(108), 1, + anon_sym_CARET, + ACTIONS(110), 1, + anon_sym_SLASH, + ACTIONS(114), 1, anon_sym_LPAREN, - ACTIONS(39), 1, - anon_sym_COLON_COLON, - ACTIONS(250), 1, - sym_identifier, - ACTIONS(280), 1, - sym_number, - STATE(17), 1, - sym_namespace_list, + ACTIONS(116), 1, + anon_sym_LBRACK, + ACTIONS(219), 1, + anon_sym_DOT, + ACTIONS(284), 1, + anon_sym_RBRACK, + STATE(39), 1, + sym_array_bracket_expression, + STATE(41), 1, + sym_parenthesis_expression_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(35), 7, + ACTIONS(98), 2, anon_sym_PLUS, anon_sym_DASH, + ACTIONS(102), 2, anon_sym_STAR, - anon_sym_BANG, - anon_sym_PIPE, - anon_sym_AMP, - anon_sym_CARET, - STATE(21), 8, - sym__expression, - sym_unary_op, - sym_binary_op, - sym_array_op, - sym_func_call, - sym_field_access, - sym_parenthesis_expression, - sym_template_global, - [3662] = 8, - ACTIONS(37), 1, - anon_sym_LPAREN, + anon_sym_PERCENT, + ACTIONS(217), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(215), 4, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [3715] = 8, ACTIONS(39), 1, + anon_sym_LPAREN, + ACTIONS(41), 1, anon_sym_COLON_COLON, ACTIONS(250), 1, sym_identifier, - ACTIONS(282), 1, + ACTIONS(286), 1, sym_number, STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(35), 7, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6934,59 +6983,21 @@ static const uint16_t ts_small_parse_table[] = { sym_field_access, sym_parenthesis_expression, sym_template_global, - [3701] = 15, - ACTIONS(98), 1, - anon_sym_LPAREN, - ACTIONS(100), 1, - anon_sym_LBRACK, - ACTIONS(108), 1, - anon_sym_SLASH, - ACTIONS(114), 1, - anon_sym_PIPE, - ACTIONS(116), 1, - anon_sym_AMP, - ACTIONS(118), 1, - anon_sym_CARET, - ACTIONS(217), 1, - anon_sym_DOT, - ACTIONS(284), 1, - anon_sym_RBRACK, - STATE(43), 1, - sym_parenthesis_expression_list, - STATE(46), 1, - sym_array_bracket_expression, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(106), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(110), 2, - anon_sym_PLUS, - anon_sym_DASH, - ACTIONS(215), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(213), 4, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, [3754] = 8, - ACTIONS(37), 1, - anon_sym_LPAREN, ACTIONS(39), 1, + anon_sym_LPAREN, + ACTIONS(41), 1, anon_sym_COLON_COLON, ACTIONS(250), 1, sym_identifier, - ACTIONS(286), 1, + ACTIONS(288), 1, sym_number, STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(35), 7, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -6994,7 +7005,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(18), 8, + STATE(71), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7004,20 +7015,20 @@ static const uint16_t ts_small_parse_table[] = { sym_parenthesis_expression, sym_template_global, [3793] = 8, - ACTIONS(37), 1, - anon_sym_LPAREN, ACTIONS(39), 1, + anon_sym_LPAREN, + ACTIONS(41), 1, anon_sym_COLON_COLON, ACTIONS(250), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(290), 1, sym_number, STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(35), 7, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7025,7 +7036,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(22), 8, + STATE(18), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7035,20 +7046,20 @@ static const uint16_t ts_small_parse_table[] = { sym_parenthesis_expression, sym_template_global, [3832] = 8, - ACTIONS(37), 1, - anon_sym_LPAREN, ACTIONS(39), 1, + anon_sym_LPAREN, + ACTIONS(41), 1, anon_sym_COLON_COLON, ACTIONS(250), 1, sym_identifier, - ACTIONS(290), 1, + ACTIONS(292), 1, sym_number, STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(35), 7, + ACTIONS(37), 7, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7056,7 +7067,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_AMP, anon_sym_CARET, - STATE(64), 8, + STATE(19), 8, sym__expression, sym_unary_op, sym_binary_op, @@ -7066,14 +7077,14 @@ static const uint16_t ts_small_parse_table[] = { sym_parenthesis_expression, sym_template_global, [3871] = 5, - ACTIONS(296), 1, + ACTIONS(298), 1, anon_sym_LF, STATE(78), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(292), 7, + ACTIONS(294), 7, anon_sym_reg, anon_sym_initial, anon_sym_input, @@ -7081,7 +7092,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(294), 10, + ACTIONS(296), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7093,14 +7104,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, sym_number, [3903] = 5, - ACTIONS(43), 1, + ACTIONS(45), 1, anon_sym_LF, - STATE(40), 1, + STATE(45), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(298), 7, + ACTIONS(300), 7, anon_sym_reg, anon_sym_initial, anon_sym_input, @@ -7108,7 +7119,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(300), 10, + ACTIONS(302), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7120,20 +7131,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, sym_number, [3935] = 5, - ACTIONS(19), 1, + ACTIONS(306), 1, anon_sym_reg, - STATE(80), 1, + STATE(79), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(302), 5, + ACTIONS(304), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(304), 10, + ACTIONS(309), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7145,20 +7156,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, sym_number, [3965] = 5, - ACTIONS(308), 1, + ACTIONS(21), 1, anon_sym_reg, - STATE(80), 1, + STATE(79), 1, aux_sym_write_modifiers_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(306), 5, + ACTIONS(311), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(311), 10, + ACTIONS(313), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7170,66 +7181,66 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, sym_number, [3995] = 13, - ACTIONS(13), 1, + ACTIONS(15), 1, sym_identifier, - ACTIONS(39), 1, + ACTIONS(41), 1, anon_sym_COLON_COLON, - ACTIONS(313), 1, - anon_sym_DASH_GT, - ACTIONS(315), 1, + ACTIONS(45), 1, anon_sym_LF, + ACTIONS(315), 1, + anon_sym_DASH_GT, STATE(17), 1, sym_namespace_list, - STATE(82), 1, + STATE(45), 1, aux_sym__linebreak, - STATE(112), 1, + STATE(116), 1, sym_declaration, - STATE(162), 1, + STATE(145), 1, sym_declaration_list, - STATE(206), 1, + STATE(205), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_input, anon_sym_output, - ACTIONS(33), 2, + ACTIONS(35), 2, anon_sym_state, anon_sym_gen, - STATE(178), 3, + STATE(180), 3, sym__type, sym_array_type, sym_template_global, [4040] = 13, - ACTIONS(13), 1, + ACTIONS(15), 1, sym_identifier, - ACTIONS(39), 1, + ACTIONS(41), 1, anon_sym_COLON_COLON, - ACTIONS(43), 1, - anon_sym_LF, - ACTIONS(313), 1, + ACTIONS(315), 1, anon_sym_DASH_GT, + ACTIONS(317), 1, + anon_sym_LF, STATE(17), 1, sym_namespace_list, - STATE(40), 1, + STATE(81), 1, aux_sym__linebreak, - STATE(112), 1, + STATE(116), 1, sym_declaration, - STATE(140), 1, + STATE(135), 1, sym_declaration_list, - STATE(208), 1, + STATE(206), 1, sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_input, anon_sym_output, - ACTIONS(33), 2, + ACTIONS(35), 2, anon_sym_state, anon_sym_gen, - STATE(178), 3, + STATE(180), 3, sym__type, sym_array_type, sym_template_global, @@ -7237,14 +7248,14 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(317), 6, + ACTIONS(319), 6, anon_sym_reg, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(319), 10, + ACTIONS(321), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7256,13 +7267,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, sym_number, [4110] = 11, - ACTIONS(39), 1, + ACTIONS(41), 1, anon_sym_COLON_COLON, - ACTIONS(321), 1, - sym_identifier, ACTIONS(323), 1, - anon_sym_RPAREN, + sym_identifier, ACTIONS(325), 1, + anon_sym_RPAREN, + ACTIONS(327), 1, anon_sym_LF, STATE(17), 1, sym_namespace_list, @@ -7271,16 +7282,16 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_input, anon_sym_output, - ACTIONS(33), 2, + ACTIONS(35), 2, anon_sym_state, anon_sym_gen, - STATE(119), 2, + STATE(115), 2, sym_template_declaration_type, sym_declaration, - STATE(178), 3, + STATE(180), 3, sym__type, sym_array_type, sym_template_global, @@ -7288,13 +7299,13 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(327), 5, + ACTIONS(329), 5, anon_sym_input, anon_sym_output, anon_sym_state, anon_sym_gen, sym_identifier, - ACTIONS(329), 10, + ACTIONS(331), 10, anon_sym_PLUS, anon_sym_DASH, anon_sym_STAR, @@ -7306,220 +7317,292 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_COLON, sym_number, [4174] = 11, - ACTIONS(39), 1, + ACTIONS(41), 1, anon_sym_COLON_COLON, - ACTIONS(43), 1, + ACTIONS(45), 1, anon_sym_LF, - ACTIONS(321), 1, + ACTIONS(323), 1, sym_identifier, - ACTIONS(331), 1, + ACTIONS(333), 1, anon_sym_RPAREN, STATE(17), 1, sym_namespace_list, - STATE(40), 1, + STATE(45), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_input, anon_sym_output, - ACTIONS(33), 2, + ACTIONS(35), 2, anon_sym_state, anon_sym_gen, - STATE(122), 2, + STATE(125), 2, sym_template_declaration_type, sym_declaration, - STATE(178), 3, + STATE(180), 3, sym__type, sym_array_type, sym_template_global, [4214] = 11, - ACTIONS(13), 1, + ACTIONS(15), 1, sym_identifier, - ACTIONS(39), 1, + ACTIONS(41), 1, anon_sym_COLON_COLON, - ACTIONS(333), 1, + ACTIONS(45), 1, anon_sym_LF, STATE(17), 1, sym_namespace_list, - STATE(88), 1, + STATE(45), 1, aux_sym__linebreak, - STATE(112), 1, + STATE(116), 1, sym_declaration, - STATE(203), 1, + STATE(198), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_input, anon_sym_output, - ACTIONS(33), 2, + ACTIONS(35), 2, anon_sym_state, anon_sym_gen, - STATE(178), 3, + STATE(180), 3, sym__type, sym_array_type, sym_template_global, [4253] = 11, - ACTIONS(13), 1, + ACTIONS(15), 1, sym_identifier, - ACTIONS(39), 1, + ACTIONS(41), 1, anon_sym_COLON_COLON, - ACTIONS(43), 1, + ACTIONS(335), 1, anon_sym_LF, STATE(17), 1, sym_namespace_list, - STATE(40), 1, + STATE(87), 1, aux_sym__linebreak, - STATE(112), 1, + STATE(116), 1, sym_declaration, - STATE(197), 1, + STATE(210), 1, sym_declaration_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_input, anon_sym_output, - ACTIONS(33), 2, + ACTIONS(35), 2, anon_sym_state, anon_sym_gen, - STATE(178), 3, + STATE(180), 3, sym__type, sym_array_type, sym_template_global, [4292] = 8, - ACTIONS(39), 1, + ACTIONS(41), 1, anon_sym_COLON_COLON, - ACTIONS(321), 1, + ACTIONS(323), 1, sym_identifier, STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_input, anon_sym_output, - ACTIONS(33), 2, + ACTIONS(35), 2, anon_sym_state, anon_sym_gen, - STATE(184), 2, + STATE(176), 2, sym_template_declaration_type, sym_declaration, - STATE(178), 3, + STATE(180), 3, sym__type, sym_array_type, sym_template_global, [4323] = 8, - ACTIONS(13), 1, + ACTIONS(15), 1, sym_identifier, - ACTIONS(39), 1, + ACTIONS(41), 1, anon_sym_COLON_COLON, STATE(17), 1, sym_namespace_list, - STATE(221), 1, + STATE(214), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_input, anon_sym_output, - ACTIONS(33), 2, + ACTIONS(35), 2, anon_sym_state, anon_sym_gen, - STATE(178), 3, + STATE(180), 3, sym__type, sym_array_type, sym_template_global, [4353] = 8, - ACTIONS(13), 1, + ACTIONS(15), 1, sym_identifier, - ACTIONS(39), 1, + ACTIONS(41), 1, anon_sym_COLON_COLON, STATE(17), 1, sym_namespace_list, - STATE(168), 1, + STATE(138), 1, sym_declaration, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(31), 2, + ACTIONS(33), 2, anon_sym_input, anon_sym_output, - ACTIONS(33), 2, + ACTIONS(35), 2, anon_sym_state, anon_sym_gen, - STATE(178), 3, + STATE(180), 3, sym__type, sym_array_type, sym_template_global, - [4383] = 7, - ACTIONS(335), 1, - ts_builtin_sym_end, + [4383] = 9, + ACTIONS(11), 1, + anon_sym_const, ACTIONS(337), 1, + ts_builtin_sym_end, + ACTIONS(339), 1, anon_sym_LF, - STATE(100), 1, + STATE(97), 1, aux_sym__linebreak, - STATE(191), 1, + STATE(200), 1, sym_global_object, + STATE(229), 1, + sym_const_and_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(7), 2, anon_sym___builtin__, anon_sym_extern, - ACTIONS(9), 3, + ACTIONS(9), 2, anon_sym_module, - anon_sym_function, anon_sym_struct, - [4409] = 4, + [4414] = 9, + ACTIONS(11), 1, + anon_sym_const, + ACTIONS(339), 1, + anon_sym_LF, ACTIONS(341), 1, - anon_sym_SQUOTE, - STATE(105), 1, - sym_latency_specifier, + ts_builtin_sym_end, + STATE(97), 1, + aux_sym__linebreak, + STATE(172), 1, + sym_global_object, + STATE(229), 1, + sym_const_and_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(339), 7, - anon_sym_RPAREN, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_in, - anon_sym_DASH_GT, - anon_sym_COMMA, - anon_sym_LF, - [4429] = 7, - ACTIONS(337), 1, + ACTIONS(7), 2, + anon_sym___builtin__, + anon_sym_extern, + ACTIONS(9), 2, + anon_sym_module, + anon_sym_struct, + [4445] = 9, + ACTIONS(11), 1, + anon_sym_const, + ACTIONS(339), 1, anon_sym_LF, ACTIONS(343), 1, ts_builtin_sym_end, - STATE(100), 1, + STATE(97), 1, aux_sym__linebreak, - STATE(161), 1, + STATE(200), 1, sym_global_object, + STATE(229), 1, + sym_const_and_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(7), 2, anon_sym___builtin__, anon_sym_extern, - ACTIONS(9), 3, + ACTIONS(9), 2, anon_sym_module, - anon_sym_function, anon_sym_struct, - [4455] = 4, - ACTIONS(341), 1, + [4476] = 9, + ACTIONS(11), 1, + anon_sym_const, + ACTIONS(339), 1, + anon_sym_LF, + ACTIONS(345), 1, + ts_builtin_sym_end, + STATE(97), 1, + aux_sym__linebreak, + STATE(200), 1, + sym_global_object, + STATE(229), 1, + sym_const_and_type, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(7), 2, + anon_sym___builtin__, + anon_sym_extern, + ACTIONS(9), 2, + anon_sym_module, + anon_sym_struct, + [4507] = 9, + ACTIONS(11), 1, + anon_sym_const, + ACTIONS(339), 1, + anon_sym_LF, + ACTIONS(347), 1, + ts_builtin_sym_end, + STATE(97), 1, + aux_sym__linebreak, + STATE(200), 1, + sym_global_object, + STATE(229), 1, + sym_const_and_type, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(7), 2, + anon_sym___builtin__, + anon_sym_extern, + ACTIONS(9), 2, + anon_sym_module, + anon_sym_struct, + [4538] = 4, + ACTIONS(349), 1, + anon_sym_LF, + STATE(97), 1, + aux_sym__linebreak, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(202), 7, + ts_builtin_sym_end, + anon_sym___builtin__, + anon_sym_extern, + anon_sym_module, + anon_sym_struct, + anon_sym_const, + anon_sym_RPAREN, + [4558] = 4, + ACTIONS(354), 1, anon_sym_SQUOTE, - STATE(108), 1, + STATE(105), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(345), 7, + ACTIONS(352), 7, anon_sym_RPAREN, anon_sym_RBRACE, anon_sym_EQ, @@ -7527,15 +7610,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4475] = 4, - ACTIONS(341), 1, + [4578] = 4, + ACTIONS(354), 1, anon_sym_SQUOTE, STATE(106), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(347), 7, + ACTIONS(356), 7, anon_sym_RPAREN, anon_sym_RBRACE, anon_sym_EQ, @@ -7543,15 +7626,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4495] = 4, - ACTIONS(341), 1, + [4598] = 4, + ACTIONS(354), 1, anon_sym_SQUOTE, - STATE(107), 1, + STATE(108), 1, sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(349), 7, + ACTIONS(358), 7, anon_sym_RPAREN, anon_sym_RBRACE, anon_sym_EQ, @@ -7559,134 +7642,80 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4515] = 7, - ACTIONS(337), 1, - anon_sym_LF, - ACTIONS(351), 1, - ts_builtin_sym_end, - STATE(100), 1, - aux_sym__linebreak, - STATE(191), 1, - sym_global_object, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(7), 2, - anon_sym___builtin__, - anon_sym_extern, - ACTIONS(9), 3, - anon_sym_module, - anon_sym_function, - anon_sym_struct, - [4541] = 7, - ACTIONS(337), 1, - anon_sym_LF, - ACTIONS(353), 1, - ts_builtin_sym_end, - STATE(100), 1, - aux_sym__linebreak, - STATE(191), 1, - sym_global_object, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(7), 2, - anon_sym___builtin__, - anon_sym_extern, - ACTIONS(9), 3, - anon_sym_module, - anon_sym_function, - anon_sym_struct, - [4567] = 4, - ACTIONS(355), 1, - anon_sym_LF, - STATE(100), 1, - aux_sym__linebreak, + [4618] = 4, + ACTIONS(354), 1, + anon_sym_SQUOTE, + STATE(107), 1, + sym_latency_specifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(182), 7, - ts_builtin_sym_end, - anon_sym___builtin__, - anon_sym_extern, - anon_sym_module, - anon_sym_function, - anon_sym_struct, + ACTIONS(360), 7, anon_sym_RPAREN, - [4587] = 7, - ACTIONS(337), 1, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_in, + anon_sym_DASH_GT, + anon_sym_COMMA, anon_sym_LF, - ACTIONS(358), 1, - ts_builtin_sym_end, - STATE(100), 1, - aux_sym__linebreak, - STATE(191), 1, - sym_global_object, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(7), 2, - anon_sym___builtin__, - anon_sym_extern, - ACTIONS(9), 3, - anon_sym_module, - anon_sym_function, - anon_sym_struct, - [4613] = 6, - ACTIONS(337), 1, + [4638] = 8, + ACTIONS(11), 1, + anon_sym_const, + ACTIONS(339), 1, anon_sym_LF, - STATE(100), 1, + STATE(97), 1, aux_sym__linebreak, - STATE(191), 1, + STATE(200), 1, sym_global_object, + STATE(229), 1, + sym_const_and_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(7), 2, anon_sym___builtin__, anon_sym_extern, - ACTIONS(9), 3, + ACTIONS(9), 2, anon_sym_module, - anon_sym_function, anon_sym_struct, - [4636] = 5, - ACTIONS(65), 1, + [4666] = 5, + ACTIONS(74), 1, anon_sym_COLON_COLON, - STATE(13), 1, + STATE(14), 1, aux_sym_namespace_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(63), 3, + ACTIONS(72), 3, anon_sym_POUND_LPAREN, anon_sym_LBRACK, sym_identifier, - ACTIONS(360), 3, + ACTIONS(362), 3, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_LF, - [4657] = 6, - ACTIONS(13), 1, + [4687] = 6, + ACTIONS(15), 1, sym_identifier, - ACTIONS(39), 1, + ACTIONS(41), 1, anon_sym_COLON_COLON, STATE(17), 1, sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(362), 2, + ACTIONS(364), 2, anon_sym_state, anon_sym_gen, - STATE(173), 3, + STATE(185), 3, sym__type, sym_array_type, sym_template_global, - [4680] = 2, + [4710] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(364), 7, + ACTIONS(366), 7, anon_sym_RPAREN, anon_sym_RBRACE, anon_sym_EQ, @@ -7694,11 +7723,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4694] = 2, + [4724] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(366), 7, + ACTIONS(368), 7, anon_sym_RPAREN, anon_sym_RBRACE, anon_sym_EQ, @@ -7706,11 +7735,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4708] = 2, + [4738] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(368), 7, + ACTIONS(370), 7, anon_sym_RPAREN, anon_sym_RBRACE, anon_sym_EQ, @@ -7718,11 +7747,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4722] = 2, + [4752] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(370), 7, + ACTIONS(372), 7, anon_sym_RPAREN, anon_sym_RBRACE, anon_sym_EQ, @@ -7730,36 +7759,36 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [4736] = 5, - ACTIONS(221), 1, + [4766] = 5, + ACTIONS(231), 1, anon_sym_COMMA, STATE(11), 1, sym__comma, - STATE(120), 1, + STATE(113), 1, aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(372), 3, + ACTIONS(374), 3, anon_sym_RBRACE, anon_sym_EQ, anon_sym_LF, - [4755] = 5, - ACTIONS(39), 1, - anon_sym_COLON_COLON, - ACTIONS(250), 1, - sym_identifier, - STATE(17), 1, - sym_namespace_list, + [4785] = 5, + ACTIONS(378), 1, + anon_sym_COMMA, + STATE(11), 1, + sym__comma, + STATE(110), 1, + aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(189), 3, - sym__type, - sym_array_type, - sym_template_global, - [4774] = 5, - ACTIONS(39), 1, + ACTIONS(376), 3, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_LF, + [4804] = 5, + ACTIONS(41), 1, anon_sym_COLON_COLON, ACTIONS(250), 1, sym_identifier, @@ -7768,104 +7797,88 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(126), 3, + STATE(191), 3, sym__type, sym_array_type, sym_template_global, - [4793] = 5, - ACTIONS(221), 1, - anon_sym_COMMA, - STATE(91), 1, - sym__comma, - STATE(125), 1, - aux_sym_declaration_list_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(374), 3, - anon_sym_RBRACE, - anon_sym_DASH_GT, - anon_sym_LF, - [4812] = 7, - ACTIONS(221), 1, + [4823] = 7, + ACTIONS(231), 1, anon_sym_COMMA, - ACTIONS(376), 1, + ACTIONS(381), 1, anon_sym_RPAREN, - ACTIONS(378), 1, + ACTIONS(383), 1, anon_sym_LF, - STATE(116), 1, + STATE(129), 1, aux_sym_template_args_repeat1, - STATE(182), 1, + STATE(175), 1, aux_sym__linebreak, - STATE(198), 1, + STATE(207), 1, sym__comma, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4835] = 7, - ACTIONS(221), 1, + [4846] = 5, + ACTIONS(231), 1, anon_sym_COMMA, - ACTIONS(380), 1, - anon_sym_RPAREN, - ACTIONS(382), 1, - anon_sym_LF, - STATE(128), 1, - aux_sym_template_args_repeat1, - STATE(174), 1, - aux_sym__linebreak, - STATE(198), 1, + STATE(11), 1, sym__comma, + STATE(110), 1, + aux_sym_assign_left_side_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4858] = 7, - ACTIONS(221), 1, + ACTIONS(385), 3, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_LF, + [4865] = 7, + ACTIONS(231), 1, anon_sym_COMMA, - ACTIONS(384), 1, + ACTIONS(387), 1, anon_sym_RPAREN, - ACTIONS(386), 1, + ACTIONS(389), 1, anon_sym_LF, STATE(89), 1, sym__comma, - STATE(129), 1, + STATE(130), 1, aux_sym_template_declaration_arguments_repeat1, - STATE(188), 1, + STATE(182), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4881] = 7, - ACTIONS(221), 1, + [4888] = 7, + ACTIONS(231), 1, anon_sym_COMMA, - ACTIONS(388), 1, + ACTIONS(391), 1, anon_sym_RPAREN, - ACTIONS(390), 1, + ACTIONS(393), 1, anon_sym_LF, - STATE(128), 1, - aux_sym_template_args_repeat1, - STATE(176), 1, - aux_sym__linebreak, - STATE(198), 1, + STATE(89), 1, sym__comma, + STATE(124), 1, + aux_sym_template_declaration_arguments_repeat1, + STATE(189), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4904] = 5, - ACTIONS(394), 1, + [4911] = 5, + ACTIONS(231), 1, anon_sym_COMMA, STATE(91), 1, sym__comma, - STATE(117), 1, + STATE(126), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(392), 3, + ACTIONS(395), 3, anon_sym_RBRACE, anon_sym_DASH_GT, anon_sym_LF, - [4923] = 5, - ACTIONS(39), 1, + [4930] = 5, + ACTIONS(41), 1, anon_sym_COLON_COLON, ACTIONS(250), 1, sym_identifier, @@ -7874,746 +7887,756 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(180), 3, + STATE(133), 3, sym__type, sym_array_type, sym_template_global, - [4942] = 7, - ACTIONS(221), 1, + [4949] = 7, + ACTIONS(231), 1, anon_sym_COMMA, ACTIONS(397), 1, anon_sym_RPAREN, ACTIONS(399), 1, anon_sym_LF, - STATE(89), 1, - sym__comma, - STATE(115), 1, - aux_sym_template_declaration_arguments_repeat1, - STATE(181), 1, + STATE(119), 1, + aux_sym_template_args_repeat1, + STATE(187), 1, aux_sym__linebreak, + STATE(207), 1, + sym__comma, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [4965] = 5, + [4972] = 7, + ACTIONS(231), 1, + anon_sym_COMMA, + ACTIONS(401), 1, + anon_sym_RPAREN, ACTIONS(403), 1, + anon_sym_LF, + STATE(129), 1, + aux_sym_template_args_repeat1, + STATE(190), 1, + aux_sym__linebreak, + STATE(207), 1, + sym__comma, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [4995] = 5, + ACTIONS(407), 1, anon_sym_COMMA, - STATE(11), 1, + STATE(91), 1, sym__comma, STATE(120), 1, - aux_sym_assign_left_side_repeat1, + aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(401), 3, + ACTIONS(405), 3, anon_sym_RBRACE, - anon_sym_EQ, + anon_sym_DASH_GT, anon_sym_LF, - [4984] = 7, - ACTIONS(221), 1, + [5014] = 7, + ACTIONS(231), 1, anon_sym_COMMA, - ACTIONS(406), 1, + ACTIONS(410), 1, anon_sym_RPAREN, - ACTIONS(408), 1, + ACTIONS(412), 1, anon_sym_LF, - STATE(114), 1, + STATE(112), 1, aux_sym_template_args_repeat1, STATE(177), 1, aux_sym__linebreak, - STATE(198), 1, + STATE(207), 1, sym__comma, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5007] = 7, - ACTIONS(221), 1, + [5037] = 5, + ACTIONS(41), 1, + anon_sym_COLON_COLON, + ACTIONS(250), 1, + sym_identifier, + STATE(17), 1, + sym_namespace_list, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(188), 3, + sym__type, + sym_array_type, + sym_template_global, + [5056] = 5, + ACTIONS(41), 1, + anon_sym_COLON_COLON, + ACTIONS(250), 1, + sym_identifier, + STATE(17), 1, + sym_namespace_list, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + STATE(186), 3, + sym__type, + sym_array_type, + sym_template_global, + [5075] = 7, + ACTIONS(231), 1, anon_sym_COMMA, - ACTIONS(410), 1, + ACTIONS(414), 1, anon_sym_RPAREN, - ACTIONS(412), 1, + ACTIONS(416), 1, anon_sym_LF, STATE(89), 1, sym__comma, - STATE(123), 1, + STATE(130), 1, aux_sym_template_declaration_arguments_repeat1, - STATE(175), 1, + STATE(181), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5030] = 7, - ACTIONS(221), 1, + [5098] = 7, + ACTIONS(231), 1, anon_sym_COMMA, - ACTIONS(414), 1, + ACTIONS(418), 1, anon_sym_RPAREN, - ACTIONS(416), 1, + ACTIONS(420), 1, anon_sym_LF, STATE(89), 1, sym__comma, - STATE(129), 1, + STATE(114), 1, aux_sym_template_declaration_arguments_repeat1, STATE(183), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5053] = 5, - ACTIONS(221), 1, - anon_sym_COMMA, - STATE(11), 1, - sym__comma, - STATE(109), 1, - aux_sym_assign_left_side_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(418), 3, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_LF, - [5072] = 5, - ACTIONS(221), 1, + [5121] = 5, + ACTIONS(231), 1, anon_sym_COMMA, STATE(91), 1, sym__comma, - STATE(117), 1, + STATE(120), 1, aux_sym_declaration_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(420), 3, + ACTIONS(422), 3, anon_sym_RBRACE, anon_sym_DASH_GT, anon_sym_LF, - [5091] = 4, - ACTIONS(100), 1, - anon_sym_LBRACK, - STATE(133), 1, - sym_array_bracket_expression, + [5140] = 6, + ACTIONS(45), 1, + anon_sym_LF, + ACTIONS(424), 1, + sym_identifier, + ACTIONS(426), 1, + anon_sym_RPAREN, + STATE(45), 1, + aux_sym__linebreak, + STATE(121), 1, + sym_template_arg, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(422), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LF, - [5107] = 6, - ACTIONS(424), 1, + [5160] = 6, + ACTIONS(428), 1, anon_sym_RBRACE, - ACTIONS(426), 1, + ACTIONS(430), 1, anon_sym_EQ, - ACTIONS(428), 1, + ACTIONS(432), 1, anon_sym_LF, - STATE(6), 1, + STATE(2), 1, aux_sym__linebreak, - STATE(148), 1, + STATE(173), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5127] = 5, - ACTIONS(432), 1, + [5180] = 5, + ACTIONS(436), 1, anon_sym_COMMA, - STATE(128), 1, + STATE(129), 1, aux_sym_template_args_repeat1, - STATE(198), 1, + STATE(207), 1, sym__comma, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(430), 2, + ACTIONS(434), 2, anon_sym_RPAREN, anon_sym_LF, - [5145] = 5, - ACTIONS(437), 1, + [5198] = 5, + ACTIONS(441), 1, anon_sym_COMMA, STATE(89), 1, sym__comma, - STATE(129), 1, + STATE(130), 1, aux_sym_template_declaration_arguments_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(435), 2, + ACTIONS(439), 2, anon_sym_RPAREN, anon_sym_LF, - [5163] = 6, - ACTIONS(43), 1, - anon_sym_LF, - ACTIONS(440), 1, - sym_identifier, - ACTIONS(442), 1, - anon_sym_RPAREN, - STATE(40), 1, - aux_sym__linebreak, - STATE(113), 1, - sym_template_arg, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5183] = 6, - ACTIONS(440), 1, + [5216] = 6, + ACTIONS(424), 1, sym_identifier, ACTIONS(444), 1, anon_sym_RPAREN, ACTIONS(446), 1, anon_sym_LF, - STATE(121), 1, + STATE(118), 1, sym_template_arg, - STATE(130), 1, - aux_sym__linebreak, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5203] = 6, - ACTIONS(426), 1, - anon_sym_EQ, - ACTIONS(448), 1, - anon_sym_RBRACE, - ACTIONS(450), 1, - anon_sym_LF, - STATE(5), 1, + STATE(127), 1, aux_sym__linebreak, - STATE(154), 1, - aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5223] = 2, + [5236] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(452), 5, + ACTIONS(448), 5, anon_sym_RPAREN, anon_sym_LBRACK, sym_identifier, anon_sym_COMMA, anon_sym_LF, - [5235] = 2, + [5248] = 4, + ACTIONS(116), 1, + anon_sym_LBRACK, + STATE(132), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(454), 4, - ts_builtin_sym_end, + ACTIONS(450), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LF, + [5264] = 6, + ACTIONS(430), 1, + anon_sym_EQ, + ACTIONS(452), 1, anon_sym_RBRACE, - anon_sym_else, + ACTIONS(454), 1, anon_sym_LF, - [5246] = 2, + STATE(8), 1, + aux_sym__linebreak, + STATE(164), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(456), 4, - ts_builtin_sym_end, + [5284] = 4, + ACTIONS(315), 1, + anon_sym_DASH_GT, + STATE(211), 1, + sym__interface_ports_output, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(456), 2, anon_sym_RBRACE, - anon_sym_else, anon_sym_LF, - [5257] = 2, + [5299] = 5, + ACTIONS(458), 1, + ts_builtin_sym_end, + ACTIONS(460), 1, + anon_sym_LF, + STATE(95), 1, + aux_sym__linebreak, + STATE(153), 1, + aux_sym_source_file_repeat1, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [5316] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(458), 4, + ACTIONS(462), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5268] = 2, + [5327] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(460), 4, + ACTIONS(464), 4, anon_sym_RBRACE, - anon_sym_EQ, + anon_sym_DASH_GT, anon_sym_COMMA, anon_sym_LF, - [5279] = 2, + [5338] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(227), 4, + ACTIONS(466), 4, + ts_builtin_sym_end, anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COMMA, + anon_sym_else, anon_sym_LF, - [5290] = 2, + [5349] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(458), 4, + ACTIONS(466), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5301] = 4, - ACTIONS(313), 1, - anon_sym_DASH_GT, - STATE(194), 1, - sym__interface_ports_output, + [5360] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(462), 2, + ACTIONS(468), 4, + ts_builtin_sym_end, anon_sym_RBRACE, + anon_sym_else, anon_sym_LF, - [5316] = 2, + [5371] = 5, + ACTIONS(470), 1, + anon_sym_RPAREN, + ACTIONS(472), 1, + anon_sym_COMMA, + STATE(61), 1, + sym__comma, + STATE(142), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(223), 4, + [5388] = 5, + ACTIONS(428), 1, anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COMMA, + ACTIONS(432), 1, anon_sym_LF, - [5327] = 2, + STATE(2), 1, + aux_sym__linebreak, + STATE(166), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(464), 4, + [5405] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(475), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5338] = 4, - ACTIONS(468), 1, - anon_sym_COLON, - STATE(192), 1, - sym_interface_ports, + [5416] = 4, + ACTIONS(315), 1, + anon_sym_DASH_GT, + STATE(195), 1, + sym__interface_ports_output, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(466), 2, + ACTIONS(477), 2, anon_sym_RBRACE, anon_sym_LF, - [5353] = 5, - ACTIONS(448), 1, + [5431] = 5, + ACTIONS(479), 1, anon_sym_RBRACE, - ACTIONS(450), 1, + ACTIONS(481), 1, anon_sym_LF, - STATE(5), 1, + STATE(10), 1, aux_sym__linebreak, - STATE(152), 1, + STATE(146), 1, aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5370] = 2, + [5448] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(470), 4, - ts_builtin_sym_end, + ACTIONS(221), 4, anon_sym_RBRACE, - anon_sym_else, + anon_sym_EQ, + anon_sym_COMMA, anon_sym_LF, - [5381] = 2, + [5459] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(472), 4, + ACTIONS(475), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5392] = 5, - ACTIONS(474), 1, - anon_sym_RBRACE, - ACTIONS(476), 1, + [5470] = 5, + ACTIONS(484), 1, + ts_builtin_sym_end, + ACTIONS(486), 1, anon_sym_LF, - STATE(3), 1, + STATE(94), 1, aux_sym__linebreak, STATE(153), 1, - aux_sym_block_repeat1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5409] = 5, - ACTIONS(478), 1, - anon_sym_RBRACE, - ACTIONS(480), 1, - anon_sym_LF, - STATE(4), 1, - aux_sym__linebreak, - STATE(153), 1, - aux_sym_block_repeat1, + [5487] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5426] = 5, - ACTIONS(482), 1, - anon_sym_RPAREN, - ACTIONS(484), 1, + ACTIONS(488), 4, + anon_sym_RBRACE, + anon_sym_EQ, anon_sym_COMMA, - STATE(61), 1, - sym__comma, - STATE(149), 1, - aux_sym_parenthesis_expression_list_repeat1, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5443] = 3, - ACTIONS(489), 1, + anon_sym_LF, + [5498] = 3, + ACTIONS(492), 1, anon_sym_COLON, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(487), 3, + ACTIONS(490), 3, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_LF, - [5456] = 2, + [5511] = 5, + ACTIONS(494), 1, + ts_builtin_sym_end, + ACTIONS(496), 1, + anon_sym_LF, + STATE(92), 1, + aux_sym__linebreak, + STATE(136), 1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(456), 4, + [5528] = 5, + ACTIONS(498), 1, ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5467] = 5, - ACTIONS(491), 1, - anon_sym_RBRACE, - ACTIONS(493), 1, + ACTIONS(500), 1, anon_sym_LF, - STATE(9), 1, + STATE(102), 1, aux_sym__linebreak, STATE(153), 1, - aux_sym_block_repeat1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5484] = 5, - ACTIONS(495), 1, - anon_sym_RBRACE, - ACTIONS(497), 1, - anon_sym_LF, - STATE(10), 1, - aux_sym__linebreak, - STATE(153), 1, - aux_sym_block_repeat1, + [5545] = 5, + ACTIONS(17), 1, + anon_sym_LBRACE, + ACTIONS(503), 1, + anon_sym_POUND_LPAREN, + STATE(192), 1, + sym_template_declaration_arguments, + STATE(196), 1, + sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5501] = 5, - ACTIONS(500), 1, - anon_sym_RBRACE, - ACTIONS(502), 1, - anon_sym_LF, - STATE(8), 1, - aux_sym__linebreak, - STATE(153), 1, - aux_sym_block_repeat1, + [5562] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5518] = 5, - ACTIONS(504), 1, + ACTIONS(505), 4, ts_builtin_sym_end, - ACTIONS(506), 1, + anon_sym_RBRACE, + anon_sym_else, anon_sym_LF, - STATE(92), 1, - aux_sym__linebreak, - STATE(157), 1, - aux_sym_source_file_repeat1, + [5573] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5535] = 5, - ACTIONS(424), 1, + ACTIONS(505), 4, + ts_builtin_sym_end, anon_sym_RBRACE, - ACTIONS(428), 1, + anon_sym_else, anon_sym_LF, - STATE(6), 1, - aux_sym__linebreak, - STATE(147), 1, - aux_sym_block_repeat1, + [5584] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5552] = 5, - ACTIONS(508), 1, + ACTIONS(507), 4, ts_builtin_sym_end, - ACTIONS(510), 1, + anon_sym_RBRACE, + anon_sym_else, anon_sym_LF, - STATE(102), 1, - aux_sym__linebreak, - STATE(157), 1, - aux_sym_source_file_repeat1, + [5595] = 5, + ACTIONS(231), 1, + anon_sym_COMMA, + ACTIONS(509), 1, + anon_sym_RPAREN, + STATE(61), 1, + sym__comma, + STATE(142), 1, + aux_sym_parenthesis_expression_list_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5569] = 2, + [5612] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(513), 4, + ACTIONS(511), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5580] = 4, - ACTIONS(15), 1, - anon_sym_LBRACE, - ACTIONS(515), 1, - anon_sym_if, + [5623] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - STATE(201), 2, - sym_block, - sym_if_statement, - [5595] = 5, - ACTIONS(15), 1, - anon_sym_LBRACE, + ACTIONS(511), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [5634] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(513), 4, + ts_builtin_sym_end, + anon_sym_RBRACE, + anon_sym_else, + anon_sym_LF, + [5645] = 4, ACTIONS(517), 1, - anon_sym_POUND_LPAREN, - STATE(202), 1, - sym_template_declaration_arguments, - STATE(204), 1, - sym_block, + anon_sym_COLON, + STATE(197), 1, + sym_interface_ports, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5612] = 5, + ACTIONS(515), 2, + anon_sym_RBRACE, + anon_sym_LF, + [5660] = 5, ACTIONS(519), 1, - ts_builtin_sym_end, + anon_sym_RBRACE, ACTIONS(521), 1, anon_sym_LF, - STATE(98), 1, + STATE(6), 1, aux_sym__linebreak, - STATE(155), 1, - aux_sym_source_file_repeat1, + STATE(146), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5629] = 4, - ACTIONS(313), 1, - anon_sym_DASH_GT, - STATE(205), 1, - sym__interface_ports_output, + [5677] = 5, + ACTIONS(523), 1, + anon_sym_RBRACE, + ACTIONS(525), 1, + anon_sym_LF, + STATE(5), 1, + aux_sym__linebreak, + STATE(146), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(523), 2, - anon_sym_RBRACE, - anon_sym_LF, - [5644] = 2, + [5694] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(525), 4, + ACTIONS(527), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5655] = 5, - ACTIONS(527), 1, - ts_builtin_sym_end, + [5705] = 5, ACTIONS(529), 1, + anon_sym_RBRACE, + ACTIONS(531), 1, anon_sym_LF, - STATE(99), 1, + STATE(4), 1, aux_sym__linebreak, - STATE(157), 1, - aux_sym_source_file_repeat1, + STATE(146), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5672] = 2, + [5722] = 4, + ACTIONS(17), 1, + anon_sym_LBRACE, + ACTIONS(533), 1, + anon_sym_if, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(531), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5683] = 5, - ACTIONS(15), 1, + STATE(208), 2, + sym_block, + sym_if_statement, + [5737] = 5, + ACTIONS(17), 1, anon_sym_LBRACE, - ACTIONS(517), 1, + ACTIONS(503), 1, anon_sym_POUND_LPAREN, - STATE(195), 1, - sym_template_declaration_arguments, - STATE(199), 1, + STATE(201), 1, sym_block, + STATE(204), 1, + sym_template_declaration_arguments, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5700] = 2, + [5754] = 4, + ACTIONS(11), 1, + anon_sym_const, + STATE(212), 1, + sym_const_and_type, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(531), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5711] = 2, + ACTIONS(535), 2, + anon_sym_module, + anon_sym_struct, + [5769] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(533), 4, + ACTIONS(225), 4, anon_sym_RBRACE, - anon_sym_DASH_GT, + anon_sym_EQ, anon_sym_COMMA, anon_sym_LF, - [5722] = 5, - ACTIONS(535), 1, - ts_builtin_sym_end, - ACTIONS(537), 1, + [5780] = 5, + ACTIONS(452), 1, + anon_sym_RBRACE, + ACTIONS(454), 1, anon_sym_LF, - STATE(101), 1, + STATE(8), 1, aux_sym__linebreak, - STATE(164), 1, - aux_sym_source_file_repeat1, + STATE(163), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5739] = 5, - ACTIONS(221), 1, - anon_sym_COMMA, + [5797] = 5, + ACTIONS(537), 1, + ts_builtin_sym_end, ACTIONS(539), 1, - anon_sym_RPAREN, - STATE(61), 1, - sym__comma, + anon_sym_LF, + STATE(96), 1, + aux_sym__linebreak, STATE(149), 1, - aux_sym_parenthesis_expression_list_repeat1, + aux_sym_source_file_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5756] = 2, + [5814] = 5, + ACTIONS(541), 1, + anon_sym_RBRACE, + ACTIONS(543), 1, + anon_sym_LF, + STATE(7), 1, + aux_sym__linebreak, + STATE(146), 1, + aux_sym_block_repeat1, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(541), 4, - ts_builtin_sym_end, - anon_sym_RBRACE, - anon_sym_else, - anon_sym_LF, - [5767] = 2, + [5831] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(513), 4, + ACTIONS(545), 4, ts_builtin_sym_end, anon_sym_RBRACE, anon_sym_else, anon_sym_LF, - [5778] = 4, - ACTIONS(100), 1, - anon_sym_LBRACK, - ACTIONS(543), 1, - sym_identifier, - STATE(133), 1, - sym_array_bracket_expression, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5792] = 4, - ACTIONS(337), 1, - anon_sym_LF, - ACTIONS(545), 1, - anon_sym_RPAREN, - STATE(100), 1, - aux_sym__linebreak, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [5806] = 4, - ACTIONS(337), 1, + [5842] = 4, + ACTIONS(339), 1, anon_sym_LF, ACTIONS(547), 1, anon_sym_RPAREN, - STATE(100), 1, + STATE(97), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5820] = 4, - ACTIONS(337), 1, - anon_sym_LF, - ACTIONS(549), 1, - anon_sym_RPAREN, - STATE(100), 1, - aux_sym__linebreak, + [5856] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5834] = 4, - ACTIONS(337), 1, + ACTIONS(549), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_LF, + [5866] = 4, + ACTIONS(339), 1, anon_sym_LF, ACTIONS(551), 1, anon_sym_RPAREN, - STATE(100), 1, + STATE(97), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5848] = 4, - ACTIONS(100), 1, - anon_sym_LBRACK, - ACTIONS(553), 1, - sym_identifier, - STATE(133), 1, - sym_array_bracket_expression, + [5880] = 3, + ACTIONS(555), 1, + anon_sym_else, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5862] = 3, - ACTIONS(426), 1, + ACTIONS(553), 2, + anon_sym_RBRACE, + anon_sym_LF, + [5892] = 3, + ACTIONS(430), 1, anon_sym_EQ, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(555), 2, + ACTIONS(557), 2, anon_sym_RBRACE, anon_sym_LF, - [5874] = 4, - ACTIONS(100), 1, + [5904] = 4, + ACTIONS(116), 1, anon_sym_LBRACK, - ACTIONS(557), 1, + ACTIONS(559), 1, sym_identifier, - STATE(133), 1, + STATE(132), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5888] = 4, - ACTIONS(337), 1, + [5918] = 4, + ACTIONS(339), 1, anon_sym_LF, - ACTIONS(559), 1, + ACTIONS(561), 1, anon_sym_RPAREN, - STATE(100), 1, + STATE(97), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5902] = 4, - ACTIONS(337), 1, + [5932] = 4, + ACTIONS(339), 1, anon_sym_LF, - ACTIONS(561), 1, + ACTIONS(563), 1, anon_sym_RPAREN, - STATE(100), 1, + STATE(97), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5916] = 4, - ACTIONS(337), 1, + [5946] = 4, + ACTIONS(339), 1, anon_sym_LF, - ACTIONS(563), 1, + ACTIONS(565), 1, anon_sym_RPAREN, - STATE(100), 1, + STATE(97), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5930] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(565), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_LF, - [5940] = 2, + [5960] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, @@ -8621,295 +8644,328 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_COMMA, anon_sym_LF, - [5950] = 3, - ACTIONS(571), 1, - anon_sym_else, + [5970] = 4, + ACTIONS(116), 1, + anon_sym_LBRACK, + ACTIONS(569), 1, + sym_identifier, + STATE(132), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(569), 2, - anon_sym_RBRACE, - anon_sym_LF, - [5962] = 2, + [5984] = 4, + ACTIONS(116), 1, + anon_sym_LBRACK, + ACTIONS(571), 1, + sym_identifier, + STATE(132), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(573), 3, - anon_sym_module, - anon_sym_function, - anon_sym_struct, - [5972] = 4, - ACTIONS(337), 1, + [5998] = 4, + ACTIONS(339), 1, anon_sym_LF, - ACTIONS(575), 1, + ACTIONS(573), 1, anon_sym_RPAREN, - STATE(100), 1, + STATE(97), 1, aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [5986] = 4, - ACTIONS(100), 1, + [6012] = 4, + ACTIONS(116), 1, anon_sym_LBRACK, - ACTIONS(577), 1, + ACTIONS(575), 1, sym_identifier, - STATE(133), 1, + STATE(132), 1, sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6000] = 3, - ACTIONS(250), 1, - sym_identifier, - STATE(16), 1, - sym_namespace_list, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - [6011] = 2, - ACTIONS(3), 2, - sym_single_line_comment, - sym_multi_line_comment, - ACTIONS(579), 2, - ts_builtin_sym_end, + [6026] = 4, + ACTIONS(339), 1, anon_sym_LF, - [6020] = 2, + ACTIONS(577), 1, + anon_sym_RPAREN, + STATE(97), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(581), 2, - anon_sym_RBRACE, + [6040] = 4, + ACTIONS(339), 1, anon_sym_LF, - [6029] = 2, + ACTIONS(579), 1, + anon_sym_RPAREN, + STATE(97), 1, + aux_sym__linebreak, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(583), 2, - anon_sym_RBRACE, - anon_sym_LF, - [6038] = 2, + [6054] = 4, + ACTIONS(116), 1, + anon_sym_LBRACK, + ACTIONS(581), 1, + sym_identifier, + STATE(132), 1, + sym_array_bracket_expression, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(585), 2, - anon_sym_RBRACE, - anon_sym_LF, - [6047] = 3, - ACTIONS(15), 1, + [6068] = 3, + ACTIONS(17), 1, anon_sym_LBRACE, - STATE(207), 1, + STATE(193), 1, sym_block, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6058] = 2, + [6079] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(587), 2, - anon_sym_RBRACE, + ACTIONS(583), 2, + ts_builtin_sym_end, anon_sym_LF, - [6067] = 2, + [6088] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(589), 2, + ACTIONS(585), 2, anon_sym_RBRACE, anon_sym_LF, - [6076] = 3, - ACTIONS(440), 1, - sym_identifier, - STATE(185), 1, - sym_template_arg, + [6097] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6087] = 2, + ACTIONS(587), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6106] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(591), 2, + ACTIONS(589), 2, ts_builtin_sym_end, anon_sym_LF, - [6096] = 2, + [6115] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - ACTIONS(555), 2, + ACTIONS(591), 2, anon_sym_RBRACE, anon_sym_LF, - [6105] = 2, + [6124] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(593), 2, anon_sym_RBRACE, anon_sym_LF, - [6114] = 3, - ACTIONS(15), 1, - anon_sym_LBRACE, - STATE(209), 1, - sym_block, + [6133] = 3, + ACTIONS(250), 1, + sym_identifier, + STATE(15), 1, + sym_namespace_list, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6125] = 2, + [6144] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(595), 2, - anon_sym_RBRACE, + ts_builtin_sym_end, anon_sym_LF, - [6134] = 2, + [6153] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(597), 2, ts_builtin_sym_end, anon_sym_LF, - [6143] = 2, + [6162] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(599), 2, anon_sym_RBRACE, anon_sym_LF, - [6152] = 2, + [6171] = 2, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + ACTIONS(557), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6180] = 3, + ACTIONS(17), 1, + anon_sym_LBRACE, + STATE(209), 1, + sym_block, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6191] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(601), 2, anon_sym_RBRACE, anon_sym_LF, - [6161] = 2, + [6200] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(603), 2, - ts_builtin_sym_end, + anon_sym_RBRACE, anon_sym_LF, - [6170] = 2, + [6209] = 3, + ACTIONS(424), 1, + sym_identifier, + STATE(184), 1, + sym_template_arg, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6220] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(605), 2, anon_sym_RBRACE, anon_sym_LF, - [6179] = 2, + [6229] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, ACTIONS(607), 2, ts_builtin_sym_end, anon_sym_LF, - [6188] = 2, - ACTIONS(609), 1, - anon_sym_LBRACE, + [6238] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6196] = 2, - ACTIONS(611), 1, - sym_identifier, + ACTIONS(609), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6247] = 2, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6204] = 2, + ACTIONS(611), 2, + anon_sym_RBRACE, + anon_sym_LF, + [6256] = 2, ACTIONS(613), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6212] = 2, + [6264] = 2, ACTIONS(615), 1, anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6220] = 2, + [6272] = 2, ACTIONS(617), 1, - sym_identifier, + anon_sym_in, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6228] = 2, + [6280] = 2, ACTIONS(619), 1, anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6236] = 2, + [6288] = 2, ACTIONS(621), 1, anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6244] = 2, + [6296] = 2, ACTIONS(623), 1, anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6252] = 2, + [6304] = 2, ACTIONS(625), 1, - anon_sym_LBRACE, + ts_builtin_sym_end, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6260] = 2, + [6312] = 2, ACTIONS(627), 1, anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6268] = 2, + [6320] = 2, ACTIONS(629), 1, anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6276] = 2, + [6328] = 2, ACTIONS(631), 1, - anon_sym_in, + sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6284] = 2, + [6336] = 2, ACTIONS(633), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6292] = 2, + [6344] = 2, ACTIONS(635), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6300] = 2, + [6352] = 2, ACTIONS(637), 1, anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6308] = 2, + [6360] = 2, ACTIONS(639), 1, - ts_builtin_sym_end, + anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6316] = 2, + [6368] = 2, ACTIONS(641), 1, anon_sym_LBRACE, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, - [6324] = 2, + [6376] = 2, ACTIONS(643), 1, sym_identifier, ACTIONS(3), 2, sym_single_line_comment, sym_multi_line_comment, + [6384] = 2, + ACTIONS(645), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, + [6392] = 2, + ACTIONS(647), 1, + sym_identifier, + ACTIONS(3), 2, + sym_single_line_comment, + sym_multi_line_comment, }; static const uint32_t ts_small_parse_table_map[] = { @@ -8927,14 +8983,14 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(13)] = 1066, [SMALL_STATE(14)] = 1110, [SMALL_STATE(15)] = 1154, - [SMALL_STATE(16)] = 1193, + [SMALL_STATE(16)] = 1197, [SMALL_STATE(17)] = 1236, [SMALL_STATE(18)] = 1279, - [SMALL_STATE(19)] = 1327, - [SMALL_STATE(20)] = 1379, - [SMALL_STATE(21)] = 1441, - [SMALL_STATE(22)] = 1501, - [SMALL_STATE(23)] = 1557, + [SMALL_STATE(19)] = 1341, + [SMALL_STATE(20)] = 1401, + [SMALL_STATE(21)] = 1457, + [SMALL_STATE(22)] = 1515, + [SMALL_STATE(23)] = 1563, [SMALL_STATE(24)] = 1615, [SMALL_STATE(25)] = 1663, [SMALL_STATE(26)] = 1700, @@ -8952,39 +9008,39 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(38)] = 2144, [SMALL_STATE(39)] = 2180, [SMALL_STATE(40)] = 2216, - [SMALL_STATE(41)] = 2256, - [SMALL_STATE(42)] = 2292, - [SMALL_STATE(43)] = 2348, - [SMALL_STATE(44)] = 2384, - [SMALL_STATE(45)] = 2420, + [SMALL_STATE(41)] = 2272, + [SMALL_STATE(42)] = 2308, + [SMALL_STATE(43)] = 2344, + [SMALL_STATE(44)] = 2380, + [SMALL_STATE(45)] = 2416, [SMALL_STATE(46)] = 2456, [SMALL_STATE(47)] = 2492, [SMALL_STATE(48)] = 2555, - [SMALL_STATE(49)] = 2617, - [SMALL_STATE(50)] = 2675, + [SMALL_STATE(49)] = 2613, + [SMALL_STATE(50)] = 2671, [SMALL_STATE(51)] = 2733, [SMALL_STATE(52)] = 2768, [SMALL_STATE(53)] = 2823, - [SMALL_STATE(54)] = 2879, - [SMALL_STATE(55)] = 2935, - [SMALL_STATE(56)] = 2977, - [SMALL_STATE(57)] = 3031, - [SMALL_STATE(58)] = 3085, + [SMALL_STATE(54)] = 2865, + [SMALL_STATE(55)] = 2919, + [SMALL_STATE(56)] = 2961, + [SMALL_STATE(57)] = 3017, + [SMALL_STATE(58)] = 3073, [SMALL_STATE(59)] = 3127, [SMALL_STATE(60)] = 3166, [SMALL_STATE(61)] = 3205, [SMALL_STATE(62)] = 3244, [SMALL_STATE(63)] = 3283, - [SMALL_STATE(64)] = 3322, + [SMALL_STATE(64)] = 3336, [SMALL_STATE(65)] = 3375, [SMALL_STATE(66)] = 3414, [SMALL_STATE(67)] = 3453, [SMALL_STATE(68)] = 3492, [SMALL_STATE(69)] = 3531, [SMALL_STATE(70)] = 3570, - [SMALL_STATE(71)] = 3623, + [SMALL_STATE(71)] = 3609, [SMALL_STATE(72)] = 3662, - [SMALL_STATE(73)] = 3701, + [SMALL_STATE(73)] = 3715, [SMALL_STATE(74)] = 3754, [SMALL_STATE(75)] = 3793, [SMALL_STATE(76)] = 3832, @@ -9004,141 +9060,143 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(90)] = 4323, [SMALL_STATE(91)] = 4353, [SMALL_STATE(92)] = 4383, - [SMALL_STATE(93)] = 4409, - [SMALL_STATE(94)] = 4429, - [SMALL_STATE(95)] = 4455, - [SMALL_STATE(96)] = 4475, - [SMALL_STATE(97)] = 4495, - [SMALL_STATE(98)] = 4515, - [SMALL_STATE(99)] = 4541, - [SMALL_STATE(100)] = 4567, - [SMALL_STATE(101)] = 4587, - [SMALL_STATE(102)] = 4613, - [SMALL_STATE(103)] = 4636, - [SMALL_STATE(104)] = 4657, - [SMALL_STATE(105)] = 4680, - [SMALL_STATE(106)] = 4694, - [SMALL_STATE(107)] = 4708, - [SMALL_STATE(108)] = 4722, - [SMALL_STATE(109)] = 4736, - [SMALL_STATE(110)] = 4755, - [SMALL_STATE(111)] = 4774, - [SMALL_STATE(112)] = 4793, - [SMALL_STATE(113)] = 4812, - [SMALL_STATE(114)] = 4835, - [SMALL_STATE(115)] = 4858, - [SMALL_STATE(116)] = 4881, - [SMALL_STATE(117)] = 4904, - [SMALL_STATE(118)] = 4923, - [SMALL_STATE(119)] = 4942, - [SMALL_STATE(120)] = 4965, - [SMALL_STATE(121)] = 4984, - [SMALL_STATE(122)] = 5007, - [SMALL_STATE(123)] = 5030, - [SMALL_STATE(124)] = 5053, - [SMALL_STATE(125)] = 5072, - [SMALL_STATE(126)] = 5091, - [SMALL_STATE(127)] = 5107, - [SMALL_STATE(128)] = 5127, - [SMALL_STATE(129)] = 5145, - [SMALL_STATE(130)] = 5163, - [SMALL_STATE(131)] = 5183, - [SMALL_STATE(132)] = 5203, - [SMALL_STATE(133)] = 5223, - [SMALL_STATE(134)] = 5235, - [SMALL_STATE(135)] = 5246, - [SMALL_STATE(136)] = 5257, - [SMALL_STATE(137)] = 5268, - [SMALL_STATE(138)] = 5279, - [SMALL_STATE(139)] = 5290, - [SMALL_STATE(140)] = 5301, - [SMALL_STATE(141)] = 5316, - [SMALL_STATE(142)] = 5327, - [SMALL_STATE(143)] = 5338, - [SMALL_STATE(144)] = 5353, - [SMALL_STATE(145)] = 5370, - [SMALL_STATE(146)] = 5381, - [SMALL_STATE(147)] = 5392, - [SMALL_STATE(148)] = 5409, - [SMALL_STATE(149)] = 5426, - [SMALL_STATE(150)] = 5443, - [SMALL_STATE(151)] = 5456, - [SMALL_STATE(152)] = 5467, - [SMALL_STATE(153)] = 5484, - [SMALL_STATE(154)] = 5501, - [SMALL_STATE(155)] = 5518, - [SMALL_STATE(156)] = 5535, - [SMALL_STATE(157)] = 5552, - [SMALL_STATE(158)] = 5569, - [SMALL_STATE(159)] = 5580, - [SMALL_STATE(160)] = 5595, - [SMALL_STATE(161)] = 5612, - [SMALL_STATE(162)] = 5629, - [SMALL_STATE(163)] = 5644, - [SMALL_STATE(164)] = 5655, - [SMALL_STATE(165)] = 5672, - [SMALL_STATE(166)] = 5683, - [SMALL_STATE(167)] = 5700, - [SMALL_STATE(168)] = 5711, - [SMALL_STATE(169)] = 5722, - [SMALL_STATE(170)] = 5739, - [SMALL_STATE(171)] = 5756, - [SMALL_STATE(172)] = 5767, - [SMALL_STATE(173)] = 5778, - [SMALL_STATE(174)] = 5792, - [SMALL_STATE(175)] = 5806, - [SMALL_STATE(176)] = 5820, - [SMALL_STATE(177)] = 5834, - [SMALL_STATE(178)] = 5848, - [SMALL_STATE(179)] = 5862, - [SMALL_STATE(180)] = 5874, - [SMALL_STATE(181)] = 5888, - [SMALL_STATE(182)] = 5902, - [SMALL_STATE(183)] = 5916, - [SMALL_STATE(184)] = 5930, - [SMALL_STATE(185)] = 5940, - [SMALL_STATE(186)] = 5950, - [SMALL_STATE(187)] = 5962, - [SMALL_STATE(188)] = 5972, - [SMALL_STATE(189)] = 5986, - [SMALL_STATE(190)] = 6000, - [SMALL_STATE(191)] = 6011, - [SMALL_STATE(192)] = 6020, - [SMALL_STATE(193)] = 6029, - [SMALL_STATE(194)] = 6038, - [SMALL_STATE(195)] = 6047, - [SMALL_STATE(196)] = 6058, - [SMALL_STATE(197)] = 6067, - [SMALL_STATE(198)] = 6076, - [SMALL_STATE(199)] = 6087, - [SMALL_STATE(200)] = 6096, - [SMALL_STATE(201)] = 6105, - [SMALL_STATE(202)] = 6114, - [SMALL_STATE(203)] = 6125, - [SMALL_STATE(204)] = 6134, - [SMALL_STATE(205)] = 6143, - [SMALL_STATE(206)] = 6152, - [SMALL_STATE(207)] = 6161, - [SMALL_STATE(208)] = 6170, - [SMALL_STATE(209)] = 6179, - [SMALL_STATE(210)] = 6188, - [SMALL_STATE(211)] = 6196, - [SMALL_STATE(212)] = 6204, - [SMALL_STATE(213)] = 6212, - [SMALL_STATE(214)] = 6220, - [SMALL_STATE(215)] = 6228, - [SMALL_STATE(216)] = 6236, - [SMALL_STATE(217)] = 6244, - [SMALL_STATE(218)] = 6252, - [SMALL_STATE(219)] = 6260, - [SMALL_STATE(220)] = 6268, - [SMALL_STATE(221)] = 6276, - [SMALL_STATE(222)] = 6284, - [SMALL_STATE(223)] = 6292, - [SMALL_STATE(224)] = 6300, - [SMALL_STATE(225)] = 6308, - [SMALL_STATE(226)] = 6316, - [SMALL_STATE(227)] = 6324, + [SMALL_STATE(93)] = 4414, + [SMALL_STATE(94)] = 4445, + [SMALL_STATE(95)] = 4476, + [SMALL_STATE(96)] = 4507, + [SMALL_STATE(97)] = 4538, + [SMALL_STATE(98)] = 4558, + [SMALL_STATE(99)] = 4578, + [SMALL_STATE(100)] = 4598, + [SMALL_STATE(101)] = 4618, + [SMALL_STATE(102)] = 4638, + [SMALL_STATE(103)] = 4666, + [SMALL_STATE(104)] = 4687, + [SMALL_STATE(105)] = 4710, + [SMALL_STATE(106)] = 4724, + [SMALL_STATE(107)] = 4738, + [SMALL_STATE(108)] = 4752, + [SMALL_STATE(109)] = 4766, + [SMALL_STATE(110)] = 4785, + [SMALL_STATE(111)] = 4804, + [SMALL_STATE(112)] = 4823, + [SMALL_STATE(113)] = 4846, + [SMALL_STATE(114)] = 4865, + [SMALL_STATE(115)] = 4888, + [SMALL_STATE(116)] = 4911, + [SMALL_STATE(117)] = 4930, + [SMALL_STATE(118)] = 4949, + [SMALL_STATE(119)] = 4972, + [SMALL_STATE(120)] = 4995, + [SMALL_STATE(121)] = 5014, + [SMALL_STATE(122)] = 5037, + [SMALL_STATE(123)] = 5056, + [SMALL_STATE(124)] = 5075, + [SMALL_STATE(125)] = 5098, + [SMALL_STATE(126)] = 5121, + [SMALL_STATE(127)] = 5140, + [SMALL_STATE(128)] = 5160, + [SMALL_STATE(129)] = 5180, + [SMALL_STATE(130)] = 5198, + [SMALL_STATE(131)] = 5216, + [SMALL_STATE(132)] = 5236, + [SMALL_STATE(133)] = 5248, + [SMALL_STATE(134)] = 5264, + [SMALL_STATE(135)] = 5284, + [SMALL_STATE(136)] = 5299, + [SMALL_STATE(137)] = 5316, + [SMALL_STATE(138)] = 5327, + [SMALL_STATE(139)] = 5338, + [SMALL_STATE(140)] = 5349, + [SMALL_STATE(141)] = 5360, + [SMALL_STATE(142)] = 5371, + [SMALL_STATE(143)] = 5388, + [SMALL_STATE(144)] = 5405, + [SMALL_STATE(145)] = 5416, + [SMALL_STATE(146)] = 5431, + [SMALL_STATE(147)] = 5448, + [SMALL_STATE(148)] = 5459, + [SMALL_STATE(149)] = 5470, + [SMALL_STATE(150)] = 5487, + [SMALL_STATE(151)] = 5498, + [SMALL_STATE(152)] = 5511, + [SMALL_STATE(153)] = 5528, + [SMALL_STATE(154)] = 5545, + [SMALL_STATE(155)] = 5562, + [SMALL_STATE(156)] = 5573, + [SMALL_STATE(157)] = 5584, + [SMALL_STATE(158)] = 5595, + [SMALL_STATE(159)] = 5612, + [SMALL_STATE(160)] = 5623, + [SMALL_STATE(161)] = 5634, + [SMALL_STATE(162)] = 5645, + [SMALL_STATE(163)] = 5660, + [SMALL_STATE(164)] = 5677, + [SMALL_STATE(165)] = 5694, + [SMALL_STATE(166)] = 5705, + [SMALL_STATE(167)] = 5722, + [SMALL_STATE(168)] = 5737, + [SMALL_STATE(169)] = 5754, + [SMALL_STATE(170)] = 5769, + [SMALL_STATE(171)] = 5780, + [SMALL_STATE(172)] = 5797, + [SMALL_STATE(173)] = 5814, + [SMALL_STATE(174)] = 5831, + [SMALL_STATE(175)] = 5842, + [SMALL_STATE(176)] = 5856, + [SMALL_STATE(177)] = 5866, + [SMALL_STATE(178)] = 5880, + [SMALL_STATE(179)] = 5892, + [SMALL_STATE(180)] = 5904, + [SMALL_STATE(181)] = 5918, + [SMALL_STATE(182)] = 5932, + [SMALL_STATE(183)] = 5946, + [SMALL_STATE(184)] = 5960, + [SMALL_STATE(185)] = 5970, + [SMALL_STATE(186)] = 5984, + [SMALL_STATE(187)] = 5998, + [SMALL_STATE(188)] = 6012, + [SMALL_STATE(189)] = 6026, + [SMALL_STATE(190)] = 6040, + [SMALL_STATE(191)] = 6054, + [SMALL_STATE(192)] = 6068, + [SMALL_STATE(193)] = 6079, + [SMALL_STATE(194)] = 6088, + [SMALL_STATE(195)] = 6097, + [SMALL_STATE(196)] = 6106, + [SMALL_STATE(197)] = 6115, + [SMALL_STATE(198)] = 6124, + [SMALL_STATE(199)] = 6133, + [SMALL_STATE(200)] = 6144, + [SMALL_STATE(201)] = 6153, + [SMALL_STATE(202)] = 6162, + [SMALL_STATE(203)] = 6171, + [SMALL_STATE(204)] = 6180, + [SMALL_STATE(205)] = 6191, + [SMALL_STATE(206)] = 6200, + [SMALL_STATE(207)] = 6209, + [SMALL_STATE(208)] = 6220, + [SMALL_STATE(209)] = 6229, + [SMALL_STATE(210)] = 6238, + [SMALL_STATE(211)] = 6247, + [SMALL_STATE(212)] = 6256, + [SMALL_STATE(213)] = 6264, + [SMALL_STATE(214)] = 6272, + [SMALL_STATE(215)] = 6280, + [SMALL_STATE(216)] = 6288, + [SMALL_STATE(217)] = 6296, + [SMALL_STATE(218)] = 6304, + [SMALL_STATE(219)] = 6312, + [SMALL_STATE(220)] = 6320, + [SMALL_STATE(221)] = 6328, + [SMALL_STATE(222)] = 6336, + [SMALL_STATE(223)] = 6344, + [SMALL_STATE(224)] = 6352, + [SMALL_STATE(225)] = 6360, + [SMALL_STATE(226)] = 6368, + [SMALL_STATE(227)] = 6376, + [SMALL_STATE(228)] = 6384, + [SMALL_STATE(229)] = 6392, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -9146,319 +9204,321 @@ static const TSParseActionEntry ts_parse_actions[] = { [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 = true}}, SHIFT(187), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), - [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(83), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(90), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(212), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(211), - [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(104), - [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(118), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), - [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), - [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), - [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_namespace_list, 1, .production_id = 1), - [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_namespace_list, 1, .production_id = 1), - [65] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214), - [67] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_namespace_list, 2, .production_id = 2), - [69] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_namespace_list, 2, .production_id = 2), - [71] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_namespace_list_repeat1, 2, .production_id = 5), - [73] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_namespace_list_repeat1, 2, .production_id = 5), - [75] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_namespace_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(214), - [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_namespace_list_repeat1, 2, .production_id = 3), - [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_namespace_list_repeat1, 2, .production_id = 3), - [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 14), - [84] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), - [86] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 14), - [88] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1, .production_id = 9), - [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1, .production_id = 9), - [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 19), - [94] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 19), - [96] = {.entry = {.count = 1, .reusable = false}}, SHIFT(222), - [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 31), - [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 31), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(83), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(90), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(223), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(222), + [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(104), + [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(123), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), + [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), + [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), + [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_namespace_list_repeat1, 2, .production_id = 10), + [65] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_namespace_list_repeat1, 2, .production_id = 10), + [67] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_namespace_list_repeat1, 2, .production_id = 10), SHIFT_REPEAT(227), + [70] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_namespace_list, 1, .production_id = 1), + [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_namespace_list, 1, .production_id = 1), + [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), + [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_namespace_list, 2, .production_id = 4), + [78] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_namespace_list, 2, .production_id = 4), + [80] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 7), + [82] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), + [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 7), + [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_namespace_list_repeat1, 2, .production_id = 5), + [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_namespace_list_repeat1, 2, .production_id = 5), + [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 1, .production_id = 3), + [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 1, .production_id = 3), + [94] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_op, 3, .production_id = 32), + [96] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_op, 3, .production_id = 32), + [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [100] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), + [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [108] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), - [110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [112] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60), - [114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 3), - [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 3), - [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 4, .production_id = 3), - [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 4, .production_id = 3), - [128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 24), - [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 24), - [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 5, .production_id = 36), - [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 5, .production_id = 36), - [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 6, .production_id = 36), - [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 6, .production_id = 36), - [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 4, .production_id = 26), - [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 4, .production_id = 26), - [144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 29), - [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 29), - [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 4, .production_id = 6), - [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 4, .production_id = 6), - [152] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 5, .production_id = 26), - [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 5, .production_id = 26), - [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 5, .production_id = 6), - [158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 5, .production_id = 6), - [160] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 2), - [162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 2), - [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 3, .production_id = 3), - [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 3, .production_id = 3), - [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 17), - [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 17), - [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 29), - [174] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 29), - [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 6), - [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), - [182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), - [184] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(40), - [187] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [189] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 3), - [191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 21), - [195] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 21), - [197] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), - [199] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), - [201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 32), - [203] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 32), - [205] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 16), - [207] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 16), - [209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 29), - [211] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 29), - [213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [215] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), - [217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), - [219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [223] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 10), - [225] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 10), - [227] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 20), - [229] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 20), - [231] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), - [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), - [235] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), - [237] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), - [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_arg, 3, .production_id = 40), - [242] = {.entry = {.count = 1, .reusable = false}}, SHIFT(111), - [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 3), - [248] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 30), - [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [292] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), - [294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), - [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [298] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), - [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), - [302] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 11), - [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 11), - [306] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [308] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), SHIFT_REPEAT(83), - [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 5), - [313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [317] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), - [321] = {.entry = {.count = 1, .reusable = false}}, SHIFT(103), - [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), - [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [327] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), - [331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), - [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 6), - [337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 15), - [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 33), - [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 22), - [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 23), - [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 3), - [353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 2), - [355] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(100), - [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), - [360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1, .production_id = 8), - [362] = {.entry = {.count = 1, .reusable = false}}, SHIFT(110), - [364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 25), - [366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 34), - [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 35), - [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 39), - [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 2), - [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), - [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), - [380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), - [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226), - [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), - [388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), - [392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), - [394] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(77), - [397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), - [399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), - [401] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), - [403] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), SHIFT_REPEAT(77), - [406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), - [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), - [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), - [414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217), - [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), - [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), - [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 2), - [422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_arg, 4, .production_id = 46), - [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), - [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_args_repeat1, 2, .production_id = 5), - [432] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_args_repeat1, 2, .production_id = 5), SHIFT_REPEAT(77), - [435] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), - [437] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), SHIFT_REPEAT(77), - [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), - [442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), - [448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), - [450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [452] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 16), - [454] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 3), - [456] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 36), - [458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 6), - [460] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 3), - [462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 45), - [464] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 3), - [466] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 18), - [468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 26), - [472] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), - [476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), - [480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), - [484] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), SHIFT_REPEAT(77), - [487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_arg, 1, .production_id = 8), - [489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), - [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [495] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), - [497] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), SHIFT_REPEAT(10), - [500] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), - [502] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [504] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 6), - [506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), - [510] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), SHIFT_REPEAT(102), - [513] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 36), - [515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), - [519] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 3), - [521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [523] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 38), - [525] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [527] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 2), - [529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [531] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 6), - [533] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 3), - [535] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), - [537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [541] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 26), - [543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), - [549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [555] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 3), - [557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), - [559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(224), - [561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), - [565] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 3), - [567] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_args_repeat1, 2, .production_id = 3), - [569] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 27), - [571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), - [573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), - [575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), - [577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [579] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 3), - [581] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 28), - [583] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 49), - [585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 48), - [587] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_domain_statement, 2, .production_id = 18), - [589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 47), - [591] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 3, .production_id = 4), - [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 41), - [595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 42), - [597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 4, .production_id = 7), - [599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 43), - [601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 37), - [603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 4, .production_id = 12), - [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 44), - [607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 5, .production_id = 13), - [609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 5, .production_id = 26), - [611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), - [613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), - [615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 5, .production_id = 6), - [617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), - [621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 3), - [623] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 5, .production_id = 36), - [625] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 26), - [627] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 6, .production_id = 36), - [629] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3), - [631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), - [637] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 3), - [639] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [641] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 6), - [643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), + [108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [110] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), + [112] = {.entry = {.count = 1, .reusable = false}}, SHIFT(221), + [114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 2, .production_id = 21), + [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 2, .production_id = 21), + [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 5, .production_id = 11), + [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 5, .production_id = 11), + [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 4, .production_id = 28), + [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 4, .production_id = 28), + [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 4, .production_id = 11), + [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 4, .production_id = 11), + [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 4, .production_id = 5), + [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 4, .production_id = 5), + [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 5, .production_id = 38), + [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 5, .production_id = 38), + [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 2), + [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 2), + [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 3, .production_id = 17), + [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 3, .production_id = 17), + [150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 24), + [152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_bracket_expression, 3, .production_id = 24), + [154] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_global, 2, .production_id = 9), + [156] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_global, 2, .production_id = 9), + [158] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 6, .production_id = 38), + [160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 6, .production_id = 38), + [162] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 5, .production_id = 28), + [164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 5, .production_id = 28), + [166] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 3), + [168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 3), + [170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_args, 3, .production_id = 5), + [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_args, 3, .production_id = 5), + [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 24), + [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression, 3, .production_id = 24), + [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_op, 2, .production_id = 8), + [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_op, 2, .production_id = 8), + [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_call, 2, .production_id = 23), + [186] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_func_call, 2, .production_id = 23), + [188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 5), + [190] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 3, .production_id = 5), + [192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 33), + [194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 33), + [196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 11), + [198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 4, .production_id = 11), + [200] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__linebreak, 2), + [202] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), + [204] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(45), + [207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesis_expression_list, 2), + [209] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesis_expression_list, 2), + [211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_latency_specifier, 2, .production_id = 24), + [213] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_latency_specifier, 2, .production_id = 24), + [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [217] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), + [219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221), + [221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 1, .production_id = 14), + [223] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 1, .production_id = 14), + [225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_to, 2, .production_id = 22), + [227] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_to, 2, .production_id = 22), + [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1), + [235] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [237] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1), + [239] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type, 1), REDUCE(sym__expression, 1), + [242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_arg, 3, .production_id = 34), + [244] = {.entry = {.count = 1, .reusable = false}}, SHIFT(117), + [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [248] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 5), + [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_assign_statement, 3, .production_id = 31), + [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [294] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 1), + [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 1), + [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [300] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comma, 2), + [302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comma, 2), + [304] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 10), + [306] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 10), SHIFT_REPEAT(83), + [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 2, .production_id = 10), + [311] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 15), + [313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 15), + [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [319] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_write_modifiers_repeat1, 1, .production_id = 1), + [323] = {.entry = {.count = 1, .reusable = false}}, SHIFT(103), + [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), + [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [329] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_write_modifiers, 1, .production_id = 1), + [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228), + [335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 1), + [339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, .production_id = 11), + [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 4), + [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 5), + [349] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__linebreak, 2), SHIFT_REPEAT(97), + [352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 35), + [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 26), + [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, .production_id = 19), + [360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 25), + [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_type, 1, .production_id = 13), + [364] = {.entry = {.count = 1, .reusable = false}}, SHIFT(111), + [366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 5, .production_id = 42), + [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 37), + [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 4, .production_id = 36), + [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, .production_id = 27), + [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 1, .production_id = 1), + [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 10), + [378] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 10), SHIFT_REPEAT(77), + [381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), + [385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_left_side, 2, .production_id = 4), + [387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), + [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), + [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(224), + [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), + [395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 1, .production_id = 1), + [397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), + [401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), + [405] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 10), + [407] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 10), SHIFT_REPEAT(77), + [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), + [414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), + [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), + [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217), + [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), + [422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_list, 2, .production_id = 4), + [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), + [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), + [430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_args_repeat1, 2, .production_id = 10), + [436] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_args_repeat1, 2, .production_id = 10), SHIFT_REPEAT(77), + [439] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 10), + [441] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 10), SHIFT_REPEAT(77), + [444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [448] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 8), + [450] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_arg, 4, .production_id = 41), + [452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), + [454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [456] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 40), + [458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 4), + [460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [464] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_declaration_list_repeat1, 2, .production_id = 5), + [466] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 6, .production_id = 38), + [468] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 5), + [470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 10), + [472] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesis_expression_list_repeat1, 2, .production_id = 10), SHIFT_REPEAT(77), + [475] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 11), + [477] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 47), + [479] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 10), + [481] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 10), SHIFT_REPEAT(10), + [484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, .production_id = 11), + [486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [488] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assign_left_side_repeat1, 2, .production_id = 5), + [490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_arg, 1, .production_id = 13), + [492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [494] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, .production_id = 1), + [496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [498] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 10), + [500] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 10), SHIFT_REPEAT(102), + [503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [505] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 38), + [507] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 28), + [509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [511] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 5, .production_id = 11), + [513] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4, .production_id = 28), + [515] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 2, .production_id = 20), + [517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), + [525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [527] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, .production_id = 5), + [529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), + [531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), + [537] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, .production_id = 5), + [539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), + [543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [545] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [549] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_declaration_arguments_repeat1, 2, .production_id = 5), + [551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [553] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 29), + [555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), + [557] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2, .production_id = 5), + [559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226), + [563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), + [565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), + [567] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_args_repeat1, 2, .production_id = 5), + [569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [575] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_const_and_type, 2, .production_id = 2), + [577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), + [579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [583] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 4, .production_id = 16), + [585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 50), + [587] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 4, .production_id = 49), + [589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 3, .production_id = 6), + [591] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_statement, 3, .production_id = 30), + [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 3, .production_id = 48), + [595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, .production_id = 5), + [597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 4, .production_id = 12), + [599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_domain_statement, 2, .production_id = 20), + [601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 46), + [603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 2, .production_id = 39), + [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 43), + [607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_object, 5, .production_id = 18), + [609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__interface_ports_output, 2, .production_id = 44), + [611] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_ports, 3, .production_id = 45), + [613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), + [615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 11), + [617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 6, .production_id = 38), + [621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 5, .production_id = 38), + [623] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 28), + [625] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [627] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 5, .production_id = 28), + [629] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 4, .production_id = 5), + [631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), + [637] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3, .production_id = 5), + [639] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 2), + [641] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 5, .production_id = 11), + [643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [645] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration_arguments, 3), + [647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), }; #ifdef __cplusplus From 7256ff6a34b8b8278d09af31faa6c0b9955dab99 Mon Sep 17 00:00:00 2001 From: Lennart Van Hirtum Date: Wed, 6 Nov 2024 13:00:55 +0100 Subject: [PATCH 49/49] Version Bump --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index fc8f820..60d1c63 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,7 @@ name = "tree-sitter-sus" authors = ["Lennart Van Hirtum "] description = "sus grammar for the tree-sitter parsing library" -version = "0.0.2" +version = "0.1.0" keywords = ["incremental", "parsing", "sus"] categories = ["parsing", "text-editors"] repository = "https://github.com/tree-sitter/tree-sitter-sus"